001 package nl.cwi.sen1.gui.plugin.data;
002
003 import java.util.HashSet;
004 import java.util.Iterator;
005 import java.util.Set;
006
007 import javax.swing.event.TreeModelEvent;
008 import javax.swing.event.TreeModelListener;
009
010 public abstract class AbstractModuleTreeModel {
011 private Set<TreeModelListener> listeners = new HashSet<TreeModelListener>();
012
013 public void addTreeModelListener(TreeModelListener listener) {
014 listeners.add(listener);
015 }
016
017 public void removeTreeModelListener(TreeModelListener listener) {
018 listeners.remove(listener);
019 }
020
021 protected void fireTreeNodesChanged(TreeModelEvent e) {
022 Iterator<TreeModelListener> iter = listeners.iterator();
023 while (iter.hasNext()) {
024 TreeModelListener listener = iter.next();
025 listener.treeNodesChanged(e);
026 }
027 }
028
029 protected void fireTreeNodesInserted(TreeModelEvent e) {
030 Iterator<TreeModelListener> iter = listeners.iterator();
031 while (iter.hasNext()) {
032 TreeModelListener listener = iter.next();
033 listener.treeNodesInserted(e);
034 }
035 }
036
037 protected void fireTreeNodesRemoved(TreeModelEvent e) {
038 Iterator<TreeModelListener> iter = listeners.iterator();
039 while (iter.hasNext()) {
040 TreeModelListener listener = iter.next();
041 listener.treeNodesRemoved(e);
042 }
043 }
044
045 protected void fireTreeStructureChanged(TreeModelEvent e) {
046 Iterator<TreeModelListener> iter = listeners.iterator();
047 while (iter.hasNext()) {
048 TreeModelListener listener = iter.next();
049 listener.treeStructureChanged(e);
050 }
051 }
052 }