0)
+ buffer.append(","); //$NON-NLS-1$
+ buffer.append(key);
+ }
+ // save the keys we have used.
+ memento.putString(KEYS, buffer.toString());
+ }
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferenceInitializer.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferenceInitializer.java
new file mode 100644
index 00000000000..0e4ff888999
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferenceInitializer.java
@@ -0,0 +1,19 @@
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+
+public class TerminalPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ public TerminalPreferenceInitializer() {
+ }
+
+ public void initializeDefaultPreferences() {
+ Preferences store = TerminalViewPlugin.getDefault().getPluginPreferences();
+ store.setDefault(TerminalPreferencePage.PREF_LIMITOUTPUT, TerminalPreferencePage.DEFAULT_LIMITOUTPUT);
+ store.setDefault(TerminalPreferencePage.PREF_BUFFERLINES, TerminalPreferencePage.DEFAULT_BUFFERLINES);
+ store.setDefault(TerminalPreferencePage.PREF_TIMEOUT_SERIAL, TerminalPreferencePage.DEFAULT_TIMEOUT_SERIAL);
+ store.setDefault(TerminalPreferencePage.PREF_TIMEOUT_NETWORK, TerminalPreferencePage.DEFAULT_TIMEOUT_NETWORK);
+ }
+
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferencePage.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferencePage.java
new file mode 100644
index 00000000000..a55927ab488
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalPreferencePage.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+ * 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
+ *
+ * Initial Contributors:
+ * The following Wind River employees contributed to the Terminal component
+ * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+ * Helmut Haigermoser and Ted Williams.
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - split into core, view and connector plugins
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+public class TerminalPreferencePage extends FieldEditorPreferencePage implements
+ IWorkbenchPreferencePage {
+ public static final String PREF_LIMITOUTPUT = "TerminalPrefLimitOutput"; //$NON-NLS-1$
+ public static final String PREF_BUFFERLINES = "TerminalPrefBufferLines"; //$NON-NLS-1$
+ public static final String PREF_TIMEOUT_SERIAL = "TerminalPrefTimeoutSerial"; //$NON-NLS-1$
+ public static final String PREF_TIMEOUT_NETWORK = "TerminalPrefTimeoutNetwork"; //$NON-NLS-1$
+ public static final boolean DEFAULT_LIMITOUTPUT = true;
+ public static final int DEFAULT_BUFFERLINES = 1000;
+ public static final int DEFAULT_TIMEOUT_SERIAL = 5;
+ public static final int DEFAULT_TIMEOUT_NETWORK = 5;
+
+
+ protected TerminalBooleanFieldEditor fEditorLimitOutput;
+
+ protected IntegerFieldEditor fEditorBufferSize;
+
+ protected IntegerFieldEditor fEditorSerialTimeout;
+
+ protected IntegerFieldEditor fEditorNetworkTimeout;
+ public TerminalPreferencePage() {
+ super(GRID);
+ }
+ public void onLimitOutputSelected() {
+ Button ctlButton;
+ Text ctlText;
+ Label ctlLabel;
+ boolean bEnabled;
+
+ ctlButton = fEditorLimitOutput.getChangeControl(getFieldEditorParent());
+ ctlText = fEditorBufferSize.getTextControl(getFieldEditorParent());
+ ctlLabel = fEditorBufferSize.getLabelControl(getFieldEditorParent());
+ bEnabled = ctlButton.getSelection();
+
+ ctlText.setEnabled(bEnabled);
+ ctlLabel.setEnabled(bEnabled);
+ }
+ protected void createFieldEditors() {
+ setupPage();
+ }
+ protected void initialize() {
+ super.initialize();
+
+ onLimitOutputSelected();
+ }
+ protected void performDefaults() {
+ super.performDefaults();
+
+ onLimitOutputSelected();
+ }
+ public void init(IWorkbench workbench) {
+ // do nothing
+ }
+ protected void setupPage() {
+ setupData();
+ setupEditors();
+ setupListeners();
+ }
+ protected void setupData() {
+ TerminalViewPlugin plugin;
+ IPreferenceStore preferenceStore;
+
+ plugin = TerminalViewPlugin.getDefault();
+ preferenceStore = plugin.getPreferenceStore();
+ setPreferenceStore(preferenceStore);
+ }
+ protected void setupEditors() {
+ fEditorLimitOutput = new TerminalBooleanFieldEditor(
+ PREF_LIMITOUTPUT, ViewMessages.LIMITOUTPUT,
+ getFieldEditorParent());
+ fEditorBufferSize = new IntegerFieldEditor(PREF_BUFFERLINES,
+ ViewMessages.BUFFERLINES, getFieldEditorParent());
+ fEditorSerialTimeout = new IntegerFieldEditor(
+ PREF_TIMEOUT_SERIAL, ViewMessages.SERIALTIMEOUT,
+ getFieldEditorParent());
+ fEditorNetworkTimeout = new IntegerFieldEditor(
+ PREF_TIMEOUT_NETWORK, ViewMessages.NETWORKTIMEOUT,
+ getFieldEditorParent());
+
+ fEditorBufferSize.setValidRange(0, Integer.MAX_VALUE);
+ fEditorSerialTimeout.setValidRange(0, Integer.MAX_VALUE);
+ fEditorNetworkTimeout.setValidRange(0, Integer.MAX_VALUE);
+
+ addField(fEditorLimitOutput);
+ addField(fEditorBufferSize);
+ addField(fEditorSerialTimeout);
+ addField(fEditorNetworkTimeout);
+ }
+ protected void setupListeners() {
+ TerminalSelectionHandler selectionHandler;
+ Button ctlButton;
+
+ selectionHandler = new TerminalSelectionHandler();
+ ctlButton = fEditorLimitOutput.getChangeControl(getFieldEditorParent());
+ ctlButton.addSelectionListener(selectionHandler);
+ }
+ public class TerminalBooleanFieldEditor extends BooleanFieldEditor {
+ public TerminalBooleanFieldEditor(String strName, String strLabel,
+ Composite ctlParent) {
+ super(strName, strLabel, ctlParent);
+ }
+ public Button getChangeControl(Composite parent) {
+ return super.getChangeControl(parent);
+ }
+ }
+ protected class TerminalSelectionHandler extends SelectionAdapter {
+ protected TerminalSelectionHandler() {
+ super();
+ }
+ public void widgetSelected(SelectionEvent event) {
+ Object source;
+ Button ctlButton;
+
+ source = event.getSource();
+ ctlButton = fEditorLimitOutput
+ .getChangeControl(getFieldEditorParent());
+
+ if (source == ctlButton) {
+ onLimitOutputSelected();
+ }
+ }
+
+ }
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java
new file mode 100644
index 00000000000..d0d743b41ef
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+ * 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
+ *
+ * Initial Contributors:
+ * The following Wind River employees contributed to the Terminal component
+ * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+ * Helmut Haigermoser and Ted Williams.
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - split into core, view and connector plugins
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.tm.terminal.ISettingsPage;
+import org.eclipse.tm.terminal.ITerminalConnector;
+
+class TerminalSettingsDlg extends Dialog {
+ private Combo fCtlConnTypeCombo;
+ private final ITerminalConnector[] fConnectors;
+ private final ISettingsPage[] fPages;
+ private int fSelectedConnector;
+ private PageBook fPageBook;
+ private IDialogSettings fDialogSettings;
+
+ public TerminalSettingsDlg(Shell shell, ITerminalConnector[] connectors, ITerminalConnector connector) {
+ super(shell);
+ fConnectors=connectors;
+ fPages=new ISettingsPage[fConnectors.length];
+ for (int i = 0; i < fConnectors.length; i++) {
+ fPages[i]=fConnectors[i].makeSettingsPage();
+ if(fConnectors[i]==connector)
+ fSelectedConnector=i;
+ }
+ }
+ protected void okPressed() {
+ if (!validateSettings())
+ return;
+ if(fSelectedConnector>=0) {
+ fPages[fSelectedConnector].saveSettings();
+ }
+ super.okPressed();
+ }
+ protected void cancelPressed() {
+ fSelectedConnector=-1;
+ super.cancelPressed();
+ }
+ public int open() {
+ setShellStyle(getShellStyle() | SWT.RESIZE);
+ return super.open();
+ }
+ protected void configureShell(Shell newShell) {
+ super.configureShell(newShell);
+
+ newShell.setText(ViewMessages.TERMINALSETTINGS);
+ }
+ protected Control createDialogArea(Composite parent) {
+ Composite ctlComposite = (Composite) super.createDialogArea(parent);
+ setupPanel(ctlComposite);
+ setupListeners();
+ initFields();
+
+ return ctlComposite;
+ }
+ private void initFields() {
+ // Load controls
+ for (int i = 0; i < fPages.length; i++) {
+ String name=fPages[i].getName();
+ fCtlConnTypeCombo.add(name);
+ if(fSelectedConnector==i) {
+ fCtlConnTypeCombo.select(i);
+ selectPage(i);
+ }
+ }
+ }
+ private boolean validateSettings() {
+ if(fSelectedConnector<0)
+ return true;
+ return fPages[fSelectedConnector].validateSettings();
+ }
+ private void setupPanel(Composite wndParent) {
+ setupConnTypePanel(wndParent);
+ setupSettingsGroup(wndParent);
+ }
+ private void setupConnTypePanel(Composite wndParent) {
+ Group wndGroup;
+ GridLayout gridLayout;
+ GridData gridData;
+
+ wndGroup = new Group(wndParent, SWT.NONE);
+ gridLayout = new GridLayout(1, true);
+ gridData = new GridData(GridData.FILL_HORIZONTAL);
+
+ wndGroup.setLayout(gridLayout);
+ wndGroup.setLayoutData(gridData);
+ wndGroup.setText(ViewMessages.CONNECTIONTYPE + ":"); //$NON-NLS-1$
+
+ fCtlConnTypeCombo = new Combo(wndGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
+ gridData = new GridData(GridData.FILL_HORIZONTAL);
+ gridData.widthHint = 200;
+ fCtlConnTypeCombo.setLayoutData(gridData);
+ }
+ private void setupSettingsGroup(Composite parent) {
+ Group group = new Group(parent, SWT.NONE);
+ group.setText(ViewMessages.SETTINGS + ":"); //$NON-NLS-1$
+ group.setLayout(new GridLayout());
+ group.setLayoutData(new GridData(GridData.FILL_BOTH));
+ fPageBook=new PageBook(group,SWT.NONE);
+ fPageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+
+ for (int i = 0; i < fPages.length; i++) {
+ fPages[i].createControl(fPageBook);
+ }
+ }
+ private void setupListeners() {
+ fCtlConnTypeCombo.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ selectPage(fCtlConnTypeCombo.getSelectionIndex());
+ }
+ });
+ }
+ public ITerminalConnector getConnector() {
+ if(fSelectedConnector>=0)
+ return fConnectors[fSelectedConnector];
+ return null;
+ }
+ private void selectPage(int index) {
+ fSelectedConnector=index;
+ Control[] pages=fPageBook.getChildren();
+ fPageBook.showPage(pages[fSelectedConnector]);
+ }
+ protected IDialogSettings getDialogBoundsSettings() {
+ IDialogSettings ds=TerminalViewPlugin.getDefault().getDialogSettings();
+ fDialogSettings = ds.getSection(getClass().getName());
+ if (fDialogSettings == null) {
+ fDialogSettings = ds.addNewSection(getClass().getName());
+ }
+ return fDialogSettings;
+ }
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java
new file mode 100644
index 00000000000..f49292bb6bd
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java
@@ -0,0 +1,627 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+ * 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
+ *
+ * Initial Contributors:
+ * The following Wind River employees contributed to the Terminal component
+ * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+ * Helmut Haigermoser and Ted Williams.
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - split into core, view and connector plugins
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.ApplicationWindow;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.events.MenuEvent;
+import org.eclipse.swt.events.MenuListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.tm.internal.terminal.actions.TerminalAction;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionClearAll;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionConnect;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionCopy;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionCut;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionDisconnect;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionNewTerminal;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionPaste;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionSelectAll;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionSettings;
+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.terminal.ISettingsStore;
+import org.eclipse.tm.terminal.ITerminalConnector;
+import org.eclipse.tm.terminal.Logger;
+import org.eclipse.tm.terminal.TerminalConnectorExtension;
+import org.eclipse.tm.terminal.TerminalState;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.RetargetAction;
+import org.eclipse.ui.part.ViewPart;
+
+public class TerminalView extends ViewPart implements ITerminalView, ITerminalListener {
+ public static final String FONT_DEFINITION = "terminal.views.view.font.definition"; //$NON-NLS-1$
+
+ protected ITerminalViewControl fCtlTerminal;
+
+ protected TerminalAction fActionTerminalNewTerminal;
+
+ protected TerminalAction fActionTerminalConnect;
+
+ protected TerminalAction fActionTerminalDisconnect;
+
+ protected TerminalAction fActionTerminalSettings;
+
+ protected TerminalAction fActionEditCopy;
+
+ protected TerminalAction fActionEditCut;
+
+ protected TerminalAction fActionEditPaste;
+
+ protected TerminalAction fActionEditClearAll;
+
+ protected TerminalAction fActionEditSelectAll;
+
+ protected TerminalMenuHandlerEdit fMenuHandlerEdit;
+
+ protected TerminalPropertyChangeHandler fPropertyChangeHandler;
+
+ protected boolean fMenuAboutToShow;
+
+ private SettingsStore fStore;
+
+ public TerminalView() {
+ Logger
+ .log("==============================================================="); //$NON-NLS-1$
+ }
+// TODO MSA
+// private void XXXXX() {
+// Preferences preferences = TerminalViewPlugin.getDefault().getPluginPreferences();
+// boolean bLimitOutput = preferences.getBoolean(TerminalPreferencePage.PREF_LIMITOUTPUT);
+// int bufferLineLimit = preferences.getInt(TerminalPreferencePage.PREF_BUFFERLINES);
+//
+// }
+ // TerminalTarget interface
+ public void setState(final TerminalState state) {
+ Runnable runnable=new Runnable() {
+ public void run() {
+ updateStatus();
+ onTerminalStatus();
+ }
+ };
+ if(Thread.currentThread()==Display.getDefault().getThread())
+ runnable.run();
+ else
+ Display.getDefault().syncExec(runnable);
+ }
+
+
+ /**
+ * Display a new Terminal view. This method is called when the user clicks the New
+ * Terminal button in any Terminal view's toolbar.
+ */
+ public void onTerminalNewTerminal() {
+ Logger.log("creating new Terminal instance."); //$NON-NLS-1$
+
+ try {
+ // The second argument to showView() is a unique String identifying the
+ // secondary view instance. If it ever matches a previously used secondary
+ // view identifier, then this call will not create a new Terminal view,
+ // which is undesireable. Therefore, we append the current time in
+ // milliseconds to the secondary view identifier to ensure it is always
+ // unique. This code runs only when the user clicks the New Terminal
+ // button, so there is no risk that this code will run twice in a single
+ // millisecond.
+
+ getSite().getPage().showView(
+ "org.eclipse.tm.terminal.view.TerminalView",//$NON-NLS-1$
+ "SecondaryTerminal" + System.currentTimeMillis(), //$NON-NLS-1$
+ IWorkbenchPage.VIEW_ACTIVATE);
+ } catch (PartInitException ex) {
+ Logger.logException(ex);
+ }
+ }
+
+ public void onTerminalConnect() {
+ if (isConnected())
+ return;
+ if(fCtlTerminal.getTerminalConnection()==null)
+ setConnector(showSettingsDialog());
+ fCtlTerminal.connectTerminal();
+ }
+
+ public void updateStatus() {
+ updateTerminalConnect();
+ updateTerminalDisconnect();
+ updateTerminalSettings();
+ }
+
+ public void updateTerminalConnect() {
+ boolean bEnabled = ((!isConnecting()) && (!fCtlTerminal.isConnected()));
+
+ fActionTerminalConnect.setEnabled(bEnabled);
+ }
+
+ private boolean isConnecting() {
+ return fCtlTerminal.getState()==TerminalState.CONNECTING;
+ }
+ private boolean isConnected() {
+ return fCtlTerminal.getState()==TerminalState.CONNECTED;
+ }
+ public void onTerminalDisconnect() {
+ fCtlTerminal.disconnectTerminal();
+ }
+
+ public void updateTerminalDisconnect() {
+ boolean bEnabled = ((isConnecting()) || (fCtlTerminal.isConnected()));
+ fActionTerminalDisconnect.setEnabled(bEnabled);
+ }
+
+ public void onTerminalSettings() {
+ ITerminalConnector c=showSettingsDialog();
+ if(c!=null) {
+ setConnector(c);
+
+ onTerminalConnect();
+ }
+ }
+
+ private ITerminalConnector showSettingsDialog() {
+ // When the settings dialog is opened, load the Terminal settings from the
+ // persistent settings.
+
+ TerminalSettingsDlg dlgTerminalSettings = new TerminalSettingsDlg(getViewSite().getShell(),fCtlTerminal.getConnectors(),fCtlTerminal.getTerminalConnection());
+
+ Logger.log("opening Settings dialog."); //$NON-NLS-1$
+
+ if (dlgTerminalSettings.open() == Window.CANCEL) {
+ Logger.log("Settings dialog cancelled."); //$NON-NLS-1$
+ return null;
+ }
+
+ Logger.log("Settings dialog OK'ed."); //$NON-NLS-1$
+
+ // When the settings dialog is closed, we persist the Terminal settings.
+
+ saveSettings(dlgTerminalSettings.getConnector());
+ return dlgTerminalSettings.getConnector();
+ }
+
+ private void setConnector(ITerminalConnector connector) {
+ fCtlTerminal.setConnector(connector);
+ }
+
+ public void updateTerminalSettings() {
+ boolean bEnabled;
+
+ bEnabled = ((!isConnecting()) && (!fCtlTerminal
+ .isConnected()));
+
+ fActionTerminalSettings.setEnabled(bEnabled);
+ }
+
+ public void setTerminalTitle(String strTitle) {
+ if (fCtlTerminal.isDisposed())
+ return;
+
+ if (strTitle != null) {
+ // When parameter 'data' is not null, it is a String containing text to
+ // display in the view's content description line. This is used by class
+ // TerminalText when it processes an ANSI OSC escape sequence that commands
+ // the terminal to display text in its title bar.
+ } else {
+ // When parameter 'data' is null, we construct a descriptive string to
+ // display in the content description line.
+ String strConnected = getStateDisplayName(fCtlTerminal.getState());
+ String status=""; //$NON-NLS-1$
+ status=fCtlTerminal.getStatusString(strConnected);
+ strTitle = ViewMessages.PROP_TITLE + status;
+ }
+
+ setContentDescription(strTitle);
+ getViewSite().getActionBars().getStatusLineManager().setMessage(
+ strTitle);
+ }
+ public void onTerminalStatus() {
+ setTerminalTitle(null);
+ }
+
+ private String getStateDisplayName(TerminalState state) {
+ if(state==TerminalState.CONNECTED) {
+ return ViewMessages.STATE_CONNECTED;
+ } else if(state==TerminalState.CONNECTING) {
+ return ViewMessages.STATE_CONNECTING;
+ } else if(state==TerminalState.OPENED) {
+ return ViewMessages.STATE_OPENED;
+ } else if(state==TerminalState.CLOSED) {
+ return ViewMessages.STATE_CLOSED;
+ } else {
+ throw new IllegalStateException(state.toString());
+ }
+ }
+
+ public void onTerminalFontChanged() {
+ fCtlTerminal.getCtlText().setFont(JFaceResources.getFont(FONT_DEFINITION));
+
+ // Tell the TerminalControl singleton that the font has changed.
+
+ fCtlTerminal.onFontChanged();
+ }
+
+ public void onEditCopy() {
+ String selection=fCtlTerminal.getSelection();
+
+ if (!selection.equals("")) {//$NON-NLS-1$
+ fCtlTerminal.copy();
+ } else {
+ fCtlTerminal.sendKey('\u0003');
+ }
+ }
+
+ public void updateEditCopy() {
+ boolean bEnabled=true;
+
+ if (fMenuAboutToShow) {
+ bEnabled = fCtlTerminal.getSelection().length()>0;
+ }
+
+ fActionEditCopy.setEnabled(bEnabled);
+ }
+
+ public void onEditCut() {
+ fCtlTerminal.sendKey('\u0018');
+ }
+
+ public void updateEditCut() {
+ boolean bEnabled;
+
+ bEnabled = !fMenuAboutToShow;
+ fActionEditCut.setEnabled(bEnabled);
+ }
+
+ public void onEditPaste() {
+ fCtlTerminal.paste();
+ }
+
+ public void updateEditPaste() {
+ String strText = (String) fCtlTerminal.getClipboard().getContents(TextTransfer.getInstance());
+
+ boolean bEnabled = ((strText != null) && (!strText.equals("")) && (isConnected()));//$NON-NLS-1$
+
+ fActionEditPaste.setEnabled(bEnabled);
+ }
+
+ public void onEditClearAll() {
+ fCtlTerminal.clearTerminal();
+ }
+
+ public void updateEditClearAll() {
+ fActionEditClearAll.setEnabled(!fCtlTerminal.isEmpty());
+ }
+
+ public void onEditSelectAll() {
+ fCtlTerminal.selectAll();
+ }
+
+ public void updateEditSelectAll() {
+ fActionEditSelectAll.setEnabled(!fCtlTerminal.isEmpty());
+ }
+
+ // ViewPart interface
+
+ public void createPartControl(Composite wndParent) {
+ // Bind plugin.xml key bindings to this plugin. Overrides global Control-W key
+ // sequence.
+
+ setPartName(ViewMessages.PROP_TITLE);
+
+ setupControls(wndParent);
+ setupActions();
+ setupMenus();
+ setupLocalToolBars();
+ setupContextMenus();
+ setupListeners(wndParent);
+
+ onTerminalStatus();
+ }
+
+ public void dispose() {
+ Logger.log("entered."); //$NON-NLS-1$
+
+ setPartName("Terminal"); //$NON-NLS-1$
+
+
+ JFaceResources.getFontRegistry().removeListener(fPropertyChangeHandler);
+ MenuManager menuMgr = getEditMenuManager();
+ Menu menu = menuMgr.getMenu();
+
+ menuMgr.removeMenuListener(fMenuHandlerEdit);
+
+ if (menu != null)
+ menu.removeMenuListener(fMenuHandlerEdit);
+
+ fCtlTerminal.disposeTerminal();
+ }
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ public void setFocus() {
+ fCtlTerminal.setFocus();
+ }
+
+ /**
+ * This method creates the top-level control for the Terminal view.
+ */
+ protected void setupControls(Composite wndParent) {
+ ITerminalConnector[] connectors=TerminalConnectorExtension.getTerminalConnectors();
+ fCtlTerminal = TerminalViewControlFactory.makeControl(this, wndParent, connectors);
+ String connectionType=fStore.get("ConnectionType"); //$NON-NLS-1$
+ for (int i = 0; i < connectors.length; i++) {
+ connectors[i].load(getStore(connectors[i]));
+ if(connectors[i].getId().equals(connectionType))
+ fCtlTerminal.setConnector(connectors[i]);
+ }
+ }
+ private void saveSettings(ITerminalConnector connector) {
+ ITerminalConnector[] connectors=fCtlTerminal.getConnectors();
+ for (int i = 0; i < connectors.length; i++) {
+ connectors[i].save(getStore(connectors[i]));
+ }
+ if(connector!=null) {
+ fStore.put("ConnectionType",connector.getId()); //$NON-NLS-1$
+ }
+ }
+
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ fStore=new SettingsStore(memento);
+ }
+
+ public void saveState(IMemento memento) {
+ super.saveState(memento);
+ fStore.saveState(memento);
+ }
+ private ISettingsStore getStore(ITerminalConnector connector) {
+ return new SettingStorePrefixDecorator(fStore,connector.getClass().getName()+"."); //$NON-NLS-1$
+ }
+
+ protected void setupActions() {
+ fActionTerminalNewTerminal = new TerminalActionNewTerminal(this);
+ fActionTerminalConnect = new TerminalActionConnect(this);
+ fActionTerminalDisconnect = new TerminalActionDisconnect(this);
+ fActionTerminalSettings = new TerminalActionSettings(this);
+ fActionEditCopy = new TerminalActionCopy(this);
+ fActionEditCut = new TerminalActionCut(this);
+ fActionEditPaste = new TerminalActionPaste(this);
+ fActionEditClearAll = new TerminalActionClearAll(this);
+ fActionEditSelectAll = new TerminalActionSelectAll(this);
+
+ IActionBars actionBars = getViewSite().getActionBars();
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), fActionEditCopy);
+
+ actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), fActionEditCut);
+
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), fActionEditPaste);
+
+ actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), fActionEditSelectAll);
+ }
+
+ protected void setupMenus() {
+ MenuManager menuMgr = getEditMenuManager();
+ Menu menu = menuMgr.getMenu();
+
+ fMenuHandlerEdit = new TerminalMenuHandlerEdit();
+ menuMgr.addMenuListener(fMenuHandlerEdit);
+ menu.addMenuListener(fMenuHandlerEdit);
+ }
+ /**
+ * @return the Edit Menu
+ */
+ private MenuManager getEditMenuManager() {
+ ApplicationWindow workbenchWindow = (ApplicationWindow) TerminalViewPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
+ MenuManager menuMgr = workbenchWindow.getMenuBarManager();
+ menuMgr = (MenuManager) menuMgr.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
+ return menuMgr;
+ }
+
+
+ protected void setupLocalToolBars() {
+ IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();
+
+ toolBarMgr.add(fActionTerminalNewTerminal);
+ toolBarMgr.add(fActionTerminalConnect);
+ toolBarMgr.add(fActionTerminalDisconnect);
+ toolBarMgr.add(fActionTerminalSettings);
+ }
+
+ protected void setupContextMenus() {
+ StyledText ctlText;
+ MenuManager menuMgr;
+ Menu menu;
+ TerminalContextMenuHandler contextMenuHandler;
+
+ ctlText = fCtlTerminal.getCtlText();
+ menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
+ menu = menuMgr.createContextMenu(ctlText);
+ contextMenuHandler = new TerminalContextMenuHandler();
+
+ ctlText.setMenu(menu);
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(contextMenuHandler);
+ menu.addMenuListener(contextMenuHandler);
+ }
+
+ protected void loadContextMenus(IMenuManager menuMgr) {
+ menuMgr.add(fActionEditCopy);
+ menuMgr.add(fActionEditPaste);
+ menuMgr.add(new Separator());
+ menuMgr.add(fActionEditClearAll);
+ menuMgr.add(fActionEditSelectAll);
+
+ // Other plug-ins can contribute there actions here
+ menuMgr.add(new Separator("Additions")); //$NON-NLS-1$
+ }
+
+ protected void setupListeners(Composite wndParent) {
+ fPropertyChangeHandler = new TerminalPropertyChangeHandler();
+ JFaceResources.getFontRegistry().addListener(fPropertyChangeHandler);
+ }
+
+ // Inner classes
+
+ /**
+ * Because it is too expensive to update the cut/copy/pase/selectAll actions
+ * each time the selection in the terminal view has changed, we update them,
+ * when the menu is shown.
+ *
+ * TODO: this might be dangerous because those actions might be shown in the toolbar
+ * and might not update...
+ *
+ */
+ protected class TerminalMenuHandlerEdit implements MenuListener, IMenuListener {
+ protected String fActionDefinitionIdCopy;
+
+ protected String fActionDefinitionIdPaste;
+
+ protected String fActionDefinitionIdSelectAll;
+
+ protected int fAcceleratorCopy;
+
+ protected int fAcceleratorPaste;
+
+ protected int fAcceleratorSelectAll;
+
+ protected TerminalMenuHandlerEdit() {
+ super();
+
+ fActionDefinitionIdCopy = ""; //$NON-NLS-1$
+ fActionDefinitionIdPaste = ""; //$NON-NLS-1$
+ fActionDefinitionIdSelectAll = ""; //$NON-NLS-1$
+
+ fAcceleratorCopy = 0;
+ fAcceleratorPaste = 0;
+ fAcceleratorSelectAll = 0;
+ }
+ public void menuAboutToShow(IMenuManager menuMgr) {
+
+ fMenuAboutToShow = true;
+ updateEditCopy();
+ updateEditCut();
+ updateEditPaste();
+ updateEditSelectAll();
+
+ ActionContributionItem item = (ActionContributionItem) menuMgr.find(ActionFactory.COPY.getId());
+ RetargetAction action = (RetargetAction) item.getAction();
+ fActionDefinitionIdCopy = action.getActionDefinitionId();
+ fAcceleratorCopy = action.getAccelerator();
+ action.setActionDefinitionId(null);
+ action.enableAccelerator(false);
+ item.update();
+
+ item = (ActionContributionItem) menuMgr.find(ActionFactory.PASTE.getId());
+ action = (RetargetAction) item.getAction();
+ fActionDefinitionIdPaste = action.getActionDefinitionId();
+ fAcceleratorPaste = action.getAccelerator();
+ action.setActionDefinitionId(null);
+ action.enableAccelerator(false);
+ item.update();
+
+ item = (ActionContributionItem) menuMgr.find(ActionFactory.SELECT_ALL.getId());
+ action = (RetargetAction) item.getAction();
+ fActionDefinitionIdSelectAll = action.getActionDefinitionId();
+ fAcceleratorSelectAll = action.getAccelerator();
+ action.setActionDefinitionId(null);
+ action.enableAccelerator(false);
+ item.update();
+ }
+ public void menuShown(MenuEvent event) {
+ // do nothing
+ }
+ public void menuHidden(MenuEvent event) {
+ MenuManager menuMgr;
+ ActionContributionItem item;
+ RetargetAction action;
+
+ fMenuAboutToShow = false;
+ updateEditCopy();
+ updateEditCut();
+
+ menuMgr = getEditMenuManager();
+
+ item = (ActionContributionItem) menuMgr.find(ActionFactory.COPY
+ .getId());
+ action = (RetargetAction) item.getAction();
+ action.setActionDefinitionId(fActionDefinitionIdCopy);
+ action.setAccelerator(fAcceleratorCopy);
+ action.enableAccelerator(true);
+ item.update();
+
+ item = (ActionContributionItem) menuMgr.find(ActionFactory.PASTE
+ .getId());
+ action = (RetargetAction) item.getAction();
+ action.setActionDefinitionId(fActionDefinitionIdPaste);
+ action.setAccelerator(fAcceleratorPaste);
+ action.enableAccelerator(true);
+ item.update();
+
+ item = (ActionContributionItem) menuMgr
+ .find(ActionFactory.SELECT_ALL.getId());
+ action = (RetargetAction) item.getAction();
+ action.setActionDefinitionId(fActionDefinitionIdSelectAll);
+ action.setAccelerator(fAcceleratorSelectAll);
+ action.enableAccelerator(true);
+ item.update();
+ }
+ }
+
+ protected class TerminalContextMenuHandler implements MenuListener, IMenuListener {
+ public void menuHidden(MenuEvent event) {
+ fMenuAboutToShow = false;
+ updateEditCopy();
+ }
+
+ public void menuShown(MenuEvent e) {
+ //
+ }
+ public void menuAboutToShow(IMenuManager menuMgr) {
+ fMenuAboutToShow = true;
+ updateEditCopy();
+ updateEditCut();
+ updateEditPaste();
+ updateEditClearAll();
+
+ loadContextMenus(menuMgr);
+ }
+ }
+
+ protected class TerminalPropertyChangeHandler implements IPropertyChangeListener {
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getProperty().equals(FONT_DEFINITION)) {
+ onTerminalFontChanged();
+ }
+ }
+ }
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java
new file mode 100644
index 00000000000..cfd6ea3d5a9
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+ * 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
+ *
+ * Initial Contributors:
+ * The following Wind River employees contributed to the Terminal component
+ * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+ * Helmut Haigermoser and Ted Williams.
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - split into core, view and connector plugins
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.tm.terminal.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class TerminalViewPlugin extends AbstractUIPlugin {
+ protected static TerminalViewPlugin fDefault;
+ public static final String PLUGIN_HOME = "org.eclipse.tm.terminal"; //$NON-NLS-1$
+ public static final String HELP_VIEW = PLUGIN_HOME + ".terminal_view"; //$NON-NLS-1$
+
+ /**
+ * The constructor.
+ */
+ public TerminalViewPlugin() {
+ fDefault = this;
+ }
+ protected void initializeImageRegistry(ImageRegistry imageRegistry) {
+ HashMap map;
+
+ map = new HashMap();
+
+ try {
+ // Local toolbars
+ map.put(ImageConsts.IMAGE_NEW_TERMINAL, "newterminal.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_CLCL_CONNECT, "connect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_CLCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_CLCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$
+
+ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_LOCALTOOL, map);
+
+ map.clear();
+
+ // Enabled local toolbars
+ map.put(ImageConsts.IMAGE_NEW_TERMINAL, "newterminal.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_ELCL_CONNECT, "connect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_ELCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_ELCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$
+
+ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_ELCL, map);
+
+ map.clear();
+
+ // Disabled local toolbars
+ map.put(ImageConsts.IMAGE_NEW_TERMINAL, "newterminal.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_DLCL_CONNECT, "connect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_DLCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_DLCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$
+
+ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_DLCL, map);
+
+ map.clear();
+ } catch (MalformedURLException malformedURLException) {
+ malformedURLException.printStackTrace();
+ }
+ }
+ /**
+ * Returns the shared instance.
+ */
+ public static TerminalViewPlugin getDefault() {
+ return fDefault;
+ }
+
+ public static boolean isLogInfoEnabled() {
+ return isOptionEnabled(Logger.TRACE_DEBUG_LOG_INFO);
+ }
+ public static boolean isLogErrorEnabled() {
+ return isOptionEnabled(Logger.TRACE_DEBUG_LOG_ERROR);
+ }
+ public static boolean isLogEnabled() {
+ return isOptionEnabled(Logger.TRACE_DEBUG_LOG);
+ }
+
+ public static boolean isOptionEnabled(String strOption) {
+ String strEnabled;
+ Boolean boolEnabled;
+ boolean bEnabled;
+
+ strEnabled = Platform.getDebugOption(strOption);
+ if (strEnabled == null)
+ return false;
+
+ boolEnabled = new Boolean(strEnabled);
+ bEnabled = boolEnabled.booleanValue();
+
+ return bEnabled;
+ }
+ protected void loadImageRegistry(ImageRegistry imageRegistry,
+ String strDir, HashMap map) throws MalformedURLException {
+ URL url;
+ ImageDescriptor imageDescriptor;
+ Iterator keys;
+ String strKey;
+ String strFile;
+
+ keys = map.keySet().iterator();
+
+ while (keys.hasNext()) {
+ strKey = (String) keys.next();
+ strFile = (String) map.get(strKey);
+
+ if (strFile != null) {
+ url = TerminalViewPlugin.getDefault().getBundle().getEntry(
+ ImageConsts.IMAGE_DIR_ROOT + strDir + strFile);
+ imageDescriptor = ImageDescriptor.createFromURL(url);
+ imageRegistry.put(strKey, imageDescriptor);
+ }
+ }
+ }
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java
new file mode 100644
index 00000000000..033e1aecbbe
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+ * 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
+ *
+ * Initial Contributors:
+ * The following Wind River employees contributed to the Terminal component
+ * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+ * Helmut Haigermoser and Ted Williams.
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - split into core, view and connector plugins
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.osgi.util.NLS;
+
+public class ViewMessages extends NLS {
+ static {
+ NLS.initializeMessages(ViewMessages.class.getName(), ViewMessages.class);
+ }
+ public static String PROP_TITLE;
+ public static String SETTINGS;
+
+ public static String TERMINALSETTINGS;
+ public static String CONNECTIONTYPE;
+
+ public static String LIMITOUTPUT;
+ public static String BUFFERLINES;
+ public static String SERIALTIMEOUT;
+ public static String NETWORKTIMEOUT;
+
+ public static String STATE_CONNECTED;
+ public static String STATE_CONNECTING;
+ public static String STATE_OPENED;
+ public static String STATE_CLOSED;
+
+}
diff --git a/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties
new file mode 100644
index 00000000000..72901a74a2a
--- /dev/null
+++ b/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# Copyright (c) 2003, 2006 Wind River Systems, Inc. and others.
+# 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
+#
+# Initial Contributors:
+# The following Wind River employees contributed to the Terminal component
+# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
+# Helmut Haigermoser and Ted Williams.
+#
+# Contributors:
+# Michael Scharf (Wind River) - split into core, view and connector plugins
+# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+###############################################################################
+PROP_TITLE = Terminal
+SETTINGS = Settings
+
+TERMINALSETTINGS = Terminal Settings
+CONNECTIONTYPE = Connection Type
+
+LIMITOUTPUT = Limit terminal output
+BUFFERLINES = Terminal buffer lines:
+SERIALTIMEOUT = Serial timeout (seconds):
+NETWORKTIMEOUT = Network timeout (seconds):
+
+STATE_CONNECTED = CONNECTED
+STATE_CONNECTING = CONNECTING...
+STATE_OPENED = OPENED
+STATE_CLOSED = CLOSED
diff --git a/org.eclipse.tm.terminal/.classpath b/org.eclipse.tm.terminal/.classpath
index 0d0fdd4139a..52165ecfb58 100644
--- a/org.eclipse.tm.terminal/.classpath
+++ b/org.eclipse.tm.terminal/.classpath
@@ -1,11 +1,7 @@
-
-
-
-
-
+
diff --git a/org.eclipse.tm.terminal/META-INF/MANIFEST.MF b/org.eclipse.tm.terminal/META-INF/MANIFEST.MF
index e4376bffb61..df09b70b298 100644
--- a/org.eclipse.tm.terminal/META-INF/MANIFEST.MF
+++ b/org.eclipse.tm.terminal/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.tm.terminal; singleton:=true
Bundle-Version: 0.9.2.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.internal.control.TerminalPlugin
+Bundle-Activator: org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime,
@@ -11,7 +11,7 @@ Require-Bundle: org.eclipse.core.runtime,
Eclipse-LazyStart: true
Bundle-RequiredExecutionEnvironment: J2SE-1.4
Bundle-ClassPath: .
-Export-Package: org.eclipse.tm.terminal,
- org.eclipse.tm.terminal.control,
- org.eclipse.tm.terminal.internal.control;x-internal:=true,
- org.eclipse.tm.terminal.internal.telnet;x-internal:=true
+Export-Package: org.eclipse.tm.internal.terminal.control;x-friends:="org.eclipse.tm.terminal.view",
+ org.eclipse.tm.internal.terminal.control.impl;x-internal:=true,
+ org.eclipse.tm.internal.terminal.telnet;x-internal:=true,
+ org.eclipse.tm.terminal
diff --git a/org.eclipse.tm.terminal/plugin.xml b/org.eclipse.tm.terminal/plugin.xml
index 5fa64c8c4bd..19f2bc90e4d 100644
--- a/org.eclipse.tm.terminal/plugin.xml
+++ b/org.eclipse.tm.terminal/plugin.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalListener.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java
similarity index 95%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalListener.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java
index d05e8884608..1494d857110 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalListener.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.control;
+package org.eclipse.tm.internal.terminal.control;
import org.eclipse.tm.terminal.TerminalState;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalViewControl.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java
similarity index 96%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalViewControl.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java
index ac33802ae2c..99786e68138 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/ITerminalViewControl.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.control;
+package org.eclipse.tm.internal.terminal.control;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.dnd.Clipboard;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/TerminalViewControlFactory.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java
similarity index 88%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/TerminalViewControlFactory.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java
index 8866b03fea4..99cda7a811b 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/control/TerminalViewControlFactory.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java
@@ -9,11 +9,11 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.control;
+package org.eclipse.tm.internal.terminal.control;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.tm.internal.terminal.control.impl.TerminalControl;
import org.eclipse.tm.terminal.ITerminalConnector;
-import org.eclipse.tm.terminal.internal.control.TerminalControl;
public class TerminalViewControlFactory {
public static ITerminalViewControl makeControl(ITerminalListener target, Composite wndParent, ITerminalConnector[] connectors) {
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/ITerminalControlForText.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java
similarity index 95%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/ITerminalControlForText.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java
index 72e72bc93f2..af351845aaa 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/ITerminalControlForText.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.control;
+package org.eclipse.tm.internal.terminal.control.impl;
import java.io.OutputStream;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalControl.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java
similarity index 99%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalControl.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java
index fe8eed26ae3..80775a562ce 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalControl.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.control;
+package org.eclipse.tm.internal.terminal.control.impl;
import java.io.IOException;
import java.io.OutputStream;
@@ -40,12 +40,12 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.tm.internal.terminal.control.ITerminalListener;
+import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
import org.eclipse.tm.terminal.ITerminalConnector;
import org.eclipse.tm.terminal.ITerminalControl;
import org.eclipse.tm.terminal.Logger;
import org.eclipse.tm.terminal.TerminalState;
-import org.eclipse.tm.terminal.control.ITerminalListener;
-import org.eclipse.tm.terminal.control.ITerminalViewControl;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.contexts.IContextActivation;
import org.eclipse.ui.contexts.IContextService;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalMessages.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java
similarity index 94%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalMessages.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java
index 69bb8d99550..68c32808d10 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalMessages.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.control;
+package org.eclipse.tm.internal.terminal.control.impl;
import org.eclipse.osgi.util.NLS;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalMessages.properties b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.properties
similarity index 100%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalMessages.properties
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.properties
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalPlugin.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java
similarity index 97%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalPlugin.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java
index 2a48924d464..b00bc932cb5 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalPlugin.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.control;
+package org.eclipse.tm.internal.terminal.control.impl;
import org.eclipse.core.runtime.Platform;
import org.eclipse.tm.terminal.Logger;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalText.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalText.java
similarity index 99%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalText.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalText.java
index ecb1187d9c9..106c1a3c8e7 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/control/TerminalText.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalText.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.control;
+package org.eclipse.tm.internal.terminal.control.impl;
import java.io.IOException;
import java.io.OutputStreamWriter;
@@ -31,10 +31,10 @@ import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.tm.internal.terminal.telnet.TelnetConnection;
import org.eclipse.tm.terminal.ITerminalConnector;
import org.eclipse.tm.terminal.Logger;
import org.eclipse.tm.terminal.TerminalState;
-import org.eclipse.tm.terminal.internal.telnet.TelnetConnection;
/**
* This class processes character data received from the remote host and
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/ITelnetSettings.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/ITelnetSettings.java
similarity index 94%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/ITelnetSettings.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/ITelnetSettings.java
index 9fdb0e20d72..d54f2a6aec0 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/ITelnetSettings.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/ITelnetSettings.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import org.eclipse.tm.terminal.ISettingsStore;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/NetworkPortMap.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/NetworkPortMap.java
similarity index 97%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/NetworkPortMap.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/NetworkPortMap.java
index ba49179c559..695278ff0b1 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/NetworkPortMap.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/NetworkPortMap.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalNetworkPortMap
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.util.ArrayList;
import java.util.List;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetCodes.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetCodes.java
similarity index 98%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetCodes.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetCodes.java
index 08058c0a75e..fbe551ae376 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetCodes.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetCodes.java
@@ -12,7 +12,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
/**
* This interface defines symbolic constants for numeric TELNET protocol command and
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnectWorker.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnectWorker.java
similarity index 98%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnectWorker.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnectWorker.java
index 59ee043c597..ac3db6d84aa 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnectWorker.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnectWorker.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalControl
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.net.ConnectException;
import java.net.InetSocketAddress;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnection.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnection.java
similarity index 99%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnection.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnection.java
index 852f9c4a160..44ebd2f1dc3 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnection.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnection.java
@@ -12,7 +12,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.io.IOException;
import java.io.InputStream;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnector.java
similarity index 98%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnector.java
index da3f4e08da0..91081a203e7 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetConnector.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalControl
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.io.IOException;
import java.io.InputStream;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetMessages.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetMessages.java
similarity index 95%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetMessages.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetMessages.java
index dc50f268576..18f307cbeea 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetMessages.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetMessages.java
@@ -9,7 +9,7 @@
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import org.eclipse.osgi.util.NLS;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetMessages.properties b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetMessages.properties
similarity index 100%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetMessages.properties
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetMessages.properties
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetOption.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetOption.java
similarity index 99%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetOption.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetOption.java
index 1dc8e2b5ea1..0868a3d6120 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetOption.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetOption.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.io.IOException;
import java.io.OutputStream;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetProperties.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetProperties.java
similarity index 96%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetProperties.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetProperties.java
index 1d85a4c418a..ff6e79b5a94 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetProperties.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetProperties.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalProperties
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
public class TelnetProperties {
private final NetworkPortMap fNetworkPortMap;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettings.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettings.java
similarity index 98%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettings.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettings.java
index 9bdd522cf9b..46face35c1b 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettings.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettings.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalSettings
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import org.eclipse.tm.terminal.ISettingsStore;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettingsPage.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java
similarity index 98%
rename from org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettingsPage.java
rename to org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java
index 4b59c94eb99..c9b0d5f79a6 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetSettingsPage.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java
@@ -14,7 +14,7 @@
* Michael Scharf (Wind River) - extracted from TerminalSettingsDlg
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
*******************************************************************************/
-package org.eclipse.tm.terminal.internal.telnet;
+package org.eclipse.tm.internal.terminal.telnet;
import java.util.Collections;
import java.util.Iterator;
diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/TerminalConnectorExtension.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/TerminalConnectorExtension.java
index 2e5c64e9702..67051475fd8 100644
--- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/TerminalConnectorExtension.java
+++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/TerminalConnectorExtension.java
@@ -18,7 +18,7 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.RegistryFactory;
import org.eclipse.core.runtime.Status;
-import org.eclipse.tm.terminal.internal.control.TerminalPlugin;
+import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
/**
* A factory to get {@link ITerminalConnector} instances.