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    }