Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 175507 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/dialogs/FilteredItemsSelectionDialog.java (-2 / +38 lines)
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;
91
import org.eclipse.swt.widgets.TableItem;
90
import org.eclipse.swt.widgets.Text;
92
import org.eclipse.swt.widgets.Text;
91
import org.eclipse.swt.widgets.ToolBar;
93
import org.eclipse.swt.widgets.ToolBar;
92
import org.eclipse.swt.widgets.ToolItem;
94
import org.eclipse.swt.widgets.ToolItem;
Lines 527-533 Link Here
527
529
528
				if (selectedElements.size() > 0) {
530
				if (selectedElements.size() > 0) {
529
					removeHistoryItemAction
531
					removeHistoryItemAction
530
								.setText(WorkbenchMessages.FilteredItemsSelectionDialog_removeItemsFromHistoryAction);
532
							.setText(WorkbenchMessages.FilteredItemsSelectionDialog_removeItemsFromHistoryAction);
531
533
532
					manager.add(removeHistoryActionContributionItem);
534
					manager.add(removeHistoryActionContributionItem);
533
535
Lines 809-815 Link Here
809
		if (list != null && !list.getTable().isDisposed()) {
811
		if (list != null && !list.getTable().isDisposed()) {
810
812
811
			list.setItemCount(contentProvider.getElements(null).length);
813
			list.setItemCount(contentProvider.getElements(null).length);
812
			list.refresh();
814
			contentProvider.internalRefresh();
813
815
814
			if (list.getTable().getItemCount() > 0) {
816
			if (list.getTable().getItemCount() > 0) {
815
				list.getTable().setSelection(0);
817
				list.getTable().setSelection(0);
Lines 2489-2494 Link Here
2489
			scheduleRefresh();
2491
			scheduleRefresh();
2490
		}
2492
		}
2491
2493
2494
		private void internalRefresh() {
2495
2496
			int lastFilteredItemsSize = lastFilteredItems.size();
2497
2498
			if (lastFilteredItems.size() != items.size())
2499
				reloadCache(false, null);
2500
2501
			Table table = list.getTable();
2502
2503
			if (table.getItemCount() == 0 || lastFilteredItemsSize == 0
2504
					|| lastCompletedFilter == null) {
2505
				list.refresh(true);
2506
			} else {
2507
				for (int index = 0; index < lastFilteredItems.size(); index++) {
2508
					Object element = lastFilteredItems.get(index);
2509
					if (element != null) {
2510
						TableItem tableItem = (TableItem) list
2511
								.testFindItem(element);
2512
						if (tableItem == null)
2513
							if (index >= table.getItemCount()) {
2514
								list.add(element);
2515
							} else {
2516
								list.replace(element, index);
2517
							}
2518
						else {
2519
							for (int i = table.indexOf(tableItem) - 1; i > index; i--)
2520
								list.remove(list.getElementAt(i));
2521
						}
2522
					}
2523
				}
2524
2525
			}
2526
		}
2527
2492
		/**
2528
		/**
2493
		 * Sets progress message.
2529
		 * Sets progress message.
2494
		 * 
2530
		 * 

Return to bug 175507