22 package com.realtime.crossfire.jxclient.gui.item;
39 import java.awt.Dimension;
40 import java.awt.Image;
41 import org.jetbrains.annotations.NotNull;
42 import org.jetbrains.annotations.Nullable;
59 private final Object
sync =
new Object();
121 public void spellAdded(
final int index) {
128 public void spellRemoved(
final int index) {
149 public void faceUpdated(@NotNull
final Face face) {
150 if (spell != null && spell.
getFaceNum() == face.getFaceNum()) {
172 public GUIItemSpell(@NotNull
final TooltipManager tooltipManager, @NotNull
final GUIElementListener elementListener, @NotNull
final CommandQueue commandQueue, @NotNull
final String
name, @NotNull
final ItemPainter itemPainter,
final int defaultIndex, @NotNull
final FacesManager facesManager, @NotNull
final SpellsManager spellsManager, @NotNull
final CurrentSpellManager currentSpellManager, @NotNull
final ItemView spellsView,
final int size) {
173 super(tooltipManager, elementListener, name, itemPainter, facesManager);
180 this.spellsManager.addCrossfireSpellChangedListener(spellsManagerListener);
181 this.facesManager.addFacesManagerListener(facesManagerListener);
207 return index >= -distance;
211 return index+distance < spellsManager.
getSpells();
313 return new Dimension(32, 32);
322 if (spell == newSpell) {
347 if (this.index == index) {
369 if (this.selected == selected) {
390 synchronized (
sync) {
400 synchronized (
sync) {
final SpellListener spellListener
The SpellListener attached to spell.
Listener for GUIElement related events.
static Dimension getMinimumSizeInt()
Returns the minimal size to display this component.
ImageIcon getOriginalImageIcon(int faceNum, @Nullable boolean[] isUnknownImage)
Returns the "original" face for a face ID.
final TooltipManager tooltipManager
The TooltipManager to update.
String getName()
Returns the spell name.
Image getFace(@NotNull final CfItem item)
void sendNcom(final boolean mustSend, @NotNull final String command)
Sends an "ncom" command to the server.
final GUIElementListener elementListener
The GUIElementListener to notify.
final Object sync
The object used for synchronization on index.
void setIndex(final int index)
Sets the index of the currently selected spell.
static final int SHIFT
The mask for "shift".
void setChanged()
Records that the contents have changed and must be repainted.
Interface for listeners interested in SpellsManager events.
void button1Clicked(final int modifiers)
int getSpells()
Returns the number of known spells.
void button3Clicked(final int modifiers)
final SpellsManager spellsManager
The SpellsManager instance to watch.
void setItemNoListeners(@Nullable final CfItem item)
Sets the current item instance without registering listeners for updates.
Manages image information ("faces") needed to display the map view, items, and spell icons...
int getFaceNum()
Returns the face number.
Manages all known spells.
A GUIElement instance representing an in-game item.
void dispose()
Releases all allocated resources.
boolean selected
Whether this element is selected in its GUISpellList.
boolean canScroll(final int distance)
Returns whether scrolling is possible.the distance to scroll whether scrolling is possible ...
final CurrentSpellManager currentSpellManager
The CurrentSpellManager to update when a spell is selected.
A GUIItemItem that represents an entry in a GUISpellList.
static final long serialVersionUID
The serial version UID.
final String name
The name of this element.
final CommandQueue commandQueue
The command queue for sending commands.
GUIItemSpell(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final CommandQueue commandQueue, @NotNull final String name, @NotNull final ItemPainter itemPainter, final int defaultIndex, @NotNull final FacesManager facesManager, @NotNull final SpellsManager spellsManager, @NotNull final CurrentSpellManager currentSpellManager, @NotNull final ItemView spellsView, final int size)
Creates a new instance.
void removeCrossfireSpellChangedListener(@NotNull final SpellsManagerListener listener)
Removes a SpellsManagerListener to notify about changes.
void addSpellListener(@NotNull final SpellListener listener)
Adds a SpellListener to be notified of changes.
Helper functions for keyboard modifiers.
Manages the currently selected spell.
void setSelected(final boolean selected)
Describes a Crossfire spell.
void setIndexNoListeners(final int index)
void resetScroll()
Resets the scroll index to the default value.
Interface for listeners interested in FacesManager events.
Spell spell
The currently selected spell or.
void setTooltipText(@Nullable final String tooltipText)
Sets the tooltip text to show when the mouse is inside this element.the text to show ornull to disab...
String getTooltipText()
Returns a description for this spell to be used in tooltips.
static final int CTRL
The mask for "ctrl".
final ItemView spellsView
The spells view to use.
Dimension getPreferredSize()
void setCurrentSpell(@Nullable final Spell spell)
Sets the currently selected spell.
static final int NONE
The mask for "no modifier".
final int defaultIndex
The default scroll index.
static final int MASK
The mask for all used modifiers.
CfItem item
The current item instance.
final SpellsManagerListener spellsManagerListener
The SpellsManagerListener used to detect spell changes.
final ItemPainter itemPainter
The ItemPainter for painting the icon.
void removeSpellListener(@NotNull final SpellListener listener)
Removes a SpellListener to be notified of changes.
void setSpell()
Sets the currently selected spell.
CfItem getItem(int index)
Returns the CfItem in a given slot.
Maintains the pending (ncom) commands sent to the server.
Dimension getMinimumSize()
void removeFacesManagerListener(@NotNull FacesManagerListener facesManagerListener)
Removes a FacesManagerListener to be notified about updated faces.
A GUIList to display spells.
The representation of a Crossfire Item, client-side.
int index
The currently selected spell or.
Paints Crossfire item images.
void scroll(final int distance)
Scrolls the element.the distance to scroll
final FacesManagerListener facesManagerListener
The FacesManagerListener registered to detect updated faces.
final FacesManager facesManager
The FacesManager for looking up faces.
Spell getSpell(@NotNull final String spellName)
Returns a Spell instance by spell name.
boolean isActive()
Returns whether a GUI element is active.
void button2Clicked(final int modifiers)
Interface for listeners interested in Spell related events.
Maintains a mapping of face numbers to face data.