00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.spells;
00023
00024 import com.realtime.crossfire.jxclient.util.EventListenerList2;
00025 import org.jetbrains.annotations.NotNull;
00026 import org.jetbrains.annotations.Nullable;
00027
00032 public class CurrentSpellManager {
00033
00037 @NotNull
00038 private final EventListenerList2<CurrentSpellManagerListener> listeners = new EventListenerList2<CurrentSpellManagerListener>(CurrentSpellManagerListener.class);
00039
00043 @Nullable
00044 private Spell currentSpell = null;
00045
00050 public void setCurrentSpell(@Nullable final Spell spell) {
00051 if (currentSpell == spell) {
00052 return;
00053 }
00054
00055 currentSpell = spell;
00056 for (final CurrentSpellManagerListener listener : listeners.getListeners()) {
00057 listener.spellChanged(spell);
00058 }
00059 }
00060
00065 @Nullable
00066 public Spell getCurrentSpell() {
00067 return currentSpell;
00068 }
00069
00075 public void addSpellListener(@NotNull final CurrentSpellManagerListener listener) {
00076 listeners.add(listener);
00077 }
00078
00083 public void removeSpellListener(@NotNull final CurrentSpellManagerListener listener) {
00084 listeners.remove(listener);
00085 }
00086
00087 }