Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -165,16 +165,23 @@ private void updateMaxDisplayedValue(IPreferenceStore prefs) {

@Override
public void add(JobTreeElement... elements) {
ViewerComparator sorter = getComparator();

// Use a Set in case we are getting something added that exists
Set<JobTreeElement> newItems = new LinkedHashSet<>(jobItemControls.keySet());
Set<JobTreeElement> items = getItems();
for (JobTreeElement element : elements) {
if (element != null) {
newItems.add(element);
items.add(element);
}
}
updateItems(items);
}

private Set<JobTreeElement> getItems() {
// Use a Set in case we are getting something added that exists
Set<JobTreeElement> newItems = new LinkedHashSet<>(jobItemControls.keySet());
return newItems;
}

private void updateItems(Set<JobTreeElement> newItems) {
ViewerComparator sorter = getComparator();
JobTreeElement[] infos = newItems.toArray(new JobTreeElement[0]);
if (sorter != null) {
sorter.sort(this, infos);
Expand Down Expand Up @@ -369,6 +376,7 @@ protected void internalRefresh(Object element) {
@Override
public void remove(JobTreeElement... elements) {

Set<JobTreeElement> items = getItems();
for (Object element : elements) {
JobTreeElement treeElement = (JobTreeElement) element;
// Make sure we are not keeping this one
Expand All @@ -387,19 +395,13 @@ public void remove(JobTreeElement... elements) {
remove(parent);
}
if (item != null) {
jobItemControls.remove(element);
items.remove(element);
unmapElement(element);
item.dispose();
}
}
}

Control[] existingChildren = control.getChildren();
for (int i = 0; i < existingChildren.length; i++) {
ProgressInfoItem item = (ProgressInfoItem) existingChildren[i];
item.setColor(i);
}
updateForShowingProgress();
// also sort again, otherwise removed job may appear at top again:
updateItems(items);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,19 @@ protected JobInfo(Job enclosingJob) {
this.taskInfo = Optional.empty();
}

@Override
public int hashCode() {
return job.hashCode();
}

@Override
public boolean equals(Object obj) {
if (obj instanceof JobInfo) {
return job.equals(((JobInfo) obj).job);
}
return false;
}

/**
* Adds the subtask to the receiver.
*
Expand Down
2 changes: 1 addition & 1 deletion bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ui.workbench; singleton:=true
Bundle-Version: 3.126.0.qualifier
Bundle-Version: 3.126.100.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.ui.internal.WorkbenchPlugin
Bundle-ActivationPolicy: lazy
Expand Down