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 154892 Details for
Bug 157430
[outline] dtd outline view does not update when delete attribute
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]
Fix Patch
157430_DTDTreeContentProvider.txt (text/plain), 4.90 KB, created by
Ian Tewksbury
on 2009-12-21 13:21:13 EST
(
hide
)
Description:
Fix Patch
Filename:
MIME Type:
Creator:
Ian Tewksbury
Created:
2009-12-21 13:21:13 EST
Size:
4.90 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.wst.dtd.ui >Index: src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java >=================================================================== >RCS file: /cvsroot/webtools/sourceediting/plugins/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java,v >retrieving revision 1.9 >diff -u -r1.9 DTDTreeContentProvider.java >--- src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java 10 Apr 2009 21:59:40 -0000 1.9 >+++ src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java 21 Dec 2009 18:18:02 -0000 >@@ -247,14 +247,19 @@ > // System.out.println("node changed notified"); > // System.out.println("selection before = " + > // ((StructuredViewer)view).getSelection()); >- if (node instanceof AttributeList && isShowLogicalOrder()) { >- // in this case, we are showing attributes under the element. >- // refresh the element object instead >+ if (node instanceof AttributeList) { >+ // attributes are shown under elements, refresh the element object instead > Iterator iter = node.getDTDFile().getNodes().iterator(); > while (iter.hasNext()) { >- DTDNode currentNode = (DTDNode) iter.next(); >+ final DTDNode currentNode = (DTDNode) iter.next(); > if (currentNode.getName().equals(node.getName()) && currentNode instanceof Element) { >- ((StructuredViewer) fViewer).refresh(currentNode, true); >+ >+ //refresh tree >+ fViewer.getControl().getDisplay().asyncExec(new Runnable() { >+ public void run() { >+ ((StructuredViewer) fViewer).refresh(currentNode, true); >+ } >+ }); > } > } // end of while () > } >@@ -315,45 +320,7 @@ > oldSelectedNode = (DTDNode) firstObj; > } > >- final AbstractTreeViewer abstractTreeViewer = (AbstractTreeViewer) fViewer; >- for (Iterator it = event.getNodes().iterator(); it.hasNext();) { >- Object node = it.next(); >- final Object parent = getParent(node); >- // Bug 111100 - If it is a top level node (ie. parent is a >- // DTDFile), >- // insert the node directly to improve performance >- if (parent instanceof DTDFile) { >- Object[] objs = getChildren(parent); >- for (int i = 0; i < objs.length; i++) { >- if (objs[i] == node) { >- abstractTreeViewer.insert(parent, node, i); >- break; >- } >- } >- } >- // If the parent node is not a DTDFile, just refresh the >- // parent for now >- else if (parent != null) { >- fViewer.getControl().getDisplay().asyncExec(new Runnable() { >- public void run() { >- if (fViewer.getControl().isDisposed()) >- return; >- abstractTreeViewer.refresh(parent, true); >- } >- }); >- } >- // You should never reach this block, if you do, just refresh >- // the whole tree >- else { >- fViewer.getControl().getDisplay().asyncExec(new Runnable() { >- public void run() { >- if (fViewer.getControl().isDisposed()) >- return; >- abstractTreeViewer.refresh(true); >- } >- }); >- } >- } >+ this.updateTree(event); > > Iterator iter = event.getNodes().iterator(); > List newSelection = new ArrayList(); >@@ -379,7 +346,8 @@ > abstractTreeViewer.remove(iter.next()); > } > } >- >+ >+ this.updateTree(event); > } > > /** >@@ -395,4 +363,50 @@ > logicalNodeLists = null; > } > } >+ >+ /** >+ * <p>Used to update the tree after a node event such as a node added or removed.</p> >+ * @param event the {@link NodesEvent} that caused the tree to need updating >+ */ >+ private void updateTree(NodesEvent event) { >+ final AbstractTreeViewer abstractTreeViewer = (AbstractTreeViewer) fViewer; >+ for (Iterator it = event.getNodes().iterator(); it.hasNext();) { >+ Object node = it.next(); >+ final Object parent = getParent(node); >+ // Bug 111100 - If it is a top level node (ie. parent is a >+ // DTDFile), >+ // insert the node directly to improve performance >+ if (parent instanceof DTDFile) { >+ Object[] objs = getChildren(parent); >+ for (int i = 0; i < objs.length; i++) { >+ if (objs[i] == node) { >+ abstractTreeViewer.insert(parent, node, i); >+ break; >+ } >+ } >+ } >+ // If the parent node is not a DTDFile, just refresh the >+ // parent for now >+ else if (parent != null) { >+ fViewer.getControl().getDisplay().asyncExec(new Runnable() { >+ public void run() { >+ if (fViewer.getControl().isDisposed()) >+ return; >+ abstractTreeViewer.refresh(parent, true); >+ } >+ }); >+ } >+ // You should never reach this block, if you do, just refresh >+ // the whole tree >+ else { >+ fViewer.getControl().getDisplay().asyncExec(new Runnable() { >+ public void run() { >+ if (fViewer.getControl().isDisposed()) >+ return; >+ abstractTreeViewer.refresh(true); >+ } >+ }); >+ } >+ } >+ } > }
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 157430
:
104459
|
154892
|
154989