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 282638 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]
PossibleFix
Bug_562374_possibleFix.patch (text/plain), 2.71 KB, created by
Dieter Mai
on 2020-04-30 14:24:03 EDT
(
hide
)
Description:
PossibleFix
Filename:
MIME Type:
Creator:
Dieter Mai
Created:
2020-04-30 14:24:03 EDT
Size:
2.71 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..fd7db29 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 >@@ -17,6 +17,7 @@ > 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; >@@ -176,6 +177,7 @@ > } > } > >+ > // avoid accessing the widget, if there are no updates > boolean updated = false; > boolean checked = item.getChecked(); >@@ -209,27 +211,49 @@ > @Override > public void setCheckedElements(Object[] elements) { > Object[] oldCheckedElements = getCheckedElements(); >- super.setCheckedElements(elements); >+ HashSet<Object> elementsToCheck = new HashSet<>(); >+ HashSet<Object> elementsToUncheck = new HashSet<>(Arrays.asList(oldCheckedElements)); >+ for (Object element : elements) { >+ if (!elementsToUncheck.remove(element)) { >+ elementsToCheck.add(element); >+ } >+ } >+ >+ for (Object elementToCheck : elementsToCheck) { >+ super.setChecked(elementToCheck, true); >+ } >+ for (Object elementToUncheck : elementsToUncheck) { >+ super.setChecked(elementToUncheck, false); >+ } >+ >+ if (elementsToCheck.isEmpty() && elementsToUncheck.isEmpty()) { >+ return; // noting changed >+ } > > 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)) {
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