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

      All Methods Instance Methods Concrete Methods 
      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​(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 Detail

      • listItemsFlavor

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

      • 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,
                              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 Detail

      • 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​(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: