1 package charactermanaj.ui.model;
\r
3 import javax.swing.event.EventListenerList;
\r
5 import charactermanaj.model.CharacterData;
\r
9 * お気に入りが変更されたことを通知するためのメカニズム.<br>
\r
14 public abstract class FavoritesChangeObserver {
\r
16 private static FavoritesChangeObserver defobj = new FavoritesChangeObserverImpl();
\r
18 public static FavoritesChangeObserver getDefault() {
\r
22 public abstract void addFavoritesChangeListener(FavoritesChangeListener l);
\r
24 public abstract void removeFavoritesChangeListener(FavoritesChangeListener l);
\r
26 public abstract void notifyFavoritesChange(FavoritesChangeEvent e);
\r
28 public void notifyFavoritesChange(Object wnd, CharacterData cd) {
\r
30 throw new IllegalArgumentException();
\r
32 notifyFavoritesChange(new FavoritesChangeEvent(wnd, cd));
\r
36 class FavoritesChangeObserverImpl extends FavoritesChangeObserver {
\r
38 private EventListenerList listeners = new EventListenerList();
\r
41 public void addFavoritesChangeListener(FavoritesChangeListener l) {
\r
42 listeners.add(FavoritesChangeListener.class, l);
\r
46 public void removeFavoritesChangeListener(FavoritesChangeListener l) {
\r
47 listeners.remove(FavoritesChangeListener.class, l);
\r
51 public void notifyFavoritesChange(FavoritesChangeEvent e) {
\r
53 throw new IllegalArgumentException();
\r
55 FavoritesChangeListener[] lst = listeners
\r
56 .getListeners(FavoritesChangeListener.class);
\r
57 for (FavoritesChangeListener l : lst) {
\r
58 l.notifyChangeFavorites(e);
\r