From 90066baa0c9904a3b89638dfef8390e05085bc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Sat, 19 Jul 2025 15:40:17 +0200 Subject: [PATCH] Migrate eclipse.remote to new Platform Terminal API --- .../META-INF/MANIFEST.MF | 6 ++-- .../internal/console/TerminalConsole.java | 2 +- .../console/TerminalConsoleConnector.java | 8 ++--- .../internal/console/TerminalConsolePage.java | 34 ++++++++----------- 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/remote/org.eclipse.remote.console/META-INF/MANIFEST.MF b/remote/org.eclipse.remote.console/META-INF/MANIFEST.MF index c61c2f9e6c5..e6451a8bd50 100644 --- a/remote/org.eclipse.remote.console/META-INF/MANIFEST.MF +++ b/remote/org.eclipse.remote.console/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.remote.console;singleton:=true -Bundle-Version: 1.4.300.qualifier +Bundle-Version: 1.4.400.qualifier Bundle-Activator: org.eclipse.remote.internal.console.Activator Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-17 @@ -26,8 +26,8 @@ Import-Package: org.eclipse.core.commands, org.eclipse.swt.events, org.eclipse.swt.layout, org.eclipse.swt.widgets, - org.eclipse.tm.internal.terminal.control, - org.eclipse.tm.internal.terminal.provisional.api, + org.eclipse.terminal.connector;version="[1.0.0,2.0.0)", + org.eclipse.terminal.control;version="[1.0.0,2.0.0)", org.eclipse.ui, org.eclipse.ui.console, org.eclipse.ui.console.actions, diff --git a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsole.java b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsole.java index 4e9cb8a89bb..a915ab624c4 100644 --- a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsole.java +++ b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsole.java @@ -18,7 +18,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.remote.console.ITerminalConsole; import org.eclipse.remote.core.IRemoteConnection; -import org.eclipse.tm.internal.terminal.provisional.api.TerminalState; +import org.eclipse.terminal.connector.TerminalState; import org.eclipse.ui.console.AbstractConsole; import org.eclipse.ui.console.IConsoleView; import org.eclipse.ui.part.IPageBookViewPage; diff --git a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java index 86dba723c31..f335c64b3ea 100644 --- a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java +++ b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java @@ -31,10 +31,10 @@ import org.eclipse.remote.core.IRemoteProcess; import org.eclipse.remote.core.IRemoteProcessBuilder; import org.eclipse.remote.core.IRemoteProcessTerminalService; import org.eclipse.remote.core.exception.RemoteConnectionException; -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.ITerminalControl; -import org.eclipse.tm.internal.terminal.provisional.api.TerminalState; +import org.eclipse.terminal.connector.ISettingsStore; +import org.eclipse.terminal.connector.ITerminalConnector; +import org.eclipse.terminal.connector.ITerminalControl; +import org.eclipse.terminal.connector.TerminalState; public class TerminalConsoleConnector { diff --git a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsolePage.java b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsolePage.java index ec06831235d..964330d6e34 100644 --- a/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsolePage.java +++ b/remote/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsolePage.java @@ -13,7 +13,7 @@ *******************************************************************************/ package org.eclipse.remote.internal.console; -import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; import java.util.List; import org.eclipse.core.runtime.IAdaptable; @@ -23,8 +23,6 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.dialogs.ErrorDialog; -import org.eclipse.osgi.util.NLS; import org.eclipse.remote.console.actions.ConsoleAction; import org.eclipse.remote.console.actions.IConsoleActionFactory; import org.eclipse.remote.core.IRemoteConnection; @@ -36,12 +34,12 @@ import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.tm.internal.terminal.control.ITerminalListener; -import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; -import org.eclipse.tm.internal.terminal.control.TerminalViewControlFactory; -import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector; -import org.eclipse.tm.internal.terminal.provisional.api.TerminalState; -import org.eclipse.ui.PlatformUI; +import org.eclipse.terminal.connector.ITerminalConnector; +import org.eclipse.terminal.connector.TerminalState; +import org.eclipse.terminal.control.ITerminalListener; +import org.eclipse.terminal.control.ITerminalViewControl; +import org.eclipse.terminal.control.TerminalTitleRequestor; +import org.eclipse.terminal.control.TerminalViewControlFactory; import org.eclipse.ui.console.IConsoleConstants; import org.eclipse.ui.console.actions.CloseConsoleAction; import org.eclipse.ui.part.IPageSite; @@ -76,8 +74,12 @@ public class TerminalConsolePage extends Page implements IAdaptable { } @Override - public void setTerminalTitle(final String title) { - // ignore titles coming from the widget + public void setTerminalSelectionChanged() { + } + + @Override + public void setTerminalTitle(String title, TerminalTitleRequestor requestor) { + } }; @@ -131,15 +133,7 @@ public class TerminalConsolePage extends Page implements IAdaptable { tViewCtrl = TerminalViewControlFactory.makeControl(listener, mainComposite, new ITerminalConnector[] {}); tViewCtrl.setConnector(terminalConsole.getTerminalConnector().newPageConnector()); - try { - tViewCtrl.setEncoding(encoding); - } catch (UnsupportedEncodingException e) { - IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, - NLS.bind(ConsoleMessages.ENCODING_UNAVAILABLE_1, encoding)); - Activator.log(status); - ErrorDialog.openError(PlatformUI.getWorkbench().getDisplay().getActiveShell(), - ConsoleMessages.OPEN_CONSOLE_ERROR, ConsoleMessages.ENCODING_UNAVAILABLE_0, status); - } + tViewCtrl.setCharset(Charset.forName(encoding)); connectTerminalJob.schedule(); }