Class GUIList<T extends GUIElement>
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement
com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
com.realtime.crossfire.jxclient.gui.list.GUIList<T>
- Type Parameters:
T- the type of the list elements
- All Implemented Interfaces:
GUIElement,GUIScrollable,ImageObserver,MenuContainer,Serializable
- Direct Known Subclasses:
GUICharacterList,GUIItemList,GUIMetaElementList
public abstract class GUIList<T extends GUIElement>
extends ActivatableGUIElement
implements GUIScrollable
A
GUIElement that displays a list of entries.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGUIList(@NotNull TooltipManager tooltipManager, @NotNull GUIElementListener elementListener, @NotNull String name, int cellWidth, int cellHeight, @NotNull GUIListCellRenderer<T> listCellRenderer, @Nullable CommandList doubleClickCommandList, @NotNull GuiFactory guiFactory) Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddElement(T element) Adds anGUIElementto the list.booleancanMoveSelection(int diffLines, int diffElements) Returns whether the selection can be moved.booleancanScroll(int distance) Returns whether the list can be scrolled.voiddispose()Releases all allocated resources.voidexecute()Executes the actions associated with this GUI element.getElement(int index) Returns theGUIElementfor a given index.protected @NotNull ObjectReturns the selected list object.@Nullable TooltipTextReturns the current tooltip text.protected abstract @Nullable StringgetTooltip(int index) Returns the tooltip text.voidmouseClicked(@NotNull MouseEvent e) Will be called when the user has clicked (pressed+released) this element.voidmouseDragged(@NotNull MouseEvent e) Will be called when the mouse moves within this component while the button is pressed.voidmouseEntered(@NotNull MouseEvent e) Will be called when the mouse has entered the bounding box of this element.voidmouseExited(@NotNull MouseEvent e) Will be called when the mouse has left the bounding box of this element.voidmouseMoved(@NotNull MouseEvent e) Will be called when the mouse moves within this component.voidmousePressed(@NotNull MouseEvent e) Will be called when the user has pressed the mouse inside this element.voidmouseWheelMoved(int wheelRotation) Will be called when the mouse wheel has been moved.voidmoveSelection(int diffLines, int diffElements) Moves the selection.voidResets the scroll index to the default value.protected intresizeElements(int newSize) Changes the number of list elements.voidscroll(int distance) Moves the list.protected voidCalled whenever the selected list entry has changed.protected abstract voidselectionChanged(int selectedIndex) Called whenever the selected list entry has changed.voidsetBounds(int x, int y, int width, int height) voidRecords that the contents have changed and must be repainted.protected voidsetLayoutOrientation(int layoutOrientation, int visibleRowCount) Sets the layout orientation.protected voidsetSelectedIndex(int newIndex) Update the selected list entry.Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
activateNextElement, activatePrevElement, activeChanged, isActive, markInactivePending, setActive, setInactiveIfPending, setNextActive, setPrevActiveMethods inherited from class com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement
getDialogBorderBottom, getDialogBorderLeft, getDialogBorderRight, getDialogBorderTop, getName, inhibitListeners, isDefault, isIgnore, mouseReleased, newTooltipText, setChangedListener, setDefault, setIgnore, tooltipChanged, toStringMethods 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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, 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, updateUIMethods 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, validateTreeMethods 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, 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, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.realtime.crossfire.jxclient.gui.gui.GUIElement
notifyOpen
-
Constructor Details
-
GUIList
protected GUIList(@NotNull @NotNull TooltipManager tooltipManager, @NotNull @NotNull GUIElementListener elementListener, @NotNull @NotNull String name, int cellWidth, int cellHeight, @NotNull @NotNull GUIListCellRenderer<T> listCellRenderer, @Nullable @Nullable CommandList doubleClickCommandList, @NotNull @NotNull GuiFactory guiFactory) Creates a new instance.- Parameters:
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 ornullto ignore double-clicksguiFactory- the global GUI factory instance
-
-
Method Details
-
dispose
public void dispose()Description copied from interface:GUIElementReleases all allocated resources.- Specified by:
disposein interfaceGUIElement- Overrides:
disposein classAbstractGUIElement
-
getElement
Returns theGUIElementfor a given index.- Parameters:
index- the index- Returns:
- the gui element
-
addElement
Adds anGUIElementto the list.- Parameters:
element- the element to add
-
resizeElements
protected int resizeElements(int newSize) Changes the number of list elements. If the new element count is less than the current count, excess elements are cut off. Otherwise, the caller has to add elements withaddElement(GUIElement).- Parameters:
newSize- the new element count- Returns:
- the number of elements to add by the caller
-
canMoveSelection
public boolean canMoveSelection(int diffLines, int diffElements) Returns whether the selection can be moved.- Parameters:
diffLines- the distance in lines to movediffElements- the distance in elements to move- Returns:
- whether moving is possible
-
moveSelection
public void moveSelection(int diffLines, int diffElements) Moves the selection.- Parameters:
diffLines- the distance in lines to movediffElements- the distance in elements to move
-
canScroll
public boolean canScroll(int distance) Returns whether the list can be scrolled.- Specified by:
canScrollin interfaceGUIScrollable- Parameters:
distance- the distance to scroll- Returns:
- whether scrolling is possible
-
scroll
public void scroll(int distance) Moves the list.- Specified by:
scrollin interfaceGUIScrollable- Parameters:
distance- the distance to scroll
-
resetScroll
public void resetScroll()Description copied from interface:GUIScrollableResets the scroll index to the default value.- Specified by:
resetScrollin interfaceGUIScrollable
-
mouseClicked
Description copied from interface:GUIElementWill be called when the user has clicked (pressed+released) this element. This event will be delivered afterGUIElement.mouseReleased(MouseEvent).- Specified by:
mouseClickedin interfaceGUIElement- Overrides:
mouseClickedin classAbstractGUIElement- Parameters:
e- the mouse event relative to this element
-
mouseEntered
Description copied from interface:GUIElementWill be called when the mouse has entered the bounding box of this element.- Specified by:
mouseEnteredin interfaceGUIElement- Overrides:
mouseEnteredin classAbstractGUIElement- Parameters:
e- the mouse event relative to this element
-
mouseExited
Description copied from interface:GUIElementWill be called when the mouse has left the bounding box of this element. This function will not be called unlessGUIElement.mouseEntered(MouseEvent)has been called before.- Specified by:
mouseExitedin interfaceGUIElement- Overrides:
mouseExitedin classAbstractGUIElement- Parameters:
e- the mouse event relative to this element
-
mousePressed
Description copied from class:ActivatableGUIElementWill be called when the user has pressed the mouse inside this element.- Specified by:
mousePressedin interfaceGUIElement- Overrides:
mousePressedin classActivatableGUIElement- Parameters:
e- the mouse event relative to this element
-
mouseMoved
Description copied from interface:GUIElementWill be called when the mouse moves within this component. before.- Specified by:
mouseMovedin interfaceGUIElement- Overrides:
mouseMovedin classAbstractGUIElement- Parameters:
e- the mouse event relative to this element
-
mouseDragged
Description copied from interface:GUIElementWill be called when the mouse moves within this component while the button is pressed. This event will be delivered afterGUIElement.mouseMoved(MouseEvent).Note: if the mouse leaves this element's bounding box while the mouse button is still pressed, further
mouseDragged(but nomouseMoved) events will be generated.- Specified by:
mouseDraggedin interfaceGUIElement- Overrides:
mouseDraggedin classAbstractGUIElement- Parameters:
e- the mouse event relative to this element
-
mouseWheelMoved
public void mouseWheelMoved(int wheelRotation) Description copied from interface:GUIElementWill be called when the mouse wheel has been moved.- Specified by:
mouseWheelMovedin interfaceGUIElement- Overrides:
mouseWheelMovedin classAbstractGUIElement- Parameters:
wheelRotation- the movement amount; negative=away from the user, positive=towards the user
-
setSelectedIndex
protected void setSelectedIndex(int newIndex) Update the selected list entry.- Parameters:
newIndex- the new selected list entry
-
selectionChanged
protected void selectionChanged()Called whenever the selected list entry has changed. -
selectionChanged
protected abstract void selectionChanged(int selectedIndex) Called whenever the selected list entry has changed.- Parameters:
selectedIndex- the selected list entry
-
setChanged
public void setChanged()Description copied from interface:GUIElementRecords that the contents have changed and must be repainted.- Specified by:
setChangedin interfaceGUIElement- Overrides:
setChangedin classAbstractGUIElement
-
getTooltip
Description copied from class:AbstractGUIElementReturns the current tooltip text.- Specified by:
getTooltipin classAbstractGUIElement- Returns:
- the tooltip text or
nullto not show a tooltip
-
execute
public void execute()Description copied from class:ActivatableGUIElementExecutes the actions associated with this GUI element. Does nothing if this element has no associated actions.- Specified by:
executein classActivatableGUIElement
-
getTooltip
Returns the tooltip text.- Parameters:
index- the index to use- Returns:
- the tooltip text
-
setLayoutOrientation
protected void setLayoutOrientation(int layoutOrientation, int visibleRowCount) Sets the layout orientation. SeeJList.setLayoutOrientation(int)andJList.setVisibleRowCount(int).- Parameters:
layoutOrientation- the layout orientationvisibleRowCount- the number of visible rows
-
getSelectedObject
Returns the selected list object.- Returns:
- the selected object or
nullif none is selected
-
getPreferredSize
- Overrides:
getPreferredSizein classJComponent
-
getMinimumSize
- Overrides:
getMinimumSizein classJComponent
-
getMaximumSize
- Overrides:
getMaximumSizein classJComponent
-
setBounds
public void setBounds(int x, int y, int width, int height)
-