diff options
author | ustieber | 2011-04-30 14:14:54 +0000 |
---|---|---|
committer | ustieber | 2011-04-30 14:14:54 +0000 |
commit | ba76a0fa6b75a0a5acc2d23069e550f936bcd9f6 (patch) | |
tree | 6e22d70a13da77a74fbaa8f2cb1cd53785f77086 | |
parent | 770cea0e72616fdcb80370f25440bc010538864a (diff) | |
download | org.eclipse.tcf-ba76a0fa6b75a0a5acc2d23069e550f936bcd9f6.tar.gz org.eclipse.tcf-ba76a0fa6b75a0a5acc2d23069e550f936bcd9f6.tar.xz org.eclipse.tcf-ba76a0fa6b75a0a5acc2d23069e550f936bcd9f6.zip |
Target Explorer: fixed: File system root nodes not correctly expanding in common navigator view
-rw-r--r-- | target_explorer/plugins/org.eclipse.tm.te.tcf.filesystem/src/org/eclipse/tm/te/tcf/filesystem/controls/FSTreeContentProvider.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/target_explorer/plugins/org.eclipse.tm.te.tcf.filesystem/src/org/eclipse/tm/te/tcf/filesystem/controls/FSTreeContentProvider.java b/target_explorer/plugins/org.eclipse.tm.te.tcf.filesystem/src/org/eclipse/tm/te/tcf/filesystem/controls/FSTreeContentProvider.java index d463cb399..25937a588 100644 --- a/target_explorer/plugins/org.eclipse.tm.te.tcf.filesystem/src/org/eclipse/tm/te/tcf/filesystem/controls/FSTreeContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tm.te.tcf.filesystem/src/org/eclipse/tm/te/tcf/filesystem/controls/FSTreeContentProvider.java @@ -430,14 +430,14 @@ public class FSTreeContentProvider implements ITreeContentProvider { /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ - public boolean hasChildren(Object element) { + public boolean hasChildren(final Object element) { assert element != null; boolean hasChildren = false; if (element instanceof FSTreeNode) { FSTreeNode node = (FSTreeNode)element; - if (node.type != null && node.type.endsWith("DirNode")) { //$NON-NLS-1$ + if (node.type != null && (node.type.endsWith("DirNode") || node.type.endsWith("RootNode"))) { //$NON-NLS-1$ //$NON-NLS-2$ if (!node.childrenQueried || node.childrenQueryRunning) { hasChildren = true; } else if (node.childrenQueried) { @@ -445,6 +445,21 @@ public class FSTreeContentProvider implements ITreeContentProvider { } } } + else if (element instanceof IPeerModel) { + final String[] peerId = new String[1]; + if (Protocol.isDispatchThread()) { + peerId[0] = ((IPeerModel)element).getPeer().getID(); + } else { + Protocol.invokeAndWait(new Runnable() { + public void run() { + peerId[0] = ((IPeerModel)element).getPeer().getID(); + } + }); + } + + FSTreeNode root = peerId[0] != null ? fModel.getRoot(peerId[0]): null; + if (root != null) hasChildren = hasChildren(root); + } return hasChildren; } |