diff --git a/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF b/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF index f7133b87041..75e8dfc781c 100644 --- a/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF +++ b/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.debug.terminal;singleton:=true Bundle-Vendor: %providerName -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.0.100.qualifier Import-Package: org.eclipse.terminal.connector;version="[1.0.0,2.0.0)", org.eclipse.terminal.control;version="[1.0.0,2.0.0)" Require-Bundle: org.eclipse.core.runtime, diff --git a/debug/org.eclipse.debug.terminal/plugin.xml b/debug/org.eclipse.debug.terminal/plugin.xml index c25030c212c..a68f0b074a3 100644 --- a/debug/org.eclipse.debug.terminal/plugin.xml +++ b/debug/org.eclipse.debug.terminal/plugin.xml @@ -24,5 +24,15 @@ label="Terminal"> + + + + + + + diff --git a/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/TerminalConsolePageParticipant.java b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/TerminalConsolePageParticipant.java new file mode 100644 index 00000000000..ae1273598d1 --- /dev/null +++ b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/TerminalConsolePageParticipant.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2026 Andrey Loskutov and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Andrey Loskutov - initial API and implementation + *******************************************************************************/ +package org.eclipse.debug.terminal; + +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.ui.console.IConsole; +import org.eclipse.ui.console.IConsoleConstants; +import org.eclipse.ui.console.IConsolePageParticipant; +import org.eclipse.ui.console.actions.CloseConsoleAction; +import org.eclipse.ui.part.IPageBookViewPage; + +public class TerminalConsolePageParticipant implements IConsolePageParticipant { + + private CloseConsoleAction closeAction; + + @Override + public T getAdapter(Class adapter) { + return null; + } + + @Override + public void init(IPageBookViewPage page, IConsole console) { + closeAction = new CloseConsoleAction(console); + IToolBarManager manager = page.getSite().getActionBars().getToolBarManager(); + manager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, closeAction); + } + + @Override + public void dispose() { + closeAction = null; + } + + @Override + public void activated() { + } + + @Override + public void deactivated() { + } + +} diff --git a/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/ui/TerminalConsole.java b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/ui/TerminalConsole.java index f056b718494..f7a4636d23d 100644 --- a/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/ui/TerminalConsole.java +++ b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/ui/TerminalConsole.java @@ -13,10 +13,12 @@ *******************************************************************************/ package org.eclipse.debug.terminal.ui; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.terminal.connector.ITerminalConnector; import org.eclipse.ui.console.AbstractConsole; import org.eclipse.ui.console.IConsoleView; import org.eclipse.ui.part.IPageBookViewPage; +import org.eclipse.ui.plugin.AbstractUIPlugin; class TerminalConsole extends AbstractConsole { @@ -24,7 +26,7 @@ class TerminalConsole extends AbstractConsole { private final ITerminalConnector terminalConnector; TerminalConsole(ITerminalConnector terminalConnector) { - super("Terminal", TYPE, null, true); + super("Terminal", TYPE, getImageDescriptorFromBundle(), true); this.terminalConnector = terminalConnector; } @@ -32,5 +34,12 @@ class TerminalConsole extends AbstractConsole { public IPageBookViewPage createPage(IConsoleView view) { return new TerminalConsolePage(terminalConnector, null); } + + private static ImageDescriptor getImageDescriptorFromBundle() { + return AbstractUIPlugin.imageDescriptorFromPlugin( + "org.eclipse.debug.terminal", //$NON-NLS-1$ + "icons/console_view.svg" //$NON-NLS-1$ + ); + } }