1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.cb.cardboard;
21
22 import java.util.List;
23 import java.util.ArrayList;
24
25 /***
26 * Abstract CardBoardModel implementation.
27 *
28 * Provides methods to register remove listeners.
29 *
30 * @author jerome@coffeebreaks.org - last modified by $LastModifiedBy$
31 * @version $Id: AbstractCardBoardModel.java 83 2004-04-13 13:51:09Z jerome $
32 */
33 public abstract class AbstractCardBoardModel implements CardBoardModel
34 {
35 /*** the list of listeners. */
36 private final List _boardListeners = new ArrayList();
37
38
39 /***
40 * Adds the specified listener to the instance's listener's list.
41 * @param listener the listener to add
42 */
43 public void addBoardDataListener(final CardBoardModelListener listener)
44 {
45 _boardListeners.add(listener);
46 }
47
48 /***
49 * Removes the specified listener to the instance's listener's list.
50 * @param listener the listener to remove
51 */
52 public void removeBoardDataListener(final CardBoardModelListener listener)
53 {
54 _boardListeners.remove(listener);
55 }
56
57 /***
58 * Fire the specified contents changed event
59 * @param event
60 * @see CardBoardModelListener#contentsChanged(org.cb.cardboard.CardBoardEvent)
61 */
62 protected final void fireContentsChanged(final CardBoardEvent event)
63 {
64 if (_boardListeners != null)
65 {
66 for (int i = 0; i < _boardListeners.size(); i++)
67 {
68 final CardBoardModelListener boardListenerIF = (CardBoardModelListener) _boardListeners.get(i);
69 boardListenerIF.contentsChanged(event);
70 }
71 }
72 }
73
74 /***
75 * Fire the specified interval added event
76 * @param event
77 * @see CardBoardModelListener#intervalAdded(org.cb.cardboard.CardBoardEvent)
78 */
79 protected final void fireIntervalAdded(final CardBoardEvent event)
80 {
81 if (_boardListeners != null)
82 {
83 for (int i = 0; i < _boardListeners.size(); i++)
84 {
85 final CardBoardModelListener boardListenerIF = (CardBoardModelListener) _boardListeners.get(i);
86 boardListenerIF.intervalAdded(event);
87 }
88 }
89 }
90
91 /***
92 * Fire the specified interval removed event
93 * @param event
94 * @see CardBoardModelListener#intervalRemoved(org.cb.cardboard.CardBoardEvent)
95 */
96 protected final void fireIntervalRemoved(final CardBoardEvent event)
97 {
98 if (_boardListeners != null)
99 {
100 for (int i = 0; i < _boardListeners.size(); i++)
101 {
102 final CardBoardModelListener boardListenerIF = (CardBoardModelListener) _boardListeners.get(i);
103 boardListenerIF.intervalRemoved(event);
104 }
105 }
106 }
107 }