1 package charactermanaj.model;
\r
3 import javax.swing.event.EventListenerList;
\r
7 * キャラクターデータが変更されたことを通知するためのメカニズム
\r
12 public abstract class CharacterDataChangeObserver {
\r
14 private static CharacterDataChangeObserver inst = new CharacterDataChangeObserverImpl();
\r
16 public static CharacterDataChangeObserver getDefault() {
\r
20 public abstract void addCharacterDataChangeListener(
\r
21 CharacterDataChangeListener l);
\r
23 public abstract void removeCharacterDataChangeListener(
\r
24 CharacterDataChangeListener l);
\r
26 public abstract void notifyCharacterDataChange(CharacterDataChangeEvent e);
\r
28 public void notifyCharacterDataChange(Object wnd, CharacterData cd,
\r
29 boolean changeStructure, boolean reloadPartsAndFavorites) {
\r
31 throw new IllegalArgumentException();
\r
33 notifyCharacterDataChange(new CharacterDataChangeEvent(wnd, cd,
\r
34 changeStructure, reloadPartsAndFavorites));
\r
38 class CharacterDataChangeObserverImpl extends CharacterDataChangeObserver {
\r
40 private EventListenerList listeners = new EventListenerList();
\r
43 public void addCharacterDataChangeListener(CharacterDataChangeListener l) {
\r
44 listeners.add(CharacterDataChangeListener.class, l);
\r
48 public void removeCharacterDataChangeListener(CharacterDataChangeListener l) {
\r
49 listeners.remove(CharacterDataChangeListener.class, l);
\r
53 public void notifyCharacterDataChange(CharacterDataChangeEvent e) {
\r
55 throw new IllegalArgumentException();
\r
57 CharacterDataChangeListener[] lst = listeners
\r
58 .getListeners(CharacterDataChangeListener.class);
\r
59 for (CharacterDataChangeListener l : lst) {
\r
60 l.notifyChangeCharacterData(e);
\r