View Javadoc

1   /*
2    * EllipseView.java
3    *
4    * Created on 12. juni 2005, 04:33
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\">&lt;&lt;"+cellname.toString()+"&gt;&gt;<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                 //paintSelectionBorder(g);
152             }
153             try {
154                 setBorder(null);
155                 setOpaque(false);
156                 selected = false;
157                 super.paint(g);
158                 //paintSelectionBorder(g);
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                 // paintSelectionBorder(g);
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                 //paintSelectionBorder(g);
174             }
175             paintSelectionBorder(g);
176         }
177         
178     }
179 }
180      
181     
182     
183 
184     
185 
186