View Javadoc

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    * Default implementation of the <code>DotMatrixDisplayModel</code>.
9    * 
10   * @author Jesse Peterson
11   */
12  public class DefaultDotMatrixDisplayModel implements DotMatrixDisplayModel {
13  
14  	protected EventListenerList listenerList = new EventListenerList();
15  
16  	private String text = "";
17  
18  	public String getText() {
19  		return text;
20  	}
21  
22  	public void setText(String text) {
23  		if (!this.text.equals(text)) {
24  			this.text = text;
25  			fireStateChanged();
26  		}
27  
28  	}
29  
30  	public void addChangeListener(ChangeListener l) {
31  		listenerList.add(ChangeListener.class, l);
32  	}
33  
34  	public void removeChangeListener(ChangeListener l) {
35  		listenerList.remove(ChangeListener.class, l);
36  	}
37  
38  	/**
39  	 * Runs each <code>ChangeListener</code>'s <code>stateChanged</code>
40  	 * method.
41  	 */
42  	protected void fireStateChanged() {
43  		ChangeEvent event = new ChangeEvent(this);
44  		Object[] listeners = listenerList.getListenerList();
45  		for (int i = listeners.length - 2; i >= 0; i -= 2) {
46  			if (listeners[i] == ChangeListener.class) {
47  				((ChangeListener) listeners[i + 1]).stateChanged(event);
48  			}
49  		}
50  	}
51  
52  	/**
53  	 * Returns an array of all the change listeners registered on this
54  	 * <code>DefaultBoundedRangeModel</code>.
55  	 * 
56  	 * @return all of this model's <code>ChangeListener</code>s or an empty
57  	 *         array if no change listeners are currently registered
58  	 * 
59  	 * @see #addChangeListener
60  	 * @see #removeChangeListener
61  	 */
62  	public ChangeListener[] getChangeListeners() {
63  		return (ChangeListener[]) listenerList
64  				.getListeners(ChangeListener.class);
65  	}
66  }