Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Chen2012-02-02 06:51:20 +0000
committerWilliam Chen2012-02-02 06:55:22 +0000
commitd24e900eb29743fc00086cea6fc5ddb0e464ccce (patch)
tree07e392f9e0bad7923721f9d01ab1302a6419061b /target_explorer
parent47d64e408cd008684d0fae635d2f7738766c9fb1 (diff)
downloadorg.eclipse.tcf-d24e900eb29743fc00086cea6fc5ddb0e464ccce.tar.gz
org.eclipse.tcf-d24e900eb29743fc00086cea6fc5ddb0e464ccce.tar.xz
org.eclipse.tcf-d24e900eb29743fc00086cea6fc5ddb0e464ccce.zip
Target Explorer: Fix the issue that the newly created node is not
selected after creation.
Diffstat (limited to 'target_explorer')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem/src/org/eclipse/tcf/te/tcf/filesystem/internal/wizards/NewNodeWizard.java56
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/editor/pages/TreeViewerExplorerEditorPage.java2
2 files changed, 39 insertions, 19 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem/src/org/eclipse/tcf/te/tcf/filesystem/internal/wizards/NewNodeWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem/src/org/eclipse/tcf/te/tcf/filesystem/internal/wizards/NewNodeWizard.java
index 36dafad95..7b9b0908f 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem/src/org/eclipse/tcf/te/tcf/filesystem/internal/wizards/NewNodeWizard.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem/src/org/eclipse/tcf/te/tcf/filesystem/internal/wizards/NewNodeWizard.java
@@ -12,22 +12,24 @@ package org.eclipse.tcf.te.tcf.filesystem.internal.wizards;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.tcf.protocol.Protocol;
import org.eclipse.tcf.te.tcf.filesystem.internal.operations.FSCreate;
import org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties;
+import org.eclipse.tcf.te.ui.views.editor.pages.TreeViewerExplorerEditorPage;
import org.eclipse.tcf.te.ui.wizards.AbstractWizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.IFormPage;
+import org.eclipse.ui.navigator.CommonNavigator;
/**
* The base wizard class to create a new file/folder in the file system of Target Explorer.
@@ -140,8 +142,12 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
catch (InterruptedException e) {
return false;
}
- FSTreeNode newNode = create.getNode();
- selectNewNode(newNode);
+ final FSTreeNode newNode = create.getNode();
+ getShell().getDisplay().asyncExec(new Runnable(){
+ @Override
+ public void run() {
+ selectNewNode(newNode);
+ }});
return true;
}
return false;
@@ -152,27 +158,41 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
*
* @param node The node to be selected.
*/
- private void selectNewNode(FSTreeNode node) {
+ void selectNewNode(FSTreeNode node) {
+ TreeViewer viewer = getFocusedViewer();
+ if(viewer != null) {
+ viewer.refresh(folder);
+ ISelection selection = new StructuredSelection(node);
+ viewer.setSelection(selection, true);
+ }
+ }
+
+ /**
+ * Get currently focused tree viewer.
+ *
+ * @return currently focused tree viewer or null.
+ */
+ TreeViewer getFocusedViewer() {
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
if (window != null) {
IWorkbenchPage page = window.getActivePage();
if (page != null) {
IWorkbenchPart part = page.getActivePart();
- if (part != null) {
- IWorkbenchPartSite site = part.getSite();
- ISelectionProvider selProvider = site.getSelectionProvider();
- ISelection selection = new StructuredSelection(node);
- if (selProvider instanceof Viewer) {
- // Select and make it visible.
- ((Viewer) selProvider).setSelection(selection, true);
- }
- else {
- selProvider.setSelection(selection);
+ if (part instanceof FormEditor) {
+ FormEditor formEditor = (FormEditor) part;
+ IFormPage formPage = formEditor.getActivePageInstance();
+ if (formPage instanceof TreeViewerExplorerEditorPage) {
+ TreeViewerExplorerEditorPage viewerPage = (TreeViewerExplorerEditorPage) formPage;
+ return (TreeViewer) viewerPage.getTreeControl().getViewer();
}
+ } else if (part instanceof CommonNavigator) {
+ CommonNavigator navigator = (CommonNavigator) part;
+ return navigator.getCommonViewer();
}
}
- }
- }
+ }
+ return null;
+ }
/**
* Create a wizard page to create a new node.
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/editor/pages/TreeViewerExplorerEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/editor/pages/TreeViewerExplorerEditorPage.java
index d50eac418..9e98f0c10 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/editor/pages/TreeViewerExplorerEditorPage.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/editor/pages/TreeViewerExplorerEditorPage.java
@@ -124,7 +124,7 @@ public class TreeViewerExplorerEditorPage extends AbstractCustomFormToolkitEdito
*
* @return The associated tree control or <code>null</code>.
*/
- protected final TreeControl getTreeControl() {
+ public final TreeControl getTreeControl() {
return treeControl;
}
}

Back to the top