net.infonode.gui.draggable
Class DraggableComponentBox

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 net.infonode.gui.panel.BaseContainer
                      extended by net.infonode.gui.panel.SimplePanel
                          extended by net.infonode.gui.draggable.DraggableComponentBox
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class DraggableComponentBox
extends SimplePanel

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  boolean autoSelect
           
private  javax.swing.JComponent componentBox
           
private  boolean componentBoxEnabled
           
private  javax.swing.JComponent componentContainer
           
private  Direction componentDirection
           
private  boolean descendingSortOrder
           
private  boolean doReverseSort
           
private  java.util.ArrayList draggableComponentList
           
private  DraggableComponentListener draggableComponentListener
           
private  boolean ensureSelectedVisible
           
private  int iconSize
           
private  java.util.ArrayList layoutOrderList
           
private  java.util.ArrayList listeners
           
private  boolean mustSort
           
private  javax.swing.JComponent outerParentArea
           
private  ScrollButtonBox scrollButtonBox
           
private  boolean scrollEnabled
           
private  int scrollOffset
           
private  DraggableComponent selectedComponent
           
private  DraggableComponent topComponent
           
private  boolean useDefaultScrollButtons
           
 
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
DraggableComponentBox(int iconSize)
           
DraggableComponentBox(int iconSize, boolean useDefaultScrollButtons)
           
 
Method Summary
 void addDraggableComponent(DraggableComponent component)
           
 void addListener(DraggableComponentBoxListener listener)
           
 boolean containsDraggableComponent(DraggableComponent component)
           
private  void doSelectComponent(DraggableComponent component)
           
private  void doSort()
           
 void dragDraggableComponent(DraggableComponent component, java.awt.Point p)
           
private  void ensureSelectedVisible()
           
private  DraggableComponent findDraggableComponent(java.awt.Component c)
           
private  int findSelectableComponentIndex(int index)
           
private  void fireAddedEvent(DraggableComponent component)
           
private  void fireChangedEvent()
           
private  void fireChangedEvent(DraggableComponentEvent e)
           
private  void fireDraggedEvent(DraggableComponentEvent e)
           
private  void fireDroppedEvent(DraggableComponentEvent e)
           
private  void fireNotDroppedEvent(DraggableComponentEvent e)
           
private  void fireRemovedEvent(DraggableComponent component)
           
private  void fireSelectedEvent(DraggableComponent component, DraggableComponent oldDraggableComponent)
           
 java.awt.Component[] getBoxComponents()
           
 Direction getComponentDirection()
           
private  int getComponentIndexAtPoint(java.awt.Point p)
           
 int getComponentSpacing()
           
 boolean getDepthSortOrder()
           
private  DirectionLayout getDirectionLayout()
           
 DraggableComponent getDraggableComponentAt(int index)
           
 int getDraggableComponentCount()
           
 int getDraggableComponentIndex(DraggableComponent component)
           
 java.lang.Object[] getDraggableComponents()
           
 java.awt.Dimension getInnerSize()
           
 java.awt.Dimension getMaximumSize()
           
 javax.swing.JComponent getOuterParentArea()
           
 ScrollButtonBox getScrollButtonBox()
           
 int getScrollOffset()
           
 DraggableComponent getSelectedDraggableComponent()
           
private  void initialize()
           
 void insertDraggableComponent(DraggableComponent component, int index)
           
 void insertDraggableComponent(DraggableComponent component, java.awt.Point p)
           
 boolean isAutoSelect()
           
 boolean isEnsureSelectedVisible()
           
 boolean isScrollEnabled()
           
 void removeDraggableComponent(DraggableComponent component)
           
 void removeListener(DraggableComponentBoxListener listener)
           
 void scrollToVisible(DraggableComponent c)
           
 void selectDraggableComponent(DraggableComponent component)
           
 void setAutoSelect(boolean autoSelect)
           
 void setComponentDirection(Direction componentDirection)
           
 void setComponentSpacing(int componentSpacing)
           
 void setDepthSortOrder(boolean descending)
           
 void setEnsureSelectedVisible(boolean ensureSelectedVisible)
           
private  void setIgnoreAddRemoveNotify(boolean ignore)
           
 void setOuterParentArea(javax.swing.JComponent outerParentArea)
           
 void setScrollEnabled(boolean scrollEnabled)
           
 void setScrollOffset(int scrollOffset)
           
 void setTopComponent(DraggableComponent topComponent)
           
private  void sortComponentList(boolean reverseSort)
           
private  void updateScrollButtons()
           
 
Methods inherited from class net.infonode.gui.panel.SimplePanel
setComponent, setSouthComponent
 
Methods inherited from class net.infonode.gui.panel.BaseContainer
paintComponent, setBackground, setFont, setForeground, setOpaque, setUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, 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, 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, paint, paintBorder, paintChildren, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, 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

componentBoxEnabled

private boolean componentBoxEnabled

componentBox

private javax.swing.JComponent componentBox

componentContainer

private javax.swing.JComponent componentContainer

outerParentArea

private javax.swing.JComponent outerParentArea

componentDirection

private Direction componentDirection

scrollEnabled

private boolean scrollEnabled

ensureSelectedVisible

private boolean ensureSelectedVisible

autoSelect

private boolean autoSelect

descendingSortOrder

private boolean descendingSortOrder

doReverseSort

private boolean doReverseSort

mustSort

private boolean mustSort

scrollOffset

private int scrollOffset

iconSize

private int iconSize

selectedComponent

private DraggableComponent selectedComponent

topComponent

private DraggableComponent topComponent

listeners

private java.util.ArrayList listeners

draggableComponentList

private java.util.ArrayList draggableComponentList

layoutOrderList

private java.util.ArrayList layoutOrderList

scrollButtonBox

private ScrollButtonBox scrollButtonBox

useDefaultScrollButtons

private boolean useDefaultScrollButtons

draggableComponentListener

private DraggableComponentListener draggableComponentListener
Constructor Detail

DraggableComponentBox

public DraggableComponentBox(int iconSize)

DraggableComponentBox

public DraggableComponentBox(int iconSize,
                             boolean useDefaultScrollButtons)
Method Detail

addListener

public void addListener(DraggableComponentBoxListener listener)

removeListener

public void removeListener(DraggableComponentBoxListener listener)

addDraggableComponent

public void addDraggableComponent(DraggableComponent component)

insertDraggableComponent

public void insertDraggableComponent(DraggableComponent component,
                                     int index)

updateScrollButtons

private void updateScrollButtons()

insertDraggableComponent

public void insertDraggableComponent(DraggableComponent component,
                                     java.awt.Point p)

selectDraggableComponent

public void selectDraggableComponent(DraggableComponent component)

removeDraggableComponent

public void removeDraggableComponent(DraggableComponent component)

containsDraggableComponent

public boolean containsDraggableComponent(DraggableComponent component)

getSelectedDraggableComponent

public DraggableComponent getSelectedDraggableComponent()

getDraggableComponentCount

public int getDraggableComponentCount()

getDraggableComponentAt

public DraggableComponent getDraggableComponentAt(int index)

getDraggableComponentIndex

public int getDraggableComponentIndex(DraggableComponent component)

getDraggableComponents

public java.lang.Object[] getDraggableComponents()

getBoxComponents

public java.awt.Component[] getBoxComponents()

getDepthSortOrder

public boolean getDepthSortOrder()

setDepthSortOrder

public void setDepthSortOrder(boolean descending)

isScrollEnabled

public boolean isScrollEnabled()

setScrollEnabled

public void setScrollEnabled(boolean scrollEnabled)

getScrollOffset

public int getScrollOffset()

setScrollOffset

public void setScrollOffset(int scrollOffset)

getComponentSpacing

public int getComponentSpacing()

setComponentSpacing

public void setComponentSpacing(int componentSpacing)

isEnsureSelectedVisible

public boolean isEnsureSelectedVisible()

setEnsureSelectedVisible

public void setEnsureSelectedVisible(boolean ensureSelectedVisible)

isAutoSelect

public boolean isAutoSelect()

setAutoSelect

public void setAutoSelect(boolean autoSelect)

getComponentDirection

public Direction getComponentDirection()

setComponentDirection

public void setComponentDirection(Direction componentDirection)

setTopComponent

public void setTopComponent(DraggableComponent topComponent)

getScrollButtonBox

public ScrollButtonBox getScrollButtonBox()

getOuterParentArea

public javax.swing.JComponent getOuterParentArea()

setOuterParentArea

public void setOuterParentArea(javax.swing.JComponent outerParentArea)

dragDraggableComponent

public void dragDraggableComponent(DraggableComponent component,
                                   java.awt.Point p)

getMaximumSize

public java.awt.Dimension getMaximumSize()
Overrides:
getMaximumSize in class javax.swing.JComponent

getInnerSize

public java.awt.Dimension getInnerSize()

scrollToVisible

public void scrollToVisible(DraggableComponent c)

setIgnoreAddRemoveNotify

private void setIgnoreAddRemoveNotify(boolean ignore)

doSort

private void doSort()

sortComponentList

private void sortComponentList(boolean reverseSort)

getComponentIndexAtPoint

private int getComponentIndexAtPoint(java.awt.Point p)

doSelectComponent

private void doSelectComponent(DraggableComponent component)

findSelectableComponentIndex

private int findSelectableComponentIndex(int index)

findDraggableComponent

private DraggableComponent findDraggableComponent(java.awt.Component c)

getDirectionLayout

private DirectionLayout getDirectionLayout()

initialize

private void initialize()

ensureSelectedVisible

private void ensureSelectedVisible()

fireDraggedEvent

private void fireDraggedEvent(DraggableComponentEvent e)

fireDroppedEvent

private void fireDroppedEvent(DraggableComponentEvent e)

fireNotDroppedEvent

private void fireNotDroppedEvent(DraggableComponentEvent e)

fireSelectedEvent

private void fireSelectedEvent(DraggableComponent component,
                               DraggableComponent oldDraggableComponent)

fireAddedEvent

private void fireAddedEvent(DraggableComponent component)

fireRemovedEvent

private void fireRemovedEvent(DraggableComponent component)

fireChangedEvent

private void fireChangedEvent(DraggableComponentEvent e)

fireChangedEvent

private void fireChangedEvent()