javax.swing.plaf.basic
Class BasicToolBarUI

java.lang.Object
  extended byjavax.swing.plaf.ComponentUI
      extended byjavax.swing.plaf.ToolBarUI
          extended byjavax.swing.plaf.basic.BasicToolBarUI
All Implemented Interfaces:
SwingConstants
Direct Known Subclasses:
MetalToolBarUI

public class BasicToolBarUI
extends ToolBarUI
implements SwingConstants

A Basic L&F implementation of ToolBarUI. This implementation is a "combined" view/controller.

Author:
Georges Saab, Jeff Shapiro

Nested Class Summary
 class BasicToolBarUI.DockingListener
          This inner class is marked "public" due to a compiler bug.
private static class BasicToolBarUI.DownAction
           
protected  class BasicToolBarUI.DragWindow
           
protected  class BasicToolBarUI.FrameListener
           
private static class BasicToolBarUI.KeyAction
           
private static class BasicToolBarUI.LeftAction
           
protected  class BasicToolBarUI.PropertyListener
           
private static class BasicToolBarUI.RightAction
           
protected  class BasicToolBarUI.ToolBarContListener
           
protected  class BasicToolBarUI.ToolBarFocusListener
           
private static class BasicToolBarUI.UpAction
           
 
Field Summary
private  HashMap borderTable
           
protected  String constraintBeforeFloating
           
protected  Color dockingBorderColor
           
protected  Color dockingColor
           
protected  MouseInputListener dockingListener
           
private  int dockingSensitivity
           
private  Container dockingSource
           
protected  KeyStroke downKey
          Deprecated. As of Java 2 platform v1.3.
protected  BasicToolBarUI.DragWindow dragWindow
           
private  boolean floating
           
protected  Color floatingBorderColor
           
protected  Color floatingColor
           
private  JFrame floatingFrame
           
private  RootPaneContainer floatingToolBar
           
private  int floatingX
           
private  int floatingY
           
private static String FOCUSED_COMP_INDEX
           
protected  int focusedCompIndex
           
private static String IS_ROLLOVER
           
protected  KeyStroke leftKey
          Deprecated. As of Java 2 platform v1.3.
private static Border nonRolloverBorder
           
private static Border nonRolloverToggleBorder
           
protected  java.beans.PropertyChangeListener propertyListener
           
protected  KeyStroke rightKey
          Deprecated. As of Java 2 platform v1.3.
private static Border rolloverBorder
           
private  boolean rolloverBorders
           
private  Hashtable rolloverTable
           
protected  JToolBar toolBar
           
protected  ContainerListener toolBarContListener
           
protected  FocusListener toolBarFocusListener
           
protected  KeyStroke upKey
          Deprecated. As of Java 2 platform v1.3.
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
BasicToolBarUI()
           
 
Method Summary
private  String calculateConstraint(Component c, Point p)
           
 boolean canDock(Component c, Point p)
           
(package private)  ActionMap createActionMap()
           
protected  MouseInputListener createDockingListener()
           
protected  BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)
           
protected  JFrame createFloatingFrame(JToolBar toolbar)
          No longer used, use BasicToolBarUI.createFloatingWindow(JToolBar)
protected  RootPaneContainer createFloatingWindow(JToolBar toolbar)
          Creates a window which contains the toolbar after it has been dragged out from its container
protected  WindowListener createFrameListener()
           
protected  Border createNonRolloverBorder()
          Creates the non rollover border for toolbar components.
private  Border createNonRolloverToggleBorder()
          Creates a non rollover border for Toggle buttons in the toolbar.
protected  java.beans.PropertyChangeListener createPropertyListener()
           
protected  Border createRolloverBorder()
          Creates a rollover border for toolbar components.
protected  ContainerListener createToolBarContListener()
           
protected  FocusListener createToolBarFocusListener()
           
static ComponentUI createUI(JComponent c)
          Returns an instance of the UI delegate for the specified component.
protected  void dragTo(Point position, Point origin)
           
protected  void floatAt(Point position, Point origin)
           
(package private)  ActionMap getActionMap()
           
 Color getDockingColor()
          Gets the color displayed when over a docking area
private  String getDockingConstraint(Component c, Point p)
           
 Color getFloatingColor()
          Gets the color displayed when over a floating area
(package private)  InputMap getInputMap(int condition)
           
 Dimension getMaximumSize(JComponent c)
          Returns the specified component's maximum size appropriate for the look and feel.
 Dimension getMinimumSize(JComponent c)
          Returns the specified component's minimum size appropriate for the look and feel.
 Dimension getPreferredSize(JComponent c)
          Returns the specified component's preferred size appropriate for the look and feel.
protected  void installComponents()
           
protected  void installDefaults()
           
protected  void installKeyboardActions()
           
protected  void installListeners()
           
protected  void installNonRolloverBorders(JComponent c)
          Installs non-rollover borders on all the child components of the JComponent.
protected  void installNormalBorders(JComponent c)
          Installs normal borders on all the child components of the JComponent.
protected  void installRolloverBorders(JComponent c)
          Installs rollover borders on all the child components of the JComponent.
 void installUI(JComponent c)
          Configures the specified component appropriate for the look and feel.
 boolean isFloating()
           
 boolean isRolloverBorders()
          Returns a flag to determine whether rollover button borders are enabled.
private  int mapConstraintToOrientation(String constraint)
           
protected  void navigateFocusedComp(int direction)
           
protected  void setBorderToNonRollover(Component c)
          Sets the border of the component to have a non-rollover border which was created by createNonRolloverBorder.
protected  void setBorderToNormal(Component c)
          Sets the border of the component to have a normal border.
protected  void setBorderToRollover(Component c)
          Sets the border of the component to have a rollover border which was created by createRolloverBorder.
 void setDockingColor(Color c)
          Sets the color displayed when over a docking area
 void setFloating(boolean b, Point p)
           
 void setFloatingColor(Color c)
          Sets the color displayed when over a floating area
 void setFloatingLocation(int x, int y)
           
 void setOrientation(int orientation)
           
 void setRolloverBorders(boolean rollover)
          Sets the flag for enabling rollover borders on the toolbar and it will also install the apropriate border depending on the state of the flag.
protected  void uninstallComponents()
           
protected  void uninstallDefaults()
           
protected  void uninstallKeyboardActions()
           
protected  void uninstallListeners()
           
 void uninstallUI(JComponent c)
          Reverses configuration which was done on the specified component during installUI.
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

toolBar

protected JToolBar toolBar

floating

private boolean floating

floatingX

private int floatingX

floatingY

private int floatingY

floatingFrame

private JFrame floatingFrame

floatingToolBar

private RootPaneContainer floatingToolBar

dragWindow

protected BasicToolBarUI.DragWindow dragWindow

dockingSource

private Container dockingSource

dockingSensitivity

private int dockingSensitivity

focusedCompIndex

protected int focusedCompIndex

dockingColor

protected Color dockingColor

floatingColor

protected Color floatingColor

dockingBorderColor

protected Color dockingBorderColor

floatingBorderColor

protected Color floatingBorderColor

dockingListener

protected MouseInputListener dockingListener

propertyListener

protected java.beans.PropertyChangeListener propertyListener

toolBarContListener

protected ContainerListener toolBarContListener

toolBarFocusListener

protected FocusListener toolBarFocusListener

constraintBeforeFloating

protected String constraintBeforeFloating

IS_ROLLOVER

private static String IS_ROLLOVER

rolloverBorder

private static Border rolloverBorder

nonRolloverBorder

private static Border nonRolloverBorder

nonRolloverToggleBorder

private static Border nonRolloverToggleBorder

rolloverBorders

private boolean rolloverBorders

borderTable

private HashMap borderTable

rolloverTable

private Hashtable rolloverTable

upKey

protected KeyStroke upKey
Deprecated. As of Java 2 platform v1.3.

As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.


downKey

protected KeyStroke downKey
Deprecated. As of Java 2 platform v1.3.

As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.


leftKey

protected KeyStroke leftKey
Deprecated. As of Java 2 platform v1.3.

As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.


rightKey

protected KeyStroke rightKey
Deprecated. As of Java 2 platform v1.3.

As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.


FOCUSED_COMP_INDEX

private static String FOCUSED_COMP_INDEX
Constructor Detail

BasicToolBarUI

public BasicToolBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Description copied from class: ComponentUI
Returns an instance of the UI delegate for the specified component. Each subclass must provide its own static createUI method that returns an instance of that UI delegate subclass. If the UI delegate subclass is stateless, it may return an instance that is shared by multiple components. If the UI delegate is stateful, then it should return a new instance per component. The default implementation of this method throws an error, as it should never be invoked.


installUI

public void installUI(JComponent c)
Description copied from class: ComponentUI
Configures the specified component appropriate for the look and feel. This method is invoked when the ComponentUI instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
  1. Install any default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
  2. Install a LayoutManager on the component if necessary.
  3. Create/add any required sub-components to the component.
  4. Create/install event listeners on the component.
  5. Create/install a PropertyChangeListener on the component in order to detect and respond to component property changes appropriately.
  6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
  7. Initialize any appropriate instance data.

Overrides:
installUI in class ComponentUI
Parameters:
c - the component where this UI delegate is being installed
See Also:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

uninstallUI

public void uninstallUI(JComponent c)
Description copied from class: ComponentUI
Reverses configuration which was done on the specified component during installUI. This method is invoked when this UIComponent instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in installUI, being careful to leave the JComponent instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
  1. Remove any UI-set borders from the component.
  2. Remove any UI-set layout managers on the component.
  3. Remove any UI-added sub-components from the component.
  4. Remove any UI-added event/property listeners from the component.
  5. Remove any UI-installed keyboard UI from the component.
  6. Nullify any allocated instance data objects to allow for GC.

Overrides:
uninstallUI in class ComponentUI
Parameters:
c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
See Also:
ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()

installDefaults

protected void installDefaults()

uninstallDefaults

protected void uninstallDefaults()

installComponents

protected void installComponents()

uninstallComponents

protected void uninstallComponents()

installListeners

protected void installListeners()

uninstallListeners

protected void uninstallListeners()

installKeyboardActions

protected void installKeyboardActions()

getInputMap

InputMap getInputMap(int condition)

getActionMap

ActionMap getActionMap()

createActionMap

ActionMap createActionMap()

uninstallKeyboardActions

protected void uninstallKeyboardActions()

navigateFocusedComp

protected void navigateFocusedComp(int direction)

createRolloverBorder

protected Border createRolloverBorder()
Creates a rollover border for toolbar components. The rollover border will be installed if rollover borders are enabled.

Override this method to provide an alternate rollover border.

Since:
1.4

createNonRolloverBorder

protected Border createNonRolloverBorder()
Creates the non rollover border for toolbar components. This border will be installed as the border for components added to the toolbar if rollover borders are not enabled.

Override this method to provide an alternate rollover border.

Since:
1.4

createNonRolloverToggleBorder

private Border createNonRolloverToggleBorder()
Creates a non rollover border for Toggle buttons in the toolbar.


createFloatingFrame

protected JFrame createFloatingFrame(JToolBar toolbar)
No longer used, use BasicToolBarUI.createFloatingWindow(JToolBar)

See Also:
createFloatingWindow(javax.swing.JToolBar)

createFloatingWindow

protected RootPaneContainer createFloatingWindow(JToolBar toolbar)
Creates a window which contains the toolbar after it has been dragged out from its container

Returns:
a RootPaneContainer object, containing the toolbar.

createDragWindow

protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)

isRolloverBorders

public boolean isRolloverBorders()
Returns a flag to determine whether rollover button borders are enabled.

Returns:
true if rollover borders are enabled; false otherwise
Since:
1.4
See Also:
setRolloverBorders(boolean)

setRolloverBorders

public void setRolloverBorders(boolean rollover)
Sets the flag for enabling rollover borders on the toolbar and it will also install the apropriate border depending on the state of the flag.

Parameters:
rollover - if true, rollover borders are installed. Otherwise non-rollover borders are installed
Since:
1.4
See Also:
isRolloverBorders()

installRolloverBorders

protected void installRolloverBorders(JComponent c)
Installs rollover borders on all the child components of the JComponent.

This is a convenience method to call setBorderToRollover for each child component.

Parameters:
c - container which holds the child components (usally a JToolBar)
Since:
1.4
See Also:
setBorderToRollover(java.awt.Component)

installNonRolloverBorders

protected void installNonRolloverBorders(JComponent c)
Installs non-rollover borders on all the child components of the JComponent. A non-rollover border is the border that is installed on the child component while it is in the toolbar.

This is a convenience method to call setBorderToNonRollover for each child component.

Parameters:
c - container which holds the child components (usally a JToolBar)
Since:
1.4
See Also:
setBorderToNonRollover(java.awt.Component)

installNormalBorders

protected void installNormalBorders(JComponent c)
Installs normal borders on all the child components of the JComponent. A normal border is the original border that was installed on the child component before it was added to the toolbar.

This is a convenience method to call setBorderNormal for each child component.

Parameters:
c - container which holds the child components (usally a JToolBar)
Since:
1.4
See Also:
setBorderToNonRollover(java.awt.Component)

setBorderToRollover

protected void setBorderToRollover(Component c)
Sets the border of the component to have a rollover border which was created by createRolloverBorder.

Parameters:
c - component which will have a rollover border installed
Since:
1.4
See Also:
createRolloverBorder()

setBorderToNonRollover

protected void setBorderToNonRollover(Component c)
Sets the border of the component to have a non-rollover border which was created by createNonRolloverBorder.

Parameters:
c - component which will have a non-rollover border installed
Since:
1.4
See Also:
createNonRolloverBorder()

setBorderToNormal

protected void setBorderToNormal(Component c)
Sets the border of the component to have a normal border. A normal border is the original border that was installed on the child component before it was added to the toolbar.

Parameters:
c - component which will have a normal border re-installed
Since:
1.4
See Also:
createNonRolloverBorder()

getMinimumSize

public Dimension getMinimumSize(JComponent c)
Description copied from class: ComponentUI
Returns the specified component's minimum size appropriate for the look and feel. If null is returned, the minimum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes getPreferredSize and returns that value.

Overrides:
getMinimumSize in class ComponentUI
Parameters:
c - the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
Returns:
a Dimension object or null
See Also:
JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Description copied from class: ComponentUI
Returns the specified component's preferred size appropriate for the look and feel. If null is returned, the preferred size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method returns null.

Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
See Also:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getMaximumSize

public Dimension getMaximumSize(JComponent c)
Description copied from class: ComponentUI
Returns the specified component's maximum size appropriate for the look and feel. If null is returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes getPreferredSize and returns that value.

Overrides:
getMaximumSize in class ComponentUI
Parameters:
c - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
Returns:
a Dimension object or null
See Also:
JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)

setFloatingLocation

public void setFloatingLocation(int x,
                                int y)

isFloating

public boolean isFloating()

setFloating

public void setFloating(boolean b,
                        Point p)

mapConstraintToOrientation

private int mapConstraintToOrientation(String constraint)

setOrientation

public void setOrientation(int orientation)

getDockingColor

public Color getDockingColor()
Gets the color displayed when over a docking area


setDockingColor

public void setDockingColor(Color c)
Sets the color displayed when over a docking area


getFloatingColor

public Color getFloatingColor()
Gets the color displayed when over a floating area


setFloatingColor

public void setFloatingColor(Color c)
Sets the color displayed when over a floating area


canDock

public boolean canDock(Component c,
                       Point p)

calculateConstraint

private String calculateConstraint(Component c,
                                   Point p)

getDockingConstraint

private String getDockingConstraint(Component c,
                                    Point p)

dragTo

protected void dragTo(Point position,
                      Point origin)

floatAt

protected void floatAt(Point position,
                       Point origin)

createToolBarContListener

protected ContainerListener createToolBarContListener()

createToolBarFocusListener

protected FocusListener createToolBarFocusListener()

createPropertyListener

protected java.beans.PropertyChangeListener createPropertyListener()

createDockingListener

protected MouseInputListener createDockingListener()

createFrameListener

protected WindowListener createFrameListener()