1
2
3
4
5
6
7 package com.vikash.firsttool.UI;
8 import com.vikash.firsttool.Diagram.*;
9 import javax.swing.event.*;
10 import javax.swing.tree.*;
11 import java.util.*;
12 /***
13 *
14 * @author studajb
15 */
16 public class DiagramTreeModel extends DefaultTreeModel {
17
18 SWOTDiagramType SWOTdiagrams= new SWOTDiagramType();
19 AssetDiagramType Assetdiagrams= new AssetDiagramType();
20 UnwantedIncidentDiagramType Unwanteddiagrams= new UnwantedIncidentDiagramType();
21 RiskDiagramType Riskdiagrams= new RiskDiagramType();
22 TreatmentDiagramType Treatmentdiagrams= new TreatmentDiagramType();
23 TreatmentEffectDiagramType TreatmentEffectdiagrams= new TreatmentEffectDiagramType();
24 DiagramTreePane Diagramtree;
25 DefaultMutableTreeNode root;
26 boolean changed;
27 /*** Creates a new instance of DiagramTreeModel */
28 public DiagramTreeModel(DefaultMutableTreeNode root,DiagramTreePane tree) {
29 super(root);
30 this.Diagramtree=tree;
31 addTreeModelListener(new DiagramTreeModelListener());
32 addElementTypes(root);
33 }
34 public void addElementTypes(DefaultMutableTreeNode root){
35 this.root=root;
36
37 root.add(SWOTdiagrams);
38 root.add(Assetdiagrams);
39 root.add(Unwanteddiagrams);
40 root.add(Riskdiagrams);
41 root.add(Treatmentdiagrams);
42 root.add(TreatmentEffectdiagrams);
43
44 }
45 public void addElement(ToolInternalFrame frame){
46 String name=frame.getFrameTitle();
47 ToolGraph graph=frame.getGraph();
48 TreeElement node=new TreeElement(name);
49 node.setInternalFrame(frame);
50 if(graph instanceof SWOTDiagram){
51
52 insertNodeInto(node,SWOTdiagrams,SWOTdiagrams.getChildCount());
53
54 }
55
56 else if(graph instanceof AssetDiagram){
57
58 insertNodeInto(node,Assetdiagrams,Assetdiagrams.getChildCount());
59
60
61 }
62
63 else if(graph instanceof UnwantedIncidentDiagram){
64
65 insertNodeInto(node,Unwanteddiagrams,Unwanteddiagrams.getChildCount());
66
67
68 }
69 else if(graph instanceof TreatmentDiagram){
70
71 insertNodeInto(node,Treatmentdiagrams,Treatmentdiagrams.getChildCount());
72
73
74 }
75 else if(graph instanceof RiskDiagram){
76
77 insertNodeInto(node,Riskdiagrams,Riskdiagrams.getChildCount());
78
79
80
81 }
82 else if(graph instanceof TreatmentEffectDiagram){
83 insertNodeInto(node,TreatmentEffectdiagrams,TreatmentEffectdiagrams.getChildCount());
84
85
86 }
87 else{}
88 showTreeElement(node);
89
90 }
91 public void showTreeElement(TreeElement node){
92 if(node!=null){
93
94 TreeNode[] nodes=getPathToRoot(node);
95 TreePath path=new TreePath(nodes);
96 Diagramtree.scrollPathToVisible(path);
97 Diagramtree.setSelectionPath(path);
98 }
99 }
100 public void setTreeChanged(boolean flag){
101 this.changed=flag;
102 }
103 public boolean isTreeChanged(){
104 return this.changed;
105 }
106
107 class DiagramTreeModelListener implements TreeModelListener{
108
109 public void treeNodesChanged(TreeModelEvent e){
110 setTreeChanged(true);
111
112 }
113
114 public void treeNodesInserted(TreeModelEvent e){
115 setTreeChanged(true);
116 }
117
118 public void treeNodesRemoved(TreeModelEvent e){
119 setTreeChanged(true);
120 }
121
122 public void treeStructureChanged(TreeModelEvent e){
123 setTreeChanged(true);
124 }
125
126 }
127
128
129 }
130
131 class SWOTDiagramType extends DefaultMutableTreeNode{
132
133
134 public String toString() {
135 String name="SWOT Diagrams";
136
137 return name;
138 }
139 }
140
141 class AssetDiagramType extends DefaultMutableTreeNode{
142
143 public String toString() {
144 String name="Asset Diagrams";
145
146 return name;
147 }
148 }
149
150 class UnwantedIncidentDiagramType extends DefaultMutableTreeNode{
151
152 public String toString() {
153 String name="UnwantedIncident Diagrams";
154
155 return name;
156 }
157 }
158 class RiskDiagramType extends DefaultMutableTreeNode{
159
160 public String toString() {
161 String name="Risk Diagrams";
162
163 return name;
164 }
165 }
166
167 class TreatmentDiagramType extends DefaultMutableTreeNode{
168
169 public String toString() {
170 String name="Treatment Diagrams";
171
172 return name;
173 }
174 }
175 class TreatmentEffectDiagramType extends DefaultMutableTreeNode{
176
177 public String toString() {
178 String name="TreatmentEffect Diagrams";
179
180 return name;
181 }
182 }