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.shortcuts;
00023
00024 import com.realtime.crossfire.jxclient.faces.Face;
00025 import com.realtime.crossfire.jxclient.util.EventListenerList2;
00026 import org.jetbrains.annotations.NotNull;
00027
00032 public abstract class Shortcut {
00033
00037 @NotNull
00038 private final EventListenerList2<ShortcutListener> listeners = new EventListenerList2<ShortcutListener>(ShortcutListener.class);
00039
00043 public abstract void dispose();
00044
00048 public abstract void execute();
00049
00054 public void addShortcutListener(@NotNull final ShortcutListener listener) {
00055 listeners.add(listener);
00056 }
00057
00062 public void removeShortcutListener(@NotNull final ShortcutListener listener) {
00063 listeners.add(listener);
00064 }
00065
00069 protected void fireModifiedEvent() {
00070 for (final ShortcutListener listener : listeners.getListeners()) {
00071 listener.shortcutModified();
00072 }
00073 }
00074
00079 @NotNull
00080 public abstract String getTooltipText();
00081
00087 public abstract void visit(@NotNull final ShortcutVisitor visitor);
00088
00094 public abstract boolean displaysFace(final Face face);
00095
00096 }