annotate jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.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/Snippet014TreeViewerNoMandatoryLabelProvider.d@42c3056512ba
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
1 /*******************************************************************************
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
2 * Copyright (c) 2006 Tom Schindl and others.
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
7 *
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
8 * Contributors:
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
9 * Tom Schindl - initial API and implementation
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
10 * Port to the D programming language:
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
11 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
12 *******************************************************************************/
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
13
145
161f7698cfb8 Moved jface snippets to viewers subpackage, there are more with conflicting numbers for other packages
Frank Benoit <benoit@tionex.de>
parents: 143
diff changeset
14 module snippets.viewers.Snippet014TreeViewerNoMandatoryLabelProvider;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
15
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
16
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
17 import dwtx.jface.resource.FontRegistry;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
18 import dwtx.jface.viewers.ITableColorProvider;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
19 import dwtx.jface.viewers.ITableFontProvider;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
20 import dwtx.jface.viewers.ITableLabelProvider;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
21 import dwtx.jface.viewers.ITreeContentProvider;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
22 import dwtx.jface.viewers.LabelProvider;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
23 import dwtx.jface.viewers.TreeViewer;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
24 import dwtx.jface.viewers.Viewer;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
25 import dwt.DWT;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
26 import dwt.graphics.Color;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
27 import dwt.graphics.Font;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
28 import dwt.graphics.Image;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
29 import dwt.layout.FillLayout;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
30 import dwt.widgets.Display;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
31 import dwt.widgets.Shell;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
32 import dwt.widgets.TreeColumn;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
33
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
34 import dwt.dwthelper.utils;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
35
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
36 import tango.util.Convert;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
37 import tango.util.container.LinkedList;
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
38
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
39 version(JIVE) import jive.stacktrace;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
40
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
41
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
42 void main(String[] args) {
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
43 Display display = new Display();
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
44 Shell shell = new Shell(display);
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
45 shell.setLayout(new FillLayout());
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
46 new Snippet014TreeViewerNoMandatoryLabelProvider(shell);
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
47 shell.open();
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
48
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
49 while (!shell.isDisposed()) {
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
50 if (!display.readAndDispatch())
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
51 display.sleep();
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
52 }
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
53
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
54 display.dispose();
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
55 }
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
56
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
57 /**
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
58 * A simple TreeViewer to demonstrate usage
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
59 *
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
60 * @author Tom Schindl <tom.schindl@bestsolution.at>
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
61 *
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
62 */
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
63 public class Snippet014TreeViewerNoMandatoryLabelProvider {
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
64 alias LinkedList!(MyModel) ArrayList;
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
65
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
66 private class MyContentProvider : ITreeContentProvider {
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
67
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
68 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
69 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
70 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
71 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
72 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
73 public Object[] getElements(Object inputElement) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
74 return (cast(MyModel) inputElement).child.toArray();
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
75 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
76
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
77 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
78 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
79 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
80 * @see dwtx.jface.viewers.IContentProvider#dispose()
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
81 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
82 public void dispose() {
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
83
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
84 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
85
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
86 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
87 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
88 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
89 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer,
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
90 * java.lang.Object, java.lang.Object)
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
91 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
92 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
93
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
94 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
95
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
96 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
97 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
98 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
99 * @see dwtx.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
100 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
101 public Object[] getChildren(Object parentElement) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
102 return getElements(parentElement);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
103 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
104
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
105 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
106 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
107 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
108 * @see dwtx.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
109 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
110 public Object getParent(Object element) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
111 if (element is null) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
112 return null;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
113 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
114
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
115 return (cast(MyModel) element).parent;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
116 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
117
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
118 /*
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
119 * (non-Javadoc)
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
120 *
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
121 * @see dwtx.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
122 */
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
123 public bool hasChildren(Object element) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
124 return (cast(MyModel) element).child.size() > 0;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
125 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
126
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
127 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
128
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
129 public class MyModel {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
130 public MyModel parent;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
131
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
132 public ArrayList child;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
133
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
134 public int counter;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
135
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
136 public this(int counter, MyModel parent) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
137 this.parent = parent;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
138 this.counter = counter;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
139 child = new ArrayList();
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
140 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
141
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
142 public String toString() {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
143 String rv = "Item ";
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
144 if (parent !is null) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
145 rv = parent.toString() ~ ".";
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
146 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
147
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
148 rv ~= to!(String)(counter);
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
149
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
150 return rv;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
151 }
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
152 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
153
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
154 public class MyLabelProvider : LabelProvider,
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
155 ITableLabelProvider, ITableFontProvider, ITableColorProvider {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
156 FontRegistry registry;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
157 this()
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
158 {
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
159 registry = new FontRegistry();
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
160 }
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
161
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
162 public Image getColumnImage(Object element, int columnIndex) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
163 return null;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
164 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
165
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
166 public String getColumnText(Object element, int columnIndex) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
167 return "Column " ~ to!(String)(columnIndex) ~ " => " ~ element.toString();
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
168 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
169
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
170 public Font getFont(Object element, int columnIndex) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
171 if ((cast(MyModel) element).counter % 2 == 0) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
172 return registry.getBold(Display.getCurrent().getSystemFont()
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
173 .getFontData()[0].getName());
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
174 }
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
175 return null;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
176 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
177
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
178 public Color getBackground(Object element, int columnIndex) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
179 if ((cast(MyModel) element).counter % 2 == 0) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
180 return Display.getCurrent().getSystemColor(DWT.COLOR_RED);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
181 }
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
182 return null;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
183 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
184
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
185 public Color getForeground(Object element, int columnIndex) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
186 if ((cast(MyModel) element).counter % 2 == 1) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
187 return Display.getCurrent().getSystemColor(DWT.COLOR_RED);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
188 }
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
189 return null;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
190 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
191
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
192 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
193
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
194 public this(Shell shell) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
195 final TreeViewer v = new TreeViewer(shell);
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
196
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
197 TreeColumn column = new TreeColumn(v.getTree(),DWT.NONE);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
198 column.setWidth(200);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
199 column.setText("Column 1");
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
200
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
201 column = new TreeColumn(v.getTree(),DWT.NONE);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
202 column.setWidth(200);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
203 column.setText("Column 2");
143
42c3056512ba redirect the jface examples to the new collection wrappers
Frank Benoit <benoit@tionex.de>
parents: 140
diff changeset
204
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
205 v.setLabelProvider(new MyLabelProvider());
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
206 v.setContentProvider(new MyContentProvider());
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
207 v.setInput(createModel());
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
208 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
209
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
210 private MyModel createModel() {
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
211
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
212 MyModel root = new MyModel(0, null);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
213 root.counter = 0;
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
214
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
215 MyModel tmp;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
216 for (int i = 1; i < 10; i++) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
217 tmp = new MyModel(i, root);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
218 root.child.add(tmp);
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
219 for (int j = 1; j < i; j++) {
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
220 tmp.child.add(new MyModel(j, tmp));
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
221 }
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
222 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
223
140
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
224 return root;
2b4e94cafb85 tabs vs. spaces
Frank Benoit <benoit@tionex.de>
parents: 137
diff changeset
225 }
137
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
226
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
227
96a2d0b35360 jface snippets 014, 026, 043, 047
yidabu <yidabu@gmail.com>
parents:
diff changeset
228 }