1
4
5 import org.aswing.events.ListDataEvent;
6 import org.aswing.events.ListDataListener;
7 import org.aswing.utils.ArrayUtils;
8
9
12 class org.aswing.AbstractListModel{
13 private var listeners:Array;
14
15 public function AbstractListModel(){
16 listeners = new Array();
17 }
18
19 public function addListDataListener(l:ListDataListener):Void {
20 listeners.push(l);
21 }
22
23 public function removeListDataListener(l:ListDataListener):Void {
24 ArrayUtils.removeFromArray(listeners, l);
25 }
26
27 private function fireContentsChanged(target:Object, index0:Number, index1:Number):Void
28 {
29 var e:ListDataEvent = new ListDataEvent(target, ListDataEvent.CONTENTS_CHANGED, index0, index1);
30
31 for (var i:Number = listeners.length - 1; i >= 0; i --) {
32 var lis:ListDataListener = ListDataListener(listeners[i]);
33 lis.contentsChanged(e);
34 }
35 }
36
37
38
39 private function fireIntervalAdded(target:Object, index0:Number, index1:Number):Void
40 {
41 var e:ListDataEvent = new ListDataEvent(target, ListDataEvent.INTERVAL_ADDED, index0, index1);
42
43 for (var i:Number = listeners.length - 1; i >= 0; i --) {
44 var lis:ListDataListener = ListDataListener(listeners[i]);
45 lis.intervalAdded(e);
46 }
47 }
48
49
50
51 private function fireIntervalRemoved(target:Object, index0:Number, index1:Number):Void
52 {
53 var e:ListDataEvent = new ListDataEvent(target, ListDataEvent.INTERVAL_REMOVED, index0, index1);
54
55 for (var i:Number = listeners.length - 1; i >= 0; i --) {
56 var lis:ListDataListener = ListDataListener(listeners[i]);
57 lis.intervalRemoved(e);
58 }
59 }
60 }
61