fr.ifremer.coser.ui.widgets
Class AccordionPane

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 fr.ifremer.coser.ui.widgets.AccordionPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class AccordionPane
extends JPanel

The AccordionPane class implements a vertical accordion container, similar to those seen in many AJAX/DHTML frameworks. Multiple child panels are added, but only one of those will be visible at a time. The user can switch between visible panels by clicking on the title area of one of the inactive panels.

Author:
Craig Knudsen, craig@k5n.us
See Also:
Serialized Form

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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Color activePaneBackgroundColor
           
protected  List<AccordionPaneSubPanel> children
           
protected  Color paneBackgroundColor
           
protected  int previouslySelected
           
protected  int remainder
           
protected  int selected
           
protected  Timer timer
           
protected  int transitionStep
           
 
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
AccordionPane()
          Create a new AccordionPane object.
 
Method Summary
 void add(AccordionPaneSubPanel subPanel)
           
 Component getComponentAt(int index)
          Returns the component at index.
 int getPaneCount()
          Get the number of panes in the AccordionPane.
 Component getSelectedComponent()
          Returns the currently selected component for this AccordionPane.
 int getSelectedIndex()
          Get the index of the currently selected pane.
 String getTitleAt(int index)
          Get the text title at the specified location
 void paint(Graphics g)
           
 void setIconAt(int index, Icon icon)
          Set the icon for the specified location.
 void setSelected(int num)
          Set the currently active/selected pane.
 void setSelected(int num, boolean showAnimation)
          Set the currently active/selected pane.
 void setTitleAt(int index, String newTitle)
          Set the text title at the specified location
 void setTitleBackgroundColors(Color normalColor, Color activeColor)
          Set the background color for the active and inactive pane title areas.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, getBaseline, getBaselineResizeBehavior, 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, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, addImpl, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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

children

protected List<AccordionPaneSubPanel> children

selected

protected int selected

previouslySelected

protected int previouslySelected

paneBackgroundColor

protected Color paneBackgroundColor

activePaneBackgroundColor

protected Color activePaneBackgroundColor

timer

protected Timer timer

transitionStep

protected int transitionStep

remainder

protected int remainder
Constructor Detail

AccordionPane

public AccordionPane()
Create a new AccordionPane object. After creating the AccordionPane, you will need to call addPanel to add UI components to it.

Method Detail

setTitleBackgroundColors

public void setTitleBackgroundColors(Color normalColor,
                                     Color activeColor)
Set the background color for the active and inactive pane title areas.

Parameters:
normalColor - The color to use for the non-active panels
activeColor - The color to use for the currently selected panel

add

public void add(AccordionPaneSubPanel subPanel)

paint

public void paint(Graphics g)
Overrides:
paint in class JComponent

setSelected

public void setSelected(int num)
Set the currently active/selected pane.

Parameters:
num - The pane number to select (0 is first)

setSelected

public void setSelected(int num,
                        boolean showAnimation)
Set the currently active/selected pane.

Parameters:
num - The pane number to select (0 is first)
showAnimation - Show the animation transition from the previously selected pane to the newly selected pane.

getSelectedIndex

public int getSelectedIndex()
Get the index of the currently selected pane.

Returns:
the index of the currently selected pane

getPaneCount

public int getPaneCount()
Get the number of panes in the AccordionPane.

Returns:
the number of panes

setTitleAt

public void setTitleAt(int index,
                       String newTitle)
Set the text title at the specified location

Parameters:
index - the index number of the pane
newTitle - the new title for the specified pane.

getTitleAt

public String getTitleAt(int index)
Get the text title at the specified location

Parameters:
index - the index number of the pane
Returns:
the text title of the specified pane

setIconAt

public void setIconAt(int index,
                      Icon icon)
Set the icon for the specified location.

Parameters:
index -
icon -

getComponentAt

public Component getComponentAt(int index)
Returns the component at index.

Parameters:
index - the index of the item being queried
Returns:
component

getSelectedComponent

public Component getSelectedComponent()
Returns the currently selected component for this AccordionPane.

Returns:
the currently selected component


Copyright © 2010-2012 Ifremer. All Rights Reserved.