Mercurial > projects > dwt-addons
annotate dwtx/jface/viewers/TableViewer.d @ 90:7ffeace6c47f
Update 3.4M7 to 3.4
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 06 Jul 2008 23:30:07 +0200 |
parents | 46a6e0e6ccd4 |
children |
rev | line source |
---|---|
10 | 1 /******************************************************************************* |
90 | 2 * Copyright (c) 2000, 2008 IBM Corporation and others. |
10 | 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) | |
90 | 74 * @noextend This class is not intended to be subclassed by clients. |
10 | 75 */ |
76 public class TableViewer : AbstractTableViewer { | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
77 alias AbstractTableViewer.refresh refresh; |
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
78 alias AbstractTableViewer.setSelection setSelection; |
10 | 79 |
80 /** | |
81 * This viewer's table control. | |
82 */ | |
83 private Table table; | |
84 | |
85 /** | |
86 * The cached row which is reused all over | |
87 */ | |
88 private TableViewerRow cachedRow; | |
89 | |
90 /** | |
91 * Creates a table viewer on a newly-created table control under the given | |
92 * parent. The table control is created using the DWT style bits | |
93 * <code>MULTI, H_SCROLL, V_SCROLL,</code> and <code>BORDER</code>. The | |
94 * viewer has no input, no content provider, a default label provider, no | |
95 * 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
|
96 * |
10 | 97 * @param parent |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
98 * the parent control |
10 | 99 */ |
100 public this(Composite parent) { | |
101 this(parent, DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL | DWT.BORDER); | |
102 } | |
103 | |
104 /** | |
105 * Creates a table viewer on a newly-created table control under the given | |
106 * parent. The table control is created using the given style bits. The | |
107 * viewer has no input, no content provider, a default label provider, no | |
108 * 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
|
109 * |
10 | 110 * @param parent |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
111 * the parent control |
10 | 112 * @param style |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
113 * DWT style bits |
10 | 114 */ |
115 public this(Composite parent, int style) { | |
116 this(new Table(parent, style)); | |
117 } | |
118 | |
119 /** | |
120 * Creates a table viewer on the given table control. The viewer has no | |
121 * input, no content provider, a default label provider, no sorter, and no | |
122 * filters. | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
123 * |
10 | 124 * @param table |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
125 * the table control |
10 | 126 */ |
127 public this(Table table) { | |
128 this.table = table; | |
129 hookControl(table); | |
130 } | |
131 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
132 public override Control getControl() { |
10 | 133 return table; |
134 } | |
135 | |
136 /** | |
137 * 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
|
138 * |
10 | 139 * @return the table control |
140 */ | |
141 public Table getTable() { | |
142 return table; | |
143 } | |
144 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
145 protected override ColumnViewerEditor createViewerEditor() { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
146 return new TableViewerEditor(this, null, |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
147 new ColumnViewerEditorActivationStrategy(this), |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
148 ColumnViewerEditor.DEFAULT); |
10 | 149 } |
150 | |
151 /** | |
152 * <p> | |
153 * Sets a new selection for this viewer and optionally makes it visible. The | |
154 * TableViewer implementation of this method is inefficient for the | |
155 * ILazyContentProvider as lookup is done by indices rather than elements | |
156 * and may require population of the entire table in worse case. | |
157 * </p> | |
158 * <p> | |
159 * Use Table#setSelection(int[] indices) and Table#showSelection() if you | |
160 * wish to set selection more efficiently when using a ILazyContentProvider. | |
161 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
162 * |
10 | 163 * @param selection |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
164 * the new selection |
10 | 165 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
166 * <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
|
167 * <code>false</code> otherwise |
10 | 168 * @see Table#setSelection(int[]) |
169 * @see Table#showSelection() | |
170 */ | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
171 public override void setSelection(ISelection selection, bool reveal) { |
10 | 172 super.setSelection(selection, reveal); |
173 } | |
174 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
175 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
|
176 if (cachedRow is null) { |
10 | 177 cachedRow = new TableViewerRow(cast(TableItem) item); |
178 } else { | |
179 cachedRow.setItem(cast(TableItem) item); | |
180 } | |
181 | |
182 return cachedRow; | |
183 } | |
184 | |
185 /** | |
186 * 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
|
187 * |
10 | 188 * @param style |
189 * @param rowIndex | |
190 * @return ViewerRow | |
191 * @since 3.3 | |
192 */ | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
193 protected override ViewerRow internalCreateNewRowPart(int style, int rowIndex) { |
10 | 194 TableItem item; |
195 | |
196 if (rowIndex >= 0) { | |
197 item = new TableItem(table, style, rowIndex); | |
198 } else { | |
199 item = new TableItem(table, style); | |
200 } | |
201 | |
202 return getViewerRowFromItem(item); | |
203 } | |
204 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
205 protected override Item getItemAt(Point p) { |
10 | 206 TableItem[] selection = table.getSelection(); |
207 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
208 if (selection.length is 1) { |
10 | 209 int columnCount = table.getColumnCount(); |
210 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
211 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
|
212 if (selection[0].getBounds(i).contains(p)) { |
10 | 213 return selection[0]; |
214 } | |
215 } | |
216 } | |
217 | |
218 return table.getItem(p); | |
219 } | |
220 | |
221 // Methods to provide widget independency | |
222 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
223 protected override int doGetItemCount() { |
10 | 224 return table.getItemCount(); |
225 } | |
226 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
227 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
|
228 return table.indexOf(cast(TableItem) item); |
10 | 229 } |
230 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
231 protected override void doSetItemCount(int count) { |
10 | 232 table.setItemCount(count); |
233 } | |
234 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
235 protected override Item[] doGetItems() { |
10 | 236 return table.getItems(); |
237 } | |
238 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
239 protected override int doGetColumnCount() { |
10 | 240 return table.getColumnCount(); |
241 } | |
242 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
243 protected override Widget doGetColumn(int index) { |
10 | 244 return table.getColumn(index); |
245 } | |
246 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
247 protected override Item doGetItem(int index) { |
10 | 248 return table.getItem(index); |
249 } | |
250 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
251 protected override Item[] doGetSelection() { |
10 | 252 return table.getSelection(); |
253 } | |
254 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
255 protected override int[] doGetSelectionIndices() { |
10 | 256 return table.getSelectionIndices(); |
257 } | |
258 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
259 protected override void doClearAll() { |
10 | 260 table.clearAll(); |
261 } | |
262 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
263 protected override void doResetItem(Item item) { |
10 | 264 TableItem tableItem = cast(TableItem) item; |
265 int columnCount = Math.max(1, table.getColumnCount()); | |
266 for (int i = 0; i < columnCount; i++) { | |
267 tableItem.setText(i, ""); //$NON-NLS-1$ | |
268 if (tableItem.getImage(i) !is null) { | |
269 tableItem.setImage(i, null); | |
270 } | |
271 } | |
272 } | |
273 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
274 protected override void doRemove(int start, int end) { |
10 | 275 table.remove(start, end); |
276 } | |
277 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
278 protected override void doRemoveAll() { |
10 | 279 table.removeAll(); |
280 } | |
281 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
282 protected override void doRemove(int[] indices) { |
10 | 283 table.remove(indices); |
284 } | |
285 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
286 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
|
287 table.showItem(cast(TableItem) item); |
10 | 288 } |
289 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
290 protected override void doDeselectAll() { |
10 | 291 table.deselectAll(); |
292 } | |
293 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
294 protected override void doSetSelection(Item[] items) { |
10 | 295 // Assert.isNotNull(items, "Items-Array can not be null"); //$NON-NLS-1$ |
296 | |
297 TableItem[] t = new TableItem[items.length]; | |
298 System.arraycopy(items, 0, t, 0, t.length); | |
299 | |
300 table.setSelection(t); | |
301 } | |
302 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
303 protected override void doShowSelection() { |
10 | 304 table.showSelection(); |
305 } | |
306 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
307 protected override void doSetSelection(int[] indices) { |
10 | 308 table.setSelection(indices); |
309 } | |
310 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
311 protected override void doClear(int index) { |
10 | 312 table.clear(index); |
313 } | |
314 | |
43
ea8ff534f622
Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents:
39
diff
changeset
|
315 protected override void doSelect(int[] indices) { |
10 | 316 table.select(indices); |
317 } | |
318 | |
319 /** | |
320 * 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
|
321 * 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
|
322 * attempts to preserve the selection. |
10 | 323 * <p> |
324 * Unlike the <code>update</code> methods, this handles structural changes | |
325 * to the given element (e.g. addition or removal of children). If only the | |
326 * given element needs updating, it is more efficient to use the | |
327 * <code>update</code> methods. | |
328 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
329 * |
10 | 330 * <p> |
331 * Subclasses who can provide this feature can open this method for the | |
332 * public | |
333 * </p> | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
334 * |
10 | 335 * @param element |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
336 * the element |
10 | 337 * @param updateLabels |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
338 * <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
|
339 * <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
|
340 * for existing elements are unchanged. |
10 | 341 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
342 * <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
|
343 * |
10 | 344 * @since 3.3 |
345 */ | |
346 public void refresh(Object element, bool updateLabels, | |
347 bool reveal) { | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
348 if (checkBusy()) |
10 | 349 return; |
350 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
351 if (isCellEditorActive()) { |
10 | 352 cancelEditing(); |
353 } | |
354 | |
39 | 355 preservingSelection(new class(element,updateLabels) Runnable { |
10 | 356 Object element_; |
357 bool updateLabels_; | |
39 | 358 this(Object a,bool b){ |
359 element_ = a; | |
360 updateLabels_ = b; | |
10 | 361 } |
362 public void run() { | |
363 internalRefresh(element_, updateLabels_); | |
364 } | |
365 }, reveal); | |
366 } | |
367 | |
368 /** | |
369 * 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
|
370 * 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
|
371 * 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
|
372 * 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
|
373 * only obtained as needed (for example, for new elements). |
10 | 374 * <p> |
375 * Calling <code>refresh(true)</code> has the same effect as | |
376 * <code>refresh()</code>. | |
377 * <p> | |
378 * 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
|
379 * 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
|
380 * to allow optimization where possible. |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
381 * |
10 | 382 * @param updateLabels |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
383 * <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
|
384 * <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
|
385 * for existing elements are unchanged. |
10 | 386 * @param reveal |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
43
diff
changeset
|
387 * <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
|
388 * |
10 | 389 * @since 3.3 |
390 */ | |
391 public void refresh(bool updateLabels, bool reveal) { | |
392 refresh(getRoot(), updateLabels, reveal); | |
393 } | |
394 } |