1 package debugger.gui.resources;
2
3 import gate.*;
4 import gate.jape.SinglePhaseTransducer;
5
6 import javax.swing.tree.DefaultMutableTreeNode;
7 import javax.swing.tree.DefaultTreeModel;
8 import javax.swing.tree.TreeNode;
9 import java.util.*;
10
11 import debugger.resources.pr.PrModel;
12 import debugger.resources.lr.LrModel;
13
14
20 public class ResourceTreeModel extends DefaultTreeModel {
21 private static int DebugLevel = 4;
22 private DefaultMutableTreeNode prResources;
23 private DefaultMutableTreeNode lrResources;
24
25
29 private ResourceTreeModel(TreeNode newRoot) {
30 super(newRoot);
31 }
32
33
34 public ResourceTreeModel() {
35 super(createNewNode("Resources"));
36 prResources = createNewNode("Processing Resources");
37 ((DefaultMutableTreeNode) getRoot()).add(prResources);
38 lrResources = createNewNode("Language Resources");
39 ((DefaultMutableTreeNode) getRoot()).add(lrResources);
40 }
42
43 public static DefaultMutableTreeNode createNewNode(String name) {
44 if (null == name) {
45 name = "Undefined name";
46 }
47 return new DefaultMutableTreeNode(new String(name));
48 }
49
50 public Enumeration getPRResources() {
51 return prResources.children();
52 }
53
54 public Enumeration getLrResources() {
55 return lrResources.children();
56 }
57
58 public PrModel getPRResource(ProcessingResource pr) {
59 Enumeration prEnum = prResources.children();
60 while (prEnum.hasMoreElements()) {
61 PrModel prModel = (PrModel) prEnum.nextElement();
62 if (prModel.getProcessingResource().equals(pr)) {
63 return prModel;
64 }
65 }
66 return null;
67 }
68
69 public PrModel getPRResource(String phaseName) {
70 Enumeration prEnum = prResources.children();
71 while (prEnum.hasMoreElements()) {
72 PrModel pr = (PrModel) prEnum.nextElement();
73 if (pr.getName().equals(phaseName)) {
74 return pr;
75 }
76 }
77 return null;
78 }
79
80 public PrModel getPRResource(SinglePhaseTransducer spt) {
81 if (DebugLevel >= 5) {
82 System.out.print("DEBUG [" + this.getClass().getName() + "]: ");
83 System.out.println("getPrResource(SinglePhaseTransducer): SPT name [" + spt.getName() + "] child count = " + prResources.getChildCount());
84 }
85 Enumeration prEnum = prResources.children();
86 while (prEnum.hasMoreElements()) {
87 PrModel pr = (PrModel) prEnum.nextElement();
88 if (null != pr.getPhase(spt)) {
89 return pr;
90 }
91 }
92 return null;
93 }
94
95 public LrModel getLRResource(LanguageResource lr) {
96 Enumeration lrEnum = lrResources.children();
97 while (lrEnum.hasMoreElements()) {
98 LrModel model = (LrModel) lrEnum.nextElement();
99 if (model.getLr().equals(lr)) {
100 return model;
101 }
102 }
103 return null;
104 }
105
106 public DefaultMutableTreeNode getPRResourcesNode() {
107 return prResources;
108 }
109
110 public DefaultMutableTreeNode getLRResourcesNode() {
111 return lrResources;
112 }
113
114 public void reloadProcessingResource(ProcessingResource resource) {
115 this.reload();
118 }
119 }
120
121