1 package com.jpeterson.virtlcd.swing;
2
3 import javax.swing.event.ChangeEvent;
4 import javax.swing.event.ChangeListener;
5 import javax.swing.event.EventListenerList;
6
7
8
9
10
11
12 public class DefaultDotMatrixModel implements DotMatrixModel {
13
14
15
16
17 public static final char DEFAULT_CHAR = ' ';
18
19 private char c = DEFAULT_CHAR;
20
21 protected EventListenerList listenerList = new EventListenerList();
22
23 public char getChar() {
24 return c;
25 }
26
27 public void setChar(char c) {
28 if (this.c != c) {
29 this.c = c;
30 fireStateChanged();
31 }
32 }
33
34 public void addChangeListener(ChangeListener l) {
35 listenerList.add(ChangeListener.class, l);
36 }
37
38 public void removeChangeListener(ChangeListener l) {
39 listenerList.remove(ChangeListener.class, l);
40 }
41
42
43
44
45
46 protected void fireStateChanged() {
47 ChangeEvent event = new ChangeEvent(this);
48 Object[] listeners = listenerList.getListenerList();
49 for (int i = listeners.length - 2; i >= 0; i -= 2) {
50 if (listeners[i] == ChangeListener.class) {
51 ((ChangeListener) listeners[i + 1]).stateChanged(event);
52 }
53 }
54 }
55
56
57
58
59
60
61
62
63
64
65
66 public ChangeListener[] getChangeListeners() {
67 return (ChangeListener[]) listenerList
68 .getListeners(ChangeListener.class);
69 }
70 }