import java.util.ArrayList;import java.util.Iterator;import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent;public class PersonPlugin { private static PersonPlugin personPlugin; ArrayList<IPropertyChangeListener> myListeners = new ArrayList<IPropertyChangeListener>(); // A public method that allows listener registration public void addPropertyChangeListener(IPropertyChangeListener listener) { if (!myListeners.contains(listener)) myListeners.add(listener); } // A public method that allows listener registration public void removePropertyChangeListener(IPropertyChangeListener listener) { myListeners.remove(listener); } private PersonPlugin() { } public static PersonPlugin getInstance() { if (personPlugin == null) personPlugin = new PersonPlugin(); return personPlugin; } public void initAndInvoke(ArrayList listeners, Object obj) { // Post Invocation, inform listeners for (Iterator<IPropertyChangeListener> iter = myListeners.iterator(); iter .hasNext();) { IPropertyChangeListener element = (IPropertyChangeListener) iter .next(); element.propertyChange(new PropertyChangeEvent(this, "HelloRcpEvent", null, obj)); } } }
Usage: IPropertyChangeListener listener = new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { ... // code to deal with occurrence of property change } }; emitter.addPropertyChangeListener(listener); ... emitter.removePropertyChangeListener(listener);
import org.eclipse.jface.util.PropertyChangeEvent;public class PersonPlugin {
private static PersonPlugin personPlugin; ArrayList<IPropertyChangeListener> myListeners = new ArrayList<IPropertyChangeListener>(); // A public method that allows listener registration
public void addPropertyChangeListener(IPropertyChangeListener listener) {
if (!myListeners.contains(listener))
myListeners.add(listener);
} // A public method that allows listener registration
public void removePropertyChangeListener(IPropertyChangeListener listener) {
myListeners.remove(listener);
} private PersonPlugin() { } public static PersonPlugin getInstance() {
if (personPlugin == null)
personPlugin = new PersonPlugin();
return personPlugin;
} public void initAndInvoke(ArrayList listeners, Object obj) {
// Post Invocation, inform listeners
for (Iterator<IPropertyChangeListener> iter = myListeners.iterator(); iter
.hasNext();) {
IPropertyChangeListener element = (IPropertyChangeListener) iter
.next();
element.propertyChange(new PropertyChangeEvent(this,
"HelloRcpEvent", null, obj));
}
}
}
new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
... // code to deal with occurrence of property change
}
};
emitter.addPropertyChangeListener(listener);
...
emitter.removePropertyChangeListener(listener);