Class JDraggableList<E>

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList<E>
net.jalbum.component.JDraggableList<E>
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable, PersistentList
Direct Known Subclasses:
JStaticList

public class JDraggableList<E>
extends javax.swing.JList<E>
implements PersistentList
JList that responds to drag and drop so items can be rearranged Also supports the persisting of list data when used as skin variable, the resulting data is a tab separated string of list items
Since:
14
See Also:
Serialized Form
  • Nested Class Summary

    Nested classes/interfaces inherited from class javax.swing.JList

    javax.swing.JList.AccessibleJList, javax.swing.JList.DropLocation

    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

    Fields
    Modifier and Type Field Description
    static java.awt.datatransfer.DataFlavor listItemsFlavor  

    Fields inherited from class javax.swing.JList

    HORIZONTAL_WRAP, VERTICAL, VERTICAL_WRAP

    Fields inherited from class javax.swing.JComponent

    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

    accessibleContext, 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

    Constructors
    Constructor Description
    JDraggableList()  
    JDraggableList​(java.lang.Object[] listData)  
    JDraggableList​(java.lang.Object[] listData, boolean allowDuplicates)  
    JDraggableList​(java.lang.Object[] listData, E... primaryItemKeys)  
    JDraggableList​(java.lang.Object[] listData, java.lang.String[] primaryItemKeys)
    Create a pair or JDraggableLists, populating this primary one with the items matching the keys listed as the second parameter and the remainder in the secondary list
    JDraggableList​(java.lang.Object[] listData, java.lang.String[] primaryItemKeys, boolean allowDuplicates)
    Create a pair or JDraggableLists, populating this primary one with the items matching the keys listed as the second parameter
    JDraggableList​(javax.swing.DefaultListModel<E> dataModel)  
  • Method Summary

    Modifier and Type Method Description
    boolean contains​(E item)  
    java.util.List<java.lang.String> getContent()  
    java.awt.Dimension getPreferredScrollableViewportSize()
    This method is overridden so JDraggableLists that work in pair always deliver the largest with and height of the two
    JDraggableList getSecondaryList()
    Get the secondary list, create one if needed
    JDraggableList horizontal()
    Use horizontal layout instead of vertical
    void includeItem​(java.lang.Object item, boolean include)  
    boolean isSmall()  
    boolean isUseBorders()  
    void setContent​(E... data)  
    void setContent​(java.util.List<java.lang.String> data)  
    void setModel​(javax.swing.ListModel<E> model)  
    void setSecondaryList​(JDraggableList secondaryList)
    Assign a secondary list to this list, making this list the primary list When deleting items from the primary list they are moved to the secondary list
    JDraggableList setUseBorders​(boolean useBorders)  
    JDraggableList small()
    Use smaller font size for items

    Methods inherited from class javax.swing.JList

    addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getCellRenderer, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLastVisibleIndex, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getModel, getNextMatch, getPrototypeCellValue, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedIndex, getSelectedIndices, getSelectedValue, getSelectedValues, getSelectedValuesList, getSelectionBackground, getSelectionForeground, getSelectionMode, getSelectionModel, getToolTipText, getUI, getUIClassID, getValueIsAdjusting, getVisibleRowCount, indexToLocation, isSelectedIndex, isSelectionEmpty, locationToIndex, paramString, removeListSelectionListener, removeSelectionInterval, setCellRenderer, setDragEnabled, setDropMode, setFixedCellHeight, setFixedCellWidth, setLayoutOrientation, setListData, setListData, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount, 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, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • listItemsFlavor

      public static final java.awt.datatransfer.DataFlavor listItemsFlavor
  • Constructor Details

    • JDraggableList

      public JDraggableList​(javax.swing.DefaultListModel<E> dataModel)
    • JDraggableList

      public JDraggableList​(java.lang.Object[] listData)
    • JDraggableList

      public JDraggableList​(java.lang.Object[] listData, java.lang.String[] primaryItemKeys)
      Create a pair or JDraggableLists, populating this primary one with the items matching the keys listed as the second parameter and the remainder in the secondary list
      Parameters:
      listData - Full set of items to use. Use for instance Strings or Item objects
      primaryItemKeys - Specifies keys for items to be placed in the primary list. The rest goes in the secondary
      Since:
      14.1.2
      See Also:
      getSecondaryList()
    • JDraggableList

      public JDraggableList​(java.lang.Object[] listData, E... primaryItemKeys)
    • JDraggableList

      public JDraggableList​(java.lang.Object[] listData, boolean allowDuplicates)
    • JDraggableList

      public JDraggableList​(java.lang.Object[] listData, java.lang.String[] primaryItemKeys, boolean allowDuplicates)
      Create a pair or JDraggableLists, populating this primary one with the items matching the keys listed as the second parameter
      Parameters:
      listData - Full set of items to use. Use for instance Strings or Item objects
      primaryItemKeys - Specifies keys for items to be placed in the primary list.
      allowDuplicates - If true, put all items in a static secondary list, which can be dragged from multiple times
      Since:
      14.1.11
      See Also:
      getSecondaryList()
    • JDraggableList

      public JDraggableList()
  • Method Details

    • contains

      public boolean contains​(E item)
      Parameters:
      item -
      Returns:
      Since:
      14.1.12 Check whether this list contains given item
    • setModel

      public void setModel​(javax.swing.ListModel<E> model)
      Overrides:
      setModel in class javax.swing.JList<E>
    • getSecondaryList

      public JDraggableList getSecondaryList()
      Get the secondary list, create one if needed
      Returns:
      secondary list
      Since:
      14.1.2
    • setSecondaryList

      public void setSecondaryList​(JDraggableList secondaryList)
      Assign a secondary list to this list, making this list the primary list When deleting items from the primary list they are moved to the secondary list
      Parameters:
      secondaryList - - List to move deleted items to
      Since:
      14.2
    • includeItem

      public void includeItem​(java.lang.Object item, boolean include)
    • getContent

      public java.util.List<java.lang.String> getContent()
      Specified by:
      getContent in interface PersistentList
    • setContent

      public void setContent​(E... data)
      Parameters:
      data -
      Since:
      20
    • setContent

      public void setContent​(java.util.List<java.lang.String> data)
      Specified by:
      setContent in interface PersistentList
    • horizontal

      public JDraggableList horizontal()
      Use horizontal layout instead of vertical
      Returns:
    • small

      public JDraggableList small()
      Use smaller font size for items
      Returns:
    • isSmall

      public boolean isSmall()
    • isUseBorders

      public boolean isUseBorders()
    • setUseBorders

      public JDraggableList setUseBorders​(boolean useBorders)
    • getPreferredScrollableViewportSize

      public java.awt.Dimension getPreferredScrollableViewportSize()
      This method is overridden so JDraggableLists that work in pair always deliver the largest with and height of the two
      Specified by:
      getPreferredScrollableViewportSize in interface javax.swing.Scrollable
      Overrides:
      getPreferredScrollableViewportSize in class javax.swing.JList<E>
      Returns: