From 31b445ff17696d9089169e5ad1ff392e179998d3 Mon Sep 17 00:00:00 2001 From: Uwe Stieber Date: Tue, 7 Feb 2012 07:32:42 +0000 Subject: [PATCH] Re-expose setupTerminal in ITerminlaControl. Needed to move a terminal control between different parents --- .../connector/TerminalConnectorFactoryTest.java | 2 ++ .../connector/TerminalConnectorTest.java | 2 ++ .../terminal/emulator/VT100TerminalControl.java | 16 +++++++++------- .../provisional/api/ITerminalControl.java | 8 ++++++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java index 105b43e5568..a686259f969 100644 --- a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java +++ b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java @@ -74,6 +74,8 @@ public class TerminalConnectorFactoryTest extends TestCase { public void setTerminalTitle(String title) { } + public void setupTerminal(Composite parent) { + } } static class ConnectorMock extends TerminalConnectorImpl { diff --git a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java index 93d555572e1..cbe414ba61d 100644 --- a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java +++ b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java @@ -74,6 +74,8 @@ public class TerminalConnectorTest extends TestCase { public void setTerminalTitle(String title) { } + public void setupTerminal(Composite parent) { + } } static class ConnectorMock extends TerminalConnectorImpl { diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java index 3d42f7859e6..97da2bc50bf 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java @@ -39,6 +39,7 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.SocketException; +import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -212,7 +213,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC String strText = (String) fClipboard.getContents(textTransfer, clipboardType); pasteString(strText); } - + /** * @param strText the text to paste */ @@ -355,7 +356,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC getTerminalConnector().disconnect(); } } - + //Ensure that a new Job can be started; then clean up old Job. Job job; synchronized(this) { @@ -545,9 +546,10 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC } /* (non-Javadoc) - * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setupTerminal() + * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setupTerminal(org.eclipse.swt.widgets.Composite) */ public void setupTerminal(Composite parent) { + Assert.isNotNull(parent); fState=TerminalState.CLOSED; setupControls(parent); setupListeners(); @@ -781,9 +783,9 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC event.doit = true; return; } - + // Manage the Del key - if (event.keyCode == 0x000007f) + if (event.keyCode == 0x000007f) { sendString("\u001b[3~"); //$NON-NLS-1$ return; @@ -838,11 +840,11 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC case 0x1000008: // End key. sendString("\u001b[F"); //$NON-NLS-1$ break; - + case 0x1000009: // Insert. sendString("\u001b[2~"); //$NON-NLS-1$ break; - + case 0x100000a: // F1 key. if ( (event.stateMask & SWT.CTRL)!=0 ) { //Allow Ctrl+F1 to act locally as well as on the remote, because it is diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java index e30b468e8c1..cf555cd4a16 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java @@ -16,6 +16,7 @@ package org.eclipse.tm.internal.terminal.provisional.api; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; /** @@ -43,6 +44,13 @@ public interface ITerminalControl { */ void setState(TerminalState state); + /** + * Setup the terminal control within the given parent composite. + * + * @param parent The parent composite. Must not be null. + */ + void setupTerminal(Composite parent); + /** * A shell to show dialogs. * @return the shell in which the terminal is shown.