1 package com.ontotext.gate.vr;
2
3 import javax.swing.tree.TreePath;
4 import javax.swing.event.TreeModelListener;
5 import javax.swing.tree.*;
6 import javax.swing.event.TreeModelEvent;
7 import java.util.Vector;
8
9
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 if( leaf.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 }