annotate org.eclipse.jface.snippets/EclipseJfaceSnippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.d @ 32:c4b36186a9bc

Renamings
author Frank Benoit <benoit@tionex.de>
date Mon, 23 Mar 2009 11:25:49 +0100
parents 5d87d4191adf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2006 Tom Schindl and others.
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * Tom Schindl - initial API and implementation
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
14 module org.eclipse.jface.snippets.viewers.Snippet047VirtualLazyTreeViewer;
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
16 import org.eclipse.jface.viewers.ILazyTreeContentProvider;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
17 import org.eclipse.jface.viewers.LabelProvider;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
18 import org.eclipse.jface.viewers.TreeViewer;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
19 import org.eclipse.jface.viewers.Viewer;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
20 import org.eclipse.swt.SWT;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
21 import org.eclipse.swt.layout.FillLayout;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
22 import org.eclipse.swt.widgets.Display;
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
23 import org.eclipse.swt.widgets.Shell;
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
25 import java.lang.all;
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import tango.util.Convert;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import tango.util.container.LinkedList;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 version(JIVE) import jive.stacktrace;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 /**
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * @param args
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 void main(String[] args) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 Display display = new Display();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 Shell shell = new Shell(display);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 shell.setLayout(new FillLayout());
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 new Snippet047VirtualLazyTreeViewer(shell);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 shell.open();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 while (!shell.isDisposed()) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 if (!display.readAndDispatch())
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 display.sleep();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 display.dispose();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 /**
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * A simple TreeViewer to demonstrate usage of an ILazyContentProvider.
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 *
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 public class Snippet047VirtualLazyTreeViewer {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 alias ArrayWrapperT!(IntermediateNode) ArrayWrapperIntermediateNode;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 alias ArrayWrapperT!(LeafNode) ArrayWrapperLeafNode;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 private class MyContentProvider : ILazyTreeContentProvider {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 private TreeViewer viewer;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 private IntermediateNode[] elements;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 public this(TreeViewer viewer) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 this.viewer = viewer;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 public void dispose() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 if(cast(ArrayWrapperIntermediateNode) newInput)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 this.elements = (cast(ArrayWrapperIntermediateNode) newInput).array;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 *
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
80 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object)
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 public Object getParent(Object element) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 if (cast(LeafNode)element)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 return (cast(LeafNode) element).parent;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 return new ArrayWrapperIntermediateNode(elements);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 *
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
91 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object,
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * int)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 public void updateChildCount(Object element, int currentChildCount) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 int length = 0;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 if (cast(IntermediateNode)element) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 IntermediateNode node = cast(IntermediateNode) element;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 length = node.children.length;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 /// TODO: fix me access violation here
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 if(element !is null && elements !is null && (cast(ArrayWrapperIntermediateNode)element) && (cast(ArrayWrapperIntermediateNode)element).array is elements)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 length = elements.length;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 viewer.setChildCount(element, length);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 /*
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * (non-Javadoc)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 *
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
110 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateElement(java.lang.Object,
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * int)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 */
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 public void updateElement(Object parent, int index) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 Object element;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 if (cast(IntermediateNode)parent)
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 element = (cast(IntermediateNode) parent).children[index];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 else
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 element = elements[index];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 viewer.replace(parent, index, element);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 updateChildCount(element, -1);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 public class LeafNode {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 public int counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 public IntermediateNode parent;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 public this(int counter, IntermediateNode parent) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 this.counter = counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 this.parent = parent;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 public String toString() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 return "Leaf " ~ to!(String)(this.counter);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 public class IntermediateNode {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 public int counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 public LeafNode[] children;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 public this(int counter) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 this.counter = counter;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 children = new LeafNode[0];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 public String toString() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 return "Node " ~ to!(String)(this.counter);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 public void generateChildren(int i) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 children = new LeafNode[i];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 for (int j = 0; j < i; j++) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 children[j] = new LeafNode(j, this);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 public this(Shell shell) {
32
c4b36186a9bc Renamings
Frank Benoit <benoit@tionex.de>
parents: 31
diff changeset
165 final TreeViewer v = new TreeViewer(shell, SWT.VIRTUAL | SWT.BORDER);
31
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 v.setLabelProvider(new LabelProvider());
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 v.setContentProvider(new MyContentProvider(v));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 v.setUseHashlookup(true);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 IntermediateNode[] model = createModel();
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 v.setInput(new ArrayWrapperIntermediateNode(model));
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 v.getTree().setItemCount(model.length);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 private IntermediateNode[] createModel() {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 IntermediateNode[] elements = new IntermediateNode[10];
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 for (int i = 0; i < 10; i++) {
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 elements[i] = new IntermediateNode(i);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 elements[i].generateChildren(1000);
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 return elements;
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 }
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185
5d87d4191adf Added JFace Snippets sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 }