Mercurial > projects > dwt-addons
annotate dwtx/jface/viewers/TableViewer.d @ 70:46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 22 May 2008 01:36:46 +0200 |
parents | ea8ff534f622 |
children | 7ffeace6c47f |
rev | line source |
---|---|
10 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2007 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 * Tom Schindl <tom.schindl@bestsolution.at> - concept of ViewerRow, | |
11 * fix for 159597, refactoring (bug 153993), | |
12 * widget-independency (bug 154329), fix for 187826, 191468 | |
13 * Port to the D programming language: | |
14 * Frank Benoit <benoit@tionex.de> | |
15 *******************************************************************************/ | |
16 | |
17 module dwtx.jface.viewers.TableViewer; | |
18 | |
19 import dwtx.jface.viewers.AbstractTableViewer; | |
20 import dwtx.jface.viewers.TableViewerRow; | |
21 import dwtx.jface.viewers.ColumnViewerEditor; | |
22 import dwtx.jface.viewers.ISelection; | |
23 import dwtx.jface.viewers.ViewerRow; | |
24 import dwtx.jface.viewers.TableViewerEditor; | |
25 import dwtx.jface.viewers.ColumnViewerEditorActivationStrategy; | |
26 import dwt.DWT; | |
27 import dwt.graphics.Point; | |
28 import dwt.widgets.Composite; | |
29 import dwt.widgets.Control; | |
30 import dwt.widgets.Item; | |
31 import dwt.widgets.Table; | |
32 import dwt.widgets.TableItem; | |
33 import dwt.widgets.Widget; | |
34 import dwtx.core.runtime.Assert; | |
35 | |
36 import dwt.dwthelper.utils; | |
37 import dwt.dwthelper.Runnable; | |
38 | |
39 /** | |
40 * A concrete viewer based on a DWT <code>Table</code> control. | |
41 * <p> | |
42 * This class is not intended to be subclassed outside the viewer framework. It | |
43 * is designed to be instantiated with a pre-existing DWT table control and | |
44 * configured with a domain-specific content provider, table label provider, | |
45 * element filter (optional), and element sorter (optional). | |
46 * </p> | |
47 * <p> | |
48 * Label providers for table viewers must implement either the | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
49 * <code>ITableLabelProvider</code> or the <code>ILabelProvider</code> interface |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
50 * (see <code>TableViewer.setLabelProvider</code> for more details). |
10 | 51 * </p> |
52 * <p> | |
53 * As of 3.1 the TableViewer now supports the DWT.VIRTUAL flag. If the | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
54 * underlying table is DWT.VIRTUAL, the content provider may implement {@link |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
55 * ILazyContentProvider} instead of {@link IStructuredContentProvider} . Note |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
56 * that in this case, the viewer does not support sorting or filtering. Also |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
57 * note that in this case, the Widget based APIs may return null if the element |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
58 * is not specified or not created yet. |
10 | 59 * </p> |
60 * <p> | |
61 * Users of DWT.VIRTUAL should also avoid using getItems() from the Table within | |
62 * the TreeViewer as this does not necessarily generate a callback for the | |
63 * TreeViewer to populate the items. It also has the side effect of creating all | |
64 * of the items thereby eliminating the performance improvements of DWT.VIRTUAL. | |
65 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
66 * <p> |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
67 * Users setting up an editable table with more than 1 column <b>have</b> to pass the |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
68 * DWT.FULL_SELECTION style bit |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
69 * </p> |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
70 * |
10 | 71 * @see DWT#VIRTUAL |
72 * @see #doFindItem(Object) | |
73 * @see #internalRefresh(Object, bool) | |
74 */ | |
75 public class TableViewer : AbstractTableViewer { | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
76 alias AbstractTableViewer.refresh refresh; |
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
77 alias AbstractTableViewer.setSelection setSelection; |
10 | 78 |
79 /** | |
80 * This viewer's table control. | |
81 */ | |
82 private Table table; | |
83 | |
84 /** | |
85 * The cached row which is reused all over | |
86 */ | |
87 private TableViewerRow cachedRow; | |
88 | |
89 /** | |
90 * Creates a table viewer on a newly-created table control under the given | |
91 * parent. The table control is created using the DWT style bits | |
92 * <code>MULTI, H_SCROLL, V_SCROLL,</code> and <code>BORDER</code>. The | |
93 * viewer has no input, no content provider, a default label provider, no | |
94 * sorter, and no filters. The table has no columns. | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
95 * |
10 | 96 * @param parent |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
97 * the parent control |
10 | 98 */ |
99 public this(Composite parent) { | |
100 this(parent, DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL | DWT.BORDER); | |
101 } | |
102 | |
103 /** | |
104 * Creates a table viewer on a newly-created table control under the given | |
105 * parent. The table control is created using the given style bits. The | |
106 * viewer has no input, no content provider, a default label provider, no | |
107 * sorter, and no filters. The table has no columns. | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
108 * |
10 | 109 * @param parent |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
110 * the parent control |
10 | 111 * @param style |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
112 * DWT style bits |
10 | 113 */ |
114 public this(Composite parent, int style) { | |
115 this(new Table(parent, style)); | |
116 } | |
117 | |
118 /** | |
119 * Creates a table viewer on the given table control. The viewer has no | |
120 * input, no content provider, a default label provider, no sorter, and no | |
121 * filters. | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
122 * |
10 | 123 * @param table |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
124 * the table control |
10 | 125 */ |
126 public this(Table table) { | |
127 this.table = table; | |
128 hookControl(table); | |
129 } | |
130 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
131 public override Control getControl() { |
10 | 132 return table; |
133 } | |
134 | |
135 /** | |
136 * Returns this table viewer's table control. | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
137 * |
10 | 138 * @return the table control |
139 */ | |
140 public Table getTable() { | |
141 return table; | |
142 } | |
143 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
144 protected override ColumnViewerEditor createViewerEditor() { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
145 return new TableViewerEditor(this, null, |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
146 new ColumnViewerEditorActivationStrategy(this), |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
147 ColumnViewerEditor.DEFAULT); |
10 | 148 } |
149 | |
150 /** | |
151 * <p> | |
152 * Sets a new selection for this viewer and optionally makes it visible. The | |
153 * TableViewer implementation of this method is inefficient for the | |
154 * ILazyContentProvider as lookup is done by indices rather than elements | |
155 * and may require population of the entire table in worse case. | |
156 * </p> | |
157 * <p> | |
158 * Use Table#setSelection(int[] indices) and Table#showSelection() if you | |
159 * wish to set selection more efficiently when using a ILazyContentProvider. | |
160 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
161 * |
10 | 162 * @param selection |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
163 * the new selection |
10 | 164 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
165 * <code>true</code> if the selection is to be made visible, and |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
166 * <code>false</code> otherwise |
10 | 167 * @see Table#setSelection(int[]) |
168 * @see Table#showSelection() | |
169 */ | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
170 public override void setSelection(ISelection selection, bool reveal) { |
10 | 171 super.setSelection(selection, reveal); |
172 } | |
173 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
174 protected override ViewerRow getViewerRowFromItem(Widget item) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
175 if (cachedRow is null) { |
10 | 176 cachedRow = new TableViewerRow(cast(TableItem) item); |
177 } else { | |
178 cachedRow.setItem(cast(TableItem) item); | |
179 } | |
180 | |
181 return cachedRow; | |
182 } | |
183 | |
184 /** | |
185 * Create a new row with style at index | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
186 * |
10 | 187 * @param style |
188 * @param rowIndex | |
189 * @return ViewerRow | |
190 * @since 3.3 | |
191 */ | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
192 protected override ViewerRow internalCreateNewRowPart(int style, int rowIndex) { |
10 | 193 TableItem item; |
194 | |
195 if (rowIndex >= 0) { | |
196 item = new TableItem(table, style, rowIndex); | |
197 } else { | |
198 item = new TableItem(table, style); | |
199 } | |
200 | |
201 return getViewerRowFromItem(item); | |
202 } | |
203 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
204 protected override Item getItemAt(Point p) { |
10 | 205 TableItem[] selection = table.getSelection(); |
206 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
207 if (selection.length is 1) { |
10 | 208 int columnCount = table.getColumnCount(); |
209 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
210 for (int i = 0; i < columnCount; i++) { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
211 if (selection[0].getBounds(i).contains(p)) { |
10 | 212 return selection[0]; |
213 } | |
214 } | |
215 } | |
216 | |
217 return table.getItem(p); | |
218 } | |
219 | |
220 // Methods to provide widget independency | |
221 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
222 protected override int doGetItemCount() { |
10 | 223 return table.getItemCount(); |
224 } | |
225 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
226 protected override int doIndexOf(Item item) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
227 return table.indexOf(cast(TableItem) item); |
10 | 228 } |
229 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
230 protected override void doSetItemCount(int count) { |
10 | 231 table.setItemCount(count); |
232 } | |
233 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
234 protected override Item[] doGetItems() { |
10 | 235 return table.getItems(); |
236 } | |
237 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
238 protected override int doGetColumnCount() { |
10 | 239 return table.getColumnCount(); |
240 } | |
241 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
242 protected override Widget doGetColumn(int index) { |
10 | 243 return table.getColumn(index); |
244 } | |
245 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
246 protected override Item doGetItem(int index) { |
10 | 247 return table.getItem(index); |
248 } | |
249 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
250 protected override Item[] doGetSelection() { |
10 | 251 return table.getSelection(); |
252 } | |
253 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
254 protected override int[] doGetSelectionIndices() { |
10 | 255 return table.getSelectionIndices(); |
256 } | |
257 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
258 protected override void doClearAll() { |
10 | 259 table.clearAll(); |
260 } | |
261 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
262 protected override void doResetItem(Item item) { |
10 | 263 TableItem tableItem = cast(TableItem) item; |
264 int columnCount = Math.max(1, table.getColumnCount()); | |
265 for (int i = 0; i < columnCount; i++) { | |
266 tableItem.setText(i, ""); //$NON-NLS-1$ | |
267 if (tableItem.getImage(i) !is null) { | |
268 tableItem.setImage(i, null); | |
269 } | |
270 } | |
271 } | |
272 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
273 protected override void doRemove(int start, int end) { |
10 | 274 table.remove(start, end); |
275 } | |
276 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
277 protected override void doRemoveAll() { |
10 | 278 table.removeAll(); |
279 } | |
280 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
281 protected override void doRemove(int[] indices) { |
10 | 282 table.remove(indices); |
283 } | |
284 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
285 protected override void doShowItem(Item item) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
286 table.showItem(cast(TableItem) item); |
10 | 287 } |
288 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
289 protected override void doDeselectAll() { |
10 | 290 table.deselectAll(); |
291 } | |
292 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
293 protected override void doSetSelection(Item[] items) { |
10 | 294 // Assert.isNotNull(items, "Items-Array can not be null"); //$NON-NLS-1$ |
295 | |
296 TableItem[] t = new TableItem[items.length]; | |
297 System.arraycopy(items, 0, t, 0, t.length); | |
298 | |
299 table.setSelection(t); | |
300 } | |
301 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
302 protected override void doShowSelection() { |
10 | 303 table.showSelection(); |
304 } | |
305 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
306 protected override void doSetSelection(int[] indices) { |
10 | 307 table.setSelection(indices); |
308 } | |
309 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
310 protected override void doClear(int index) { |
10 | 311 table.clear(index); |
312 } | |
313 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
314 protected override void doSelect(int[] indices) { |
10 | 315 table.select(indices); |
316 } | |
317 | |
318 /** | |
319 * Refreshes this viewer starting with the given element. Labels are updated | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
320 * as described in <code>refresh(bool updateLabels)</code>. The methods |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
321 * attempts to preserve the selection. |
10 | 322 * <p> |
323 * Unlike the <code>update</code> methods, this handles structural changes | |
324 * to the given element (e.g. addition or removal of children). If only the | |
325 * given element needs updating, it is more efficient to use the | |
326 * <code>update</code> methods. | |
327 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
328 * |
10 | 329 * <p> |
330 * Subclasses who can provide this feature can open this method for the | |
331 * public | |
332 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
333 * |
10 | 334 * @param element |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
335 * the element |
10 | 336 * @param updateLabels |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
337 * <code>true</code> to update labels for existing elements, |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
338 * <code>false</code> to only update labels as needed, assuming that labels |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
339 * for existing elements are unchanged. |
10 | 340 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
341 * <code>true</code> to make the preserved selection visible afterwards |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
342 * |
10 | 343 * @since 3.3 |
344 */ | |
345 public void refresh(Object element, bool updateLabels, | |
346 bool reveal) { | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
347 if (checkBusy()) |
10 | 348 return; |
349 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
350 if (isCellEditorActive()) { |
10 | 351 cancelEditing(); |
352 } | |
353 | |
39 | 354 preservingSelection(new class(element,updateLabels) Runnable { |
10 | 355 Object element_; |
356 bool updateLabels_; | |
39 | 357 this(Object a,bool b){ |
358 element_ = a; | |
359 updateLabels_ = b; | |
10 | 360 } |
361 public void run() { | |
362 internalRefresh(element_, updateLabels_); | |
363 } | |
364 }, reveal); | |
365 } | |
366 | |
367 /** | |
368 * Refreshes this viewer with information freshly obtained from this | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
369 * viewer's model. If <code>updateLabels</code> is <code>true</code> then |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
370 * labels for otherwise unaffected elements are updated as well. Otherwise, |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
371 * it assumes labels for existing elements are unchanged, and labels are |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
372 * only obtained as needed (for example, for new elements). |
10 | 373 * <p> |
374 * Calling <code>refresh(true)</code> has the same effect as | |
375 * <code>refresh()</code>. | |
376 * <p> | |
377 * Note that the implementation may still obtain labels for existing | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
378 * elements even if <code>updateLabels</code> is false. The intent is simply |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
379 * to allow optimization where possible. |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
380 * |
10 | 381 * @param updateLabels |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
382 * <code>true</code> to update labels for existing elements, |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
383 * <code>false</code> to only update labels as needed, assuming that labels |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
384 * for existing elements are unchanged. |
10 | 385 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
386 * <code>true</code> to make the preserved selection visible afterwards |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
387 * |
10 | 388 * @since 3.3 |
389 */ | |
390 public void refresh(bool updateLabels, bool reveal) { | |
391 refresh(getRoot(), updateLabels, reveal); | |
392 } | |
393 } |