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 123785 Details for
Bug 113675
[Viewers] TreeViewer fails to persist user-selected expanded/collapsed nodes for a multi-level deep tree
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]
potential solution (untested)
patch-113675.txt (text/plain), 2.57 KB, created by
Boris Bokowski
on 2009-01-26 13:27:12 EST
(
hide
)
Description:
potential solution (untested)
Filename:
MIME Type:
Creator:
Boris Bokowski
Created:
2009-01-26 13:27:12 EST
Size:
2.57 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface >Index: src/org/eclipse/jface/viewers/AbstractTreeViewer.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java,v >retrieving revision 1.142 >diff -u -r1.142 AbstractTreeViewer.java >--- src/org/eclipse/jface/viewers/AbstractTreeViewer.java 21 Jan 2009 17:39:45 -0000 1.142 >+++ src/org/eclipse/jface/viewers/AbstractTreeViewer.java 26 Jan 2009 18:26:19 -0000 >@@ -85,6 +85,8 @@ > */ > private int expandToLevel = 0; > >+ private boolean preserveExpansion; >+ > /** > * Safe runnable used to update an item. > */ >@@ -104,6 +106,17 @@ > > } > >+ protected void preservingSelection(Runnable updateCode) { >+ Object[] expandedElements = null; >+ if (preserveExpansion) { >+ expandedElements = getExpandedElements(); >+ } >+ super.preservingSelection(updateCode); >+ if (preserveExpansion) { >+ setExpandedElements(expandedElements); >+ } >+ } >+ > /** > * Creates an abstract tree viewer. The viewer has no input, no content > * provider, a default label provider, no sorter, no filters, and has >@@ -2436,6 +2449,39 @@ > } > > /** >+ * Enable or disable the preserve expansion behavior of this viewer. The >+ * default is that the viewer does not guarantee preserving deep expansion state >+ * across update operations, for performance reasons. Note that this method >+ * has been introduced in 3.5 and that trying to enable expansion state >+ * preserving may not be possible for all subclasses of >+ * <code>AbstractTreeViewer</code>, or may cause program errors. This method >+ * is supported for {@link TreeViewer}, but no promises are made for other >+ * subclasses of AbstractTreeViewer, or subclasses of the listed viewer >+ * classes. >+ * >+ * @param preserve >+ * <code>true</code> if expansion state should be preserved, >+ * <code>false</code> otherwise >+ * @since 3.5 >+ */ >+ public void setPreserveExpansion(boolean preserve) { >+ this.preserveExpansion = preserve; >+ } >+ >+ /** >+ * Returns whether (deep) expansion state should be preserved across >+ * update operations. To be used by subclasses that override >+ * {@link #preservingSelection(Runnable)}. >+ * >+ * @return <code>true</code> if expansion should be preserved, >+ * <code>false</code> otherwise >+ * @since 3.5 >+ */ >+ protected boolean getPreserveExpansion() { >+ return preserveExpansion; >+ } >+ >+ /** > * Sets the selection to the given list of items. > * > * @param items
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 113675
:
83448
| 123785 |
164351