- move TerminalHandler to separate plugin since it performs actions that are 
best suited for remote utilities
- remove TerminalHandler from remotetools plugin
- modify org.yocto.sdk.remotetools to use implementation from 
org.yocto.remote.utils

Signed-off-by: Ioana Grigoropol <[email protected]>
---
 .../org.yocto.remote.utils/META-INF/MANIFEST.MF    |    9 +-
 .../org/yocto/remote/utils/TerminalHandler.java    |  128 ++++++++++++++++++++
 .../sdk/remotetools/actions/DialogHandler.java     |    1 +
 .../sdk/remotetools/actions/TerminalHandler.java   |  128 --------------------
 4 files changed, 137 insertions(+), 129 deletions(-)
 create mode 100644 
plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/TerminalHandler.java
 delete mode 100644 
plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java

diff --git a/plugins/org.yocto.remote.utils/META-INF/MANIFEST.MF 
b/plugins/org.yocto.remote.utils/META-INF/MANIFEST.MF
index 0d7b560..c7b57fe 100644
--- a/plugins/org.yocto.remote.utils/META-INF/MANIFEST.MF
+++ b/plugins/org.yocto.remote.utils/META-INF/MANIFEST.MF
@@ -11,10 +11,17 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.eclipse.rse.core,
  org.eclipse.rse.core.model,
  org.eclipse.rse.core.subsystems,
+ org.eclipse.rse.internal.terminals.ui,
+ org.eclipse.rse.internal.terminals.ui.views,
  org.eclipse.rse.services,
  org.eclipse.rse.services.files,
  org.eclipse.rse.services.shells,
+ org.eclipse.rse.services.terminals,
  org.eclipse.rse.subsystems.files.core.servicesubsystem,
  org.eclipse.rse.subsystems.shells.core.subsystems.servicesubsystem,
- org.eclipse.rse.subsystems.terminals.core
+ org.eclipse.rse.subsystems.terminals.core,
+ org.eclipse.rse.subsystems.terminals.core.elements,
+ org.eclipse.rse.ui,
+ org.eclipse.tm.internal.terminal.control,
+ org.eclipse.tm.internal.terminal.provisional.api
 Export-Package: org.yocto.remote.utils
diff --git 
a/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/TerminalHandler.java
 
b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/TerminalHandler.java
new file mode 100644
index 0000000..1eed7e9
--- /dev/null
+++ 
b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/TerminalHandler.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Intel Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Intel - initial API and implementation
+ 
*******************************************************************************/
+package org.yocto.remote.utils;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.rse.core.model.IHost;
+import org.eclipse.rse.internal.terminals.ui.TerminalServiceHelper;
+import org.eclipse.rse.internal.terminals.ui.views.RSETerminalConnector;
+import org.eclipse.rse.internal.terminals.ui.views.TerminalViewTab;
+import org.eclipse.rse.internal.terminals.ui.views.TerminalViewer;
+import org.eclipse.rse.internal.terminals.ui.views.TerminalsUI;
+import org.eclipse.rse.services.terminals.ITerminalShell;
+import org.eclipse.rse.subsystems.terminals.core.ITerminalServiceSubSystem;
+import org.eclipse.rse.subsystems.terminals.core.elements.TerminalElement;
+import org.eclipse.rse.ui.SystemBasePlugin;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
+import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
+
+abstract public class TerminalHandler extends AbstractHandler {
+
+
+       protected Shell shell;
+
+       protected String changeTerm = "export TERM=vt100;";
+
+       abstract protected String getInitCmd();
+       abstract protected String getConnnectionName();
+       abstract protected String getDialogTitle();
+
+       protected ITerminalShell getTerminalShellFromTab(CTabItem item) {
+        ITerminalShell terminalShell = null;
+        ITerminalViewControl terminalViewControl = (ITerminalViewControl) item
+                .getData(TerminalViewTab.DATA_KEY_CONTROL);
+        ITerminalConnector terminalConnector = terminalViewControl
+                .getTerminalConnector();
+        if (terminalConnector instanceof RSETerminalConnector) {
+            RSETerminalConnector rseTerminalConnector = (RSETerminalConnector) 
terminalConnector;
+            terminalShell = rseTerminalConnector.getTerminalHostShell();
+        }
+        return terminalShell;
+    }
+
+       protected boolean preProcess(final ITerminalServiceSubSystem 
terminalSubSystem) {
+               if (!terminalSubSystem.isConnected()) {
+                       try {
+                               ProgressMonitorDialog dialog = new 
ProgressMonitorDialog(shell);
+                               dialog.run(true, true, new 
IRunnableWithProgress(){
+                                   @Override
+                                       public void run(IProgressMonitor 
monitor) {
+                                       monitor.beginTask("Connecting to remote 
target ...", 100);
+                                       try {
+                                       terminalSubSystem.connect(new 
NullProgressMonitor(), false);
+                                       monitor.done();
+                                       } catch (Exception e) {
+                                               
CommonHelper.showErrorDialog("Connection failure", null, e.getMessage());
+                                               monitor.done();
+
+                                       }
+                                   }
+                               });
+                       } catch (OperationCanceledException e) {
+                               // user canceled, return silently
+                               return false;
+                       } catch (Exception e) {
+                               
SystemBasePlugin.logError(e.getLocalizedMessage(), e);
+                               return false;
+                       }
+               } else
+                       return true;
+               return false;
+       }
+
+       public void execute(IHost host) throws ExecutionException {
+
+               final ITerminalServiceSubSystem terminalSubSystem = 
RSEHelper.getTerminalSubSystem(host);
+
+               if (terminalSubSystem != null) {
+                       TerminalsUI terminalsUI = TerminalsUI.getInstance();
+                       TerminalViewer viewer = 
terminalsUI.activateTerminalsView();
+                       if (preProcess(terminalSubSystem)) {
+                               CTabItem tab = 
viewer.getTabFolder().createTabItem(
+                                               terminalSubSystem.getHost(), 
changeTerm + getInitCmd());
+                               //since RSETerminalConnector not exit the shell 
during the diconnection,
+                               //we have manually exit it here
+                               try {
+                                       tab.addDisposeListener(new 
DisposeListener() {
+                                               @Override
+                                               public void 
widgetDisposed(DisposeEvent e) {
+                                                       Object source = 
e.getSource();
+                                                       if (source instanceof 
CTabItem) {
+                                                               CTabItem 
currentItem = (CTabItem) source;
+                                                               ITerminalShell 
shell=getTerminalShellFromTab(currentItem);
+                                                               if(shell!=null) 
{
+                                                                       
shell.exit();
+                                                               }
+                                                       }
+                                               }
+                                       });
+                               }catch(Exception e) {
+                                       e.printStackTrace();
+                               }
+                               TerminalElement element = TerminalServiceHelper
+                                               .createTerminalElement(tab, 
terminalSubSystem);
+                               terminalSubSystem.addChild(element);
+
+                       }
+               }
+       }
+
+}
diff --git 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/DialogHandler.java
 
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/DialogHandler.java
index 67d33ba..5031e70 100644
--- 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/DialogHandler.java
+++ 
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/DialogHandler.java
@@ -15,6 +15,7 @@ import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.rse.core.model.IHost;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.yocto.remote.utils.TerminalHandler;
 
 abstract public class DialogHandler extends TerminalHandler {
 
diff --git 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
 
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
deleted file mode 100644
index ae04dc9..0000000
--- 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Intel Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Intel - initial API and implementation
- 
*******************************************************************************/
-package org.yocto.sdk.remotetools.actions;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.rse.core.model.IHost;
-import org.eclipse.rse.internal.terminals.ui.TerminalServiceHelper;
-import org.eclipse.rse.internal.terminals.ui.views.RSETerminalConnector;
-import org.eclipse.rse.internal.terminals.ui.views.TerminalViewTab;
-import org.eclipse.rse.internal.terminals.ui.views.TerminalViewer;
-import org.eclipse.rse.internal.terminals.ui.views.TerminalsUI;
-import org.eclipse.rse.services.terminals.ITerminalShell;
-import org.eclipse.rse.subsystems.terminals.core.ITerminalServiceSubSystem;
-import org.eclipse.rse.subsystems.terminals.core.elements.TerminalElement;
-import org.eclipse.rse.ui.SystemBasePlugin;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.yocto.remote.utils.CommonHelper;
-import org.yocto.remote.utils.RSEHelper;
-
-abstract public class TerminalHandler extends AbstractHandler {
-       
-       
-       protected Shell shell;
-       
-       protected String changeTerm="export TERM=vt100;";
-       
-       abstract protected String getInitCmd();
-       abstract protected String getConnnectionName();
-       abstract protected String getDialogTitle();
-       
-       protected ITerminalShell getTerminalShellFromTab(CTabItem item) {
-        ITerminalShell terminalShell = null;
-        ITerminalViewControl terminalViewControl = (ITerminalViewControl) item
-                .getData(TerminalViewTab.DATA_KEY_CONTROL);
-        ITerminalConnector terminalConnector = terminalViewControl
-                .getTerminalConnector();
-        if (terminalConnector instanceof RSETerminalConnector) {
-            RSETerminalConnector rseTerminalConnector = (RSETerminalConnector) 
terminalConnector;
-            terminalShell = rseTerminalConnector.getTerminalHostShell();
-        }
-        return terminalShell;
-    }
-
-       protected boolean preProcess(final ITerminalServiceSubSystem 
terminalSubSystem) {
-               if (!terminalSubSystem.isConnected()) {
-                       try {
-                               ProgressMonitorDialog dialog = new 
ProgressMonitorDialog(shell);
-                               dialog.run(true, true, new 
IRunnableWithProgress(){
-                                   public void run(IProgressMonitor monitor) {
-                                       monitor.beginTask("Connecting to remote 
target ...", 100);
-                                       try {
-                                       terminalSubSystem.connect(new 
NullProgressMonitor(), false);
-                                       monitor.done();
-                                       } catch (Exception e) {
-                                               
CommonHelper.showErrorDialog("Connection failure", null, e.getMessage());
-                                               monitor.done();
-                                               
-                                       }
-                                   }
-                               });
-                       } catch (OperationCanceledException e) {
-                               // user canceled, return silently
-                               return false;
-                       } catch (Exception e) {
-                               
SystemBasePlugin.logError(e.getLocalizedMessage(), e);
-                               return false;
-                       }
-               } else
-                       return true;
-               return false;
-       }
-       
-       public void execute(IHost host) throws ExecutionException {
-               
-               final ITerminalServiceSubSystem terminalSubSystem = 
RSEHelper.getTerminalSubSystem(host);
-               
-               if (terminalSubSystem != null) {
-                       TerminalsUI terminalsUI = TerminalsUI.getInstance();
-                       TerminalViewer viewer = 
terminalsUI.activateTerminalsView();
-                       if (preProcess(terminalSubSystem)) {
-                               CTabItem tab = 
viewer.getTabFolder().createTabItem(
-                                               terminalSubSystem.getHost(), 
changeTerm + getInitCmd());
-                               //since RSETerminalConnector not exit the shell 
during the diconnection,
-                               //we have manually exit it here
-                               try {
-                                       tab.addDisposeListener(new 
DisposeListener() {
-                                               public void 
widgetDisposed(DisposeEvent e) {
-                                                       Object source = 
e.getSource();
-                                                       if (source instanceof 
CTabItem) {
-                                                               CTabItem 
currentItem = (CTabItem) source;
-                                                               ITerminalShell 
shell=getTerminalShellFromTab(currentItem);
-                                                               if(shell!=null) 
{
-                                                                       
shell.exit();
-                                                               }
-                                                       }
-                                               }
-                                       });
-                               }catch(Exception e) {
-                                       e.printStackTrace();
-                               }
-                               TerminalElement element = TerminalServiceHelper
-                                               .createTerminalElement(tab, 
terminalSubSystem);
-                               terminalSubSystem.addChild(element);
-
-                       }
-               }
-       }
-
-}
-- 
1.7.9.5

_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to