Crossfire JXClient, Trunk  R20561
GUISpellLabel.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff.
19  * Copyright (C) 2006-2011 Andreas Kirschbaum.
20  */
21 
22 package com.realtime.crossfire.jxclient.gui.label;
23 
30 import java.awt.Color;
31 import java.awt.Font;
32 import java.awt.image.BufferedImage;
33 import org.jetbrains.annotations.NotNull;
34 import org.jetbrains.annotations.Nullable;
35 
40 public class GUISpellLabel extends GUIHTMLLabel {
41 
45  private static final long serialVersionUID = 1;
46 
50  @NotNull
51  private final FacesManager facesManager;
52 
56  @NotNull
57  private final Type type;
58 
62  @NotNull
64 
69  @NotNull
71 
72  @Override
73  public void spellChanged(@Nullable final Spell spell) {
74  if (spell == null) {
75  setText("");
76  return;
77  }
78 
79  switch (type) {
80  case SPELL_NAME:
81  setText(spell.getName());
82  break;
83 
84  case SPELL_ICON:
85  setText("");
86  setBackgroundImage(facesManager.getOriginalImageIcon(spell.getFaceNum(), null));
87  break;
88 
89  case SPELL_COST:
90  final int mana = spell.getMana();
91  final int grace = spell.getGrace();
92  if (grace == 0) {
93  setText("M:"+mana);
94  } else if (mana == 0) {
95  setText("G:"+grace);
96  } else {
97  setText("M:"+mana+" G:"+grace);
98  }
99  break;
100 
101  case SPELL_LEVEL:
102  setText(Integer.toString(spell.getLevel()));
103  break;
104 
105  case SPELL_DESCRIPTION:
106  setText(spell.getMessage());
107  break;
108  }
109  }
110 
111  };
112 
125  public GUISpellLabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @Nullable final BufferedImage picture, @NotNull final FacesManager facesManager, @NotNull final Font font, @NotNull final Type type, @NotNull final CurrentSpellManager currentSpellManager) {
126  super(tooltipManager, elementListener, name, picture, font, Color.WHITE, null, "");
127  this.facesManager = facesManager;
128  this.type = type;
129  this.currentSpellManager = currentSpellManager;
130  this.currentSpellManager.addSpellListener(currentSpellManagerListener);
131  }
132 
136  @Override
137  public void dispose() {
138  super.dispose();
139  currentSpellManager.removeSpellListener(currentSpellManagerListener);
140  }
141 
142 }
void setText(@NotNull final String text)
The label text.
ImageIcon getOriginalImageIcon(int faceNum, @Nullable boolean[] isUnknownImage)
Returns the "original" face for a face ID.
final TooltipManager tooltipManager
The TooltipManager to update.
void dispose()
Releases all allocated resources.
final FacesManager facesManager
The instance for looking up faces.
Interface for listeners interested in CurrentSpellManager related events.
static final long serialVersionUID
The serial version UID.
Manages image information ("faces") needed to display the map view, items, and spell icons...
final GUIElementListener elementListener
The GUIElementListener to notify.
final Type type
The spell type to display.
void addSpellListener(@NotNull final CurrentSpellManagerListener listener)
Adds a spell listener to be notified if the current spell object has changed.
Describes a Crossfire spell.
Definition: Spell.java:36
void removeSpellListener(@NotNull final CurrentSpellManagerListener listener)
Removes a spell listener.
final CurrentSpellManagerListener currentSpellManagerListener
The CurrentSpellManagerListener registered to be notified about changed spell parameters.
final CurrentSpellManager currentSpellManager
The CurrentSpellManager to monitor.
void setBackgroundImage(@Nullable final ImageIcon backgroundImage)
Sets the background image.
A GUIHTMLLabel that displays the currently selected spell.
GUISpellLabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @Nullable final BufferedImage picture, @NotNull final FacesManager facesManager, @NotNull final Font font, @NotNull final Type type, @NotNull final CurrentSpellManager currentSpellManager)
Creates a new instance.
Implements an AbstractLabel that displays HTML contents.
Maintains a mapping of face numbers to face data.