org.salespointframework.desktop
Class JListView

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 org.salespointframework.desktop.JListView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, DnDComponent
Direct Known Subclasses:
JCatalogListView, JCountingStockListView, JDataBasketListView, JStoringStockListView, JUserListView

public class JListView
extends javax.swing.JPanel
implements DnDComponent

A JList with slider to change cell size and JModelFilter for live search. The JListView supports four different orientations. as ListCellRenderer a derived class of AbstractListViewRenderer should be used to provide necessary performance. Categorys are also supported by this Component as well as Drag'n Drop

Since:
4.0
Author:
Thomas Kissinger
See Also:
Serialized Form

Nested Class Summary
 class JListView.JListViewList
          JList with additional methods an hover support
static class JListView.ListViewOrientation
          controls item arrangement in list JListView.ListViewOrientation.HORIZONTAL : horizontal wrapped and left aligned JListView.ListViewOrientation.HORIZONTAL_CENTERED : horizontal wrapped and centered JListView.ListViewOrientation.VERTICAL : vertical wrapped and left aligned JListView.ListViewOrientation.VERTICAL_CENTERED : vertical wrapped and sentered
 
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
 
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
JListView()
          default constructor
JListView(javax.swing.ListModel model)
          constructor
JListView(javax.swing.ListModel model, JListView.ListViewOrientation orientation, javax.swing.ListCellRenderer renderer)
          constructor
 
Method Summary
 boolean acceptDropPartner(java.awt.Component c)
          true, if the component accepts this component a drop target.
 boolean addSelectionObserver(int[] observer)
          add a selection observer
 boolean allowDrag(java.awt.Point point)
          if true, drag is allowed at this point
 boolean allowDrop(java.lang.Object item, int count)
          if true, drop is allowed for this component
 void finishDragOperation(java.lang.Object item, int count, java.awt.Component receiver)
          finish the drag'n drop operation
 java.awt.Component getBoundingComponent()
          get component which defines the range of this component. e.g. a JScrollPane
 float getCellRatio()
          get cellRatio
 DnDMotionComponent getDnDMotionComponent(java.lang.Object item, int count)
          get the component which is displayed during drag'n drop operation on FormSheet.getDragLayer()
 java.lang.Object getDragItem(java.awt.Point point)
          get the item at this point, what will be transfered.
 int getDragItemIndex(java.awt.Point point)
          index of item at this point.
 java.awt.Component getDragSourceComponent()
          Component which contains the drag items
 float getInitialCellWidth()
          get initialCellWidth
 javax.swing.JList getList()
          get list
 float getMaximumCellWidth()
          get maximumCellWidth
 float getMinimumCellWidth()
          get minimumCellWidth
 javax.swing.ListModel getModel()
          get model
protected  JModelFilter getModelFilter()
          get modelFilter
 boolean getMoreDragItems(java.awt.Point point, java.lang.Object item, int count, int additionalCount)
          user requests more items.
 javax.swing.JScrollPane getScrollpane()
          get scrollpane
 javax.swing.JTextField getSearchField()
          get search field from modelFilter
 javax.swing.JLabel getSearchResultLabel()
          get result count label from modelFilter
 javax.swing.JSlider getSlider()
          get slider
 void paintHightlightEffect(java.awt.Graphics2D g, java.awt.Rectangle bounds, java.awt.Component cmp)
          paint drag'n drop highlight effect. drawing takes place on some layer above the standard layer, so the effect can be drawn beyond components bounds
 void removeSelectionObserver(int[] observer)
          remove selection observer
 void setAllowDrag(boolean value)
           
 void setAllowDrop(boolean value)
           
 void setCellConstraints(float minimum, float maximum, float initial, float cellRatio)
          set sell constrains
 void setCellRatio(float cellRatio)
          set cellRatio
 void setDnDPartner(java.awt.Component c)
          DND methods
 void setInitialCellWidth(float initialCellWidth)
          set initialCellWidth
 void setMaximumCellWidth(float maximumCellWidth)
          set maximumCellWidth
 void setMinimumCellWidth(float minimumCellWidth)
          set minimumCellWidth
 void setModel(javax.swing.ListModel model)
          set model
 void setMoveAction(MoveAction ma)
           
 void setSeperatorThickness(int thickness)
          set seperatorThickness
 void setShowSearch(boolean value)
          set showSearch
 void setShowSlider(boolean value)
          set showSlider
 void startDragOperation(java.awt.Point p)
          start a drag operation at this point.
 void takeDragItem(java.lang.Object item, int count)
          component should take the transferred item with given count
protected  void updateHeader()
          set header visibility based on showSearch and showSlider
protected  void updateSliderLabels()
          set labels of slider
 
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, 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, 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
 

Constructor Detail

JListView

public JListView()
default constructor


JListView

public JListView(javax.swing.ListModel model)
constructor

Parameters:
model - model

JListView

public JListView(javax.swing.ListModel model,
                 JListView.ListViewOrientation orientation,
                 javax.swing.ListCellRenderer renderer)
constructor

Parameters:
model - model
orientation - orientation
renderer - renderer
Method Detail

setShowSearch

public void setShowSearch(boolean value)
set showSearch

Parameters:
value -

setShowSlider

public void setShowSlider(boolean value)
set showSlider

Parameters:
value -

setModel

public void setModel(javax.swing.ListModel model)
set model

Parameters:
model -

getModel

public javax.swing.ListModel getModel()
get model

Returns:

getList

public javax.swing.JList getList()
get list

Returns:

getScrollpane

public javax.swing.JScrollPane getScrollpane()
get scrollpane

Returns:

getSearchField

public javax.swing.JTextField getSearchField()
get search field from modelFilter

Returns:

getSlider

public javax.swing.JSlider getSlider()
get slider

Returns:

getSearchResultLabel

public javax.swing.JLabel getSearchResultLabel()
get result count label from modelFilter


addSelectionObserver

public boolean addSelectionObserver(int[] observer)
add a selection observer

Parameters:
observer - int[1]
Returns:

removeSelectionObserver

public void removeSelectionObserver(int[] observer)
remove selection observer

Parameters:
observer - int[1]

getModelFilter

protected JModelFilter getModelFilter()
get modelFilter

Returns:

updateSliderLabels

protected void updateSliderLabels()
set labels of slider


updateHeader

protected void updateHeader()
set header visibility based on showSearch and showSlider


getCellRatio

public float getCellRatio()
get cellRatio

Returns:

setCellRatio

public void setCellRatio(float cellRatio)
set cellRatio

Parameters:
cellRatio -

getInitialCellWidth

public float getInitialCellWidth()
get initialCellWidth

Returns:

setInitialCellWidth

public void setInitialCellWidth(float initialCellWidth)
set initialCellWidth

Parameters:
initialCellWidth -

getMinimumCellWidth

public float getMinimumCellWidth()
get minimumCellWidth

Returns:

setMinimumCellWidth

public void setMinimumCellWidth(float minimumCellWidth)
set minimumCellWidth

Parameters:
minimumCellWidth -

getMaximumCellWidth

public float getMaximumCellWidth()
get maximumCellWidth

Returns:

setMaximumCellWidth

public void setMaximumCellWidth(float maximumCellWidth)
set maximumCellWidth

Parameters:
maximumCellWidth -

setSeperatorThickness

public void setSeperatorThickness(int thickness)
set seperatorThickness

Parameters:
thickness -

setCellConstraints

public void setCellConstraints(float minimum,
                               float maximum,
                               float initial,
                               float cellRatio)
set sell constrains

Parameters:
minimum - minimumCellWidth
maximum - maximumCellWidth
initial - initialCellWidth
cellRatio - cellRatio

setDnDPartner

public void setDnDPartner(java.awt.Component c)
DND methods


setAllowDrag

public void setAllowDrag(boolean value)

setAllowDrop

public void setAllowDrop(boolean value)

setMoveAction

public void setMoveAction(MoveAction ma)

acceptDropPartner

public boolean acceptDropPartner(java.awt.Component c)
Description copied from interface: DnDComponent
true, if the component accepts this component a drop target.

Specified by:
acceptDropPartner in interface DnDComponent
Parameters:
c - component
Returns:
true, if allowed

allowDrag

public boolean allowDrag(java.awt.Point point)
Description copied from interface: DnDComponent
if true, drag is allowed at this point

Specified by:
allowDrag in interface DnDComponent
Parameters:
point - mouse point in this components coordinate system
Returns:
true, if drag allowed

allowDrop

public boolean allowDrop(java.lang.Object item,
                         int count)
Description copied from interface: DnDComponent
if true, drop is allowed for this component

Specified by:
allowDrop in interface DnDComponent
Parameters:
item - item that requests to be dropped
count - number of this items
Returns:
true, if drop allowed

finishDragOperation

public void finishDragOperation(java.lang.Object item,
                                int count,
                                java.awt.Component receiver)
Description copied from interface: DnDComponent
finish the drag'n drop operation

Specified by:
finishDragOperation in interface DnDComponent
Parameters:
item - item that has been dragged
count - number of this items
receiver - component which will receive this items

getDragItem

public java.lang.Object getDragItem(java.awt.Point point)
Description copied from interface: DnDComponent
get the item at this point, what will be transfered.

Specified by:
getDragItem in interface DnDComponent
Parameters:
point - mouse point in this components coordinate system
Returns:
the transfer object

getMoreDragItems

public boolean getMoreDragItems(java.awt.Point point,
                                java.lang.Object item,
                                int count,
                                int additionalCount)
Description copied from interface: DnDComponent
user requests more items.

Specified by:
getMoreDragItems in interface DnDComponent
Parameters:
point - mouse point in this components coordinate system
item - currently transferred item
count - current number of items
additionalCount - requested number of items
Returns:
true, if allowed

startDragOperation

public void startDragOperation(java.awt.Point p)
Description copied from interface: DnDComponent
start a drag operation at this point. DnDComponent.allowDrag(Point) is called before and returned true

Specified by:
startDragOperation in interface DnDComponent
Parameters:
p - mouse point in this components coordinate system

takeDragItem

public void takeDragItem(java.lang.Object item,
                         int count)
Description copied from interface: DnDComponent
component should take the transferred item with given count

Specified by:
takeDragItem in interface DnDComponent
Parameters:
item - transferred item
count - transferred item count

getDnDMotionComponent

public DnDMotionComponent getDnDMotionComponent(java.lang.Object item,
                                                int count)
Description copied from interface: DnDComponent
get the component which is displayed during drag'n drop operation on FormSheet.getDragLayer()

Specified by:
getDnDMotionComponent in interface DnDComponent
Parameters:
item - item that is transferred
count - number of transferred items
Returns:

getBoundingComponent

public java.awt.Component getBoundingComponent()
Description copied from interface: DnDComponent
get component which defines the range of this component. e.g. a JScrollPane

Specified by:
getBoundingComponent in interface DnDComponent
Returns:

getDragSourceComponent

public java.awt.Component getDragSourceComponent()
Description copied from interface: DnDComponent
Component which contains the drag items

Specified by:
getDragSourceComponent in interface DnDComponent
Returns:

paintHightlightEffect

public void paintHightlightEffect(java.awt.Graphics2D g,
                                  java.awt.Rectangle bounds,
                                  java.awt.Component cmp)
Description copied from interface: DnDComponent
paint drag'n drop highlight effect. drawing takes place on some layer above the standard layer, so the effect can be drawn beyond components bounds

Specified by:
paintHightlightEffect in interface DnDComponent
Parameters:
g - Graphics context which is NOT in components coordinate system
bounds - bounds of highlight component
cmp - highlight component

getDragItemIndex

public int getDragItemIndex(java.awt.Point point)
Description copied from interface: DnDComponent
index of item at this point.

Specified by:
getDragItemIndex in interface DnDComponent
Parameters:
point - mouse point in this components coordinate system
Returns:
index or -1