T
- the type of the list elementspublic abstract class GUIList<T extends GUIElement> extends ActivatableGUIElement implements GUIScrollable
GUIElement
that displays a list of entries.javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
private int |
cellHeight
The height of a list cell in pixels.
|
private CommandList |
doubleClickCommandList
The
CommandList to execute on double-clicks or null to
ignore double-clicks. |
private javax.swing.JList<T> |
list
The list used to display the cells.
|
private GUIListCellRenderer<? extends T> |
listCellRenderer
The
GUIListCellRenderer for the list . |
private javax.swing.event.ListSelectionListener |
listSelectionListener
The
ListSelectionListener attached to list . |
private javax.swing.DefaultListModel<T> |
model
The list model of
list . |
private javax.swing.JScrollPane |
scrollPane
The scroll pane instance used to display the list.
|
private static long |
serialVersionUID
The serial version UID.
|
private int |
tooltipIndex
The index of the currently shown tooltip.
|
private java.awt.Rectangle |
tooltipRectangle
The location of the tooltip.
|
private GUIListViewport |
viewport
The viewport used by
scrollPane . |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Modifier | Constructor and Description |
---|---|
protected |
GUIList(TooltipManager tooltipManager,
GUIElementListener elementListener,
java.lang.String name,
int cellWidth,
int cellHeight,
GUIListCellRenderer<T> listCellRenderer,
CommandList doubleClickCommandList)
Creates a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addElement(T element)
Adds an
GUIElement to the list. |
boolean |
canMoveSelection(int diffLines,
int diffElements)
Returns whether the selection can be moved.
|
boolean |
canScroll(int distance)
Returns whether the list can be scrolled.
|
void |
dispose()
Releases all allocated resources.
|
private void |
doSelect(java.awt.event.MouseEvent e)
Selects the list entry corresponding to a
MouseEvent instance. |
private void |
doTooltip(java.awt.event.MouseEvent e)
Updates the tooltip text corresponding to a
MouseEvent instance. |
void |
execute()
Executes the actions associated with this GUI element.
|
T |
getElement(int index)
Returns the
GUIElement for a given index. |
java.awt.Dimension |
getMinimumSize() |
java.awt.Dimension |
getPreferredSize() |
protected java.lang.Object |
getSelectedObject()
Returns the selected list object.
|
void |
mouseClicked(java.awt.event.MouseEvent e)
Will be called when the user has clicked (pressed+released) this element.
|
void |
mouseDragged(java.awt.event.MouseEvent e)
Will be called when the mouse moves within this component while the
button is pressed.
|
void |
mouseEntered(java.awt.event.MouseEvent e,
boolean debugGui)
Will be called when the mouse has entered the bounding box of this
element.
|
void |
mouseExited(java.awt.event.MouseEvent e)
Will be called when the mouse has left the bounding box of this element.
|
void |
mouseMoved(java.awt.event.MouseEvent e)
Will be called when the mouse moves within this component.
|
void |
mousePressed(java.awt.event.MouseEvent e)
Will be called when the user has pressed the mouse inside this element.
|
void |
moveSelection(int diffLines,
int diffElements)
Moves the selection.
|
void |
resetScroll()
Resets the scroll index to the default value.
|
protected int |
resizeElements(int newSize)
Changes the number of list elements.
|
void |
scroll(int distance)
Moves the list.
|
protected void |
selectionChanged()
Called whenever the selected list entry has changed.
|
protected abstract void |
selectionChanged(int selectedIndex)
Called whenever the selected list entry has changed.
|
void |
setBounds(int x,
int y,
int width,
int height) |
void |
setChanged()
Records that the contents have changed and must be repainted.
|
protected void |
setLayoutOrientation(int layoutOrientation,
int visibleRowCount)
Sets the layout orientation.
|
protected void |
setSelectedIndex(int newIndex)
Update the selected list entry.
|
private void |
updateTooltip()
Updates the current tooltip text.
|
protected abstract void |
updateTooltip(int index,
int x,
int y,
int w,
int h)
Updates the tooltip text.
|
activeChanged, isActive, markInactivePending, setActive, setInactiveIfPending
getName, hasTooltipText, isDefault, isIgnore, mouseReleased, setChangedListener, setDefault, setIgnore, setTooltipText, setTooltipText, toString
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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
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
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, getAccessibleContext, 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, getParent, getPeer, 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, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
private final int cellHeight
@Nullable private final CommandList doubleClickCommandList
CommandList
to execute on double-clicks or null
to
ignore double-clicks.@NotNull private final javax.swing.JList<T extends GUIElement> list
@NotNull private final GUIListCellRenderer<? extends T extends GUIElement> listCellRenderer
GUIListCellRenderer
for the list
.@NotNull private final javax.swing.event.ListSelectionListener listSelectionListener
ListSelectionListener
attached to list
.@NotNull private final javax.swing.DefaultListModel<T extends GUIElement> model
list
.@NotNull private final javax.swing.JScrollPane scrollPane
private static final long serialVersionUID
private int tooltipIndex
-1
if no tooltip
is shown.@Nullable private java.awt.Rectangle tooltipRectangle
null
if no tooltip is shown.@NotNull private final GUIListViewport viewport
scrollPane
.protected GUIList(@NotNull TooltipManager tooltipManager, @NotNull GUIElementListener elementListener, @NotNull java.lang.String name, int cellWidth, int cellHeight, @NotNull GUIListCellRenderer<T> listCellRenderer, @Nullable CommandList doubleClickCommandList)
tooltipManager
- the tooltip manager to updateelementListener
- the element listener to notifyname
- the name of this elementcellWidth
- the width of each cellcellHeight
- the height of each celllistCellRenderer
- the renderer for the listdoubleClickCommandList
- the command list to execute on double-click
or null
to ignore double-clicksprotected void addElement(@NotNull T element)
GUIElement
to the list.element
- the element to addpublic boolean canMoveSelection(int diffLines, int diffElements)
diffLines
- the distance in lines to movediffElements
- the distance in elements to movepublic boolean canScroll(int distance)
canScroll
in interface GUIScrollable
distance
- the distance to scrollpublic void dispose()
dispose
in interface GUIElement
dispose
in class AbstractGUIElement
private void doSelect(@NotNull java.awt.event.MouseEvent e)
MouseEvent
instance.e
- the mouse event instanceprivate void doTooltip(@NotNull java.awt.event.MouseEvent e)
MouseEvent
instance.e
- the mouse event instancepublic void execute()
execute
in class ActivatableGUIElement
@NotNull public T getElement(int index)
GUIElement
for a given index.index
- the indexpublic java.awt.Dimension getMinimumSize()
getMinimumSize
in class javax.swing.JComponent
public java.awt.Dimension getPreferredSize()
getPreferredSize
in class javax.swing.JComponent
@NotNull protected java.lang.Object getSelectedObject()
null
if none is selectedpublic void mouseClicked(@NotNull java.awt.event.MouseEvent e)
GUIElement.mouseReleased(MouseEvent)
.mouseClicked
in interface GUIElement
mouseClicked
in class AbstractGUIElement
e
- the mouse event relative to this elementpublic void mouseDragged(@NotNull java.awt.event.MouseEvent e)
GUIElement.mouseMoved(MouseEvent)
.
Note: if the mouse leaves this element's bounding box while the mouse
button is still pressed, further mouseDragged
(but no mouseMoved
) events will be generated.
mouseDragged
in interface GUIElement
mouseDragged
in class AbstractGUIElement
e
- the mouse event relative to this elementpublic void mouseEntered(@NotNull java.awt.event.MouseEvent e, boolean debugGui)
mouseEntered
in interface GUIElement
mouseEntered
in class AbstractGUIElement
e
- the mouse event relative to this elementdebugGui
- whether --debug-gui is activepublic void mouseExited(@NotNull java.awt.event.MouseEvent e)
GUIElement.mouseEntered(MouseEvent,
boolean)
has been called before.mouseExited
in interface GUIElement
mouseExited
in class AbstractGUIElement
e
- the mouse event relative to this elementpublic void mouseMoved(@NotNull java.awt.event.MouseEvent e)
mouseMoved
in interface GUIElement
mouseMoved
in class AbstractGUIElement
e
- the mouse event relative to this elementpublic void mousePressed(@NotNull java.awt.event.MouseEvent e)
mousePressed
in interface GUIElement
mousePressed
in class ActivatableGUIElement
e
- the mouse event relative to this elementpublic void moveSelection(int diffLines, int diffElements)
diffLines
- the distance in lines to movediffElements
- the distance in elements to movepublic void resetScroll()
resetScroll
in interface GUIScrollable
protected int resizeElements(int newSize)
addElement(GUIElement)
.newSize
- the new element countpublic void scroll(int distance)
scroll
in interface GUIScrollable
distance
- the distance to scrollprotected void selectionChanged()
protected abstract void selectionChanged(int selectedIndex)
selectedIndex
- the selected list entrypublic void setBounds(int x, int y, int width, int height)
setBounds
in class java.awt.Component
public void setChanged()
setChanged
in interface GUIElement
setChanged
in class AbstractGUIElement
protected void setLayoutOrientation(int layoutOrientation, int visibleRowCount)
JList.setLayoutOrientation(int)
and JList.setVisibleRowCount(int)
.layoutOrientation
- the layout orientationvisibleRowCount
- the number of visible rowsprotected void setSelectedIndex(int newIndex)
newIndex
- the new selected list entryprivate void updateTooltip()
protected abstract void updateTooltip(int index, int x, int y, int w, int h)
index
- the index to usex
- the x coordinate of the celly
- the y coordinate of the cellw
- the width of the cellh
- the height of the cell