KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > base > entitylist > EntityManagementOrdinaryComposite


1 /*
2  * Created on Jun 1, 2005
3  *
4  */

5 package com.nightlabs.base.entitylist;
6
7 import java.util.HashSet JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import java.util.Set JavaDoc;
10
11 import org.eclipse.swt.widgets.Composite;
12
13 import com.nightlabs.rcp.composite.OrdinaryWrapperComposite;
14
15 /**
16  * @author Niklas Schiffler <nick@nightlabs.de>
17  *
18  */

19 public abstract class EntityManagementOrdinaryComposite extends OrdinaryWrapperComposite implements EntityManager
20 {
21     protected Set JavaDoc dataChangedListeners;
22     
23     public EntityManagementOrdinaryComposite(Composite parent, int style)
24     {
25         this(parent, style, false);
26     }
27
28     public EntityManagementOrdinaryComposite(Composite parent, int style, boolean doSetLayoutData)
29     {
30         super(parent, style, doSetLayoutData);
31         dataChangedListeners = new HashSet JavaDoc();
32     }
33
34     /**
35    * Call this when you modified the entity object.
36    *
37    */

38   public void notifyDataChangedListeners()
39   {
40     Iterator JavaDoc i = dataChangedListeners.iterator();
41     while(i.hasNext())
42         ((EntityDataChangedListener)i.next()).entityDataChanged(this);
43   }
44
45   /**
46    * Listen for modifications of the entity object
47    * @param listener your listener
48    */

49   public void addDataChangedListener(EntityDataChangedListener listener)
50   {
51     if(!dataChangedListeners.contains(listener))
52         dataChangedListeners.add(listener);
53   }
54
55   /**
56    * Remove a listener
57    * @param listener the listener
58    */

59   public void removeDataChangedListener(EntityDataChangedListener listener)
60   {
61     if(dataChangedListeners.contains(listener))
62         dataChangedListeners.remove(listener);
63   }
64     
65     private boolean changed = false;
66     
67     public void setChanged(boolean changed) {
68         this.changed = changed;
69         if (changed)
70             notifyDataChangedListeners();
71     }
72     
73     public boolean isChanged() {
74         return changed;
75     }
76     
77   public void dispose()
78   {
79     super.dispose();
80     dataChangedListeners.clear();
81     dataChangedListeners = null;
82   }
83 }
84
Popular Tags