OntoTreeModel.java
01 package com.ontotext.gate.vr;
02 
03 import javax.swing.tree.TreePath;
04 import javax.swing.event.TreeModelListener;
05 import javax.swing.tree.*;
06 import javax.swing.event.TreeModelEvent;
07 import java.util.Vector;
08 
09 /**A Tree Model used for the tree view of an ontology.
10  @author Miroslav Goranov*/
11 
12 
13 public class OntoTreeModel implements TreeModel {
14 
15   private IFolder root;
16   private Vector treeModelListeners = new Vector();
17 
18   public OntoTreeModel(IFolder root) {
19       this.root = root;
20   }
21 
22   public Object getRoot() {
23     return root;
24   }
25 
26   public Object getChild(Object parent, int index) {
27       IFolder parentFolder=(IFolder)parent;
28       IFolder child = parentFolder.getChild(index);
29       return child;
30 
31   }
32 
33   public int getChildCount(Object parent) {
34     IFolder parentFolder=(IFolder)parent;
35     return parentFolder.getChildCount();
36   }
37 
38   public boolean isLeaf(Object node) {
39     boolean result = false;
40     IFolder leaf = IFolder)node;
41     ifleaf.getChildCount() == 0){
42        result = true;
43     }
44     return result;
45   }
46 
47   public void valueForPathChanged(TreePath path, Object newValue) {
48   }
49 
50   public int getIndexOfChild(Object parent, Object child) {
51       IFolder fold=(IFolder)parent;
52       return fold.getIndexOfChild(child);
53   }
54 
55   public void addTreeModelListener(TreeModelListener l) {
56     treeModelListeners.add(l);
57   }
58 
59   public void removeTreeModelListener(TreeModelListener l) {
60       treeModelListeners.removeElement(l);
61   }
62 
63   protected void fireTreeStructureChanged(IFolder oldRoot) {
64         int len = treeModelListeners.size();
65         TreeModelEvent e = new TreeModelEvent(this,
66                                               new Object[] {oldRoot});
67         for (int i = 0; i < len; i++) {
68             ((TreeModelListener)treeModelListeners.elementAt(i)).
69                     treeStructureChanged(e);
70         }
71     }
72 }