annotate draw2d/UmlExample.d @ 142:7dca96709d29

Fix: remove trigger of Display creation in static ctors
author Frank Benoit <benoit@tionex.de>
date Thu, 07 Aug 2008 17:23:25 +0200
parents 425c1adb5de5
children
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 {
142
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
62 private static Color classColor_;
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
63 public static Color classColor(){
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
64 if( classColor_ is null ){
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
65 classColor_ = new Color(null,255,255,206);
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
66 }
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
67 return classColor_;
134
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 }
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 private CompartmentFigure attributeFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 private CompartmentFigure methodFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 public this(Label name) {
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 attributeFigure = new CompartmentFigure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 methodFigure = new CompartmentFigure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 ToolbarLayout layout = new ToolbarLayout();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 setLayoutManager(layout);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 setBorder(new LineBorder(ColorConstants.black,1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 setBackgroundColor(classColor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 setOpaque(true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 add(name);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 add(attributeFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 add(methodFigure);
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 getAttributesCompartment() {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 return attributeFigure;
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 public CompartmentFigure getMethodsCompartment() {
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 return methodFigure;
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 }
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 static void[] imgDataClass = import("draw2d.umlexample.class.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 static void[] imgDataMethod = import("draw2d.umlexample.method.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 static void[] imgDataField = import("draw2d.umlexample.field.gif");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 Image getImage( Display disp, void[] data ){
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 ImageData imageData = new ImageData( new ByteArrayInputStream( cast(byte[]) data ));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 return new Image( disp, imageData );
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 }
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 /**
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * A test class to display a UMLFigure
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 public static void main(){
142
7dca96709d29 Fix: remove trigger of Display creation in static ctors
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
109 Display d = new Display();
134
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 final Shell shell = new Shell(d);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 shell.setSize(400, 400);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 shell.setText("UMLClassFigure Test");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 LightweightSystem lws = new LightweightSystem(shell);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 Figure contents = new Figure();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 XYLayout contentsLayout = new XYLayout();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 contents.setLayoutManager(contentsLayout);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 Font classFont = new Font(null, "Arial", 12, DWT.BOLD);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 Label classLabel1 = new Label("Table", getImage(d, imgDataClass));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 classLabel1.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 Label classLabel2 = new Label("Column", getImage(d, imgDataClass));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 classLabel2.setFont(classFont);
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 final UMLClassFigure classFigure = new UMLClassFigure(classLabel1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 final UMLClassFigure classFigure2 = new UMLClassFigure(classLabel2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 Label attribute1 = new Label("columns: Column[]", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 Label attribute2 = new Label("rows: Row[]", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 Label attribute3 = new Label("columnID: int", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 Label attribute4 = new Label("items: List", getImage(d, imgDataField));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 classFigure.getAttributesCompartment().add(attribute1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 classFigure.getAttributesCompartment().add(attribute2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 classFigure2.getAttributesCompartment().add(attribute3);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 classFigure2.getAttributesCompartment().add(attribute4);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 Label method1 = new Label("getColumns(): Column[]", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 Label method2 = new Label("getRows(): Row[]", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 Label method3 = new Label("getColumnID(): int", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 Label method4 = new Label("getItems(): List", getImage(d, imgDataMethod));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 classFigure.getMethodsCompartment().add(method1);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 classFigure.getMethodsCompartment().add(method2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 classFigure2.getMethodsCompartment().add(method3);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 classFigure2.getMethodsCompartment().add(method4);
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 contentsLayout.setConstraint(classFigure, new Rectangle(10,10,-1,-1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 contentsLayout.setConstraint(classFigure2, new Rectangle(200, 200, -1, -1));
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 /* Creating the connection */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 PolylineConnection c = new PolylineConnection();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 ChopboxAnchor sourceAnchor = new ChopboxAnchor(classFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 ChopboxAnchor targetAnchor = new ChopboxAnchor(classFigure2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 c.setSourceAnchor(sourceAnchor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 c.setTargetAnchor(targetAnchor);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 /* Creating the decoration */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 PolygonDecoration decoration = new PolygonDecoration();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 PointList decorationPointList = new PointList();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 decorationPointList.addPoint(0,0);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 decorationPointList.addPoint(-2,2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 decorationPointList.addPoint(-4,0);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 decorationPointList.addPoint(-2,-2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 decoration.setTemplate(decorationPointList);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 c.setSourceDecoration(decoration);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 /* Adding labels to the connection */
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 ConnectionEndpointLocator targetEndpointLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 new ConnectionEndpointLocator(c, true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 targetEndpointLocator.setVDistance(15);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 Label targetMultiplicityLabel = new Label("1..*");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 c.add(targetMultiplicityLabel, targetEndpointLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 ConnectionEndpointLocator sourceEndpointLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 new ConnectionEndpointLocator(c, false);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 sourceEndpointLocator.setVDistance(15);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 Label sourceMultiplicityLabel = new Label("1");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 c.add(sourceMultiplicityLabel, sourceEndpointLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 ConnectionEndpointLocator relationshipLocator =
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 new ConnectionEndpointLocator(c,true);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 relationshipLocator.setUDistance(10);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 relationshipLocator.setVDistance(-20);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 Label relationshipLabel = new Label("contains");
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 c.add(relationshipLabel,relationshipLocator);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 contents.add(classFigure);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 contents.add(classFigure2);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 contents.add(c);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 lws.setContents(contents);
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 shell.open();
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 while (!shell.isDisposed())
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 while (!d.readAndDispatch())
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 d.sleep();
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
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
2ddf4a05e444 Added Draw2D example, UML Example
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201