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 }