public class List extends Component
ListCellRenderer
and are extracted via the ListModel
.
A list can represent many UI concepts ranging from a carousel to a "todo" checklist, this is made possible thanks to extensive use of Swing's style of MVC. Specifically a list component is relatively simple, it invokes the model in order to extract the displayed/selected information and shows it to the user by invoking the cell renderer.
The list class itself is completely decoupled from everything, thus it allows us to extract its content from any source (e.g. network, storage etc.) and display the information in any form (e.g. checkboxed elemenents, icons etc.).
com.sun.lwuit.list
Modifier and Type | Field and Description |
---|---|
static int |
FIXED_CENTER
Indicates the list selection is fixed into place at the center of the list
|
static int |
FIXED_LEAD
Indicates the list selection is fixed into place at the top of the list
or at the left of the list
|
static int |
FIXED_NONE
Indicates the list isn't fixed and that selection is movable
|
static int |
FIXED_NONE_CYCLIC
Indicates that the list is not fixed in place but cycles its elements
|
static int |
FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE
Indicates the list selection will only reach the edge when there are no more
elements in the list.
|
static int |
FIXED_TRAIL
Indicates the list selection is fixed into place at the bottom of the list
or at the right of the list
|
static int |
HORIZONTAL
Indicates the list orientation is HORIZONTAL
|
static int |
VERTICAL
Indicates the list orientation is VERTICAL
|
BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, LEFT, RIGHT, TOP
Constructor and Description |
---|
List()
Creates a new instance of List with an empty default model
|
List(ListModel model)
Creates a new instance of List with the given model
|
List(Object[] items)
Creates a new instance of List
|
List(Vector items)
Creates a new instance of List
|
Modifier and Type | Method and Description |
---|---|
void |
addActionListener(ActionListener l)
Allows binding a listener to user selection actions
|
void |
addItem(Object item)
Allows adding an element to a list if the underlying model supports this, notice that
it is an optional operation and if the model does not support it (default list model does)
then this operation may failed.
|
void |
addSelectionListener(SelectionListener l)
Invoked to indicate interest in future selection events
|
boolean |
animate()
Allows the animation to reduce "repaint" calls when it returns false.
|
protected Dimension |
calcPreferredSize()
Calculates the preferred size based on component content.
|
protected void |
fireActionEvent()
This method allows us to detect an action event internally without
implementing the action listener interface.
|
protected void |
fireClicked()
When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method
in order to allow 3 button devices to work properly.
|
int |
getBorderGap()
Getting the surrounding border gap
|
int |
getFixedSelection()
Indicates whether selection is fixable to place in which case all the
elements in the list move and selection stays in place.
|
int |
getItemGap()
Returns the gap between items
|
int |
getMinElementHeight()
Minimum number of elements shown in a list, this member is used to calculate
the list preferred size.
|
ListModel |
getModel()
Returns the model underlying the list
|
int |
getOrientation()
Returns the list orientation
|
ListCellRenderer |
getRenderer()
Returns the renderer which is used to draw list elements
|
Object |
getRenderingPrototype()
See set rendering prototype
|
int |
getSelectedIndex()
Returns the current selected offset in the list
|
Object |
getSelectedItem()
Returns the current selected item in the list or null for no selection
|
protected Rectangle |
getVisibleBounds()
Returns the component bounds for scrolling which might differ from the getBounds for large components
e.g.
|
boolean |
isCommandList()
Indicates that the list should be treated as a list of commands, if the
user "clicks" a command from the list its action performed method is invoked.
|
boolean |
isIgnoreFocusComponentWhenUnfocused()
Indicates whether the list should not paint the focus component if the list
itself has no focus.
|
boolean |
isMutableRendererBackgrounds()
Indicates that the background of a cell renderer might mutate between one entry and the next,
it is recommended that this flag remains false for performance reasons.
|
boolean |
isNumericKeyActions()
Indicate whether pressing the number keys should trigger an action
|
boolean |
isScrollableX()
Indicates whether the component should/could scroll on the X axis
|
boolean |
isScrollableY()
Indicates whether the component should/could scroll on the Y axis
|
protected boolean |
isSelectableInteraction()
This method allows a component to indicate that it is interested in an "implicit" select
command to appear in the "fire" button when 3 softbuttons are defined in a device.
|
protected boolean |
isTactileTouch(int x,
int y)
Elaborate components might not provide tactile feedback for all their areas (e.g.
|
void |
keyPressed(int keyCode)
If this Component is focused, the key pressed event
will call this method
|
void |
keyReleased(int keyCode)
If this Component is focused, the key released event
will call this method
|
protected void |
laidOut()
This is a callback method to inform the Component when it's been laidout
on the parent Container
|
protected void |
listSelectionChanged(int oldSelected,
int newSelected)
Callback to allow subclasses to react to a selectio change in the model
|
protected void |
longPointerPress(int x,
int y)
If this Component is focused this method is invoked when the user presses
and holds the pointer on the Component
|
protected void |
modelChanged(int status,
int index)
Callback to allow subclasses to react to a change in the model
|
void |
paint(Graphics g)
This method paints the Component on the screen, it should be overriden
by subclasses to perform custom drawing or invoke the UI API's to let
the PLAF perform the rendering.
|
protected String |
paramString()
Returns a string representing the state of this component.
|
void |
pointerDragged(int x,
int y)
If this Component is focused, the pointer dragged event
will call this method
|
void |
pointerHover(int[] x,
int[] y)
Invoked for devices where the pointer can hover without actually clicking
the display.
|
void |
pointerHoverReleased(int[] x,
int[] y)
Invoked for devices where the pointer can hover without actually clicking
the display.
|
void |
pointerPressed(int x,
int y)
If this Component is focused, the pointer pressed event
will call this method
|
void |
pointerReleased(int x,
int y)
If this Component is focused, the pointer released event
will call this method
|
void |
refreshTheme()
Makes sure the component is up to date with the current style object
|
void |
removeActionListener(ActionListener l)
Allows binding a listener to user selection actions
|
void |
removeSelectionListener(SelectionListener l)
Invoked to indicate no further interest in future selection events
|
void |
scrollRectToVisible(Rectangle rect)
Makes sure the selected index is visible if it is not in the current view
rect the list will scroll so it fits within
|
void |
setBorderGap(int borderGap)
Setting the surrounding border gap
|
void |
setCommandList(boolean commandList)
Indicates that the list should be treated as a list of commands, if the
user "clicks" a command from the list its action performed method is invoked.
|
void |
setFireOnClick(boolean fireOnClick)
This method determines if the List fires the action event when the pointer
was clicked on one of the items, or only if the item was the selected item
By default the value is true, this setting is only relevant for none fixed
Lists
|
void |
setFixedSelection(int fixedSelection)
Indicates whether selection is fixable to place in which case all the
elements in the list move and selection stays in place.
|
void |
setHandlesInput(boolean b)
Prevents key events from being grabbed for focus traversal.
|
void |
setIgnoreFocusComponentWhenUnfocused(boolean ignoreFocusComponentWhenUnfocused)
Indicates whether the list should not paint the focus component if the list
itself has no focus.
|
void |
setInputOnFocus(boolean inputOnFocus)
A list can start handling input implicitly upon gaining focus, this can
make for a more intuitive UI when no other focus elements exist or when
their use case is infrequent.
|
void |
setItemGap(int itemGap)
Set the gap between items
|
void |
setListCellRenderer(ListCellRenderer renderer)
Sets the renderer which is used to draw list elements
|
void |
setMinElementHeight(int minElementHeight)
Minimum number of elements shown in a list, this member is used to calculate
the list preferred size.
|
void |
setModel(ListModel model)
Replaces/sets the model underlying the list
|
void |
setMutableRendererBackgrounds(boolean mutableRendererBackgrounds)
Indicates that the background of a cell renderer might mutate between one entry and the next,
it is recommended that this flag remains false for performance reasons.
|
void |
setNumericKeyActions(boolean numericKeyActions)
Indicate whether pressing the number keys should trigger an action
|
void |
setOrientation(int orientation)
Sets the list orientation HORIZONTAL or VERTICAL
|
void |
setPaintFocusBehindList(boolean paintFocusBehindList)
This method determines if the animated focus is drawn on top of the List
or behind the List when moving.
|
void |
setRenderingPrototype(Object renderingPrototype)
The rendering prototype is optionally used in calculating the size of the
List and is recommended for performance reasons.
|
void |
setScrollToSelected(boolean scrollToSelected)
This flag indicates to the List if the List should scroll to the selected
element when it's been initialized.
|
void |
setSelectedIndex(int index)
Sets the current selected offset in the list, by default this implementation
will scroll the list to the selection if the selection is outside of the screen
|
void |
setSelectedIndex(int index,
boolean scrollToSelection)
Sets the current selected offset in the list
|
void |
setSelectedItem(Object item)
Sets the current selected item in the list
|
protected void |
setShouldCalcPreferredSize(boolean shouldCalcPreferredSize)
Indicates the values within the component have changed and preferred
size should be recalculated
|
int |
size()
Returns the number of elements in the list, shorthand for
getModel().getSize()
|
addFocusListener, calcScrollSize, contains, deinitialize, deinitializeCustomStyle, dragInitiated, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getBaseline, getBaselineResizeBehavior, getBorder, getBottomGap, getBounds, getClientProperty, getComponentForm, getDirtyRegion, getHeight, getLabelForComponent, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getParent, getPreferredH, getPreferredSize, getPreferredW, getScrollAnimationSpeed, getScrollDimension, getScrollX, getScrollY, getSelectCommandText, getSelectedStyle, getSideGap, getStyle, getUIID, getUnselectedStyle, getWidth, getX, getY, handlesInput, hasFocus, initComponent, initCustomStyle, isBorderPainted, isDragActivated, isEnabled, isFocusable, isFocusPainted, isInitialized, isRTL, isScrollable, isScrollVisible, isSmoothScrolling, isTactileTouch, isTensileDragEnabled, isVisible, keyRepeated, longKeyPress, paintBackground, paintBackgrounds, paintBorder, paintComponent, paintComponent, paintScrollbars, paintScrollbarX, paintScrollbarY, pointerDragged, pointerPressed, pointerReleased, putClientProperty, refreshTheme, removeFocusListener, repaint, repaint, requestFocus, scrollRectToVisible, scrollRectToVisible, setBorderPainted, setCellRenderer, setDirtyRegion, setEnabled, setFocus, setFocusable, setFocusPainted, setHeight, setInitialized, setIsScrollVisible, setLabelForComponent, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setPreferredH, setPreferredSize, setPreferredW, setRTL, setScrollAnimationSpeed, setScrollSize, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setSize, setSmoothScrolling, setStyle, setTactileTouch, setTensileDragEnabled, setUIID, setUnselectedStyle, setUnSelectedStyle, setVisible, setWidth, setX, setY, styleChanged, toString
public static final int FIXED_NONE
public static final int FIXED_NONE_CYCLIC
public static final int FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE
public static final int FIXED_LEAD
public static final int FIXED_TRAIL
public static final int FIXED_CENTER
public static final int VERTICAL
public static final int HORIZONTAL
public List(Vector items)
items
- set of items placed into the list modelpublic List(Object[] items)
items
- set of items placed into the list modelpublic List()
public List(ListModel model)
model
- the model instanceprotected void laidOut()
Component
protected void modelChanged(int status, int index)
status
- the type data change; REMOVED, ADDED or CHANGEDindex
- item index in a list modelprotected void listSelectionChanged(int oldSelected, int newSelected)
oldSelected
- the old selection valuenewSelected
- the new selection valuepublic boolean isScrollableY()
Component
isScrollableY
in class Component
public boolean isScrollableX()
Component
isScrollableX
in class Component
public int getMinElementHeight()
public void setMinElementHeight(int minElementHeight)
minElementHeight
- the minimum number of elementspublic int size()
public int getSelectedIndex()
public void setSelectedIndex(int index)
index
- the current selected offset in the listprotected Rectangle getVisibleBounds()
Component
getVisibleBounds
in class Component
Component.getX()
,
Component.getY()
public void setSelectedIndex(int index, boolean scrollToSelection)
index
- the current selected offset in the listscrollToSelection
- indicates whether scrolling to selection should
occur if the selection is outside of viewpublic Object getSelectedItem()
public void setSelectedItem(Object item)
item
- the current selected item in the listpublic ListModel getModel()
protected void setShouldCalcPreferredSize(boolean shouldCalcPreferredSize)
Component
setShouldCalcPreferredSize
in class Component
shouldCalcPreferredSize
- indicate whether this component need to
recalculate his preferred sizepublic void setModel(ListModel model)
model
- the new model underlying the listpublic boolean isNumericKeyActions()
public void setNumericKeyActions(boolean numericKeyActions)
numericKeyActions
- true to trigger an action on number keyspublic boolean isCommandList()
public void setCommandList(boolean commandList)
commandList
- true for the list to be treated as a command listpublic boolean isIgnoreFocusComponentWhenUnfocused()
public void setIgnoreFocusComponentWhenUnfocused(boolean ignoreFocusComponentWhenUnfocused)
ignoreFocusComponentWhenUnfocused
- true to ignore the focus component false otherwisepublic boolean isMutableRendererBackgrounds()
public void setMutableRendererBackgrounds(boolean mutableRendererBackgrounds)
mutableRendererBackgrounds
- the new value for the flagpublic void setListCellRenderer(ListCellRenderer renderer)
renderer
- cell renderer instancepublic ListCellRenderer getRenderer()
public int getOrientation()
HORIZONTAL
,
VERTICAL
public void refreshTheme()
Component
refreshTheme
in class Component
public void setOrientation(int orientation)
orientation
- the list orientation HORIZONTAL or VERTICALHORIZONTAL
,
VERTICAL
public void scrollRectToVisible(Rectangle rect)
rect
- the rectangle area to scroll topublic void setHandlesInput(boolean b)
Component
setHandlesInput
in class Component
b
- indicates whether key events can be grabbed for
focus traversalprotected void fireClicked()
Component
fireClicked
in class Component
protected boolean isSelectableInteraction()
Component
isSelectableInteraction
in class Component
public void keyReleased(int keyCode)
Component
keyReleased
in class Component
keyCode
- the key code value to indicate a physical key.public void keyPressed(int keyCode)
Component
keyPressed
in class Component
keyCode
- the key code value to indicate a physical key.public void paint(Graphics g)
Component
public void addSelectionListener(SelectionListener l)
l
- the selection listener to be addedpublic void removeSelectionListener(SelectionListener l)
l
- the selection listener to be removedpublic void addActionListener(ActionListener l)
l
- the action listener to be addedpublic void removeActionListener(ActionListener l)
l
- the action listener to be removedprotected void fireActionEvent()
Component
public void setInputOnFocus(boolean inputOnFocus)
inputOnFocus
- true is a list can start handling input
implicitly upon gaining focuspublic void setPaintFocusBehindList(boolean paintFocusBehindList)
paintFocusBehindList
- public int getItemGap()
public void setItemGap(int itemGap)
itemGap
- the gap between itemspublic void setRenderingPrototype(Object renderingPrototype)
This allows list size calculations to work across look and feels and allows developers to predetermin size for list elements.
e.g. For a list of Strings which you would like to always be 5 characters wide you can use a prototype "XXXXX" which would use the preferred size of the XXXXX String to determine the size of the list element. E.g. for a list of dates you can use new Date(30, 12, 00) etc..
renderingPrototype
- a value that can be passed to the renderer to indicate the preferred
size of a list component.public Object getRenderingPrototype()
setRenderingPrototype(java.lang.Object)
protected void longPointerPress(int x, int y)
Component
longPointerPress
in class Component
public void pointerPressed(int x, int y)
Component
pointerPressed
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void pointerHover(int[] x, int[] y)
Component
pointerHover
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void pointerDragged(int x, int y)
Component
pointerDragged
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void setFireOnClick(boolean fireOnClick)
fireOnClick
- public void pointerHoverReleased(int[] x, int[] y)
Component
pointerHoverReleased
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void pointerReleased(int x, int y)
Component
pointerReleased
in class Component
x
- the pointer x coordinatey
- the pointer y coordinateprotected Dimension calcPreferredSize()
Component
calcPreferredSize
in class Component
public void addItem(Object item)
item
- the item to be added to a list modelpublic int getFixedSelection()
public void setFixedSelection(int fixedSelection)
fixedSelection
- one of: FIXED_NONE, FIXED_TRAIL, FIXED_LEAD,
FIXED_CENTER, FIXED_NONE_CYCLICpublic boolean animate()
Animation
Display
class.protected boolean isTactileTouch(int x, int y)
Component
isTactileTouch
in class Component
x
- the x positiony
- the y positionpublic void setBorderGap(int borderGap)
borderGap
- number of pixels for the gappublic int getBorderGap()
public void setScrollToSelected(boolean scrollToSelected)
scrollToSelected
- if true the List scrolls to the selected element
when It's been initalized.protected String paramString()
Component
null
.paramString
in class Component