annotate jface/snippets/Snippet010OwnerDraw.d @ 97:781fd8aadeae

jface snippet 010, thanks, yidabu
author Frank Benoit <benoit@tionex.de>
date Sun, 01 Jun 2008 17:56:11 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
97
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2006, 2008 IBM Corporation and others.
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * oliver.schaefer@mbtech-services.com - Fix for Bug 225051 [Snippets] Snippet010OwnerDraw - Wrong german flag
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Port to the D programming language:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 *******************************************************************************/
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 module jface.snippets.Snippet010OwnerDraw.d;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.resource.JFaceResources;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.viewers.Viewer;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.jface.viewers.ColumnPixelData;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.jface.viewers.IStructuredContentProvider;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.viewers.OwnerDrawLabelProvider;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.jface.viewers.StructuredSelection;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.viewers.TableLayout;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.viewers.TableViewer;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.DWT;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.graphics.Rectangle;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.graphics.TextLayout;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.graphics.TextStyle;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.layout.GridData;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.layout.GridLayout;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.widgets.Composite;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.widgets.Display;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.widgets.Event;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.widgets.Shell;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.widgets.TableColumn;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import dwt.dwthelper.utils;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 void main(String[] args) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 Snippet010OwnerDraw.main(args);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 public class Snippet010OwnerDraw {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 public static void main(String[] args) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 Display display = new Display();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 Shell shell = new Shell(display, DWT.CLOSE);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 shell.setSize(400, 400);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 shell.setLayout(new GridLayout());
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 Snippet010OwnerDraw example = new Snippet010OwnerDraw();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 example.createPartControl(shell);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 shell.open();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 while (!shell.isDisposed ()) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 if (!display.readAndDispatch ()) display.sleep ();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 display.dispose();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 private static int COLUMN_COUNT = 3;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 class CountryEntry {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 String name;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 String cupYear;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 private String baseName;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * Create a new instance of the receiver.
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * @param countryName
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * @param worldCupYear
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 this(String countryName, String englishName, String worldCupYear) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 name = countryName;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 cupYear = worldCupYear;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 baseName = englishName;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * @param index
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * @return
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 public int getHeight(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 switch (event.index) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 case 0:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 return event.gc.textExtent(name).y;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 case 1:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 return 50;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 case 2:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 return event.gc.textExtent(cupYear).y;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 default:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 return 10;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @param index
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @return
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public int getWidth(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 switch (event.index) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 case 0:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 return event.gc.textExtent(getDisplayString().toString()).x + 4;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 case 1:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 return 200;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 case 2:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 return event.gc.textExtent(cupYear).x + 5;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 default:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 return 10;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * Draw the flag in bounds.
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * @param event
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 protected void drawFlag(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 .getSystemColor(DWT.COLOR_BLUE));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 Rectangle bounds = event.getBounds();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 bounds.width += 100;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 event.gc.fillRectangle(bounds);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * Draw the cup year
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 * @param event
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 private void drawCupYear(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 event.gc.drawText(cupYear, event.x, event.y);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * Draw the name of the receiver.
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * @param event
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 protected void drawName(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 StringBuffer buffer = getDisplayString();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 Display display = viewer.getControl().getDisplay();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 TextLayout layout = new TextLayout(display);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 layout.setText(buffer.toString());
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 TextStyle plain = new TextStyle(JFaceResources
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 .getFont(JFaceResources.DEFAULT_FONT), display
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 .getSystemColor(DWT.COLOR_LIST_FOREGROUND), display
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 .getSystemColor(DWT.COLOR_LIST_BACKGROUND));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 TextStyle italic = new TextStyle(JFaceResources.getFontRegistry()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 .getItalic(JFaceResources.DEFAULT_FONT), display
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 .getSystemColor(DWT.COLOR_BLUE), display
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 .getSystemColor(DWT.COLOR_LIST_BACKGROUND));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 layout.setStyle(plain, 0, name.length - 1);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 layout.setStyle(italic, name.length, buffer.length - 1);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 layout.draw(event.gc, event.x, event.y);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * @return
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 private StringBuffer getDisplayString() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 StringBuffer buffer = new StringBuffer();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 buffer.append(name);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 buffer.append(" (");
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 buffer.append(baseName);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 buffer.append(")");
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 return buffer;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 * @param event
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 public void draw(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 switch (event.index) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 case 0:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 drawName(event);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 break;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 case 1:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 drawFlag(event);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 break;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 case 2:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 drawCupYear(event);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 break;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 default:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 break;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 private class GermanyEntry : CountryEntry {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 this() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 super("Deutschland", "Germany", "1954 1974 1990");
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * @see dwtx.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(dwt.widgets.Event)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 protected void drawFlag(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 Rectangle bounds = event.getBounds();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 bounds.width += 100;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 int stripeHeight = bounds.height / 3;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 stripeHeight);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 .getSystemColor(DWT.COLOR_BLACK));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 stripe.y += stripeHeight;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 .getSystemColor(DWT.COLOR_RED));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 stripe.y += stripeHeight;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 .getSystemColor(DWT.COLOR_YELLOW));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 private class AustriaEntry : CountryEntry {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 this() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 super("\u00D6sterreich", "Austria", "TBD");
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * @see dwtx.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(dwt.widgets.Event)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 protected void drawFlag(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 Rectangle bounds = event.getBounds();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 bounds.width += 100;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 int stripeHeight = bounds.height / 3;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 stripeHeight);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 .getSystemColor(DWT.COLOR_RED));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 stripe.y += stripeHeight;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 .getSystemColor(DWT.COLOR_WHITE));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 stripe.y += stripeHeight;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 .getSystemColor(DWT.COLOR_RED));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 event.gc.fillRectangle(stripe);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 private class EnglandEntry : CountryEntry {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 this() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 super("Blighty", "England", "1966");
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * @see dwtx.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(dwt.widgets.Event)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 protected void drawFlag(Event event) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 Rectangle bounds = event.getBounds();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 bounds.width += 100;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 event.gc.setBackground(viewer.getControl().getDisplay()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 .getSystemColor(DWT.COLOR_RED));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 event.gc.fillRectangle(new Rectangle(bounds.width / 2 + bounds.x
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 - 5, bounds.y, 10, bounds.height));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 event.gc.fillRectangle(new Rectangle(bounds.x, bounds.height / 2
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 + bounds.y - 5, bounds.width, 10));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 private TableViewer viewer;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 private CountryEntry[] entries;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 public this() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 entries = new CountryEntry[3];
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 entries[0] = new AustriaEntry();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 entries[1] = new GermanyEntry();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 entries[2] = new EnglandEntry();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(dwt.widgets.Composite)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 public void createPartControl(Composite parent) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 viewer = new TableViewer(parent, DWT.FULL_SELECTION);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 viewer.setContentProvider(new class() IStructuredContentProvider {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 * @see dwtx.jface.viewers.IContentProvider#dispose()
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 public void dispose() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 };
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 public Object[] getElements(Object inputElement) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 return (cast(Snippet010OwnerDraw) inputElement).entries;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 };
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer,
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 * java.lang.Object, java.lang.Object)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 public void inputChanged(Viewer viewer,
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 Object oldInput, Object newInput) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 });
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 createColumns();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 viewer.setLabelProvider(new class() OwnerDrawLabelProvider {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 protected void measure(Event event, Object element) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 CountryEntry country = cast(CountryEntry) element;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 event.setBounds(new Rectangle(event.x, event.y, country.getWidth(event),
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 country.getHeight(event)));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 /*
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 * (non-Javadoc)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 *
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 * @see dwtx.jface.viewers.OwnerDrawLabelProvider#paint(dwt.widgets.Event,
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * java.lang.Object)
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 protected void paint(Event event, Object element) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 CountryEntry entry = cast(CountryEntry) element;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 entry.draw(event);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 });
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 viewer.setInput(this);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 GridData data = new GridData(GridData.GRAB_HORIZONTAL
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 viewer.getControl().setLayoutData(data);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 viewer.setSelection(new StructuredSelection(entries[1]));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 * Create the columns to be used in the tree.
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 private void createColumns() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 TableLayout layout = new TableLayout();
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 viewer.getTable().setLayout(layout);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 viewer.getTable().setHeaderVisible(true);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 viewer.getTable().setLinesVisible(true);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 for (int i = 0; i < COLUMN_COUNT; i++) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 TableColumn tc = new TableColumn(viewer.getTable(), DWT.NONE, i);
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 layout.addColumnData(new ColumnPixelData(100));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 tc.setText(getTitleFor(i));
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 ;
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 /**
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 * @param i
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 * @return
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 */
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 private String getTitleFor(int i) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 switch (i) {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 case 0:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 return "Name";
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 case 1:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 return "Flag";
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 case 2:
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 return "World Cup Year";
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 return "Unknown";
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 public void setFocus() {
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 }
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433
781fd8aadeae jface snippet 010, thanks, yidabu
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 }