1
2
3
4
5
6
7 package com.vikash.firsttool.UI;
8
9 import java.awt.Component;
10
11 import java.awt.*;
12 import java.awt.geom.*;
13 import java.util.Map;
14 import java.net.URL;
15 import java.awt.event.ActionEvent;
16 import java.awt.event.KeyEvent;
17 import java.util.EventObject;
18
19 import javax.swing.*;
20 import javax.swing.text.Document;
21 import javax.swing.text.BadLocationException;
22
23 import org.jgraph.JGraph;
24 import org.jgraph.graph.CellView;
25 import org.jgraph.graph.VertexView;
26 import org.jgraph.graph.CellViewRenderer;
27 import org.jgraph.graph.VertexRenderer;
28 import org.jgraph.graph.GraphConstants;
29 import org.jgraph.cellview.JGraphEllipseView;
30 import org.jgraph.graph.GraphCellEditor;
31 import org.jgraph.graph.DefaultGraphCellEditor;
32 import org.jgraph.graph.AttributeMap;
33 /***
34 *
35 * @author studajb
36 */
37 public class EllipseCellView extends JGraphEllipseView{
38 EllipseVertexRenderer renderer = new EllipseVertexRenderer();
39 ToolVertexEditor editor = new ToolVertexEditor();
40
41 /*** Creates a new instance of EllipseView */
42 public EllipseCellView() {
43 super();
44 }
45 public EllipseCellView(Object cell) {
46 super(cell);
47 }
48
49 public CellViewRenderer getRenderer() {
50 return renderer;
51 }
52 public GraphCellEditor getEditor() {
53 return editor;
54 }
55 class EllipseVertexRenderer extends JGraphEllipseRenderer {
56 JGraph graph;
57 public EllipseVertexRenderer(){
58 super();
59 }
60 public Component getRendererComponent(JGraph graph, CellView view,
61 boolean sel, boolean focus, boolean preview) {
62 this.graph = graph;
63 isDoubleBuffered = graph.isDoubleBuffered();
64 if (view instanceof VertexView) {
65 this.view = (VertexView) view;
66 setComponentOrientation(graph.getComponentOrientation());
67 if (graph.getEditingCell() != view.getCell()) {
68 Object label = graph.convertValueToString(view);
69 if (this.view.isLeaf()
70 || GraphConstants.isOpaque(view.getAllAttributes()))
71 installAttributes(view);
72
73
74 else {
75 setText(null);
76 setBorder(null);
77 setOpaque(false);
78 setGradientColor(null);
79 setIcon(null);
80 }
81 Object[] labels=GraphConstants.getExtraLabels(view.getAllAttributes());
82 Object cellname=graph.convertValueToString(labels[0]);
83 if (label != null)
84
85 setText("<html><p align=\"center\"><<"+cellname.toString()+">><br>"+label.toString().replaceAll("\n","<br> ")+"</p></html>");
86 else{
87 setText("<<"+cellname.toString()+">>");
88 }
89 } else
90 setText(null);
91 this.graph = graph;
92 this.hasFocus = focus;
93 this.childrenSelected = graph.getSelectionModel()
94 .isChildrenSelected(view.getCell());
95 this.selected = sel;
96 this.preview = preview;
97
98 return this;
99 }
100 return null;
101 }
102
103 protected void paintSelectionBorder(Graphics g){
104 URL icon;
105 Object[] labels=GraphConstants.getExtraLabels(view.getAllAttributes());
106 Object cellname=graph.convertValueToString(labels[0]);
107 if(cellname.equals("UnwantedIncident")){
108 icon=getClass().getClassLoader().getResource("com/vikash/firsttool/resources/riskicon.gif");
109 }
110 else if(cellname.equals("ThreatScenario")){
111 icon=getClass().getClassLoader().getResource("com/vikash/firsttool/resources/bomb.gif");
112 }
113 else{
114 icon=getClass().getClassLoader().getResource("com/vikash/firsttool/resources/TreatmentIcon.gif");
115 }
116
117
118 Graphics2D g2=(Graphics2D)g;
119 Rectangle r=g2.getClipBounds();
120 Dimension d = getSize();
121 Image img=Toolkit.getDefaultToolkit().getImage(icon);
122 MediaTracker tracker=new MediaTracker(this);
123 tracker.addImage(img,0);
124 try{tracker.waitForID(0);}
125 catch(InterruptedException exception) {}
126 Image img1=img.getScaledInstance((int)r.getWidth()/5,(int)r.getWidth()/5,4);
127 MediaTracker tracker1=new MediaTracker(this);
128 tracker1.addImage(img1,1);
129 try{tracker1.waitForID(1);}
130 catch(InterruptedException exception) {}
131 g2.drawImage(img1,((int)(r.getX()+(d.width)/1.4)),((int)r.getY()),null);
132 super.paintSelectionBorder(g2);
133
134
135
136 }
137 public void paint(Graphics g) {
138 int b = borderWidth;
139 Graphics2D g2 = (Graphics2D) g;
140 Dimension d = getSize();
141 boolean tmp = selected;
142 if (super.isOpaque()) {
143 g.setColor(super.getBackground());
144 if (gradientColor != null && !preview) {
145 setOpaque(false);
146 g2.setPaint(new GradientPaint(0, 0, getBackground(), getWidth(),
147 getHeight(), gradientColor, true));
148 }
149
150 g.fillOval(b - 1, b - 1, d.width - b, d.height - b);
151
152 }
153 try {
154 setBorder(null);
155 setOpaque(false);
156 selected = false;
157 super.paint(g);
158
159 } finally {
160 selected = tmp;
161 }
162 if (bordercolor != null) {
163 g.setColor(bordercolor);
164 g2.setStroke(new BasicStroke(b));
165 g.drawOval(b - 1, b - 1, d.width - b, d.height - b);
166
167
168 }
169 if (selected) {
170 g2.setStroke(GraphConstants.SELECTION_STROKE);
171 g.setColor(graph.getHighlightColor());
172 g.drawOval(b - 1, b - 1, d.width - b, d.height - b);
173
174 }
175 paintSelectionBorder(g);
176 }
177
178 }
179 }
180
181
182
183
184
185
186