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 40880 Details for
Bug 140941
[Viewers] JFace viewers cannot handle duplicate elements unless they have an element map
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Partial fix
140941_jface_patch.txt (text/plain), 4.54 KB, created by
Stefan Xenos
on 2006-05-09 17:26:32 EDT
(
hide
)
Description:
Partial fix
Filename:
MIME Type:
Creator:
Stefan Xenos
Created:
2006-05-09 17:26:32 EDT
Size:
4.54 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface >Index: src/org/eclipse/jface/viewers/AbstractTreeViewer.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java,v >retrieving revision 1.90 >diff -u -r1.90 AbstractTreeViewer.java >--- src/org/eclipse/jface/viewers/AbstractTreeViewer.java 8 May 2006 20:56:57 -0000 1.90 >+++ src/org/eclipse/jface/viewers/AbstractTreeViewer.java 9 May 2006 21:24:37 -0000 >@@ -50,6 +50,8 @@ > */ > public abstract class AbstractTreeViewer extends StructuredViewer { > >+ private static Widget[] NO_WIDGETS_ARRAY = new Widget[0]; >+ > /** > * Constant indicating that all levels of the tree should be expanded or > * collapsed. >@@ -131,6 +133,26 @@ > } > } > >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.viewers.StructuredViewer#doFindItems(java.lang.Object) >+ */ >+ protected Widget[] doFindItems(Object element) { >+ // compare with root >+ Object root = getRoot(); >+ if (root == null) { >+ return NO_WIDGETS_ARRAY; >+ } >+ >+ ArrayList result = new ArrayList(); >+ Item[] items = getChildren(getControl()); >+ if (items != null) { >+ for (int i = 0; i < items.length; i++) { >+ internalFindItems(result, items[i], element); >+ } >+ } >+ return (Widget[]) result.toArray(new Widget[result.size()]); >+ } >+ > /** > * Find the items for the given element of tree path > * @param parentElementOrTreePath the element or tree path >@@ -785,22 +807,11 @@ > > /* (non-Javadoc) Method declared on StructuredViewer. */ > protected Widget doFindItem(Object element) { >- // compare with root >- Object root = getRoot(); >- if (root == null) { >- return null; >- } >- >- Item[] items = getChildren(getControl()); >- if (items != null) { >- for (int i = 0; i < items.length; i++) { >- Widget o = internalFindItem(items[i], element); >- if (o != null) { >- return o; >- } >- } >- } >- return null; >+ Widget[] items = doFindItems(element); >+ if (items.length > 0) { >+ return items[0]; >+ } >+ return null; > } > > /** >@@ -1525,25 +1536,21 @@ > * the element > * @return Widget > */ >- private Widget internalFindItem(Item parent, Object element) { >- >+ private void internalFindItems(List result, Item parent, Object element) { >+ > // compare with node > Object data = parent.getData(); > if (data != null) { > if (equals(data, element)) { >- return parent; >+ result.add(parent); > } > } > // recurse over children > Item[] items = getChildren(parent); > for (int i = 0; i < items.length; i++) { > Item item = items[i]; >- Widget o = internalFindItem(item, element); >- if (o != null) { >- return o; >- } >+ internalFindItems(result, item, element); > } >- return null; > } > > /* (non-Javadoc) Method declared on StructuredViewer. */ >Index: src/org/eclipse/jface/viewers/StructuredViewer.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java,v >retrieving revision 1.52 >diff -u -r1.52 StructuredViewer.java >--- src/org/eclipse/jface/viewers/StructuredViewer.java 8 May 2006 20:56:56 -0000 1.52 >+++ src/org/eclipse/jface/viewers/StructuredViewer.java 9 May 2006 21:24:37 -0000 >@@ -767,11 +767,25 @@ > return (Widget[])widgetOrWidgets; > } > } >- result = doFindItem(element); >- return result == null ? NO_WIDGETS : new Widget[] { result }; >+ return doFindItems(element); > } > > /** >+ * Returns all widgets in this viewer's control which represent the given >+ * element. This method searchs all the children of the input element. >+ * <p> >+ * Subclassers may extend this method. >+ * </p> >+ * >+ * @param element >+ * @return the corresponding widget, or <code>null</code> if none >+ */ >+ protected Widget[] doFindItems(Object element) { >+ Widget result = doFindItem(element); >+ return result == null ? NO_WIDGETS : new Widget[] { result }; >+ } >+ >+ /** > * Notifies any double-click listeners that a double-click has been > * received. Only listeners registered at the time this method is called are > * notified.
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 140941
: 40880 |
239439