diff options
| author | Andrey Loskutov | 2018-09-22 17:10:51 +0000 |
|---|---|---|
| committer | Andrey Loskutov | 2018-09-22 17:10:51 +0000 |
| commit | 7bbb937dfe9c4862baef4cc46b9c3267ad32fbfc (patch) | |
| tree | 1d6153f6aba2a2d90f86f040288f4b7e7817155f | |
| parent | 3a280017e91c57c7870aa32236c3b2bd9343e6ec (diff) | |
| download | eclipse.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>
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)); |
