Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 282649 Details for
Bug 562374
"Generate Getter and Setter" dialog does display grayed state incorrectly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
PossibleFix2
Bug562374_possibleFix2.patch (text/plain), 2.70 KB, created by
Dieter Mai
on 2020-05-01 09:01:55 EDT
(
hide
)
Description:
PossibleFix2
Filename:
MIME Type:
Creator:
Dieter Mai
Created:
2020-05-01 09:01:55 EDT
Size:
2.70 KB
patch
obsolete
>diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/ContainerCheckedTreeViewer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/ContainerCheckedTreeViewer.java >index 820a26e..f3e6161 100644 >--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/ContainerCheckedTreeViewer.java >+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/ContainerCheckedTreeViewer.java >@@ -15,8 +15,8 @@ > package org.eclipse.ui.dialogs; > > import java.util.ArrayList; >-import java.util.Arrays; > import java.util.HashSet; >+import java.util.Set; > import org.eclipse.jface.viewers.CheckboxTreeViewer; > import org.eclipse.jface.viewers.ITreeViewerListener; > import org.eclipse.jface.viewers.TreeExpansionEvent; >@@ -209,27 +209,45 @@ > @Override > public void setCheckedElements(Object[] elements) { > Object[] oldCheckedElements = getCheckedElements(); >- super.setCheckedElements(elements); >+ Set<Object> elementsToCheck = new HashSet<>(); >+ Set<Object> elementsToUncheck = getSetOf(oldCheckedElements); >+ for (Object element : elements) { >+ if (!elementsToUncheck.remove(element)) { >+ elementsToCheck.add(element); >+ } >+ } >+ >+ if (elementsToCheck.isEmpty() && elementsToUncheck.isEmpty()) { >+ return; // noting changed >+ } >+ >+ elementsToCheck.forEach(element -> super.setChecked(element, true)); >+ elementsToUncheck.forEach(element -> super.setChecked(element, false)); > > Control tree = getControl(); > try { > tree.setRedraw(false); >- if (oldCheckedElements.length > 0) { >- // calculate intersection of previously and newly checked elements to avoid >- // no-op updates >- HashSet<Object> changedElements = new HashSet<>(Arrays.asList(elements)); >- for (Object element : oldCheckedElements) { >- changedElements.remove(element); >- } >- doCheckStateChanged(changedElements.toArray()); >- } else { >- doCheckStateChanged(elements); >+ if (!elementsToCheck.isEmpty()) { >+ doCheckStateChanged(elementsToCheck.toArray()); >+ } >+ >+ if (!elementsToUncheck.isEmpty()) { >+ updateElementsState(elementsToUncheck); > } > } finally { > tree.setRedraw(true); > } > } > >+ private void updateElementsState(Set<Object> elementsToUpdate) { >+ for (Object element : elementsToUpdate) { >+ Widget item = findItem(element); >+ if (item instanceof TreeItem) { >+ updateParentItems((TreeItem) item); >+ } >+ } >+ } >+ > @Override > public boolean setSubtreeChecked(Object element, boolean state) { > if (super.setSubtreeChecked(element, state)) { >@@ -281,4 +299,12 @@ > } > } > >+ private Set<Object> getSetOf(Object[] objects) { >+ Set<Object> set = new HashSet<>(objects.length); >+ for (Object o : objects) { >+ set.add(o); >+ } >+ >+ return set; >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 562374
:
282527
|
282528
|
282638
| 282649