annotate jface/snippets/viewers/Snippet054NativeControlsInViewers.d @ 179:89de7ff0752c default tip

Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
author Frank Benoit <benoit@tionex.de>
date Wed, 29 Apr 2009 11:01:41 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
179
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2006 Tom Schindl and others.
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * Tom Schindl - initial API and implementation
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 *******************************************************************************/
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 module jface.snippets.viewers.Snippet054NativeControlsInViewers;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 import dwtx.jface.viewers.CellLabelProvider;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.viewers.ColumnLabelProvider;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.viewers.IStructuredContentProvider;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.viewers.TableViewer;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.jface.viewers.TableViewerColumn;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.jface.viewers.Viewer;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.viewers.ViewerCell;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.DWT;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.custom.TableEditor;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.dwthelper.utils;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.events.DisposeEvent;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.events.DisposeListener;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.events.SelectionAdapter;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.events.SelectionEvent;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.events.SelectionListener;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.layout.FillLayout;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.layout.RowLayout;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.widgets.Button;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.widgets.Composite;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.widgets.Display;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.widgets.Shell;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import dwt.widgets.TableItem;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import tango.util.Convert;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 import tango.util.collection.ArraySeq;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 /**
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * Example how to place native controls into a viewer with the new JFace-API
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * because has the potential to eat up all your handles you should think about
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * alternate approaches e.g. takeing a screenshot of the control
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * @author Tom Schindl <tom.schindl@bestsolution.at>
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 */
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 public class Snippet054NativeControlsInViewers {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 private class MyContentProvider: IStructuredContentProvider {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 /*
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * (non-Javadoc)
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 */
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 public Object[] getElements(Object inputElement) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 return (cast(ArraySeq!(MyModel))inputElement).toArray;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 /*
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * (non-Javadoc)
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 */
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 public void dispose() {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 /*
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * (non-Javadoc)
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 *
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * java.lang.Object, java.lang.Object)
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 */
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 public class MyModel {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 public int counter;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 public this(int counter) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 this.counter = counter;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 public String toString() {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 return "Item " ~ to!(char[])(this.counter);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 public this(Shell shell) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 final TableViewer v = new TableViewer(shell, DWT.BORDER
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 | DWT.FULL_SELECTION);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 v.setContentProvider(new MyContentProvider());
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 TableViewerColumn column = new TableViewerColumn(v, DWT.NONE);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 column.getColumn().setWidth(200);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 column.getColumn().setText("Column 1");
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 column.setLabelProvider(new class() ColumnLabelProvider {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 public String getText(Object element) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 return element.toString();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 });
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 column = new TableViewerColumn(v, DWT.NONE);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 column.getColumn().setWidth(200);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 column.getColumn().setText("Column 2");
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 column.setLabelProvider(new class() CellLabelProvider {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 public void update(ViewerCell cell) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 final TableItem item = cast(TableItem) cell.getItem();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 DisposeListener listener = new class(item) DisposeListener {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 private TableItem item;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 public this(TableItem item) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 this.item = item;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 public void widgetDisposed(DisposeEvent e) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 if( item.getData("EDITOR") !is null ) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 TableEditor editor = cast(TableEditor) item.getData("EDITOR");
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 editor.getEditor().dispose();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 editor.dispose();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 };
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 if (item.getData("EDITOR") !is null) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 TableEditor editor = cast(TableEditor) item.getData("EDITOR");
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 editor.getEditor().dispose();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 editor.dispose();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 if( item.getData("DISPOSELISTNER") !is null ) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 item.removeDisposeListener(cast(DisposeListener) item.getData("DISPOSELISTNER"));
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 TableEditor editor = new TableEditor(item.getParent());
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 item.setData("EDITOR", editor);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 Composite comp = new Composite(item.getParent(), DWT.NONE);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 comp.setBackground(item.getParent().getBackground());
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 comp.setBackgroundMode(DWT.INHERIT_DEFAULT);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 RowLayout l = new RowLayout();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 l.marginHeight = 0;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 l.marginWidth = 0;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 l.marginTop = 0;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 l.marginBottom = 0;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 comp.setLayout(l);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 Button rad = new Button(comp, DWT.RADIO);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 Button rad1 = new Button(comp, DWT.RADIO);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 Button rad2 = new Button(comp, DWT.RADIO);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 editor.grabHorizontal = true;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 editor.setEditor(comp, item, 1);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 item.addDisposeListener(listener);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 item.setData("DISPOSELISTNER",cast(Object)listener);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 });
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 ArraySeq!(MyModel) model = createModel(10);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 v.setInput(model);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 v.getTable().setLinesVisible(true);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 v.getTable().setHeaderVisible(true);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 private ArraySeq!(MyModel) createModel(int amount) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 ArraySeq!(MyModel) elements = new ArraySeq!(MyModel);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 elements.capacity = amount;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 for (int i = 0; i < amount; i++) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 elements ~= new MyModel(i);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 return elements;
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 void main() {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 Display display = new Display();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 Shell shell = new Shell(display);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 shell.setLayout(new FillLayout());
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 new Snippet054NativeControlsInViewers(shell);
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 shell.open();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 while (!shell.isDisposed()) {
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 if (!display.readAndDispatch())
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 display.sleep();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 }
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 display.dispose();
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
89de7ff0752c Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 }