com.realtime.crossfire.jxclient.gui.list
Class GUIItemList

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.realtime.crossfire.jxclient.gui.gui.GUIElement
                  extended by com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
                      extended by com.realtime.crossfire.jxclient.gui.list.GUIList
                          extended by com.realtime.crossfire.jxclient.gui.list.GUIItemList
All Implemented Interfaces:
GUIScrollable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class GUIItemList
extends GUIList

A GUIList instance that displays GUIItemItem instances.

See Also:
Serialized Form

Nested Class Summary
 
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
private  int cellHeight
          The height of cells.
private  int cellWidth
          The width of cells.
private  CommandQueue commandQueue
          The CommandQueue to sending commands to the server.
private  CrossfireServerConnection crossfireServerConnection
          The CrossfireServerConnection for sending commands to the server.
private  AbstractLabel currentItem
          The label to update with information about the selected item.
private  GUIElementChangedListener itemChangedListener
          The GUIElementChangedListener attached to all GUIItemItem instances in the list.
private  GUIItemItemFactory itemItemFactory
          The GUIItemItemFactory for creating new GUIItemItem instances.
private  ItemView itemView
          The ItemView to monitor.
private  LocationsListener locationsListener
          The LocationsListener to be notified about changes.
private static long serialVersionUID
          The serial version UID.
 
Fields inherited from class com.realtime.crossfire.jxclient.gui.gui.GUIElement
bufferedImageSync
 
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
GUIItemList(TooltipManager tooltipManager, GUIElementListener elementListener, CommandQueue commandQueue, java.lang.String name, Extent extent, int cellWidth, int cellHeight, CrossfireServerConnection crossfireServerConnection, ItemView itemView, AbstractLabel currentItem, GUIItemItemFactory itemItemFactory)
          Creates a new instance.
 
Method Summary
protected  void activeChanged()
          Will be called whenever the active state has changed.
private  void button1Clicked(int modifiers)
          Called if the user has clicked the left mouse button.
private  void button2Clicked(int modifiers)
          Called if the user has clicked the middle mouse button.
private  void button3Clicked(int modifiers)
          Called if the user has clicked the right mouse button.
 void dispose()
          Releases all allocated resources.
 int getNumLookObjects()
          Returns the preferred number of objects to display.
 GUIItemItem getSelectedItem()
          Returns the selected GUIItemItem instance.
 void mouseClicked(java.awt.event.MouseEvent e)
          Will be called when the user has clicked (pressed+released) this element.
private  void rebuildList(java.lang.Integer[] changedSlots)
          Rebuilds the list cells.
protected  void selectionChanged(int selectedIndex)
          Called whenever the selected list entry has changed.
private  void setChanged(int index)
          Marks one slot as modified.
private  void setChanged(java.lang.Integer[] changedSlots, int limit)
          Marks some slots as modified.
protected  void updateTooltip(int index, int x, int y, int w, int h)
          Updates the tooltip text.
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.list.GUIList
addElement, canMoveSelection, canScroll, getElement, getSelectedObject, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, moveSelection, render, resetScroll, resizeElements, scroll, selectionChanged, setChanged, setLayoutOrientation, setSelectedIndex, updateResolution
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
isActive, setActive
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.GUIElement
createBufferGraphics, getElementX, getElementY, getGui, getName, getTooltipText, hasBufferedImage, isChanged, isDefault, isElementAtPoint, isElementVisible, isIgnore, mouseReleased, paintComponent, resetChanged, setChangedListener, setChangedNoListeners, setDefault, setElementLocation, setElementSize, setElementVisible, setGui, setIgnore, setTooltipText, setTooltipText, toString, updateResolutionConstant
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cellHeight

private final int cellHeight
The height of cells.


cellWidth

private final int cellWidth
The width of cells.


commandQueue

@NotNull
private final CommandQueue commandQueue
The CommandQueue to sending commands to the server.


crossfireServerConnection

@NotNull
private final CrossfireServerConnection crossfireServerConnection
The CrossfireServerConnection for sending commands to the server.


currentItem

@Nullable
private final AbstractLabel currentItem
The label to update with information about the selected item.


itemChangedListener

@NotNull
private final GUIElementChangedListener itemChangedListener
The GUIElementChangedListener attached to all GUIItemItem instances in the list.


itemItemFactory

@NotNull
private final GUIItemItemFactory itemItemFactory
The GUIItemItemFactory for creating new GUIItemItem instances.


itemView

@NotNull
private final ItemView itemView
The ItemView to monitor.


locationsListener

@NotNull
private final LocationsListener locationsListener
The LocationsListener to be notified about changes.


serialVersionUID

private static final long serialVersionUID
The serial version UID.

See Also:
Constant Field Values
Constructor Detail

GUIItemList

public GUIItemList(@NotNull
                   TooltipManager tooltipManager,
                   @NotNull
                   GUIElementListener elementListener,
                   @NotNull
                   CommandQueue commandQueue,
                   @NotNull
                   java.lang.String name,
                   @NotNull
                   Extent extent,
                   int cellWidth,
                   int cellHeight,
                   @NotNull
                   CrossfireServerConnection crossfireServerConnection,
                   @NotNull
                   ItemView itemView,
                   @Nullable
                   AbstractLabel currentItem,
                   @NotNull
                   GUIItemItemFactory itemItemFactory)
Creates a new instance.

Parameters:
tooltipManager - the tooltip manager to update
elementListener - the element listener to notify
commandQueue - the command queue for sending commands to the server
name - the name of this element
extent - the extent of this element
cellWidth - the width of cells
cellHeight - the height of cells
crossfireServerConnection - the crossfire server connection for sending commands to the server
itemView - the item view to monitor
currentItem - the label to update with information about the selected item.
itemItemFactory - the factory for creating item instances
Method Detail

activeChanged

protected void activeChanged()
Will be called whenever the active state has changed.

Specified by:
activeChanged in class ActivatableGUIElement

button1Clicked

private void button1Clicked(int modifiers)
Called if the user has clicked the left mouse button.

Parameters:
modifiers - the active modifiers

button2Clicked

private void button2Clicked(int modifiers)
Called if the user has clicked the middle mouse button.

Parameters:
modifiers - the active modifiers

button3Clicked

private void button3Clicked(int modifiers)
Called if the user has clicked the right mouse button.

Parameters:
modifiers - the active modifiers

dispose

public void dispose()
Releases all allocated resources.

Overrides:
dispose in class GUIList

getNumLookObjects

public int getNumLookObjects()
Returns the preferred number of objects to display.

Returns:
the number of objects

getSelectedItem

@Nullable
public GUIItemItem getSelectedItem()
Returns the selected GUIItemItem instance.

Returns:
the selected instance or null if none is selected

mouseClicked

public void mouseClicked(@NotNull
                         java.awt.event.MouseEvent e)
Will be called when the user has clicked (pressed+released) this element. This event will be delivered after GUIElement.mouseReleased(MouseEvent).

Overrides:
mouseClicked in class GUIList
Parameters:
e - the mouse event relative to this element

rebuildList

private void rebuildList(@Nullable
                         java.lang.Integer[] changedSlots)
Rebuilds the list cells.

Parameters:
changedSlots - the changed slots; null=all slots

selectionChanged

protected void selectionChanged(int selectedIndex)
Called whenever the selected list entry has changed.

Specified by:
selectionChanged in class GUIList
Parameters:
selectedIndex - the selected list entry

setChanged

private void setChanged(int index)
Marks one slot as modified.

Parameters:
index - the slot index

setChanged

private void setChanged(@Nullable
                        java.lang.Integer[] changedSlots,
                        int limit)
Marks some slots as modified.

Parameters:
changedSlots - the slots to mark as modified; null=all
limit - the limit; only slots less than this index are affected

updateTooltip

protected void updateTooltip(int index,
                             int x,
                             int y,
                             int w,
                             int h)
Updates the tooltip text.

Specified by:
updateTooltip in class GUIList
Parameters:
index - the index to use
x - the x coordinate of the cell
y - the y coordinate of the cell
w - the width of the cell
h - the height of the cell