Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2018-09-22 17:10:51 +0000
committerAndrey Loskutov2018-09-22 17:10:51 +0000
commit7bbb937dfe9c4862baef4cc46b9c3267ad32fbfc (patch)
tree1d6153f6aba2a2d90f86f040288f4b7e7817155f
parent3a280017e91c57c7870aa32236c3b2bd9343e6ec (diff)
downloadeclipse.platform.ui-7bbb937dfe9c4862baef4cc46b9c3267ad32fbfc.tar.gz
eclipse.platform.ui-7bbb937dfe9c4862baef4cc46b9c3267ad32fbfc.tar.xz
eclipse.platform.ui-7bbb937dfe9c4862baef4cc46b9c3267ad32fbfc.zip
Bug 539343 - Progress view has random order of entriesI20180922-1800
Use LinkedHashSet to keep the insertion order for entries in the Progress view. This way the most recent jobs are shown at the bottom of the view and not somewhere else. Same for the error dialog showing multiple job error entries. Change-Id: I9a47d4913b30e584413c875c91fffd273e084872 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/DetailedProgressViewer.java4
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/FinishedJobs.java4
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressViewerContentProvider.java3
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/statushandlers/WorkbenchStatusDialogManagerImpl.java4
4 files changed, 7 insertions, 8 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/DetailedProgressViewer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/DetailedProgressViewer.java
index 36eb240ebba..e173c56a351 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/DetailedProgressViewer.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/DetailedProgressViewer.java
@@ -14,7 +14,7 @@
package org.eclipse.ui.internal.progress;
import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.eclipse.jface.dialogs.IDialogConstants;
@@ -156,7 +156,7 @@ public class DetailedProgressViewer extends AbstractProgressViewer {
ViewerComparator sorter = getComparator();
// Use a Set in case we are getting something added that exists
- Set<JobTreeElement> newItems = new HashSet<>(elements.length);
+ Set<JobTreeElement> newItems = new LinkedHashSet<>(elements.length);
Control[] existingChildren = control.getChildren();
for (Control child : existingChildren) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/FinishedJobs.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/FinishedJobs.java
index 84488bbd2c7..1f20160759d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/FinishedJobs.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/FinishedJobs.java
@@ -16,7 +16,7 @@ package org.eclipse.ui.internal.progress;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import org.eclipse.core.commands.common.EventManager;
@@ -55,7 +55,7 @@ public final class FinishedJobs extends EventManager {
private IJobProgressManagerListener listener;
- private Set<JobTreeElement> keptjobinfos = new HashSet<>();
+ private Set<JobTreeElement> keptjobinfos = new LinkedHashSet<>();
private Map<JobTreeElement, Long> finishedTime = new HashMap<>();
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressViewerContentProvider.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressViewerContentProvider.java
index 090802ab18f..883a98c9f48 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressViewerContentProvider.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressViewerContentProvider.java
@@ -13,7 +13,6 @@
*******************************************************************************/
package org.eclipse.ui.internal.progress;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -150,7 +149,7 @@ public class ProgressViewerContentProvider extends ProgressContentProvider {
return elements;
}
- Set<Object> all = new HashSet<>();
+ Set<Object> all = new LinkedHashSet<>();
for (Object element : elements) {
all.add(element);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/statushandlers/WorkbenchStatusDialogManagerImpl.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/statushandlers/WorkbenchStatusDialogManagerImpl.java
index 783a067f636..881bc088b54 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/statushandlers/WorkbenchStatusDialogManagerImpl.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/statushandlers/WorkbenchStatusDialogManagerImpl.java
@@ -16,7 +16,7 @@ package org.eclipse.ui.internal.statushandlers;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.Map;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IStatus;
@@ -157,7 +157,7 @@ public class WorkbenchStatusDialogManagerImpl {
dialogState.put(IStatusDialogConstants.HIDE_SUPPORT_BUTTON,
Boolean.FALSE);
dialogState.put(IStatusDialogConstants.STATUS_ADAPTERS, Collections
- .synchronizedSet(new HashSet()));
+ .synchronizedSet(new LinkedHashSet()));
dialogState.put(IStatusDialogConstants.STATUS_MODALS, new HashMap());
dialogState.put(IStatusDialogConstants.LABEL_PROVIDER, new LabelProviderWrapper(
dialogState));

Back to the top