annotate org.eclipse.jface.snippets/EclipseJfaceSnippets/org/eclipse/jface/snippets/viewers/Snippet016TableLayout.d @ 31:5d87d4191adf

Added JFace Snippets sources
author Frank Benoit <benoit@tionex.de>
date Mon, 23 Mar 2009 11:16:06 +0100
parents
children c4b36186a9bc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2006 Tom Schindl and others.
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * Tom Schindl - initial API and implementation
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 module snippets.viewers.Snippet016TableLayout;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.layout.TableColumnLayout;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.jface.viewers.ColumnWeightData;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.jface.viewers.IStructuredContentProvider;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.viewers.ITableLabelProvider;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.jface.viewers.LabelProvider;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.viewers.TableViewer;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.viewers.Viewer;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.DWT;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.graphics.Image;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.layout.FillLayout;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.Composite;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.widgets.Display;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.widgets.Shell;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.widgets.Table;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.widgets.TableColumn;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.dwthelper.utils;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import tango.util.Convert;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 /**
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * @param args
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 void main(String[] args) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 Display display = new Display();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 Shell shell = new Shell(display);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 //shell.setSize(400, 150);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 shell.setLayout(new FillLayout());
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 new Snippet016TableLayout(shell);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 shell.open();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 while (!shell.isDisposed()) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 if (!display.readAndDispatch())
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 display.sleep();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 display.dispose();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 /**
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * A simple TableViewer to demonstrate usage
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * @author Tom Schindl <tom.schindl@bestsolution.at>
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * @since 3.3M3
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 public class Snippet016TableLayout {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 private class MyContentProvider : IStructuredContentProvider {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 public Object[] getElements(Object inputElement) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 return (cast(ArrayWrapperObject) inputElement).array;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * @see dwtx.jface.viewers.IContentProvider#dispose()
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 public void dispose() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer,
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * java.lang.Object, java.lang.Object)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 private class MyLabelProvider : LabelProvider, ITableLabelProvider {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 public Image getColumnImage(Object element, int columnIndex) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 return null;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 public String getColumnText(Object element, int columnIndex) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 return to!(char[])(columnIndex) ~ " - " ~ element.toString();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 public class MyModel {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 public int counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 public this(int counter) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 this.counter = counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 public String toString() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 return "Item " ~ to!(char[])(this.counter);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 public this(Composite comp) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 final TableViewer v = new TableViewer(new Table(comp, DWT.BORDER));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 v.setLabelProvider(new MyLabelProvider());
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 v.setContentProvider(new MyContentProvider());
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 v.getTable().setHeaderVisible(true);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 TableColumnLayout ad = new TableColumnLayout();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 comp.setLayout(ad);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 TableColumn column = new TableColumn(v.getTable(), DWT.NONE);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 column.setText("Column 1");
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 column.setMoveable(true);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 ad.setColumnData(column, new ColumnWeightData(90, 290));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 column = new TableColumn(v.getTable(), DWT.NONE);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 column.setText("Column 2");
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 column.setMoveable(true);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 ad.setColumnData(column, new ColumnWeightData(10, 200));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 MyModel[] model = createModel();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 v.setInput(new ArrayWrapperObject(model));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 v.getTable().setLinesVisible(true);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 private MyModel[] createModel() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 MyModel[] elements = new MyModel[10];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 for (int i = 0; i < 10; i++) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 elements[i] = new MyModel(i);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 return elements;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 }