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