1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-03 14:25:37 +02:00

Migrate CDT provided connectors to the new API

This commit is contained in:
Christoph Läubrich 2025-07-19 17:18:12 +02:00 committed by Alexander Fedorov
parent c63f988d5c
commit 26f3505346
19 changed files with 107 additions and 148 deletions

View file

@ -32,17 +32,7 @@
</license>
<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.tm.terminal.control"/>
<import plugin="org.eclipse.remote.core"/>
<import plugin="org.eclipse.remote.ui"/>
<import plugin="org.eclipse.core.resources"/>
<import plugin="org.eclipse.swt"/>
<import plugin="org.eclipse.jface"/>
<import plugin="org.eclipse.ui.ide"/>
<import feature="org.eclipse.tm.terminal.control.feature"/>
<import plugin="org.eclipse.core.expressions"/>
</requires>
<plugin

View file

@ -2,15 +2,12 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.tm.terminal.connector.cdtserial;singleton:=true
Bundle-Version: 4.8.300.qualifier
Bundle-Version: 5.0.0.qualifier
Bundle-Activator: org.eclipse.tm.terminal.connector.cdtserial.activator.Activator
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
org.eclipse.equinox.security;bundle-version="[1.4.600,2)",
org.eclipse.tm.terminal.view.core;bundle-version="[4.10.400,5)";resolution:=optional,
org.eclipse.tm.terminal.view.ui;bundle-version="[4.11.600,5)";resolution:=optional,
org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
org.eclipse.ui;bundle-version="[3.207.200,4)",
org.eclipse.cdt.native.serial;bundle-version="[12.2.0,13)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
@ -22,3 +19,8 @@ Export-Package: org.eclipse.tm.terminal.connector.cdtserial.activator;x-internal
org.eclipse.tm.terminal.connector.cdtserial.launcher,
org.eclipse.tm.terminal.connector.cdtserial.nls;x-internal:=true
Automatic-Module-Name: org.eclipse.tm.terminal.connector.cdtserial
Import-Package: org.eclipse.terminal.connector;version="[1.0.0,2.0.0)",
org.eclipse.terminal.connector.provider;version="[1.0.0,2.0.0)",
org.eclipse.terminal.view.core;version="[1.0.0,2.0.0)",
org.eclipse.terminal.view.core.utils;version="[1.0.0,2.0.0)",
org.eclipse.terminal.view.ui.launcher;version="[1.0.0,2.0.0)"

View file

@ -13,7 +13,7 @@
<plugin>
<!-- Terminal connector contributions -->
<extension point="org.eclipse.tm.terminal.control.connectors">
<extension point="org.eclipse.terminal.control.connectors">
<connector
name="%SerialConnector.label"
id="org.eclipse.tm.terminal.connector.cdtserial.SerialConnector"
@ -21,7 +21,7 @@
</extension>
<!-- Terminal launcher delegate contributions -->
<extension point="org.eclipse.tm.terminal.view.ui.launcherDelegates">
<extension point="org.eclipse.terminal.view.ui.launcherDelegates">
<delegate
class="org.eclipse.tm.terminal.connector.cdtserial.launcher.SerialLauncherDelegate"
id="org.eclipse.tm.terminal.connector.cdtserial.launcher.serial"

View file

@ -18,7 +18,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
import org.eclipse.terminal.view.core.utils.TraceHandler;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

View file

@ -20,14 +20,14 @@ import java.util.Set;
import org.eclipse.cdt.serial.SerialPort;
import org.eclipse.osgi.util.NLS;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
import org.eclipse.terminal.connector.ISettingsStore;
import org.eclipse.terminal.connector.ITerminalControl;
import org.eclipse.terminal.connector.TerminalState;
import org.eclipse.terminal.connector.provider.AbstractTerminalConnector;
import org.eclipse.tm.terminal.connector.cdtserial.activator.Activator;
import org.eclipse.tm.terminal.connector.cdtserial.nls.Messages;
public class SerialConnector extends TerminalConnectorImpl {
public class SerialConnector extends AbstractTerminalConnector {
private SerialSettings settings = new SerialSettings();
SerialPort serialPort;

View file

@ -17,7 +17,7 @@ import org.eclipse.cdt.serial.ByteSize;
import org.eclipse.cdt.serial.Parity;
import org.eclipse.cdt.serial.StandardBaudRates;
import org.eclipse.cdt.serial.StopBits;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.terminal.connector.ISettingsStore;
public class SerialSettings {
@ -35,6 +35,7 @@ public class SerialSettings {
/**
* Load information into the RemoteSettings object.
* @since 5
*/
public void load(ISettingsStore store) {
portName = store.get(PORT_NAME_ATTR, ""); //$NON-NLS-1$
@ -91,6 +92,7 @@ public class SerialSettings {
/**
* Extract information from the RemoteSettings object.
* @since 5
*/
public void save(ISettingsStore store) {
store.put(PORT_NAME_ATTR, portName);
@ -108,14 +110,6 @@ public class SerialSettings {
this.portName = portName;
}
/**
* @deprecated Use {@link #getBaudRateValue()}
*/
@Deprecated
public BaudRate getBaudRate() {
return BaudRate.getClosest(baudRate);
}
/**
* @since 4.7
*/

View file

@ -21,17 +21,22 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.terminal.view.core.ITerminalsConnectorConstants;
import org.eclipse.terminal.view.ui.launcher.AbstractExtendedConfigurationPanel;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.connector.cdtserial.connector.SerialConnector;
import org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings;
import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
public class SerialConfigPanel extends AbstractExtendedConfigurationPanel {
private SerialSettings settings;
private SerialSettingsPage page;
/**
*
* @param container
* @since 5
*/
public SerialConfigPanel(IConfigurationPanelContainer container) {
super(container);
}

View file

@ -29,13 +29,13 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
import org.eclipse.terminal.connector.AbstractSettingsPage;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanel;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.connector.cdtserial.activator.Activator;
import org.eclipse.tm.terminal.connector.cdtserial.connector.SerialConnector;
import org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings;
import org.eclipse.tm.terminal.connector.cdtserial.nls.Messages;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
public class SerialSettingsPage extends AbstractSettingsPage {
@ -55,6 +55,12 @@ public class SerialSettingsPage extends AbstractSettingsPage {
private Parity parity;
private StopBits stopBits;
/**
*
* @param settings
* @param panel
* @since 5
*/
public SerialSettingsPage(SerialSettings settings, IConfigurationPanel panel) {
this.settings = settings;
this.panel = panel;

View file

@ -13,24 +13,24 @@
package org.eclipse.tm.terminal.connector.cdtserial.launcher;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.eclipse.cdt.serial.ByteSize;
import org.eclipse.cdt.serial.Parity;
import org.eclipse.cdt.serial.StopBits;
import org.eclipse.core.runtime.Assert;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.terminal.connector.ISettingsStore;
import org.eclipse.terminal.connector.ITerminalConnector;
import org.eclipse.terminal.connector.InMemorySettingsStore;
import org.eclipse.terminal.connector.TerminalConnectorExtension;
import org.eclipse.terminal.view.core.ITerminalService;
import org.eclipse.terminal.view.core.ITerminalsConnectorConstants;
import org.eclipse.terminal.view.ui.launcher.AbstractLauncherDelegate;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanel;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings;
import org.eclipse.tm.terminal.connector.cdtserial.controls.SerialConfigPanel;
import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done;
import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
public class SerialLauncherDelegate extends AbstractLauncherDelegate {
@ -45,7 +45,7 @@ public class SerialLauncherDelegate extends AbstractLauncherDelegate {
}
@Override
public ITerminalConnector createTerminalConnector(Map<String, Object> properties) {
public ITerminalConnector createTerminalConnector(Map<String, Object> properties) throws CoreException {
Assert.isNotNull(properties);
// Check for the terminal connector id
@ -63,23 +63,20 @@ public class SerialLauncherDelegate extends AbstractLauncherDelegate {
settings.setStopBits((StopBits) properties.get(SerialSettings.STOP_BITS_ATTR));
// Construct the terminal settings store
ISettingsStore store = new SettingsStore();
ISettingsStore store = new InMemorySettingsStore();
settings.save(store);
// Construct the terminal connector instance
ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
if (connector != null) {
// Apply default settings
connector.setDefaultSettings();
// And load the real settings
connector.load(store);
}
// Apply default settings
connector.setDefaultSettings();
// And load the real settings
connector.load(store);
return connector;
}
@Override
public void execute(Map<String, Object> properties, Done done) {
public CompletableFuture<?> execute(Map<String, Object> properties) {
Assert.isNotNull(properties);
// Set the terminal tab title
@ -93,11 +90,8 @@ public class SerialLauncherDelegate extends AbstractLauncherDelegate {
}
// Get the terminal service
ITerminalService terminal = TerminalServiceFactory.getService();
// If not available, we cannot fulfill this request
if (terminal != null) {
terminal.openConsole(properties, done);
}
ITerminalService terminal = getTerminalService();
return terminal.openConsole(properties);
}
}

View file

@ -2,20 +2,17 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.tm.terminal.connector.remote;singleton:=true
Bundle-Version: 4.8.600.qualifier
Bundle-Version: 5.0.0.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui;bundle-version="[3.207.200,4)",
org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
org.eclipse.terminal.control;bundle-version="[1.0.0,2.0.0)",
org.eclipse.remote.core;bundle-version="[4.2.300,5)",
org.eclipse.remote.ui;bundle-version="[2.3.300,3)",
org.eclipse.core.resources;bundle-version="[3.22.200,4)",
org.eclipse.swt;bundle-version="[3.130.0,4)",
org.eclipse.jface;bundle-version="[3.37.0,4)",
org.eclipse.tm.terminal.view.core;bundle-version="[4.10.0,5)";resolution:=optional,
org.eclipse.tm.terminal.view.ui;bundle-version="[4.11.100,5)";resolution:=optional,
org.eclipse.core.expressions;bundle-version="[3.9.400,4)"
org.eclipse.jface;bundle-version="[3.37.0,4)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Export-Package: org.eclipse.tm.terminal.connector.remote,
org.eclipse.tm.terminal.connector.remote.controls,
@ -27,5 +24,8 @@ Bundle-Activator: org.eclipse.tm.terminal.connector.remote.internal.Activator
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
Import-Package: org.eclipse.core.resources,
org.eclipse.terminal.view.core;version="[1.0.0,2.0.0)",
org.eclipse.terminal.view.ui;version="[1.0.0,2.0.0)",
org.eclipse.terminal.view.ui.launcher;version="[1.0.0,2.0.0)",
org.eclipse.ui.ide
Automatic-Module-Name: org.eclipse.tm.terminal.connector.remote

View file

@ -11,7 +11,7 @@
<extension-point id="parsers" name="Terminal Parsers" schema="schema/parsers.exsd"/>
<!-- Terminal connector contributions -->
<extension point="org.eclipse.tm.terminal.control.connectors">
<extension point="org.eclipse.terminal.control.connectors">
<connector
name="%connectionName"
id="org.eclipse.tm.terminal.connector.remote.RemoteConnector"
@ -19,7 +19,7 @@
</extension>
<!-- Terminal launcher delegate contributions -->
<extension point="org.eclipse.tm.terminal.view.ui.launcherDelegates">
<extension point="org.eclipse.terminal.view.ui.launcherDelegates">
<delegate
class="org.eclipse.tm.terminal.connector.remote.launcher.RemoteLauncherDelegate"
id="org.eclipse.tm.terminal.connector.telnet.launcher.remote"
@ -36,7 +36,7 @@
<extension point="org.eclipse.ui.preferencePages">
<page
category="org.eclipse.tm.terminal.TerminalPreferencePage"
category="org.eclipse.terminal.TerminalPreferencePage"
class="org.eclipse.tm.terminal.connector.remote.internal.preferences.RemoteTerminalPreferencePage"
id="org.eclipse.tm.terminal.remote.page"
name="%RemoteTerminalPage.name">

View file

@ -19,20 +19,19 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage;
import org.eclipse.terminal.connector.AbstractSettingsPage;
import org.eclipse.terminal.connector.ISettingsPage;
import org.eclipse.terminal.view.core.ITerminalsConnectorConstants;
import org.eclipse.terminal.view.ui.launcher.AbstractExtendedConfigurationPanel;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
import org.eclipse.tm.terminal.connector.remote.internal.RemoteConnector;
import org.eclipse.tm.terminal.connector.remote.internal.RemoteSettings;
import org.eclipse.tm.terminal.connector.remote.internal.RemoteSettingsPage;
import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
/**
* Remote wizard configuration panel implementation.
*/
@SuppressWarnings("restriction")
public class RemoteWizardConfigurationPanel extends AbstractExtendedConfigurationPanel {
private RemoteSettings remoteSettings;
@ -43,6 +42,7 @@ public class RemoteWizardConfigurationPanel extends AbstractExtendedConfiguratio
*
* @param container
* The configuration panel container or <code>null</code>.
* @since 5
*/
public RemoteWizardConfigurationPanel(IConfigurationPanelContainer container) {
super(container);

View file

@ -122,4 +122,5 @@ public class Activator extends Plugin {
final ServiceReference<T> ref = context.getServiceReference(service);
return ref != null ? context.getService(ref) : null;
}
}

View file

@ -33,11 +33,11 @@ import org.eclipse.remote.core.IRemoteProcessService;
import org.eclipse.remote.core.IRemoteProcessTerminalService;
import org.eclipse.remote.core.IRemoteServicesManager;
import org.eclipse.remote.core.exception.RemoteConnectionException;
import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
import org.eclipse.tm.internal.terminal.emulator.VT100Emulator;
import org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
import org.eclipse.terminal.connector.ITerminalControl;
import org.eclipse.terminal.connector.TerminalState;
import org.eclipse.terminal.control.TerminalTitleRequestor;
import org.eclipse.terminal.internal.emulator.VT100Emulator;
import org.eclipse.terminal.internal.emulator.VT100TerminalControl;
import org.eclipse.tm.terminal.connector.remote.IRemoteTerminalConstants;
import org.eclipse.tm.terminal.connector.remote.IRemoteTerminalParser;
import org.eclipse.tm.terminal.connector.remote.nls.Messages;

View file

@ -12,15 +12,14 @@ package org.eclipse.tm.terminal.connector.remote.internal;
import java.io.InputStream;
import java.io.OutputStream;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
import org.eclipse.terminal.connector.ISettingsStore;
import org.eclipse.terminal.connector.ITerminalControl;
import org.eclipse.terminal.connector.NullSettingsStore;
import org.eclipse.terminal.connector.TerminalState;
import org.eclipse.terminal.connector.provider.AbstractTerminalConnector;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
@SuppressWarnings("restriction")
public class RemoteConnector extends TerminalConnectorImpl {
public class RemoteConnector extends AbstractTerminalConnector {
private OutputStream fOutputStream;
private InputStream fInputStream;
private RemoteConnectionManager fConnection;
@ -36,13 +35,6 @@ public class RemoteConnector extends TerminalConnectorImpl {
fSettings = settings;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#connect(org.eclipse.tm.internal.terminal.
* provisional.api.ITerminalControl)
*/
@Override
public void connect(ITerminalControl control) {
super.connect(control);
@ -51,11 +43,6 @@ public class RemoteConnector extends TerminalConnectorImpl {
fConnection.schedule();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#doDisconnect()
*/
@Override
public synchronized void doDisconnect() {
fConnection.cancel();
@ -65,11 +52,6 @@ public class RemoteConnector extends TerminalConnectorImpl {
return fInputStream;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#getSettingsSummary()
*/
@Override
public String getSettingsSummary() {
return fSettings.getSummary();
@ -84,11 +66,6 @@ public class RemoteConnector extends TerminalConnectorImpl {
return fSettings;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#getTerminalToRemoteStream()
*/
@Override
public OutputStream getTerminalToRemoteStream() {
return fOutputStream;
@ -117,11 +94,6 @@ public class RemoteConnector extends TerminalConnectorImpl {
fOutputStream = outputStream;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#setTerminalSize(int, int)
*/
@Override
public void setTerminalSize(int newWidth, int newHeight) {
if (fConnection != null && (newWidth != fWidth || newHeight != fHeight)) {

View file

@ -7,10 +7,9 @@
*******************************************************************************/
package org.eclipse.tm.terminal.connector.remote.internal;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.terminal.connector.ISettingsStore;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
@SuppressWarnings("restriction")
public class RemoteSettings implements IRemoteSettings {
protected String connectionTypeId;
protected String connectionName;

View file

@ -21,12 +21,11 @@ import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
import org.eclipse.terminal.connector.AbstractSettingsPage;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceReference;
@SuppressWarnings("restriction")
public class RemoteSettingsPage extends AbstractSettingsPage {
private final RemoteSettings fTerminalSettings;
private RemoteConnectionWidget fRemoteConnectionWidget;

View file

@ -14,33 +14,33 @@ package org.eclipse.tm.terminal.connector.remote.launcher;
import java.text.DateFormat;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.osgi.util.NLS;
import org.eclipse.remote.core.IRemoteConnection;
import org.eclipse.remote.core.IRemoteConnectionType;
import org.eclipse.remote.core.IRemoteServicesManager;
import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
import org.eclipse.terminal.connector.ISettingsStore;
import org.eclipse.terminal.connector.ITerminalConnector;
import org.eclipse.terminal.connector.InMemorySettingsStore;
import org.eclipse.terminal.connector.TerminalConnectorExtension;
import org.eclipse.terminal.view.core.ITerminalService;
import org.eclipse.terminal.view.core.ITerminalsConnectorConstants;
import org.eclipse.terminal.view.ui.IMementoHandler;
import org.eclipse.terminal.view.ui.launcher.AbstractLauncherDelegate;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanel;
import org.eclipse.terminal.view.ui.launcher.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
import org.eclipse.tm.terminal.connector.remote.controls.RemoteWizardConfigurationPanel;
import org.eclipse.tm.terminal.connector.remote.internal.Activator;
import org.eclipse.tm.terminal.connector.remote.internal.RemoteSettings;
import org.eclipse.tm.terminal.connector.remote.nls.Messages;
import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
/**
* Remote launcher delegate implementation.
*/
@SuppressWarnings("restriction")
public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
// The Remote terminal connection memento handler
private final IMementoHandler mementoHandler = new RemoteMementoHandler();
@ -65,7 +65,7 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
* @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#execute(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
*/
@Override
public void execute(Map<String, Object> properties, ITerminalService.Done done) {
public CompletableFuture<?> execute(Map<String, Object> properties) {
Assert.isNotNull(properties);
// Set the terminal tab title
@ -81,11 +81,9 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
}
// Get the terminal service
ITerminalService terminal = TerminalServiceFactory.getService();
ITerminalService terminal = getTerminalService();
// If not available, we cannot fulfill this request
if (terminal != null) {
terminal.openConsole(properties, done);
}
return terminal.openConsole(properties);
}
/**
@ -128,7 +126,7 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
* @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#createTerminalConnector(java.util.Map)
*/
@Override
public ITerminalConnector createTerminalConnector(Map<String, Object> properties) {
public ITerminalConnector createTerminalConnector(Map<String, Object> properties) throws CoreException {
Assert.isNotNull(properties);
// Check for the terminal connector id
@ -142,7 +140,7 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
String connName = (String) properties.get(IRemoteSettings.CONNECTION_NAME);
// Construct the terminal settings store
ISettingsStore store = new SettingsStore();
ISettingsStore store = new InMemorySettingsStore();
// Construct the remote settings
RemoteSettings remoteSettings = new RemoteSettings();
@ -153,12 +151,10 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
// Construct the terminal connector instance
ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
if (connector != null) {
// Apply default settings
connector.setDefaultSettings();
// And load the real settings
connector.load(store);
}
// Apply default settings
connector.setDefaultSettings();
// And load the real settings
connector.load(store);
if (!properties.containsKey(ITerminalsConnectorConstants.PROP_ENCODING)) {
IRemoteServicesManager svcMgr = Activator.getService(IRemoteServicesManager.class);
@ -177,4 +173,5 @@ public class RemoteLauncherDelegate extends AbstractLauncherDelegate {
return connector;
}
}

View file

@ -14,9 +14,9 @@ package org.eclipse.tm.terminal.connector.remote.launcher;
import java.util.Map;
import org.eclipse.core.runtime.Assert;
import org.eclipse.terminal.view.core.ITerminalsConnectorConstants;
import org.eclipse.terminal.view.ui.IMementoHandler;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
import org.eclipse.ui.IMemento;
/**