package org.docear.plugin.core.workspace.node.config; import java.net.URI; import java.util.HashSet; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class NodeAttributeObserver { private final HashSet<ChangeListener> listeners = new HashSet<ChangeListener>(); private URI uri = null; public NodeAttributeObserver() { } public void addChangeListener(ChangeListener listener) { if(listener == null) { return; } this.listeners.clear(); this.listeners.add(listener); } public void removeChangeListener(ChangeListener listener) { this.listeners.remove(listener); } public URI getUri() { return uri; } public void setUri(URI uri) { this.uri = uri; fireValueChanged(); } private void fireValueChanged() { ChangeEvent event = new ChangeEvent(this); for(ChangeListener listener : listeners) { listener.stateChanged(event); } } public void reset() { this.uri = null; } }