|
Lines 87-92
Link Here
|
| 87 |
import org.eclipse.swt.widgets.Label; |
87 |
import org.eclipse.swt.widgets.Label; |
| 88 |
import org.eclipse.swt.widgets.Menu; |
88 |
import org.eclipse.swt.widgets.Menu; |
| 89 |
import org.eclipse.swt.widgets.Shell; |
89 |
import org.eclipse.swt.widgets.Shell; |
|
|
90 |
import org.eclipse.swt.widgets.Table; |
| 90 |
import org.eclipse.swt.widgets.Text; |
91 |
import org.eclipse.swt.widgets.Text; |
| 91 |
import org.eclipse.swt.widgets.ToolBar; |
92 |
import org.eclipse.swt.widgets.ToolBar; |
| 92 |
import org.eclipse.swt.widgets.ToolItem; |
93 |
import org.eclipse.swt.widgets.ToolItem; |
|
Lines 809-815
Link Here
|
| 809 |
if (list != null && !list.getTable().isDisposed()) { |
810 |
if (list != null && !list.getTable().isDisposed()) { |
| 810 |
|
811 |
|
| 811 |
list.setItemCount(contentProvider.getElements(null).length); |
812 |
list.setItemCount(contentProvider.getElements(null).length); |
| 812 |
list.refresh(); |
813 |
contentProvider.internalRefresh(); |
| 813 |
|
814 |
|
| 814 |
if (list.getTable().getItemCount() > 0) { |
815 |
if (list.getTable().getItemCount() > 0) { |
| 815 |
list.getTable().setSelection(0); |
816 |
list.getTable().setSelection(0); |
|
Lines 2488-2493
Link Here
|
| 2488 |
public void refresh() { |
2489 |
public void refresh() { |
| 2489 |
scheduleRefresh(); |
2490 |
scheduleRefresh(); |
| 2490 |
} |
2491 |
} |
|
|
2492 |
|
| 2493 |
private void internalRefresh() { |
| 2494 |
|
| 2495 |
int lastFilteredItemsSize = lastFilteredItems.size(); |
| 2496 |
|
| 2497 |
if (lastFilteredItems.size() != items.size()) |
| 2498 |
reloadCache(false, null); |
| 2499 |
|
| 2500 |
Table table = list.getTable(); |
| 2501 |
if (table.getItemCount() == 0 || lastFilteredItemsSize == 0 || lastCompletedFilter == null) { |
| 2502 |
list.refresh(true); |
| 2503 |
} else { |
| 2504 |
int topVisible = table.getTopIndex(); |
| 2505 |
int numberOfVisible = table.getClientArea().height |
| 2506 |
/ table.getItems()[0].getBounds().height + 1; |
| 2507 |
for (int i = 0; i < numberOfVisible; i++) { |
| 2508 |
|
| 2509 |
int index = topVisible + i; |
| 2510 |
Object newElement = null; |
| 2511 |
Object oldElement = list.getElementAt(index); |
| 2512 |
|
| 2513 |
if (index < lastFilteredItems.size()) { |
| 2514 |
newElement = lastFilteredItems.get(index); |
| 2515 |
} |
| 2516 |
|
| 2517 |
if (newElement != null && oldElement != null |
| 2518 |
&& !newElement.equals(oldElement)) { |
| 2519 |
if (index >= table.getItemCount()) { |
| 2520 |
list.add(newElement); |
| 2521 |
} else { |
| 2522 |
list.replace(newElement, index); |
| 2523 |
} |
| 2524 |
} |
| 2525 |
|
| 2526 |
} |
| 2527 |
} |
| 2528 |
} |
| 2491 |
|
2529 |
|
| 2492 |
/** |
2530 |
/** |
| 2493 |
* Sets progress message. |
2531 |
* Sets progress message. |