|
Lines 370-373
Link Here
|
| 370 |
public void refresh(boolean updateLabels, boolean reveal) { |
370 |
public void refresh(boolean updateLabels, boolean reveal) { |
| 371 |
refresh(getRoot(), updateLabels, reveal); |
371 |
refresh(getRoot(), updateLabels, reveal); |
| 372 |
} |
372 |
} |
|
|
373 |
|
| 374 |
/* (non-Javadoc) |
| 375 |
* @see org.eclipse.jface.viewers.AbstractTableViewer#remove(java.lang.Object[]) |
| 376 |
*/ |
| 377 |
public void remove(Object[] elements) { |
| 378 |
assertElementsNotNull(elements); |
| 379 |
if (checkBusy()) |
| 380 |
return; |
| 381 |
if (elements.length == 0) { |
| 382 |
return; |
| 383 |
} |
| 384 |
// deselect any items that are being removed, see bug 97786 |
| 385 |
Object elementToBeRemoved = null; |
| 386 |
CustomHashtable elementsToBeRemoved = null; |
| 387 |
if (elements.length == 1) { |
| 388 |
elementToBeRemoved = elements[0]; |
| 389 |
} else { |
| 390 |
elementsToBeRemoved = new CustomHashtable(getComparer()); |
| 391 |
for (int i = 0; i < elements.length; i++) { |
| 392 |
Object element = elements[i]; |
| 393 |
elementsToBeRemoved.put(element, element); |
| 394 |
} |
| 395 |
} |
| 396 |
int[] selectionIndices = doGetSelectionIndices(); |
| 397 |
for (int i = 0; i < selectionIndices.length; i++) { |
| 398 |
int index = selectionIndices[i]; |
| 399 |
Item item = doGetItem(index); |
| 400 |
Object data = item.getData(); |
| 401 |
if (data != null) { |
| 402 |
if ((elementsToBeRemoved != null && elementsToBeRemoved |
| 403 |
.containsKey(data)) |
| 404 |
|| equals(elementToBeRemoved, data)) { |
| 405 |
table.deselect(index); |
| 406 |
} |
| 407 |
} |
| 408 |
} |
| 409 |
super.remove(elements); |
| 410 |
} |
| 373 |
} |
411 |
} |