org.jdesktop.swingx
Class JXTaskPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.jdesktop.swingx.JXTaskPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, JXCollapsiblePane.CollapsiblePaneContainer

public class JXTaskPane
extends JPanel
implements JXCollapsiblePane.CollapsiblePaneContainer

JXTaskPane is a container for tasks and other arbitrary components.

Several JXTaskPanes are usually grouped together within a JXTaskPaneContainer. However it is not mandatory to use a JXTaskPaneContainer as the parent for JXTaskPane. The JXTaskPane can be added to any other container. See JXTaskPaneContainer to understand the benefits of using it as the parent container.

JXTaskPane provides control to expand and collapse the content area in order to show or hide the task list. It can have an icon, a title and can be marked as special. Marking a JXTaskPane as special (setSpecial(boolean) is only a hint for the pluggable UI which will usually paint it differently (by example by using another color for the border of the pane).

When the JXTaskPane is expanded or collapsed, it will be animated with a fade effect. The animated can be disabled on a per component basis through setAnimated(boolean). To disable the animation for all newly created JXTaskPane, use the UIManager property: UIManager.put("TaskPane.animate", Boolean.FALSE);.

Example:

 
 JXFrame frame = new JXFrame();
 
 // a container to put all JXTaskPane together
 JXTaskPaneContainer taskPaneContainer = new JXTaskPaneContainer();
 
 // create a first taskPane with common actions
 JXTaskPane actionPane = new JXTaskPane();
 actionPane.setTitle("Files and Folders");
 actionPane.setSpecial(true);
 
 // actions can be added, a hyperlink will be created
 Action renameSelectedFile = createRenameFileAction();
 actionPane.add(renameSelectedFile);
 actionPane.add(createDeleteFileAction());
 
 // add this taskPane to the taskPaneContainer
 taskPaneContainer.add(actionPane);
 
 // create another taskPane, it will show details of the selected file
 JXTaskPane details = new JXTaskPane();
 details.setTitle("Details");
  
 // add standard components to the details taskPane
 JLabel searchLabel = new JLabel("Search:");
 JTextField searchField = new JTextField("");
 details.add(searchLabel);
 details.add(searchField);
 
 taskPaneContainer.add(details);
 
 // put the action list on the left 
 frame.add(taskPaneContainer, BorderLayout.EAST);
 
 // and a file browser in the middle
 frame.add(fileBrowser, BorderLayout.CENTER);
 
 frame.pack();
 frame.setVisible(true);
 
 

See Also:
JXTaskPaneContainer, JXCollapsiblePane, Serialized Form
javabean.attribute
name="isContainer" value="Boolean.TRUE" rtexpr="true", name="containerDelegate" value="getContentPane"
javabean.class
name="JXTaskPane" shortDescription="JXTaskPane is a container for tasks and other arbitrary components." stopClass="java.awt.Component"
javabean.icons
mono16="JXTaskPane16-mono.gif" color16="JXTaskPane16.gif" mono32="JXTaskPane32-mono.gif" color32="JXTaskPane32.gif"

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String ANIMATED_CHANGED_KEY
          Used when generating PropertyChangeEvents for the "animated" property
static String ICON_CHANGED_KEY
          Used when generating PropertyChangeEvents for the "icon" property
static String SCROLL_ON_EXPAND_CHANGED_KEY
          Used when generating PropertyChangeEvents for the "scrollOnExpand" property
static String SPECIAL_CHANGED_KEY
          Used when generating PropertyChangeEvents for the "special" property
static String TITLE_CHANGED_KEY
          Used when generating PropertyChangeEvents for the "title" property
static String uiClassID
          JXTaskPane pluggable UI key swingx/TaskPaneUI
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JXTaskPane()
          Creates a new empty JXTaskPane.
 
Method Summary
 Component add(Action action)
          Adds an action to this JXTaskPane.
protected  void addImpl(Component comp, Object constraints, int index)
          Overridden to redirect call to the content pane.
 Container getContentPane()
          Returns the contentPane object for this JXTaskPane.
 int getDisplayedMnemonicIndex()
          Returns the character, as an index, that the look and feel should provide decoration for as representing the mnemonic character.
 Icon getIcon()
          Returns the icon currently displayed in the border of this pane.
 int getMnemonic()
          Returns the keyboard mnemonic for the task pane.
 String getTitle()
          Returns the title currently displayed in the border of this pane.
 String getUIClassID()
          Returns the name of the L&F class that renders this component.
 Container getValidatingContainer()
           
 boolean isAnimated()
          Returns true if this task pane is animated during expand/collapse transition.
 boolean isCollapsed()
          Returns the collapsed state of this task pane.
 boolean isScrollOnExpand()
          Should this group scroll to be visible after this group was expanded.
 boolean isSpecial()
          Returns true if this pane is "special".
protected  String paramString()
          Returns a string representation of this JPanel.
 void remove(Component comp)
          Overridden to redirect call to the content pane
 void remove(int index)
          Overridden to redirect call to the content pane.
 void removeAll()
          Overridden to redirect call to the content pane.
 void setAnimated(boolean animated)
          Enables or disables animation during expand/collapse transition.
 void setCollapsed(boolean collapsed)
          Expands or collapses this group.
 void setDisplayedMnemonicIndex(int index)
          Provides a hint to the look and feel as to which character in the text should be decorated to represent the mnemonic.
 void setIcon(Icon icon)
          Sets the icon to be displayed in the border of this pane.
 void setLayout(LayoutManager mgr)
          Overridden to redirect call to the content pane.
 void setMnemonic(int mnemonic)
          Sets the keyboard mnemonic on the task pane.
 void setScrollOnExpand(boolean scrollOnExpand)
          Should this group be scrolled to be visible on expand.
 void setSpecial(boolean special)
          Sets this pane to be "special" or not.
 void setTitle(String title)
          Sets the title to be displayed in the border of this pane.
 void setUI(TaskPaneUI ui)
          Sets the L&F object that renders this component.
 void updateUI()
          Notification from the UIManager that the L&F has changed.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uiClassID

public static final String uiClassID
JXTaskPane pluggable UI key swingx/TaskPaneUI

See Also:
Constant Field Values

SCROLL_ON_EXPAND_CHANGED_KEY

public static final String SCROLL_ON_EXPAND_CHANGED_KEY
Used when generating PropertyChangeEvents for the "scrollOnExpand" property

See Also:
Constant Field Values

TITLE_CHANGED_KEY

public static final String TITLE_CHANGED_KEY
Used when generating PropertyChangeEvents for the "title" property

See Also:
Constant Field Values

ICON_CHANGED_KEY

public static final String ICON_CHANGED_KEY
Used when generating PropertyChangeEvents for the "icon" property

See Also:
Constant Field Values

SPECIAL_CHANGED_KEY

public static final String SPECIAL_CHANGED_KEY
Used when generating PropertyChangeEvents for the "special" property

See Also:
Constant Field Values

ANIMATED_CHANGED_KEY

public static final String ANIMATED_CHANGED_KEY
Used when generating PropertyChangeEvents for the "animated" property

See Also:
Constant Field Values
Constructor Detail

JXTaskPane

public JXTaskPane()
Creates a new empty JXTaskPane.

Method Detail

getContentPane

public Container getContentPane()
Returns the contentPane object for this JXTaskPane.

Returns:
the contentPane property

updateUI

public void updateUI()
Notification from the UIManager that the L&F has changed. Replaces the current UI object with the latest version from the UIManager.

Overrides:
updateUI in class JPanel
See Also:
JComponent.updateUI()

setUI

public void setUI(TaskPaneUI ui)
Sets the L&F object that renders this component.

Parameters:
ui - the TaskPaneUI L&F object
See Also:
UIDefaults.getUI(javax.swing.JComponent)
This class has associated bean info for instrumenting visual editors named
bound: true hidden: true description: The UI object that implements the taskpane group's LookAndFeel.

getUIClassID

public String getUIClassID()
Returns the name of the L&F class that renders this component.

Overrides:
getUIClassID in class JPanel
Returns:
the string uiClassID
See Also:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

getTitle

public String getTitle()
Returns the title currently displayed in the border of this pane.

Returns:
the title currently displayed in the border of this pane

setTitle

public void setTitle(String title)
Sets the title to be displayed in the border of this pane.

Parameters:
title - the title to be displayed in the border of this pane
javabean.property
bound="true" preferred="true"

getIcon

public Icon getIcon()
Returns the icon currently displayed in the border of this pane.

Returns:
the icon currently displayed in the border of this pane

setIcon

public void setIcon(Icon icon)
Sets the icon to be displayed in the border of this pane. Some pluggable UIs may impose size constraints for the icon. A size of 16x16 pixels is the recommended icon size.

Parameters:
icon - the icon to be displayed in the border of this pane
javabean.property
bound="true" preferred="true"

isSpecial

public boolean isSpecial()
Returns true if this pane is "special".

Returns:
true if this pane is "special"
See Also:
setSpecial(boolean)

setSpecial

public void setSpecial(boolean special)
Sets this pane to be "special" or not. Marking a JXTaskPane as special is only a hint for the pluggable UI which will usually paint it differently (by example by using another color for the border of the pane).

Usually the first JXTaskPane in a JXTaskPaneContainer is marked as special because it contains the default set of actions which can be executed given the current context.

Parameters:
special - true if this pane is "special", false otherwise
javabean.property
bound="true" preferred="true"

setScrollOnExpand

public void setScrollOnExpand(boolean scrollOnExpand)
Should this group be scrolled to be visible on expand.

Parameters:
scrollOnExpand - true to scroll this group to be visible if this group is expanded.
See Also:
setCollapsed(boolean)
javabean.property
bound="true" preferred="true"

isScrollOnExpand

public boolean isScrollOnExpand()
Should this group scroll to be visible after this group was expanded.

Returns:
true if we should scroll false if nothing should be done.

setCollapsed

public void setCollapsed(boolean collapsed)
Expands or collapses this group.

Parameters:
collapsed - true to collapse the group, false to expand it
javabean.property
bound="true" preferred="false"

isCollapsed

public boolean isCollapsed()
Returns the collapsed state of this task pane.

Returns:
true if the task pane is collapsed; false otherwise

setAnimated

public void setAnimated(boolean animated)
Enables or disables animation during expand/collapse transition.

Parameters:
animated -
javabean.property
bound="true" preferred="true"

isAnimated

public boolean isAnimated()
Returns true if this task pane is animated during expand/collapse transition.

Returns:
true if this task pane is animated during expand/collapse transition.

getMnemonic

public int getMnemonic()
Returns the keyboard mnemonic for the task pane.

Returns:
the keyboard mnemonic for the task pane

setMnemonic

public void setMnemonic(int mnemonic)
Sets the keyboard mnemonic on the task pane. The mnemonic is the key which when combined with the look and feel's mouseless modifier (usually Alt) will toggle this task pane.

A mnemonic must correspond to a single key on the keyboard and should be specified using one of the VK_XXX keycodes defined in java.awt.event.KeyEvent. Mnemonics are case-insensitive, therefore a key event with the corresponding keycode would cause the button to be activated whether or not the Shift modifier was pressed.

If the character defined by the mnemonic is found within the task pane's text string, the first occurrence of it will be underlined to indicate the mnemonic to the user.

Parameters:
mnemonic - the key code which represents the mnemonic
See Also:
KeyEvent, setDisplayedMnemonicIndex(int)
This class has associated bean info for instrumenting visual editors named
bound: true attribute: visualUpdate true description: the keyboard character mnemonic

getDisplayedMnemonicIndex

public int getDisplayedMnemonicIndex()
Returns the character, as an index, that the look and feel should provide decoration for as representing the mnemonic character.

Returns:
index representing mnemonic character
Since:
1.4
See Also:
setDisplayedMnemonicIndex(int)

setDisplayedMnemonicIndex

public void setDisplayedMnemonicIndex(int index)
                               throws IllegalArgumentException
Provides a hint to the look and feel as to which character in the text should be decorated to represent the mnemonic. Not all look and feels may support this. A value of -1 indicates either there is no mnemonic, the mnemonic character is not contained in the string, or the developer does not wish the mnemonic to be displayed.

The value of this is updated as the properties relating to the mnemonic change (such as the mnemonic itself, the text...). You should only ever have to call this if you do not wish the default character to be underlined. For example, if the text was 'Save As', with a mnemonic of 'a', and you wanted the 'A' to be decorated, as 'Save As', you would have to invoke setDisplayedMnemonicIndex(5) after invoking setMnemonic(KeyEvent.VK_A).

Parameters:
index - Index into the String to underline
Throws:
IllegalArgumentException - will be thrown if index is >= length of the text, or < -1
Since:
1.4
See Also:
getDisplayedMnemonicIndex()
This class has associated bean info for instrumenting visual editors named
bound: true attribute: visualUpdate true description: the index into the String to draw the keyboard character mnemonic at

add

public Component add(Action action)
Adds an action to this JXTaskPane. Returns a component built from the action. The returned component has been added to the JXTaskPane.

Parameters:
action -
Returns:
a component built from the action

getValidatingContainer

public Container getValidatingContainer()
Specified by:
getValidatingContainer in interface JXCollapsiblePane.CollapsiblePaneContainer
See Also:
JXCollapsiblePane.CollapsiblePaneContainer

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)
Overridden to redirect call to the content pane.

Overrides:
addImpl in class Container
Parameters:
comp - the component to be added
constraints - an object expressing layout constraints for this component
index - the position in the container's list at which to insert the component, where -1 means append to the end
See Also:
Container.add(Component), Container.add(Component, int), Container.add(Component, java.lang.Object), LayoutManager, LayoutManager2

setLayout

public void setLayout(LayoutManager mgr)
Overridden to redirect call to the content pane.

Overrides:
setLayout in class Container
Parameters:
mgr - the specified layout manager
See Also:
Container.doLayout(), Container.getLayout()

remove

public void remove(Component comp)
Overridden to redirect call to the content pane

Overrides:
remove in class Container
Parameters:
comp - the component to be removed
See Also:
Container.add(java.awt.Component), Container.remove(int)

remove

public void remove(int index)
Overridden to redirect call to the content pane.

Overrides:
remove in class Container
Parameters:
index - the index of the component to be removed
See Also:
Container.add(java.awt.Component)

removeAll

public void removeAll()
Overridden to redirect call to the content pane.

Overrides:
removeAll in class Container
See Also:
Container.add(java.awt.Component), Container.remove(int)

paramString

protected String paramString()
Description copied from class: javax.swing.JPanel
Returns a string representation of this JPanel. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null.

Overrides:
paramString in class JPanel
Returns:
a string representation of this JPanel.
See Also:
JComponent.paramString()