Bug 578270 - Run Configurations slow/ Restore Defaults
Change-Id: I99740c9a62b2ef147d8f0088c3a0e351a4a99316
Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
Reviewed-on: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189818
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
index 6153934..061c62c 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
@@ -713,14 +713,24 @@
IWorkingSetSelectionDialog dialog = workingSetManager.createWorkingSetSelectionDialog(getShell(), true);
if (dialog.open() == Window.OK) {
String[] ids = getPluginIDs(dialog.getSelection());
+ ArrayList<IPluginModelBase> newCheckedModels = new ArrayList<>();
+ ArrayList<Object> allCheckedModels = new ArrayList<>();
for (String id : ids) {
IPluginModelBase model = PluginRegistry.findModel(id);
if (model != null) {
if (!fPluginTreeViewer.getChecked(model)) {
- setChecked(model, true);
+ newCheckedModels.add(model);
}
}
}
+ Object[] checkedElements = fPluginTreeViewer.getCheckedElements();
+ allCheckedModels.addAll(Arrays.asList(checkedElements));// previous
+ allCheckedModels.addAll(newCheckedModels);// newly selected
+ fPluginTreeViewer.setCheckedElements(allCheckedModels.toArray());
+ // reset text on newly selected models
+ for (IPluginModelBase iPluginModelBase : newCheckedModels) {
+ resetText(iPluginModelBase);
+ }
countSelectedModels();
}
}
@@ -897,10 +907,10 @@
protected void handleRestoreDefaults() {
TreeSet<String> wtable = new TreeSet<>();
-
+ ArrayList<IPluginModelBase> checkedModels = new ArrayList<>();
for (int i = 0; i < getWorkspaceModels().length; i++) {
IPluginModelBase model = getWorkspaceModels()[i];
- fPluginTreeViewer.setChecked(model, true);
+ checkedModels.add(model);
String id = model.getPluginBase().getId();
if (id != null) {
wtable.add(model.getPluginBase().getId());
@@ -911,9 +921,10 @@
for (IPluginModelBase model : externalModels) {
boolean masked = wtable.contains(model.getPluginBase().getId());
if (!masked && model.isEnabled()) {
- fPluginTreeViewer.setChecked(model, true);
+ checkedModels.add(model);
}
}
+ fPluginTreeViewer.setCheckedElements(checkedModels.toArray());
countSelectedModels();
Object[] selected = fPluginTreeViewer.getCheckedElements();