1
14 package demo.view;
15
16 import java.awt.*;
17 import java.awt.event.*;
18 import javax.swing.*;
19
20 import y.base.Node;
21 import y.base.Edge;
22
23 import y.view.Graph2DView;
24 import y.view.EditMode;
25
26 import y.view.Arrow;
27 import y.view.EdgeRealizer;
28 import y.view.NodeRealizer;
29 import y.view.ImageNodeRealizer;
30 import y.view.NodeLabel;
31 import y.view.EdgeLabel;
32 import y.view.Graph2D;
33
34
45 public class BuildGraphDemo extends JPanel
46 {
47 Graph2DView view;
48
49 public BuildGraphDemo()
50 {
51 setLayout(new BorderLayout());
52 view = new Graph2DView();
53 EditMode mode = new EditMode();
54 view.addViewMode(mode);
55 add(view);
56
57 buildGraph();
58 setDefaultGraphics();
59
60 }
61
62 void setDefaultGraphics()
63 {
64 Graph2D graph = view.getGraph2D();
65
66 EdgeRealizer er = graph.getDefaultEdgeRealizer();
68 er.setArrow(Arrow.STANDARD);
70 er.setSourceArrow(Arrow.WHITE_DIAMOND);
72
73 EdgeLabel elabel = new EdgeLabel("LABEL");
75 er.addLabel(elabel);
76
77
79 ImageNodeRealizer ivr = new ImageNodeRealizer();
82 ivr.setImageURL(getClass().getResource("resource/penguin.gif"));
84 ivr.setToImageSize();
86 ivr.setLabelText("Won't bite!");
88
89 ivr.getLabel().setModel(NodeLabel.EIGHT_POS);
91
92 ivr.getLabel().setPosition(NodeLabel.S);
94
95 graph.setDefaultNodeRealizer(ivr);
97
98 }
99
100 void buildGraph()
101 {
102 Graph2D graph = view.getGraph2D();
103
104 Node v = graph.createNode();
105 NodeRealizer vr = graph.getRealizer(v);
107 vr.setLocation(60,200);
108 vr.setSize(100,30);
109 vr.setFillColor(Color.cyan);
110 vr.setLabelText("wow! Cyan");
111
112 for(int i = 0; i < 5; i++)
114 {
115 Node w = graph.createNode(200, 100 + i*50, "" + (i+1));
116 Edge e = graph.createEdge(v,w);
117 }
118 }
119
120 public void start()
121 {
122 JFrame frame = new JFrame(getClass().getName());
123 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
124 addContentTo(frame.getRootPane());
125 frame.pack();
126 frame.setLocationRelativeTo(null);
127 frame.setVisible(true);
128 }
129
130 public final void addContentTo( final JRootPane rootPane )
131 {
132 rootPane.setContentPane(this);
133 }
134
135 public static void main(String args[])
136 {
137 final BuildGraphDemo demo = new BuildGraphDemo();
138 demo.start();
139 }
140 }
141
142
143