annotate jface/snippets/viewers/Snippet006TableMultiLineCells.d @ 145:161f7698cfb8

Moved jface snippets to viewers subpackage, there are more with conflicting numbers for other packages
author Frank Benoit <benoit@tionex.de>
date Fri, 08 Aug 2008 14:40:21 +0200
parents jface/snippets/Snippet006TableMultiLineCells.d@9ed020f0c2a5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
83
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2005, 2007 IBM Corporation and others.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
145
161f7698cfb8 Moved jface snippets to viewers subpackage, there are more with conflicting numbers for other packages
Frank Benoit <benoit@tionex.de>
parents: 88
diff changeset
13 module snippets.viewers.Snippet006TableMultiLineCells;
83
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 // http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java?view=markup
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.jface.resource.JFaceResources;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.jface.viewers.ColumnPixelData;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.viewers.IStructuredContentProvider;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.jface.viewers.OwnerDrawLabelProvider;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.viewers.StructuredSelection;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.viewers.TableLayout;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.jface.viewers.Viewer;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwtx.jface.viewers.TableViewer;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.DWT;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.graphics.Font;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.graphics.Point;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.layout.GridData;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.layout.GridLayout;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.widgets.Composite;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.widgets.Display;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.widgets.Event;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.widgets.Shell;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import dwt.widgets.TableColumn;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import dwt.dwthelper.utils;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 version(JIVE){
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 import jive.stacktrace;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 void main(String[] args) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 (new Snippet006TableMultiLineCells()).main(args);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 public class Snippet006TableMultiLineCells {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 public static void main(String[] args) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 Display display = new Display();
88
9ed020f0c2a5 Fix the snippet040 example
Frank Benoit <benoit@tionex.de>
parents: 83
diff changeset
51 Shell shell = new Shell(display, DWT.CLOSE|DWT.RESIZE);
83
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 shell.setSize(400, 400);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 shell.setLayout(new GridLayout());
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 Snippet006TableMultiLineCells example = new Snippet006TableMultiLineCells();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 example.createPartControl(shell);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 shell.open();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 while (!shell.isDisposed()) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 if (!display.readAndDispatch())
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 display.sleep();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 display.dispose();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 class LineEntry {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 String line;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 int columnWidth;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * Create a new instance of the receiver with name text constrained to a
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * column of width.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * @param text
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * @param width
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 this(String text, int width) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 line = text;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 columnWidth = width;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * Get the height of the event.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * @param index
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * @return int
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 public int getHeight(Event event) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 event.gc.setLineWidth(columnWidth);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 return event.gc.textExtent(line).y;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * Get the width of the event.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * @param index
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * @return
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 public int getWidth(Event event) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 return columnWidth;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * Get the font we are using.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * @return Font
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 protected Font getFont() {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 return JFaceResources.getFont(JFaceResources.HEADER_FONT);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * @param event
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 public void draw(Event event) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 event.gc.drawText(line, event.x, event.y);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 private TableViewer viewer;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 private LineEntry[] entries;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 public this() {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 String[] lines = [
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 "This day is called the feast of Crispian:",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 "He that outlives this day, \n and comes safe home,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 "Will stand a tip-toe when the day is named,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 "And rouse him at the name of Crispian.",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 "He that shall live this day,\n and see old age,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 "Will yearly on the vigil feast his neighbours,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 "And say 'To-morrow is Saint Crispian:'",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 "Then will he strip his sleeve and show his scars.",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 "And say 'These wounds I had on Crispin's day.'",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 "Old men forget:\n yet all shall be forgot,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 "But he'll remember with advantages",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 "What feats he did that day:\n then shall our names.",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 "Familiar in his mouth as household words",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 "Harry the king, Bedford and Exeter,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 "Warwick and Talbot,\n Salisbury and Gloucester,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 "Be in their flowing cups freshly remember'd.",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 "This story shall the good man teach his son;",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 "And Crispin Crispian shall ne'er go by,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 "From this day to the ending of the world,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 "But we in it shall be remember'd;",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 "We few,\n we happy few,\n we band of brothers;",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 "For he to-day that sheds his blood with me",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 "Shall be my brother;\n be he ne'er so vile,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 "This day shall gentle his condition:",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 "And gentlemen in England now a-bed",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 "Shall think themselves accursed they were not here,",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 "And hold their manhoods cheap whiles any speaks",
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 "That fought with us upon Saint Crispin's day." ];
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 entries = new LineEntry[lines.length];
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 for (int i = 0; i < lines.length; i++) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 entries[i] = new LineEntry(lines[i], 35);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 /*
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(dwt.widgets.Composite)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 public void createPartControl(Composite parent) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 viewer = new TableViewer(parent, DWT.FULL_SELECTION);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 viewer.setContentProvider(new class() IStructuredContentProvider {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 /*
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * @see dwtx.jface.viewers.IContentProvider#dispose()
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 public void dispose() {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 /*
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 public Object[] getElements(Object inputElement) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 return entries;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 /*
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer,
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 * java.lang.Object, java.lang.Object)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 public void inputChanged(dwtx.jface.viewers.Viewer.Viewer viewer, Object oldInput, Object newInput) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 });
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 createColumns();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 viewer.setLabelProvider(new class OwnerDrawLabelProvider {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 /* (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 * @see dwtx.jface.viewers.OwnerDrawLabelProvider#measure(dwt.widgets.Event, java.lang.Object)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 protected void measure(Event event, Object element) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 LineEntry line = cast(LineEntry) element;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 Point size = event.gc.textExtent(line.line);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 event.width = viewer.getTable().getColumn(event.index).getWidth();
88
9ed020f0c2a5 Fix the snippet040 example
Frank Benoit <benoit@tionex.de>
parents: 83
diff changeset
210 int lines = (event.width > 0 ? (size.x / event.width + 1) : 1);
83
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 event.height = size.y * lines;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 /*
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 * (non-Javadoc)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 *
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 * @see dwtx.jface.viewers.OwnerDrawLabelProvider#paint(dwt.widgets.Event,
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 * java.lang.Object)
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 protected void paint(Event event, Object element) {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 LineEntry entry = cast(LineEntry) element;
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 event.gc.drawText(entry.line, event.x, event.y, true);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 });
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 viewer.setInput(this);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 GridData data = new GridData(GridData.GRAB_HORIZONTAL
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 viewer.getControl().setLayoutData(data);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 viewer.setSelection(new StructuredSelection(entries[1]));
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 /**
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * Create the columns to be used in the tree.
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 */
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 private void createColumns() {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 TableLayout layout = new TableLayout();
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 viewer.getTable().setLayout(layout);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 viewer.getTable().setHeaderVisible(true);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 viewer.getTable().setLinesVisible(true);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 TableColumn tc = new TableColumn(viewer.getTable(), DWT.NONE, 0);
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 layout.addColumnData(new ColumnPixelData(350));
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 tc.setText("Lines");
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 public void setFocus() {
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 }
b7e2d67d5efa Added jface Snippet006TableMultiLineCells
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255