Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Schwarz2012-11-29 09:05:06 +0000
committerTobias Schwarz2012-11-29 09:06:22 +0000
commita53e72105fa2d1adc6beb9d4a546a224bde8c516 (patch)
tree382e0fa22064920e02fc48ad949eb6eb723978fd /target_explorer/plugins/org.eclipse.tcf.te.launch.ui
parent230a088674b8c456739baec26486d1a5994c0245 (diff)
downloadorg.eclipse.tcf-a53e72105fa2d1adc6beb9d4a546a224bde8c516.tar.gz
org.eclipse.tcf-a53e72105fa2d1adc6beb9d4a546a224bde8c516.tar.xz
org.eclipse.tcf-a53e72105fa2d1adc6beb9d4a546a224bde8c516.zip
[Taregt Explorer] introduce IPropertiesHandlerDelegate to be able to
switch to correct editor page and set the right selection
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.launch.ui')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/META-INF/MANIFEST.MF1
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml15
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/handler/PropertiesHandlerDelegate.java71
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/services/UIService.java38
4 files changed, 125 insertions, 0 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/META-INF/MANIFEST.MF b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/META-INF/MANIFEST.MF
index b74a9985e..5bad8a2cf 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/META-INF/MANIFEST.MF
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/META-INF/MANIFEST.MF
@@ -45,6 +45,7 @@ Export-Package: org.eclipse.tcf.te.launch.ui.activator;x-internal:=true,
org.eclipse.tcf.te.launch.ui.nls;x-internal:=true,
org.eclipse.tcf.te.launch.ui.properties,
org.eclipse.tcf.te.launch.ui.selection,
+ org.eclipse.tcf.te.launch.ui.services,
org.eclipse.tcf.te.launch.ui.tabs,
org.eclipse.tcf.te.launch.ui.tabs.filetransfers,
org.eclipse.tcf.te.launch.ui.tabs.launchcontext,
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
index df7d82d3c..198bf65c5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
@@ -28,6 +28,21 @@
</propertyTester>
</extension>
+<!-- Service contributions -->
+ <extension point="org.eclipse.tcf.te.runtime.services.services">
+ <service
+ class="org.eclipse.tcf.te.launch.ui.services.UIService"
+ id="org.eclipse.tcf.te.launch.uiservice">
+ <serviceType class="org.eclipse.tcf.te.runtime.services.interfaces.IUIService"/>
+ <enablement>
+ <or>
+ <instanceof value="org.eclipse.tcf.te.launch.ui.model.LaunchModel"/>
+ <instanceof value="org.eclipse.tcf.te.launch.ui.model.LaunchNode"/>
+ </or>
+ </enablement>
+ </service>
+ </extension>
+
<!-- Editor page contributions -->
<extension point="org.eclipse.tcf.te.ui.views.editorPages">
<editorPage
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/handler/PropertiesHandlerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/handler/PropertiesHandlerDelegate.java
new file mode 100644
index 000000000..d636806b7
--- /dev/null
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/handler/PropertiesHandlerDelegate.java
@@ -0,0 +1,71 @@
+/**
+ * PropertiesHandlerDelegate.java
+ * Created on Jan 25, 2012
+ *
+ * Copyright (c) 2012 Wind River Systems, Inc.
+ *
+ * The right to copy, distribute, modify, or otherwise make use
+ * of this software may be licensed only pursuant to the terms
+ * of an applicable Wind River license agreement.
+ */
+package org.eclipse.tcf.te.launch.ui.handler;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.tcf.te.launch.ui.internal.pages.LaunchExplorerEditorPage;
+import org.eclipse.tcf.te.launch.ui.model.LaunchModel;
+import org.eclipse.tcf.te.launch.ui.model.LaunchNode;
+import org.eclipse.tcf.te.ui.interfaces.handler.IPropertiesHandlerDelegate;
+import org.eclipse.tcf.te.ui.swt.DisplayUtil;
+import org.eclipse.tcf.te.ui.views.editor.Editor;
+import org.eclipse.tcf.te.ui.views.editor.EditorInput;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.IFormPage;
+
+/**
+ * Launch properties command handler implementation.
+ */
+public class PropertiesHandlerDelegate implements IPropertiesHandlerDelegate {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.ui.interfaces.handler.IPropertiesHandlerDelegate#getEditorInput(java.lang.Object)
+ */
+ @Override
+ public IEditorInput getEditorInput(Object element) {
+ if (element instanceof LaunchModel) {
+ return new EditorInput(((LaunchModel)element).getModelRoot());
+ }
+ if (element instanceof LaunchNode) {
+ return new EditorInput(((LaunchNode)element).getModel().getModelRoot());
+ }
+ return new EditorInput(element);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.ui.interfaces.handler.IPropertiesHandlerDelegate#postOpenProperties(org.eclipse.ui.IEditorPart, java.lang.Object)
+ */
+ @Override
+ public void postOpenProperties(IEditorPart editor, final Object element) {
+ if (editor instanceof FormEditor) {
+ final FormEditor formEditor = (FormEditor)editor;
+ DisplayUtil.safeAsyncExec(new Runnable() {
+ @Override
+ public void run() {
+ IFormPage page = formEditor.setActivePage("org.eclipse.tcf.te.launch.ui.LaunchEditorPage"); //$NON-NLS-1$
+ // If the element is a context node, select the node
+ if (page != null && element instanceof LaunchModel || element instanceof LaunchNode) {
+ Viewer viewer = ((LaunchExplorerEditorPage)page).getTreeControl().getViewer();
+ if (viewer != null) {
+ viewer.setSelection(new StructuredSelection(element), true);
+ }
+ }
+ else if (formEditor instanceof Editor) {
+ ((Editor)formEditor).setActivePage(0);
+ }
+ }
+ });
+ }
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/services/UIService.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/services/UIService.java
new file mode 100644
index 000000000..6b8fb49ba
--- /dev/null
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/services/UIService.java
@@ -0,0 +1,38 @@
+/**
+ * UIService.java
+ * Created on Nov 15, 2012
+ *
+ * Copyright (c) 2012 Wind River Systems, Inc.
+ *
+ * The right to copy, distribute, modify, or otherwise make use
+ * of this software may be licensed only pursuant to the terms
+ * of an applicable Wind River license agreement.
+ */
+package org.eclipse.tcf.te.launch.ui.services;
+
+import org.eclipse.tcf.te.launch.ui.handler.PropertiesHandlerDelegate;
+import org.eclipse.tcf.te.runtime.services.AbstractService;
+import org.eclipse.tcf.te.runtime.services.interfaces.IUIService;
+import org.eclipse.tcf.te.ui.interfaces.handler.IPropertiesHandlerDelegate;
+
+/**
+ * UI service implementation.
+ */
+public class UIService extends AbstractService implements IUIService {
+ private final IPropertiesHandlerDelegate propertiesHandlerDelegate = new PropertiesHandlerDelegate();
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.runtime.services.interfaces.IUIService#getDelegate(java.lang.Object, java.lang.Class)
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public <V> V getDelegate(Object context, Class<? extends V> clazz) {
+
+ if (IPropertiesHandlerDelegate.class.isAssignableFrom(clazz)) {
+ return (V) propertiesHandlerDelegate;
+ }
+
+ return null;
+ }
+
+}

Back to the top