Class DnDList<T>
- Object
-
- Component
-
- Container
-
- JComponent
-
- JList<T>
-
- DnDList<T>
-
- All Implemented Interfaces:
DragGestureListener
,DragSourceListener
,DropTargetListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,Scrollable
public class DnDList<T> extends JList<T> implements DragGestureListener, DragSourceListener, DropTargetListener
A sub-class of JList that supports drag and drop to reorder items within a single list and to copy or move items between lists. It is used by the MapLayerTable widget but has been written in a general fashion so that it may be used for other pusposes.- Since:
- 2.6
- Author:
- Michael Bedward
- See Also:
DnDListModel
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class JList
JList.AccessibleJList, JList.DropLocation
-
Nested classes/interfaces inherited from class JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
-
Fields inherited from class JList
HORIZONTAL_WRAP, VERTICAL, VERTICAL_WRAP
-
Fields inherited from class JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description DnDList()
Default constructor.DnDList(DnDListModel<T> model)
Constructor allowing the list model to be specified
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dragDropEnd(DragSourceDropEvent dsde)
Description copied from interface:
This method is invoked to signify that the Drag and Drop operation is complete.void
dragEnter(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredvoid
dragEnter(DropTargetDragEvent dtde)
Records the index of the list item (if any) pointed to by the mouse cursorvoid
dragExit(DragSourceEvent dse)
DragSourceListener method - presently ignoredvoid
dragExit(DropTargetEvent dte)
Description copied from interface:
Called while a drag operation is ongoing, when the mouse pointer has exited the operable part of the drop site for the DropTarget registered with this listener.void
dragGestureRecognized(DragGestureEvent dge)
Called by the system when a drag gesture startsvoid
dragOver(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredvoid
dragOver(DropTargetDragEvent dtde)
Records the index of the list item (if any) pointed to by the mouse cursorvoid
drop(DropTargetDropEvent dtde)
Handles the moving (for drag and drop actions within this list) or transfer (for actions between lists) of list items.void
dropActionChanged(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredvoid
dropActionChanged(DropTargetDragEvent dtde)
DropTargetListener method - presently ignoredDnDListModel<T>
getModel()
-
Methods inherited from class JList
addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getCellRenderer, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLastVisibleIndex, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getNextMatch, getPreferredScrollableViewportSize, 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, setModel, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount, updateUI
-
Methods inherited from class 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 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 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
-
-
-
-
Constructor Detail
-
DnDList
public DnDList()
Default constructor. An DnDListModel object will be created for the list.
-
DnDList
public DnDList(DnDListModel<T> model)
Constructor allowing the list model to be specified- Parameters:
model
- an instance of DnDListModel- Throws:
IllegalArgumentException
- if model is null
-
-
Method Detail
-
getModel
public DnDListModel<T> getModel()
-
dragGestureRecognized
public void dragGestureRecognized(DragGestureEvent dge)
Called by the system when a drag gesture starts- Specified by:
dragGestureRecognized
in interfaceDragGestureListener
-
dragEnter
public void dragEnter(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredDescription copied from interface:
Called as the cursor's hotspot enters a platform-dependent drop site. This method is invoked when all the following conditions are true:- The cursor's hotspot enters the operable part of a platform- dependent drop site.
- The drop site is active.
- The drop site accepts the drag.
- Specified by:
dragEnter
in interfaceDragSourceListener
-
dragOver
public void dragOver(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredDescription copied from interface:
Called as the cursor's hotspot moves over a platform-dependent drop site. This method is invoked when all the following conditions are true:- The cursor's hotspot has moved, but still intersects the operable part of the drop site associated with the previous dragEnter() invocation.
- The drop site is still active.
- The drop site accepts the drag.
- Specified by:
dragOver
in interfaceDragSourceListener
-
dropActionChanged
public void dropActionChanged(DragSourceDragEvent dsde)
DragSourceListener method - presently ignoredDescription copied from interface:
Called when the user has modified the drop gesture. This method is invoked when the state of the input device(s) that the user is interacting with changes. Such devices are typically the mouse buttons or keyboard modifiers that the user is interacting with.- Specified by:
dropActionChanged
in interfaceDragSourceListener
-
dragExit
public void dragExit(DragSourceEvent dse)
DragSourceListener method - presently ignoredDescription copied from interface:
Called as the cursor's hotspot exits a platform-dependent drop site. This method is invoked when any of the following conditions are true:- The cursor's hotspot no longer intersects the operable part of the drop site associated with the previous dragEnter() invocation.
- The drop site associated with the previous dragEnter() invocation is no longer active.
- The drop site associated with the previous dragEnter() invocation has rejected the drag.
- Specified by:
dragExit
in interfaceDragSourceListener
-
dragDropEnd
public void dragDropEnd(DragSourceDropEvent dsde)
Description copied from interface:
This method is invoked to signify that the Drag and Drop operation is complete. The getDropSuccess() method of the DragSourceDropEvent can be used to determine the termination state. The getDropAction() method returns the operation that the drop site selected to apply to the Drop operation. Once this method is complete, the current DragSourceContext and associated resources become invalid.- Specified by:
dragDropEnd
in interfaceDragSourceListener
-
dragEnter
public void dragEnter(DropTargetDragEvent dtde)
Records the index of the list item (if any) pointed to by the mouse cursorDescription copied from interface:
Called while a drag operation is ongoing, when the mouse pointer enters the operable part of the drop site for the DropTarget registered with this listener.- Specified by:
dragEnter
in interfaceDropTargetListener
-
dragOver
public void dragOver(DropTargetDragEvent dtde)
Records the index of the list item (if any) pointed to by the mouse cursorDescription copied from interface:
Called when a drag operation is ongoing, while the mouse pointer is still over the operable part of the drop site for the DropTarget registered with this listener.- Specified by:
dragOver
in interfaceDropTargetListener
-
dropActionChanged
public void dropActionChanged(DropTargetDragEvent dtde)
DropTargetListener method - presently ignoredDescription copied from interface:
Called if the user has modified the current drop gesture.- Specified by:
dropActionChanged
in interfaceDropTargetListener
-
dragExit
public void dragExit(DropTargetEvent dte)
Description copied from interface:
Called while a drag operation is ongoing, when the mouse pointer has exited the operable part of the drop site for the DropTarget registered with this listener.- Specified by:
dragExit
in interfaceDropTargetListener
-
drop
public void drop(DropTargetDropEvent dtde)
Handles the moving (for drag and drop actions within this list) or transfer (for actions between lists) of list items. Description copied from interface:
Called when the drag operation has terminated with a drop on the operable part of the drop site for the DropTarget registered with this listener.This method is responsible for undertaking the transfer of the data associated with the gesture. The DropTargetDropEvent provides a means to obtain a Transferable object that represents the data object(s) to be transfered.
From this method, the DropTargetListener shall accept or reject the drop via the acceptDrop(int dropAction) or rejectDrop() methods of the DropTargetDropEvent parameter.
Subsequent to acceptDrop(), but not before, DropTargetDropEvent's getTransferable() method may be invoked, and data transfer may be performed via the returned Transferable's getTransferData() method.
At the completion of a drop, an implementation of this method is required to signal the success/failure of the drop by passing an appropriate boolean to the DropTargetDropEvent's dropComplete(boolean success) method.
Note: The data transfer should be completed before the call to the DropTargetDropEvent's dropComplete(boolean success) method. After that, a call to the getTransferData() method of the Transferable returned by DropTargetDropEvent.getTransferable() is guaranteed to succeed only if the data transfer is local; that is, only if DropTargetDropEvent.isLocalTransfer() returns true. Otherwise, the behavior of the call is implementation-dependent.
- Specified by:
drop
in interfaceDropTargetListener
-
-