annotate draw2d/UmlExample.d @ 135:425c1adb5de5

Example with temporary fix with Display.getCurrent()
author Frank Benoit <benoit@tionex.de>
date Sun, 03 Aug 2008 02:19:19 +0200
parents 2ddf4a05e444
children 7dca96709d29
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
135
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
1 /++
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
2 + Original sources from http://www.eclipse.org/articles/Article-GEF-Draw2d/GEF-Draw2d.html
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
3 + Ported to the D programming language
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
4 + Frank Benoit <benoit@tionex.de>
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
5 +/
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
6
134
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 module umlexample.UmlExample;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 import dwt.dwthelper.utils;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 import dwt.dwthelper.ByteArrayInputStream;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 import dwtx.draw2d.Figure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 import dwtx.draw2d.IFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 import dwtx.draw2d.geometry.PointList;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.draw2d.geometry.Rectangle;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.draw2d.geometry.Insets;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwt.DWT;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.graphics.Font;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.graphics.Image;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.graphics.ImageData;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.widgets.Display;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.widgets.Shell;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.draw2d.AbstractBorder;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.draw2d.Graphics;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.graphics.Color;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwtx.draw2d.Label;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwtx.draw2d.ToolbarLayout;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwtx.draw2d.LineBorder;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwtx.draw2d.ConnectionEndpointLocator;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwtx.draw2d.ChopboxAnchor;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwtx.draw2d.PolygonDecoration;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwtx.draw2d.PolylineConnection;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwtx.draw2d.ColorConstants;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwtx.draw2d.LightweightSystem;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import dwtx.draw2d.XYLayout;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 version(JIVE) import jive.stacktrace;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 public class CompartmentFigure : Figure {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 public this() {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 ToolbarLayout layout = new ToolbarLayout();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 layout.setMinorAlignment(ToolbarLayout.ALIGN_TOPLEFT);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 layout.setStretchMinorAxis(false);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 layout.setSpacing(2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 setLayoutManager(layout);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 setBorder(new CompartmentFigureBorder());
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 public class CompartmentFigureBorder : AbstractBorder {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 public Insets getInsets(IFigure figure) {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 return new Insets(1,0,0,0);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 public void paint(IFigure figure, Graphics graphics, Insets insets) {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 graphics.drawLine(getPaintRectangle(figure, insets).getTopLeft(),
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 tempRect.getTopRight());
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 public class UMLClassFigure : Figure {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 public static Color classColor;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 static this(){
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 classColor = new Color(null,255,255,206);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 private CompartmentFigure attributeFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 private CompartmentFigure methodFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 public this(Label name) {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 attributeFigure = new CompartmentFigure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 methodFigure = new CompartmentFigure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 ToolbarLayout layout = new ToolbarLayout();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 setLayoutManager(layout);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 setBorder(new LineBorder(ColorConstants.black,1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 setBackgroundColor(classColor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 setOpaque(true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 add(name);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 add(attributeFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 add(methodFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 public CompartmentFigure getAttributesCompartment() {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 return attributeFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 public CompartmentFigure getMethodsCompartment() {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 return methodFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 static void[] imgDataClass = import("draw2d.umlexample.class.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 static void[] imgDataMethod = import("draw2d.umlexample.method.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 static void[] imgDataField = import("draw2d.umlexample.field.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 Image getImage( Display disp, void[] data ){
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 ImageData imageData = new ImageData( new ByteArrayInputStream( cast(byte[]) data ));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 return new Image( disp, imageData );
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 /**
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * A test class to display a UMLFigure
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public static void main(){
135
425c1adb5de5 Example with temporary fix with Display.getCurrent()
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
106 Display d = Display.getCurrent();
134
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 final Shell shell = new Shell(d);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 shell.setSize(400, 400);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 shell.setText("UMLClassFigure Test");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 LightweightSystem lws = new LightweightSystem(shell);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 Figure contents = new Figure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 XYLayout contentsLayout = new XYLayout();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 contents.setLayoutManager(contentsLayout);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 Font classFont = new Font(null, "Arial", 12, DWT.BOLD);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 Label classLabel1 = new Label("Table", getImage(d, imgDataClass));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 classLabel1.setFont(classFont);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 Label classLabel2 = new Label("Column", getImage(d, imgDataClass));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 classLabel2.setFont(classFont);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 final UMLClassFigure classFigure = new UMLClassFigure(classLabel1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 final UMLClassFigure classFigure2 = new UMLClassFigure(classLabel2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 Label attribute1 = new Label("columns: Column[]", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 Label attribute2 = new Label("rows: Row[]", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 Label attribute3 = new Label("columnID: int", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 Label attribute4 = new Label("items: List", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 classFigure.getAttributesCompartment().add(attribute1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 classFigure.getAttributesCompartment().add(attribute2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 classFigure2.getAttributesCompartment().add(attribute3);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 classFigure2.getAttributesCompartment().add(attribute4);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 Label method1 = new Label("getColumns(): Column[]", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 Label method2 = new Label("getRows(): Row[]", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 Label method3 = new Label("getColumnID(): int", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 Label method4 = new Label("getItems(): List", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 classFigure.getMethodsCompartment().add(method1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 classFigure.getMethodsCompartment().add(method2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 classFigure2.getMethodsCompartment().add(method3);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 classFigure2.getMethodsCompartment().add(method4);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 contentsLayout.setConstraint(classFigure, new Rectangle(10,10,-1,-1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 contentsLayout.setConstraint(classFigure2, new Rectangle(200, 200, -1, -1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 /* Creating the connection */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 PolylineConnection c = new PolylineConnection();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 ChopboxAnchor sourceAnchor = new ChopboxAnchor(classFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 ChopboxAnchor targetAnchor = new ChopboxAnchor(classFigure2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 c.setSourceAnchor(sourceAnchor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 c.setTargetAnchor(targetAnchor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 /* Creating the decoration */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 PolygonDecoration decoration = new PolygonDecoration();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 PointList decorationPointList = new PointList();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 decorationPointList.addPoint(0,0);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 decorationPointList.addPoint(-2,2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 decorationPointList.addPoint(-4,0);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 decorationPointList.addPoint(-2,-2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 decoration.setTemplate(decorationPointList);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 c.setSourceDecoration(decoration);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 /* Adding labels to the connection */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 ConnectionEndpointLocator targetEndpointLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 new ConnectionEndpointLocator(c, true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 targetEndpointLocator.setVDistance(15);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 Label targetMultiplicityLabel = new Label("1..*");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 c.add(targetMultiplicityLabel, targetEndpointLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 ConnectionEndpointLocator sourceEndpointLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 new ConnectionEndpointLocator(c, false);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 sourceEndpointLocator.setVDistance(15);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 Label sourceMultiplicityLabel = new Label("1");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 c.add(sourceMultiplicityLabel, sourceEndpointLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 ConnectionEndpointLocator relationshipLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 new ConnectionEndpointLocator(c,true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 relationshipLocator.setUDistance(10);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 relationshipLocator.setVDistance(-20);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 Label relationshipLabel = new Label("contains");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 c.add(relationshipLabel,relationshipLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 contents.add(classFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 contents.add(classFigure2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 contents.add(c);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 lws.setContents(contents);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 shell.open();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 while (!shell.isDisposed())
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 while (!d.readAndDispatch())
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 d.sleep();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198