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,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable
- Direct Known Subclasses:
GUICharacterList,GUIItemList,GUIMetaElementList
public abstract class GUIList<T extends GUIElement> extends ActivatableGUIElement implements GUIScrollable
AGUIElementthat displays a list of entries.- See Also:
- Serialized Form
-
-
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_WINDOW
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedGUIList(@NotNull TooltipManager tooltipManager, @NotNull GUIElementListener elementListener, @NotNull java.lang.String name, int cellWidth, int cellHeight, @NotNull GUIListCellRenderer<T> listCellRenderer, @Nullable CommandList doubleClickCommandList, @NotNull GuiFactory guiFactory)Creates a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected 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.TgetElement(int index)Returns theGUIElementfor a given index.java.awt.DimensiongetMaximumSize()java.awt.DimensiongetMinimumSize()java.awt.DimensiongetPreferredSize()protected @NotNull java.lang.ObjectgetSelectedObject()Returns the selected list object.@Nullable TooltipTextgetTooltip()Returns the current tooltip text.protected abstract @Nullable java.lang.StringgetTooltip(int index)Returns the tooltip text.voidmouseClicked(@NotNull java.awt.event.MouseEvent e)Will be called when the user has clicked (pressed+released) this element.voidmouseDragged(@NotNull java.awt.event.MouseEvent e)Will be called when the mouse moves within this component while the button is pressed.voidmouseEntered(@NotNull java.awt.event.MouseEvent e)Will be called when the mouse has entered the bounding box of this element.voidmouseExited(@NotNull java.awt.event.MouseEvent e)Will be called when the mouse has left the bounding box of this element.voidmouseMoved(@NotNull java.awt.event.MouseEvent e)Will be called when the mouse moves within this component.voidmousePressed(@NotNull java.awt.event.MouseEvent e)Will be called when the user has pressed the mouse inside this element.voidmoveSelection(int diffLines, int diffElements)Moves the selection.voidresetScroll()Resets the scroll index to the default value.protected intresizeElements(int newSize)Changes the number of list elements.voidscroll(int distance)Moves the list.protected voidselectionChanged()Called 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)voidsetChanged()Records 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
activeChanged, isActive, markInactivePending, setActive, setInactiveIfPending
-
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement
getDialogBorderBottom, getDialogBorderLeft, getDialogBorderRight, getDialogBorderTop, getName, inhibitListeners, isDefault, isIgnore, mouseReleased, newTooltipText, setChangedListener, setDefault, setIgnore, tooltipChanged, toString
-
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, 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, updateUI
-
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, 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, 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, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.realtime.crossfire.jxclient.gui.gui.GUIElement
notifyOpen
-
-
-
-
Constructor Detail
-
GUIList
protected GUIList(@NotNull @NotNull TooltipManager tooltipManager, @NotNull @NotNull GUIElementListener elementListener, @NotNull @NotNull java.lang.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 Detail
-
dispose
public void dispose()
Description copied from interface:GUIElementReleases all allocated resources.- Specified by:
disposein interfaceGUIElement- Overrides:
disposein classAbstractGUIElement
-
getElement
@NotNull public T getElement(int index)
Returns theGUIElementfor a given index.- Parameters:
index- the index- Returns:
- the gui element
-
addElement
protected void addElement(@NotNull T element)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
public void mouseClicked(@NotNull @NotNull java.awt.event.MouseEvent e)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
public void mouseEntered(@NotNull @NotNull java.awt.event.MouseEvent e)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
public void mouseExited(@NotNull @NotNull java.awt.event.MouseEvent e)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
public void mousePressed(@NotNull @NotNull java.awt.event.MouseEvent e)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
public void mouseMoved(@NotNull @NotNull java.awt.event.MouseEvent e)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
public void mouseDragged(@NotNull @NotNull java.awt.event.MouseEvent e)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
-
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
@Nullable public @Nullable TooltipText 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
@Nullable protected abstract @Nullable java.lang.String getTooltip(int index)
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
@NotNull protected @NotNull java.lang.Object getSelectedObject()
Returns the selected list object.- Returns:
- the selected object or
nullif none is selected
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
- Overrides:
getPreferredSizein classjavax.swing.JComponent
-
getMinimumSize
public java.awt.Dimension getMinimumSize()
- Overrides:
getMinimumSizein classjavax.swing.JComponent
-
getMaximumSize
public java.awt.Dimension getMaximumSize()
- Overrides:
getMaximumSizein classjavax.swing.JComponent
-
setBounds
public void setBounds(int x, int y, int width, int height)- Overrides:
setBoundsin classjava.awt.Component
-
-