Mercurial > projects > dwt-samples
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 |
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 |