22 package com.realtime.crossfire.jxclient.gui.list;
37 import org.jetbrains.annotations.NotNull;
38 import org.jetbrains.annotations.Nullable;
129 public GUISpellList(@NotNull
final TooltipManager tooltipManager, @NotNull
final GUIElementListener elementListener, @NotNull
final String name,
final int cellWidth,
final int cellHeight, @NotNull
final ItemView itemView, @Nullable
final AbstractLabel currentItem, @NotNull
final SpellsManager spellsManager, @NotNull
final KeybindingsManager keybindingsManager, @NotNull
final CommandQueue commandQueue, @NotNull
final ItemPainter itemPainter, @NotNull
final FacesManager facesManager, @NotNull
final CurrentSpellManager currentSpellManager) {
130 super(tooltipManager, elementListener, name, cellWidth, cellHeight, itemView, currentItem,
new GUIItemSpell(tooltipManager, elementListener, commandQueue, name+
"_template", itemPainter, -1, facesManager, spellsManager, currentSpellManager, itemView, cellHeight));
152 private String
getBindings(@NotNull
final Spell spell, @NotNull
final String prefix, @NotNull
final String legend) {
153 final String search = prefix+spell.getName().charAt(0);
154 final String match = prefix+spell.getName();
160 boolean first =
true;
161 final StringBuilder sb =
new StringBuilder();
164 if (match.startsWith(binding.getCommandString())) {
172 sb.append(binding.getBindingDescription());
176 return sb.toString();
180 protected void updateTooltip(
final int index,
final int x,
final int y,
final int w,
final int h) {
183 setTooltipText(null, x, y, w, h);
188 final StringBuilder sb =
new StringBuilder(spell.
getTooltipText());
191 sb.append(
getBindings(spell,
"cast ",
"<br>Cast shortcut: "));
192 sb.append(
getBindings(spell,
"invoke ",
"<br>Invoke shortcut:"));
194 setTooltipText(sb.toString(), x, y, w, h);
203 return new GUIItemSpell(tooltipManager, elementListener, commandQueue, name+index, itemPainter, index, facesManager, spellsManager, currentSpellManager, itemView, 0);
Listener for GUIElement related events.
Abstract base class for all label classes.
Iterable< KeyBinding > getBindingsForPartialCommand(@NotNull final String command, final boolean startOnly)
Searches bindings having a command text starting with the specified value.
void updateTooltip(final int index, final int x, final int y, final int w, final int h)
final GUIElementListener elementListener
The GUIElementListener to notify.
final TooltipManager tooltipManager
The TooltipManager to update.
GUIItemSpell newItem(final int index)
final ItemPainter itemPainter
The ItemPainter for painting the icon.
Manages image information ("faces") needed to display the map view, items, and spell icons...
Manages all known spells.
GUISpellList(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, final int cellWidth, final int cellHeight, @NotNull final ItemView itemView, @Nullable final AbstractLabel currentItem, @NotNull final SpellsManager spellsManager, @NotNull final KeybindingsManager keybindingsManager, @NotNull final CommandQueue commandQueue, @NotNull final ItemPainter itemPainter, @NotNull final FacesManager facesManager, @NotNull final CurrentSpellManager currentSpellManager)
Creates a new instance.
String getBindings(@NotNull final Spell spell, @NotNull final String prefix, @NotNull final String legend)
Return a text with the keybindings for the spell.
final CommandQueue commandQueue
The CommandQueue for sending commands.
A GUIItemItem that represents an entry in a GUISpellList.
Manages the currently selected spell.
Describes a Crossfire spell.
A GUIList instance that displays GUIItemItem instances.
String getTooltipText()
Returns a description for this spell to be used in tooltips.
final KeybindingsManager keybindingsManager
The keybinding for displaying shortcuts.
final ItemView itemView
The ItemView to use.
final String name
The base name for created elements.
static final long serialVersionUID
The serial version UID.
final CurrentSpellManager currentSpellManager
The CurrentSpellManager to update when a spell is selected.
Abstract base class for key bindings.
Maintains the pending (ncom) commands sent to the server.
A GUIList to display spells.
Paints Crossfire item images.
final SpellsManager spellsManager
The spells to display.
Spell getSpell(@NotNull final String spellName)
Returns a Spell instance by spell name.
final AbstractLabel currentItem
The label to update with information about the selected item.
Maintains a mapping of face numbers to face data.
final FacesManager facesManager
The FacesManager to use.