org.jdesktop.swingx.plaf.basic
Class BasicTaskPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.PanelUI
          extended by org.jdesktop.swingx.plaf.TaskPaneUI
              extended by org.jdesktop.swingx.plaf.basic.BasicTaskPaneUI
Direct Known Subclasses:
GlossyTaskPaneUI, MetalTaskPaneUI, WindowsClassicTaskPaneUI, WindowsTaskPaneUI

public class BasicTaskPaneUI
extends TaskPaneUI

Base implementation of the JXTaskPane UI.


Nested Class Summary
protected static class BasicTaskPaneUI.ChevronIcon
          Toggle icon.
protected static class BasicTaskPaneUI.ContentPaneBorder
          The border around the content pane
protected  class BasicTaskPaneUI.PaneBorder
          The border of the taskpane group paints the "text", the "icon", the "expanded" status and the "special" type.
 
Field Summary
protected  JXTaskPane group
           
protected  MouseInputListener mouseListener
           
protected  boolean mouseOver
           
protected  PropertyChangeListener propertyListener
           
protected  int roundHeight
           
protected  int titleHeight
           
 
Constructor Summary
BasicTaskPaneUI()
           
 
Method Summary
protected  void configure(JXHyperlink link)
          Configures internally used hyperlink on new action creation and on every call to updateUI().
 Component createAction(Action action)
          Called by the component when an action is added to the component through the JXTaskPane.add(Action) method.
protected  Border createContentPaneBorder()
          Creates content pane border.
protected  MouseInputListener createMouseInputListener()
          Creates new toggle listener.
protected  Border createPaneBorder()
          Creates new border for task pane.
protected  PropertyChangeListener createPropertyListener()
          Creates property change listener for task pane.
static ComponentUI createUI(JComponent c)
           
protected  void ensureVisible()
          Ensures expanded group is visible.
 Dimension getPreferredSize(JComponent c)
          Returns the specified component's preferred size appropriate for the look and feel.
protected  int getRoundHeight()
          Gets size of arc used to round corners.
protected  int getTitleHeight(Component c)
          Gets current title height.
protected  void installDefaults()
          Installs default properties.
protected  void installKeyboardActions()
          Installs keyboard actions to allow task pane to react on hot keys.
protected  void installListeners()
          Installs listeners for UI delegate.
 void installUI(JComponent c)
          Configures the specified component appropriate for the look and feel.
protected  boolean isInBorder(MouseEvent event)
          Evaluates whenever given mouse even have occurred within borders of task pane.
protected  void uninstallListeners()
          Uninstalls previously installed listeners to free component for garbage collection.
 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, getMaximumSize, getMinimumSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

titleHeight

protected int titleHeight

roundHeight

protected int roundHeight

group

protected JXTaskPane group

mouseOver

protected boolean mouseOver

mouseListener

protected MouseInputListener mouseListener

propertyListener

protected PropertyChangeListener propertyListener
Constructor Detail

BasicTaskPaneUI

public BasicTaskPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)

installUI

public void installUI(JComponent c)
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()

installDefaults

protected void installDefaults()
Installs default properties. Following properties are installed:


installListeners

protected void installListeners()
Installs listeners for UI delegate.


installKeyboardActions

protected void installKeyboardActions()
Installs keyboard actions to allow task pane to react on hot keys.


uninstallUI

public void uninstallUI(JComponent c)
Description copied from class: javax.swing.plaf.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()

uninstallListeners

protected void uninstallListeners()
Uninstalls previously installed listeners to free component for garbage collection.


createMouseInputListener

protected MouseInputListener createMouseInputListener()
Creates new toggle listener.

Returns:
MouseInputListener reacting on toggle events of task pane.

createPropertyListener

protected PropertyChangeListener createPropertyListener()
Creates property change listener for task pane.

Returns:
Property change listener reacting on changes to the task pane.

isInBorder

protected boolean isInBorder(MouseEvent event)
Evaluates whenever given mouse even have occurred within borders of task pane.

Parameters:
event - Evaluated event.
Returns:
True if event occurred within task pane area, false otherwise.

getTitleHeight

protected int getTitleHeight(Component c)
Gets current title height. Default value is 25 if not specified otherwise. Method checks provided component for user set font (!instanceof FontUIResource), if font is set, height will be calculated from font metrics instead of using internal preset height.

Returns:
Current title height.

createPaneBorder

protected Border createPaneBorder()
Creates new border for task pane.

Returns:
Fresh border on every call.

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Description copied from class: javax.swing.plaf.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)

createContentPaneBorder

protected Border createContentPaneBorder()
Creates content pane border.

Returns:
Fresh content pane border initialized with current value of TaskPane.borderColor on every call.

createAction

public Component createAction(Action action)
Description copied from class: TaskPaneUI
Called by the component when an action is added to the component through the JXTaskPane.add(Action) method.

Overrides:
createAction in class TaskPaneUI
Returns:
a component built from the action.

configure

protected void configure(JXHyperlink link)
Configures internally used hyperlink on new action creation and on every call to updateUI().

Parameters:
link - Configured hyperlink.

ensureVisible

protected void ensureVisible()
Ensures expanded group is visible. Issues delayed request for scrolling to visible.


getRoundHeight

protected int getRoundHeight()
Gets size of arc used to round corners.

Returns:
size of arc used to round corners of the panel.