/**********************************************************************
- * Copyright (c) 2012 Ericsson
- *
+ * Copyright (c) 2012, 2013 Ericsson
+ *
* 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:
+ *
+ * Contributors:
* Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.remote;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
-import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.CommandShell;
-import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.ICommandShell;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.IRSECallback;
import org.eclipse.rse.core.subsystems.ICommunicationsListener;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.IFileServiceSubSystem;
/**
- * <b><u>RemoteSystemProxy</u></b>
* <p>
* RemoteSystemProxy implementation.
* </p>
+ *
+ * @author Bernd Hufmann
*/
public class RemoteSystemProxy implements IRemoteSystemProxy {
-
+
// ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
- private IHost fHost;
+
+ private final IHost fHost;
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
+
+ /**
+ * Constructor
+ *
+ * @param host
+ * The host of this proxy
+ */
public RemoteSystemProxy(IHost host) {
fHost = host;
}
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#getShellService(org.eclipse.rse.core.model.IHost)
- */
+
@Override
public IShellService getShellService() {
ISubSystem ss = getShellServiceSubSystem();
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#getTerminalService()
- */
@Override
public ITerminalService getTerminalService() {
ISubSystem ss = getTerminalServiceSubSystem();
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#getShellServiceSubSystem()
- */
@Override
public ISubSystem getShellServiceSubSystem() {
if (fHost == null) {
if (svc!=null) {
ssvc = (IShellService)svc.getAdapter(IShellService.class);
if (ssvc != null) {
- return subSystems[i];
- }
+ return subSystems[i];
+ }
}
}
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#getTerminalServiceSubSystem()
- */
@Override
public ISubSystem getTerminalServiceSubSystem() {
if (fHost == null) {
if (svc!=null) {
ssvc = (ITerminalService)svc.getAdapter(ITerminalService.class);
if (ssvc != null) {
- return subSystems[i];
- }
+ return subSystems[i];
+ }
}
}
return null;
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.remote.IRemoteSystemProxy#getFileServiceSubSystem()
- */
@Override
public IFileServiceSubSystem getFileServiceSubSystem() {
if (fHost == null) {
}
return null;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#connect(org.eclipse.rse.core.model.IRSECallback)
- */
+
+ @Override
+ public int getPort() {
+ if (getShellServiceSubSystem() != null) {
+ return getShellServiceSubSystem().getConnectorService().getPort();
+ }
+ return IRemoteSystemProxy.INVALID_PORT_NUMBER;
+ }
+
+ @Override
+ public void setPort(int port) {
+ if ((getShellServiceSubSystem() != null) && (port > 0)) {
+ getShellServiceSubSystem().getConnectorService().setPort(port);
+ }
+ }
+
@Override
public void connect(IRSECallback callback) throws ExecutionException {
ISubSystem shellSubSystem = getShellServiceSubSystem();
if (!shellSubSystem.isConnected()) {
try {
shellSubSystem.connect(false, callback);
- } catch (Exception e) {
+ } catch (OperationCanceledException e) {
+ callback.done(Status.CANCEL_STATUS, null);
+ }
+ catch (Exception e) {
throw new ExecutionException(e.toString(), e);
}
} else {
}
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#disconnect()
- */
@Override
public void disconnect() throws ExecutionException {
ISubSystem shellSubSystem = getShellServiceSubSystem();
}
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#createCommandShell()
- */
@Override
public ICommandShell createCommandShell() throws ExecutionException {
ICommandShell shell = new CommandShell(this);
shell.connect();
return shell;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#addCommunicationListener(org.eclipse.rse.core.subsystems.ICommunicationsListener)
- */
+
@Override
public void addCommunicationListener(ICommunicationsListener listener) {
IConnectorService[] css = fHost.getConnectorServices();
}
}
- /* (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.util.IRemoteSystemProxy#removeCommunicationListener(org.eclipse.rse.core.subsystems.ICommunicationsListener)
- */
@Override
public void removeCommunicationListener(ICommunicationsListener listener) {
IConnectorService[] css = fHost.getConnectorServices();