diff --git a/deprecated/features/org.eclipse.tm.terminal.sdk-feature/.project b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/.project
new file mode 100644
index 00000000000..92158332e5e
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/.project
@@ -0,0 +1,17 @@
+
+
+ org.eclipse.tm.terminal.sdk-feature
+
+
+
+
+
+ org.eclipse.pde.FeatureBuilder
+
+
+
+
+
+ org.eclipse.pde.FeatureNature
+
+
diff --git a/deprecated/features/org.eclipse.tm.terminal.sdk-feature/build.properties b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/build.properties
new file mode 100644
index 00000000000..3f525e489bf
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/build.properties
@@ -0,0 +1,19 @@
+################################################################################
+# Copyright (c) 2006, 2015 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
+#
+# Contributors:
+# Martin Oberhuber (Wind River) - initial API and implementation
+# Uwe Stieber (Wind River) - Bug 434937 - Releng: The Terminal Features have an incorrect license
+################################################################################
+bin.includes = feature.properties,\
+ feature.xml
+
+generate.plugin@org.eclipse.tm.terminal.source=org.eclipse.tm.terminal
+generate.plugin@org.eclipse.tm.terminal.serial.source=org.eclipse.tm.terminal.serial
+generate.plugin@org.eclipse.tm.terminal.ssh.source=org.eclipse.tm.terminal.ssh
+generate.plugin@org.eclipse.tm.terminal.telnet.source=org.eclipse.tm.terminal.telnet
+generate.plugin@org.eclipse.tm.terminal.view.source=org.eclipse.tm.terminal.view
diff --git a/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.properties b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.properties
new file mode 100644
index 00000000000..4d52ee3a86c
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.properties
@@ -0,0 +1,171 @@
+###############################################################################
+# Copyright (c) 2006, 2014 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
+#
+# Contributors:
+# Martin Oberhuber (Wind River) - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Target Management Terminal (Deprecated)
+
+# "description" property - description of the feature
+description=An ANSI (vt102) compatible Terminal including \
+plug-ins for Serial, SSH and Telnet connections. Includes Source Code.\n\
+\n\
+Note: This feature is deprecated. Use the "Terminals View" feature from the "Mobile and Device Development" category instead.
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse TM Project
+
+# "tmUpdateSiteName" property - label for the update site
+tmUpdateSiteName=Target Management 3.7 Updates
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2003, 2014 Wind River Systems, Inc. and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml
new file mode 100644
index 00000000000..d1d437578de
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+ %description
+
+
+
+ %copyright
+
+
+
+ %license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deprecated/features/org.eclipse.tm.terminal.sdk-feature/pom.xml b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/pom.xml
new file mode 100644
index 00000000000..eb957301c59
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.sdk-feature/pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+
+ org.eclipse.tm.maven-build
+ org.eclipse.tm
+ 4.0.0-SNAPSHOT
+ ../../../../admin/pom-build.xml
+
+ org.eclipse.tm.features
+ org.eclipse.tm.terminal.sdk
+ 4.0.0.qualifier
+ eclipse-feature
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-packaging-plugin
+ ${tycho-version}
+
+ default
+
+
+
+
+
+
diff --git a/deprecated/features/org.eclipse.tm.terminal.view-feature/.project b/deprecated/features/org.eclipse.tm.terminal.view-feature/.project
new file mode 100644
index 00000000000..57ff3d8e631
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.view-feature/.project
@@ -0,0 +1,17 @@
+
+
+ org.eclipse.tm.terminal.view-feature
+
+
+
+
+
+ org.eclipse.pde.FeatureBuilder
+
+
+
+
+
+ org.eclipse.pde.FeatureNature
+
+
diff --git a/deprecated/features/org.eclipse.tm.terminal.view-feature/build.properties b/deprecated/features/org.eclipse.tm.terminal.view-feature/build.properties
new file mode 100644
index 00000000000..400f7fd68ee
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.view-feature/build.properties
@@ -0,0 +1,13 @@
+################################################################################
+# Copyright (c) 2006, 2015 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
+#
+# Contributors:
+# Michael Scharf (Wind River) - initial API and implementation
+# Uwe Stieber (Wind River) - Bug 434937 - Releng: The Terminal Features have an incorrect license
+################################################################################
+bin.includes = feature.xml,\
+ feature.properties
diff --git a/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.properties b/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.properties
new file mode 100644
index 00000000000..0a6e4bdc5e7
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.properties
@@ -0,0 +1,170 @@
+###############################################################################
+# Copyright (c) 2006, 2014 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
+#
+# Contributors:
+# Martin Oberhuber (Wind River) - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Target Management Terminal View (Deprecated)
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse TM Project
+
+# "tmUpdateSiteName" property - label for the update site
+tmUpdateSiteName=Target Management 3.7 Updates
+
+# "description" property - description of the feature
+description=An Eclipse Workbench standalone view for the Terminal widget.\n\
+\n\
+Note: This feature is deprecated. Use the "Terminals View" feature from the "Mobile and Device Development" category instead.
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2003, 2013 Wind River Systems, Inc. and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml b/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml
new file mode 100644
index 00000000000..c1984a2165c
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+ %description
+
+
+
+ %copyright
+
+
+
+ %license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deprecated/features/org.eclipse.tm.terminal.view-feature/pom.xml b/deprecated/features/org.eclipse.tm.terminal.view-feature/pom.xml
new file mode 100644
index 00000000000..27352ba805b
--- /dev/null
+++ b/deprecated/features/org.eclipse.tm.terminal.view-feature/pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+
+ org.eclipse.tm.maven-build
+ org.eclipse.tm
+ 4.0.0-SNAPSHOT
+ ../../../../admin/pom-build.xml
+
+ org.eclipse.tm.features
+ org.eclipse.tm.terminal.view
+ 4.0.0.qualifier
+ eclipse-feature
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-packaging-plugin
+ ${tycho-version}
+
+ default
+
+
+
+
+
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath b/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore b/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore
new file mode 100644
index 00000000000..ba077a4031a
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/.project b/deprecated/plugins/org.eclipse.tm.terminal.view/.project
new file mode 100644
index 00000000000..b54e2fe953b
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/.project
@@ -0,0 +1,34 @@
+
+
+ org.eclipse.tm.terminal.view
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+ org.eclipse.pde.api.tools.apiAnalysisBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.pde.api.tools.apiAnalysisNature
+
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.core.prefs b/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c2dc3aa2f47
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,74 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.ui.prefs b/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..9a20fca52a4
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Mon Jul 31 14:55:17 CEST 2006
+eclipse.preferences.version=1
+internal.default.compliance=user
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/HelpContexts.xml b/deprecated/plugins/org.eclipse.tm.terminal.view/HelpContexts.xml
new file mode 100644
index 00000000000..5ba920568af
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/HelpContexts.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ The Terminal View supports direct connections to remote systems via serial or network connections.
+
+
+
+
+
+ The Terminal Settings Dialog provides the controls for making terminal connections.
+
+
+
+
+
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF b/deprecated/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..eb076cf1ebd
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.tm.terminal.view;singleton:=true
+Bundle-Version: 2.4.200.qualifier
+Bundle-Activator: org.eclipse.tm.internal.terminal.view.TerminalViewPlugin
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.tm.terminal;bundle-version="[3.2.0,3.4.0)"
+Bundle-ActivationPolicy: lazy
+Eclipse-LazyStart: true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: %providerName
+Export-Package: org.eclipse.tm.internal.terminal.actions;x-internal:=true,
+ org.eclipse.tm.internal.terminal.view;x-internal:=true
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml b/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml
new file mode 100644
index 00000000000..387756f5c68
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/about.html b/deprecated/plugins/org.eclipse.tm.terminal.view/about.html
new file mode 100644
index 00000000000..a603d19ab21
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/about.html
@@ -0,0 +1,29 @@
+
+
+
+
+About
+
+
+
About This Content
+
+
June 5, 2007
+
License
+
+
The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at http://www.eclipse.org/legal/epl-v10.html.
+For purposes of the EPL, "Program" will mean the Content.
+
+
If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at http://www.eclipse.org.
+
+
+
+
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/about.ini b/deprecated/plugins/org.eclipse.tm.terminal.view/about.ini
new file mode 100644
index 00000000000..3adc27ab587
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/about.ini
@@ -0,0 +1,27 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=tm32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/about.mappings b/deprecated/plugins/org.eclipse.tm.terminal.view/about.mappings
new file mode 100644
index 00000000000..bddaab43109
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/about.properties b/deprecated/plugins/org.eclipse.tm.terminal.view/about.properties
new file mode 100644
index 00000000000..10075af5412
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/about.properties
@@ -0,0 +1,25 @@
+################################################################################
+# Copyright (c) 2006, 2015 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
+#
+# Contributors:
+# Martin Oberhuber - initial API and implementation
+################################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+#
+# Do not translate any values surrounded by {}
+
+blurb=Target Management Terminal View (Deprecated)\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Wind River Systems, Inc. and others 2003, 2014. All rights reserved.\n\
+Visit http://www.eclipse.org/tm
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/build.properties b/deprecated/plugins/org.eclipse.tm.terminal.view/build.properties
new file mode 100644
index 00000000000..51984c14501
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/build.properties
@@ -0,0 +1,33 @@
+################################################################################
+# Copyright (c) 2003, 2015 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
+################################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties,\
+ about.html,\
+ about.ini,\
+ about.mappings,\
+ about.properties,\
+ tm32.png,\
+ HelpContexts.xml,\
+ doc/,\
+ toc.xml,\
+ TerminalContexts.xml
+src.includes = about.html
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css b/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css
new file mode 100644
index 00000000000..faa4199fe34
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css
@@ -0,0 +1 @@
+@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/01_terminalview.html b/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/01_terminalview.html
new file mode 100644
index 00000000000..c423cbf8be5
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/01_terminalview.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+Terminal View
+
+
+
+
+
Terminal View
+
+
+The Terminal view provides a raw serial or network connection to your target board.
+This view is useful for monitoring output on a target's serial port or making a telnet
+connection to a device.
+
+The Terminal view is activated by choosing Window > Show View > Other > Terminal > Terminal.
+
+
+Multiple Terminal view instances can be active at the same time, connected
+to a number of remote systems or disconnected and just holding their settings
+ready for re-connect.
+
+
+
Open the Terminal Settings dialog.
+ While connected, only the connection's title can be changed.
+
+
+
+
Toggle the Command Input field,
+ for editing complex command lines on dumb terminals.
+
+
+
+
Toggle Scroll Lock in the current terminal connection.
+
+
+
+
Select a Terminal connection to show in this view instance.
+ Only available when multiple connections have been defined in this view.
+
+
+
+
Open another Terminal connection in the current view, or in a new Terminal view instance.
+
+
+
+
Remove the currently selected Terminal Connection from this view.
+ Only available when multiple connections have been defined in this view.
+
+
+
+
+
+
+
+ Each instance of the Terminal view can hold multiple connections, each of which can in
+ turn be connected to a different remote endpoint
+ (either serial or network). Of course, the number of serial connections is limited by the
+ number of serial ports.
+
+Use the Terminal Settings dialog to configure your connection.
+
+
+In the Connection Type field choose Serial, SSH or Telnet.
+
+
+The View Title field allows giving a name to your Terminal View instance.
+
+
+
Serial Connection
+
+
+If you choose a serial connection, the Settings area has seven options:
+ Port, Baud Rate, Data Bits, Stop Bits, Parity, Flow Control,
+ and Timeout.
+
+
+
+When you have entered your settings, click OK. This initiates your connection.
+
+
+Your connection information appears in the header of the Terminal view.
+A cursor appears in the view itself. Hit ENTER to get a >NET>
+prompt.
+
+
+
+
+
+
+
NOTE:When using the Terminal view on Linux or Solaris,
+ serial ports ttyS0 and ttyS1 must have appropriate permissions
+ set in order to connect to them, unless you are running the Workbench as root.
+
+
+
+
+
+
+
+
SSH Connection
+
+
+If you choose an SSH connection, the Settings area has six options.
+In the Host and Port fields, enter the IP Address and port of the host
+you wish to connect to.
+The User field specifies the remote user id to use.
+The Password field is optional, since SSH can re-use your private keys
+as specified on the Eclipse Preferences, General, Network Page.
+The Timeout can be changed for very slow networks. The
+KeepAlive value specifies an interval in seconds, by which the Terminal
+automatically sends a packet to the remote host in order to keep the connection
+alive even in case of inactivity.
+
When all settings are specified, click
+OK. This initiates your connection.
+
+
+
+
Telnet Connection
+
+
+If you choose a Telnet connection, the Settings area has three options.
+In the Host field, enter the IP Address of the host you wish to connect to.
+In the Port field, select the network port you wish to use.
+The Timeout can be changed for very slow networks. Then click
+OK. This initiates your connection.
+
+
+Your connection information appears in the header of the Terminal view.
+A cursor appears in the view itself. Hit ENTER to get a >NET> prompt.
+
+The Terminal view is an ANSI-conformant terminal emulator. You can use the
+Terminal view to telnet into a remote UNIX host.
+
+
+
+To do so, set the TERM environment variable on the remote host to ansi.
+This enables programs on the remote host, such as vi and Emacs,
+to display text properly.
+The Terminal view does not currently support other emulation modes, such as VT100.
+
+
+
+The size of the terminal window as understood by the remote is automatically
+adjusted as the size of your Terminal view changes.
+The colors and font used by the Terminal can be configured in the
+Eclipse Preferences, Appearance section. A separate Terminal Preference
+Page allows inverting the terminal colors easily if desired.
+
+
+
Optional Command Input Field
+
+
+The optional Command Input Field can be enabled when sending commands to a dumb
+terminal that does not support cursor keys for editing. In such a case, the
+Command Input Field provides a full editor that supports cursor navigation, copy
+and paste, as well as a history of previous commands that can be accessed by
+Ctrl+Space content assist.
+
+
+
+If more space than the default single editing line is needed for very complex commands,
+the Command Input Field can be enlarged by dragging its upper handle up with
+the mouse.
+
+
+
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/command_input_field.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/command_input_field.gif
new file mode 100644
index 00000000000..9e3a547c145
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/command_input_field.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/connect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/connect_co.gif
new file mode 100644
index 00000000000..556b230da56
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/connect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/disconnect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/disconnect_co.gif
new file mode 100644
index 00000000000..f1d5fb31e51
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/disconnect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/lock_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/lock_co.gif
new file mode 100644
index 00000000000..68fd6cf39ca
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/lock_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif
new file mode 100644
index 00000000000..80201e0d469
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/properties_tsk.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/properties_tsk.gif
new file mode 100644
index 00000000000..41b5adbd543
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/properties_tsk.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif
new file mode 100644
index 00000000000..bbb6a9e153e
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/command_input_field.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/command_input_field.gif
new file mode 100644
index 00000000000..f538ca707fc
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/command_input_field.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/connect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/connect_co.gif
new file mode 100644
index 00000000000..ae5e64b9f6f
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/connect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/disconnect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/disconnect_co.gif
new file mode 100644
index 00000000000..24a628713dc
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/disconnect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/lock_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/lock_co.gif
new file mode 100644
index 00000000000..b7764789356
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/lock_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif
new file mode 100644
index 00000000000..80201e0d469
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/properties_tsk.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/properties_tsk.gif
new file mode 100644
index 00000000000..c307524a7a4
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/properties_tsk.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/rem_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/rem_co.gif
new file mode 100644
index 00000000000..559e462985f
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/rem_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/command_input_field.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/command_input_field.gif
new file mode 100644
index 00000000000..f538ca707fc
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/command_input_field.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/connect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/connect_co.gif
new file mode 100644
index 00000000000..c0de0d32dd6
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/connect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/disconnect_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/disconnect_co.gif
new file mode 100644
index 00000000000..ef5bfa8ad71
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/disconnect_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/lock_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/lock_co.gif
new file mode 100644
index 00000000000..68fd6cf39ca
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/lock_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif
new file mode 100644
index 00000000000..80201e0d469
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/properties_tsk.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/properties_tsk.gif
new file mode 100644
index 00000000000..41b5adbd543
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/properties_tsk.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/rem_co.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/rem_co.gif
new file mode 100644
index 00000000000..2cd9c544436
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/rem_co.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/icons/eview16/terminal_view.gif b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/eview16/terminal_view.gif
new file mode 100644
index 00000000000..bbb6a9e153e
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/icons/eview16/terminal_view.gif differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.properties b/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.properties
new file mode 100644
index 00000000000..8bc93b55917
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.properties
@@ -0,0 +1,21 @@
+##########################################################################
+# Copyright (c) 2003, 2015 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
+# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
+##########################################################################
+pluginName = Target Management Terminal View (Deprecated)
+providerName = Eclipse TM Project
+terminal.views.category.name = Terminal
+terminal.views.view.name = Terminal
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml b/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml
new file mode 100644
index 00000000000..b43368431ee
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/pom.xml b/deprecated/plugins/org.eclipse.tm.terminal.view/pom.xml
new file mode 100644
index 00000000000..4ae0aaa1199
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+ org.eclipse.tm.maven-build
+ org.eclipse.tm
+ 4.0.0-SNAPSHOT
+ ../../../../admin/pom-build.xml
+
+ org.eclipse.tm
+ org.eclipse.tm.terminal.view
+ 2.4.200.qualifier
+ eclipse-plugin
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java
new file mode 100644
index 00000000000..5abbcf8a680
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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
+ * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+import org.eclipse.osgi.util.NLS;
+
+public class ActionMessages extends NLS {
+
+ static {
+ NLS.initializeMessages(ActionMessages.class.getName(), ActionMessages.class);
+ }
+ public static String NEW_TERMINAL_CONNECTION;
+ public static String NEW_TERMINAL_VIEW;
+ public static String CONNECT;
+ public static String TOGGLE_COMMAND_INPUT_FIELD;
+ public static String DISCONNECT;
+ public static String SETTINGS_ELLIPSE;
+ public static String SCROLL_LOCK_0;
+ public static String SCROLL_LOCK_1;
+ public static String REMOVE;
+
+ public static String ConsoleDropDownAction_0;
+ public static String ConsoleDropDownAction_1;
+
+ public static String SETTINGS;
+
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties
new file mode 100644
index 00000000000..0401f1d8c83
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties
@@ -0,0 +1,33 @@
+###############################################################################
+# Copyright (c) 2003, 2015 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
+# Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
+# Michael Scharf (Wind River) - [172483] switch between connections
+# Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+###############################################################################
+NEW_TERMINAL_CONNECTION = New Terminal Connection in Current View...
+NEW_TERMINAL_VIEW = New Terminal View
+CONNECT = Connect
+DISCONNECT = Disconnect
+SETTINGS_ELLIPSE = Settings...
+SCROLL_LOCK_0 = Scroll &Lock
+SCROLL_LOCK_1 = Scroll Lock
+SETTINGS = Settings
+TOGGLE_COMMAND_INPUT_FIELD= Toggle Command Input Field
+REMOVE = Remove Terminal
+
+ConsoleDropDownAction_0=Select Connection
+ConsoleDropDownAction_1=Display Selected Connections
+
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ShowTerminalConnectionAction.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ShowTerminalConnectionAction.java
new file mode 100644
index 00000000000..47faff88717
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ShowTerminalConnectionAction.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2015 IBM Corporation 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Michael Scharf (Wind River) - [172483] Adapted from org.eclipse.ui.console/ShowConsoleAction
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnection;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager;
+
+/**
+ * Shows a specific connection in the terminal view
+ */
+public class ShowTerminalConnectionAction extends Action {
+
+ private final ITerminalViewConnection fConnection;
+ private final ITerminalViewConnectionManager fConnectionManager;
+
+ /**
+ * Constructs an action to display the given terminal.
+ *
+ * @param manager the terminal multi-view in which the given terminal connection is contained
+ * @param connection the terminal view connection
+ */
+ public ShowTerminalConnectionAction(ITerminalViewConnectionManager manager, ITerminalViewConnection connection) {
+ super(quoteName(buildName(manager,connection)), AS_RADIO_BUTTON);
+ fConnection = connection;
+ fConnectionManager = manager;
+ setImageDescriptor(connection.getImageDescriptor());
+ }
+ /**
+ * the tab at the end quotes '@' chars?!? see
+ * {@link #setText(String)}
+ * @param name
+ * @return a quoted sting
+ */
+ private static String quoteName(String name) {
+ return name+"\t"; //$NON-NLS-1$
+ }
+ /**
+ * Builds the name. It uses the summary. If the connections have different
+ * partNames (the names showed in the view title) then this name is prefixed.
+ * @param m the connection manager
+ * @param connection the connection for which the name should me extracted
+ * @return The name to be displayed
+ */
+ private static String buildName(ITerminalViewConnectionManager m,ITerminalViewConnection connection) {
+ String name = connection.getFullSummary();
+ if(!checkIfAllPartNamesTheSame(m))
+ name=connection.getPartName()+" - " +name; //$NON-NLS-1$
+ return name;
+ }
+ /**
+ * @param m the connection manager
+ * @return true if the part names of all connections are the same
+ */
+ private static boolean checkIfAllPartNamesTheSame(ITerminalViewConnectionManager m) {
+ ITerminalViewConnection[] connections = m.getConnections();
+ if(connections.length>1) {
+ String partName=connections[0].getPartName();
+ for (int i = 1; i < connections.length; i++) {
+ if(!partName.equals(connections[i].getPartName())) {
+ return false;
+ }
+ }
+
+ }
+ return true;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.IAction#run()
+ */
+ public void run() {
+ fConnectionManager.setActiveConnection(fConnection);
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalAction.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalAction.java
new file mode 100644
index 00000000000..85e86d48fc7
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalAction.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2015 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.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.TerminalViewPlugin;
+
+abstract public class TerminalAction extends Action {
+ protected final ITerminalView fTarget;
+ public TerminalAction(ITerminalView target, String strId) {
+ this(target,strId,0);
+ }
+ public TerminalAction(ITerminalView target, String strId, int style) {
+ super("",style); //$NON-NLS-1$
+
+ fTarget = target;
+
+ setId(strId);
+ }
+ abstract public void run();
+ protected void setupAction(String strText, String strToolTip,
+ String strImage, String strEnabledImage, String strDisabledImage,
+ boolean bEnabled) {
+ TerminalViewPlugin plugin;
+ ImageRegistry imageRegistry;
+
+ plugin = TerminalViewPlugin.getDefault();
+ imageRegistry = plugin.getImageRegistry();
+ setupAction(strText, strToolTip, strImage, strEnabledImage,
+ strDisabledImage, bEnabled, imageRegistry);
+ }
+ protected void setupAction(String strText, String strToolTip,
+ String strHoverImage, String strEnabledImage, String strDisabledImage,
+ boolean bEnabled, ImageRegistry imageRegistry) {
+ setupAction(strText,
+ strToolTip,
+ imageRegistry.getDescriptor(strHoverImage),
+ imageRegistry.getDescriptor(strEnabledImage),
+ imageRegistry.getDescriptor(strDisabledImage),
+ bEnabled);
+ }
+ protected void setupAction(String strText, String strToolTip,
+ ImageDescriptor hoverImage, ImageDescriptor enabledImage, ImageDescriptor disabledImage,
+ boolean bEnabled) {
+ setText(strText);
+ setToolTipText(strToolTip);
+ setEnabled(bEnabled);
+ if (enabledImage != null) {
+ setImageDescriptor(enabledImage);
+ }
+ if (disabledImage != null) {
+ setDisabledImageDescriptor(disabledImage);
+ }
+ if (hoverImage != null) {
+ setHoverImageDescriptor(hoverImage);
+ }
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionConnect.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionConnect.java
new file mode 100644
index 00000000000..f343c9a9948
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionConnect.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2015 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.actions;
+
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionConnect extends TerminalAction
+{
+ public TerminalActionConnect(ITerminalView target)
+ {
+ super(target,
+ TerminalActionConnect.class.getName());
+
+ setupAction(ActionMessages.CONNECT,
+ ActionMessages.CONNECT,
+ ImageConsts.IMAGE_CLCL_CONNECT,
+ ImageConsts.IMAGE_ELCL_CONNECT,
+ ImageConsts.IMAGE_DLCL_CONNECT,
+ true);
+ }
+ public void run() {
+ fTarget.onTerminalConnect();
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionDisconnect.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionDisconnect.java
new file mode 100644
index 00000000000..a8624c40450
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionDisconnect.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2015 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.actions;
+
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionDisconnect extends TerminalAction
+{
+ /**
+ *
+ */
+ public TerminalActionDisconnect(ITerminalView target)
+ {
+ super(target,
+ TerminalActionDisconnect.class.getName());
+
+ setupAction(ActionMessages.DISCONNECT,
+ ActionMessages.DISCONNECT,
+ ImageConsts.IMAGE_CLCL_DISCONNECT,
+ ImageConsts.IMAGE_ELCL_DISCONNECT,
+ ImageConsts.IMAGE_DLCL_DISCONNECT,
+ false);
+ }
+ public void run() {
+ fTarget.onTerminalDisconnect();
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionNewTerminal.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionNewTerminal.java
new file mode 100644
index 00000000000..20a0ff7a232
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionNewTerminal.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2015 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
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+*******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+/**
+ * UNDER CONSTRUCTION
+ *
+ * @author Fran Litterio
+ */
+public class TerminalActionNewTerminal extends TerminalAction implements IMenuCreator {
+ private Menu fMenu;
+ public TerminalActionNewTerminal(ITerminalView target)
+ {
+ super(target, TerminalActionNewTerminal.class.getName());
+
+ setupAction(ActionMessages.NEW_TERMINAL_CONNECTION,
+ ActionMessages.NEW_TERMINAL_CONNECTION,
+ ImageConsts.IMAGE_NEW_TERMINAL,
+ ImageConsts.IMAGE_NEW_TERMINAL,
+ ImageConsts.IMAGE_NEW_TERMINAL,
+ true);
+ setMenuCreator(this);
+ }
+ public void run() {
+ fTarget.onTerminalNewTerminal();
+ }
+ public void dispose() {
+ if (fMenu != null) {
+ fMenu.dispose();
+ }
+ }
+ public Menu getMenu(Control parent) {
+ if(fMenu==null) {
+ fMenu= new Menu(parent);
+ addActionToMenu(fMenu,
+ new Action(ActionMessages.NEW_TERMINAL_CONNECTION) {
+ public void run() {
+ fTarget.onTerminalNewTerminal();
+ }
+
+ });
+ addActionToMenu(fMenu,
+ new Action(ActionMessages.NEW_TERMINAL_VIEW) {
+ public void run() {
+ fTarget.onTerminalNewView();
+ }
+
+ });
+ }
+ return fMenu;
+ }
+ protected void addActionToMenu(Menu parent, IAction action) {
+ ActionContributionItem item = new ActionContributionItem(action);
+ item.fill(parent, -1);
+ }
+ public Menu getMenu(Menu parent) {
+ return null;
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionRemove.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionRemove.java
new file mode 100644
index 00000000000..b7d9d472f8d
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionRemove.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager.ITerminalViewConnectionListener;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionRemove extends TerminalAction implements ITerminalViewConnectionListener
+{
+ private final ITerminalViewConnectionManager fConnectionManager;
+ public TerminalActionRemove(ITerminalViewConnectionManager target)
+ {
+ super(null,
+ TerminalActionRemove.class.getName());
+ fConnectionManager=target;
+ setupAction(ActionMessages.REMOVE,
+ ActionMessages.REMOVE,
+ null,
+ ImageConsts.IMAGE_ELCL_REMOVE,
+ ImageConsts.IMAGE_DLCL_REMOVE,
+ true);
+ fConnectionManager.addListener(this);
+ connectionsChanged();
+ }
+ public void run() {
+ fConnectionManager.removeActive();
+ }
+ public void connectionsChanged() {
+ setEnabled(fConnectionManager.size()>1);
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java
new file mode 100644
index 00000000000..2a51a42158c
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2015 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.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionScrollLock extends TerminalAction
+{
+ public TerminalActionScrollLock(ITerminalView target)
+ {
+ super(target,
+ TerminalActionScrollLock.class.getName(),IAction.AS_RADIO_BUTTON);
+
+ setupAction(ActionMessages.SCROLL_LOCK_0,
+ ActionMessages.SCROLL_LOCK_1,
+ ImageConsts.IMAGE_CLCL_SCROLL_LOCK,
+ ImageConsts.IMAGE_ELCL_SCROLL_LOCK,
+ ImageConsts.IMAGE_DLCL_SCROLL_LOCK,
+ true);
+ }
+ public void run() {
+ fTarget.setScrollLock(!fTarget.isScrollLock());
+ setChecked(fTarget.isScrollLock());
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSelectionDropDown.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSelectionDropDown.java
new file mode 100644
index 00000000000..f7b2da77e55
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSelectionDropDown.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2015 IBM Corporation 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Michael Scharf (Wind River) - [172483] switch between connections
+ * (Adapted from org.eclipse.ui.internal.console.ConsoleDropDownAction)
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnection;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager.ITerminalViewConnectionListener;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+import org.eclipse.tm.internal.terminal.view.TerminalViewPlugin;
+
+/**
+ * Drop down action in the console to select the console to display.
+ */
+public class TerminalActionSelectionDropDown extends Action implements IMenuCreator, ITerminalViewConnectionListener {
+ private ITerminalViewConnectionManager fConnections;
+ private Menu fMenu;
+ public TerminalActionSelectionDropDown(ITerminalViewConnectionManager view) {
+ fConnections= view;
+ setText(ActionMessages.ConsoleDropDownAction_0);
+ setToolTipText(ActionMessages.ConsoleDropDownAction_1);
+ setImageDescriptor(TerminalViewPlugin.getDefault().getImageRegistry().getDescriptor(ImageConsts.IMAGE_TERMINAL_VIEW));
+// PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_DISPLAY_CONSOLE_ACTION);
+ setMenuCreator(this);
+ fConnections.addListener(this);
+ connectionsChanged();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.IMenuCreator#dispose()
+ */
+ public void dispose() {
+ if (fMenu != null) {
+ fMenu.dispose();
+ }
+ fConnections.removeListener(this);
+ fConnections= null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
+ */
+ public Menu getMenu(Menu parent) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
+ */
+ public Menu getMenu(Control parent) {
+ if (fMenu != null) {
+ fMenu.dispose();
+ }
+
+ fMenu= new Menu(parent);
+ ITerminalViewConnection[] consoles= fConnections.getConnections();
+ ITerminalViewConnection active = fConnections.getActiveConnection();
+ for (int i = 0; i < consoles.length; i++) {
+ ITerminalViewConnection console = consoles[i];
+ Action action = new ShowTerminalConnectionAction(fConnections, console);
+ action.setChecked(console.equals(active));
+ addActionToMenu(fMenu, action, i + 1);
+ }
+ return fMenu;
+ }
+
+ private void addActionToMenu(Menu parent, Action action, int accelerator) {
+ if (accelerator < 10) {
+ StringBuffer label= new StringBuffer();
+ //add the numerical accelerator
+ label.append('&');
+ label.append(accelerator);
+ label.append(' ');
+ label.append(action.getText());
+ action.setText(label.toString());
+ }
+ ActionContributionItem item= new ActionContributionItem(action);
+ item.fill(parent, -1);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.IAction#run()
+ */
+ public void run() {
+ fConnections.swapConnection();
+ }
+
+ public void connectionsChanged() {
+ setEnabled(fConnections.size() > 1);
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSettings.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSettings.java
new file mode 100644
index 00000000000..060b856cfc9
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSettings.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2015 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.actions;
+
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionSettings extends TerminalAction
+{
+ public TerminalActionSettings(ITerminalView target)
+ {
+ super(target,
+ TerminalActionSettings.class.getName());
+
+ setupAction(ActionMessages.SETTINGS_ELLIPSE,
+ ActionMessages.SETTINGS,
+ ImageConsts.IMAGE_CLCL_SETTINGS,
+ ImageConsts.IMAGE_ELCL_SETTINGS,
+ ImageConsts.IMAGE_DLCL_SETTINGS,
+ true);
+ }
+ public void run() {
+ fTarget.onTerminalSettings();
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionToggleCommandInputField.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionToggleCommandInputField.java
new file mode 100644
index 00000000000..03ab6d06741
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionToggleCommandInputField.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.tm.internal.terminal.view.ITerminalView;
+import org.eclipse.tm.internal.terminal.view.ImageConsts;
+
+public class TerminalActionToggleCommandInputField extends TerminalAction
+{
+ public TerminalActionToggleCommandInputField(ITerminalView target)
+ {
+ super(target,
+ TerminalActionToggleCommandInputField.class.getName(),IAction.AS_RADIO_BUTTON);
+
+ setupAction(ActionMessages.TOGGLE_COMMAND_INPUT_FIELD,
+ ActionMessages.TOGGLE_COMMAND_INPUT_FIELD,
+ ImageConsts.IMAGE_CLCL_COMMAND_INPUT_FIELD,
+ ImageConsts.IMAGE_ELCL_COMMAND_INPUT_FIELD,
+ ImageConsts.IMAGE_DLCL_COMMAND_INPUT_FIELD,
+ true);
+ setChecked(fTarget.hasCommandInputField());
+ }
+ public void run() {
+ fTarget.setCommandInputField(!fTarget.hasCommandInputField());
+ setChecked(fTarget.hasCommandInputField());
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java
new file mode 100644
index 00000000000..087cd136e12
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ * Martin Oberhuber (Wind River) - [227537] moved actions from terminal.view to terminal plugin
+ * Michael Scharf (Wind River) - [172483] switch between connections
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ * Kris De Volder (VMWare) - [392092] Extend ITerminalView API to allow programmatically opening a UI-less connector
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
+
+public interface ITerminalView {
+
+ /**
+ * Create a new terminal connection within the view.
+ */
+ void onTerminalNewTerminal();
+
+ /**
+ * Programmatically create a new terminal connection within the view. This method
+ * does the same thing as onTerminalNewTerminal, but instead of popping up a settings
+ * dialog to allow the user fill in connection details, a connector is provided as
+ * a parameter. The connector should have all of its details pre-configured so it can
+ * be opened without requiring user input.
+ */
+ void newTerminal(ITerminalConnector c);
+
+ /**
+ * Create a new Terminal view.
+ */
+ void onTerminalNewView();
+
+ void onTerminalConnect();
+ void onTerminalDisconnect();
+ void onTerminalSettings();
+ void onTerminalFontChanged();
+ boolean hasCommandInputField();
+ void setCommandInputField(boolean on);
+ boolean isScrollLock();
+ void setScrollLock(boolean b);
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnection.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnection.java
new file mode 100644
index 00000000000..1dc39b35051
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnection.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ * Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
+import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
+
+/**
+ * Represents a connection. The connection might be connected
+ * or not.
+ *
+ */
+public interface ITerminalViewConnection {
+
+ /**
+ * @return the summary shown in the status line and
+ * in the drop down box of the connections
+ */
+ String getFullSummary();
+
+ /**
+ * @param name the name of the view
+ */
+ void setPartName(String name);
+ /**
+ * @return the name of the view (never null)
+ */
+ String getPartName();
+
+ /**
+ * @return an image that represents this connection
+ */
+ ImageDescriptor getImageDescriptor();
+ /**
+ * @return the control of this connection
+ */
+ ITerminalViewControl getCtlTerminal();
+
+ void saveState(ISettingsStore store);
+
+ void loadState(ISettingsStore store);
+
+ /**
+ * @return true if the input field is visible
+ */
+ boolean hasCommandInputField();
+ /**
+ * @param on turns the input field on
+ */
+ void setCommandInputField(boolean on);
+
+ /**
+ * @param state changes of the state (might change the summary)
+ */
+ void setState(TerminalState state);
+
+ /**
+ * @param title used in the summary. If null the summary
+ * is created automatically
+ */
+ void setTerminalTitle(String title);
+
+ /**
+ * TODO: legacy (needed to read the old state)
+ * @param summary
+ */
+ void setSummary(String summary);
+ /**
+ * @param encoding the encoding of this connection
+ */
+ void setEncoding(String encoding);
+
+ /**
+ * @return the encoding of this connection
+ */
+ String getEncoding();
+}
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnectionManager.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnectionManager.java
new file mode 100644
index 00000000000..3d3a25fed31
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnectionManager.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
+
+
+/**
+ * Supports multiple connections
+ *
+ */
+public interface ITerminalViewConnectionManager {
+ /**
+ * Notifies any change in the state of the connections:
+ *
+ *
a connection is added or removed
+ *
the active connection has changed
+ *
+ *
+ */
+ interface ITerminalViewConnectionListener {
+ void connectionsChanged();
+ }
+ /**
+ * Used to create instances of the ITerminalViewConnection
+ * when the state is read from the {@link ISettings}
+ *
+ */
+ interface ITerminalViewConnectionFactory {
+ ITerminalViewConnection create();
+ }
+ /**
+ * @return a list of all connections this view can display
+ */
+ ITerminalViewConnection[] getConnections();
+ /**
+ * @return the number of connections
+ */
+ int size();
+ /**
+ * @return th connection the view is showing at the moment
+ */
+ ITerminalViewConnection getActiveConnection();
+
+ /**
+ * @param conn make this connection the active connection
+ */
+ void setActiveConnection(ITerminalViewConnection conn);
+ /**
+ * If more than two connections are available, remove the active connection
+ */
+ void removeActive();
+
+ /**
+ * @param conn adds a new connection
+ */
+ void addConnection(ITerminalViewConnection conn);
+
+ /**
+ * If there are more than two connections toggle between this and the
+ * previously shown connection
+ */
+ void swapConnection();
+
+ void addListener(ITerminalViewConnectionListener listener);
+ void removeListener(ITerminalViewConnectionListener listener);
+
+ void saveState(ISettingsStore store);
+ /**
+ * @param store
+ * @param factory used to create new {@link ITerminalViewConnection}
+ */
+ void loadState(ISettingsStore store,ITerminalViewConnectionFactory factory);
+
+}
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java
new file mode 100644
index 00000000000..d6761b1ed5d
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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) - extracted from TerminalConsts
+ * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
+ * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
+ * Michael Scharf (Wind River) - [172483] added some more icons
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+public interface ImageConsts
+{
+ public final static String IMAGE_DIR_ROOT = "icons/"; //$NON-NLS-1$
+ public final static String IMAGE_DIR_LOCALTOOL = "clcl16/"; // basic colors - size 16x16 //$NON-NLS-1$
+ public final static String IMAGE_DIR_DLCL = "dlcl16/"; // disabled - size 16x16 //$NON-NLS-1$
+ public final static String IMAGE_DIR_ELCL = "elcl16/"; // enabled - size 16x16 //$NON-NLS-1$
+ public final static String IMAGE_DIR_VIEW = "cview16/"; // views //$NON-NLS-1$
+ public final static String IMAGE_DIR_EVIEW = "eview16/"; // views //$NON-NLS-1$
+
+ public static final String IMAGE_NEW_TERMINAL = "TerminalViewNewTerminal"; //$NON-NLS-1$
+ public static final String IMAGE_TERMINAL_VIEW = "TerminalView"; //$NON-NLS-1$
+ public static final String IMAGE_CLCL_CONNECT = "ImageClclConnect"; //$NON-NLS-1$
+ public static final String IMAGE_CLCL_DISCONNECT = "ImageClclDisconnect"; //$NON-NLS-1$
+ public static final String IMAGE_CLCL_SETTINGS = "ImageClclSettings"; //$NON-NLS-1$
+ public static final String IMAGE_CLCL_SCROLL_LOCK = "ImageClclScrollLock"; //$NON-NLS-1$
+
+ public static final String IMAGE_DLCL_CONNECT = "ImageDlclConnect"; //$NON-NLS-1$
+ public static final String IMAGE_DLCL_DISCONNECT = "ImageDlclDisconnect"; //$NON-NLS-1$
+ public static final String IMAGE_DLCL_SETTINGS = "ImageDlclSettings"; //$NON-NLS-1$
+ public static final String IMAGE_DLCL_SCROLL_LOCK = "ImageDlclScrollLock"; //$NON-NLS-1$
+ public static final String IMAGE_DLCL_REMOVE = "ImageDlclRemove"; //$NON-NLS-1$
+
+ public static final String IMAGE_ELCL_CONNECT = "ImageElclConnect"; //$NON-NLS-1$
+ public static final String IMAGE_ELCL_DISCONNECT = "ImageElclDisconnect"; //$NON-NLS-1$
+ public static final String IMAGE_ELCL_SETTINGS = "ImageElclSettings"; //$NON-NLS-1$
+ public static final String IMAGE_ELCL_SCROLL_LOCK = "ImageElclScrollLock"; //$NON-NLS-1$
+ public static final String IMAGE_ELCL_REMOVE = "ImageElclRemove"; //$NON-NLS-1$
+ public static final String IMAGE_CLCL_COMMAND_INPUT_FIELD = "ImageClclCommandInputField";//$NON-NLS-1$
+ public static final String IMAGE_ELCL_COMMAND_INPUT_FIELD = "ImageDlclCommandInputField";//$NON-NLS-1$
+ public static final String IMAGE_DLCL_COMMAND_INPUT_FIELD = "ImageDlclCommandInputField";//$NON-NLS-1$
+ }
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/PageBook.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/PageBook.java
new file mode 100644
index 00000000000..637634d0c6d
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/PageBook.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - simplified implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * A pagebook is a composite control where only a single control is visible at a
+ * time. It is similar to a notebook, but without tabs.
+ *
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class PageBook extends Composite {
+ private StackLayout fLayout;
+ public PageBook(Composite parent, int style) {
+ super(parent, style);
+ fLayout= new StackLayout();
+ setLayout(fLayout);
+ }
+ public void showPage(Control page) {
+ fLayout.topControl= page;
+ layout();
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingStorePrefixDecorator.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingStorePrefixDecorator.java
new file mode 100644
index 00000000000..fb1f9a0ef7f
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingStorePrefixDecorator.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
+
+public class SettingStorePrefixDecorator implements ISettingsStore {
+ private final String fPrefix;
+ private final ISettingsStore fStore;
+ SettingStorePrefixDecorator(ISettingsStore store,String prefix) {
+ fPrefix=prefix;
+ fStore=store;
+ }
+
+ public String get(String key) {
+ return fStore.get(fPrefix+key);
+ }
+
+ public String get(String key, String defaultValue) {
+ return fStore.get(fPrefix+key,defaultValue);
+ }
+
+ public void put(String key, String value) {
+ fStore.put(fPrefix+key,value);
+ }
+
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingsStore.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingsStore.java
new file mode 100644
index 00000000000..fa6b52add57
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingsStore.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
+import org.eclipse.ui.IMemento;
+
+/**
+ * A {@link IDialogSettings} based {@link ISettingsStore}.
+ *
+ * Setting Store based on IMemento. IMemento documentations says only alpha numeric
+ * values may be used as keys. Therefore the implementation converts dots (.) into
+ * child elements of the memento.
+ *
+ * @author Michael Scharf
+ */
+class SettingsStore implements ISettingsStore {
+
+ private static final String KEYS = "_keys_"; //$NON-NLS-1$
+ final private Map fMap=new HashMap();
+ public SettingsStore(IMemento memento) {
+ if(memento==null)
+ return;
+ // load all keys ever used from the memento
+ String keys=memento.getString(KEYS);
+ if(keys!=null) {
+ String[] keyNames=keys.split(","); //$NON-NLS-1$
+ for (int i = 0; i < keyNames.length; i++) {
+ String key=keyNames[i];
+ if(!KEYS.equals(key)) {
+ // get the dot separated elements
+ String[] path=key.split("\\."); //$NON-NLS-1$
+ IMemento m=memento;
+ // iterate over all but the last segment and get the children...
+ for(int iPath=0; m!=null && iPath+10)
+ buffer.append(","); //$NON-NLS-1$
+ buffer.append(key);
+ }
+ // save the keys we have used.
+ memento.putString(KEYS, buffer.toString());
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java
new file mode 100644
index 00000000000..7a9789049e6
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java
@@ -0,0 +1,423 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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
+ * Martin Oberhuber (Wind River) - [168197] Replace JFace MessagDialog by SWT MessageBox
+ * Martin Oberhuber (Wind River) - [168186] Add Terminal User Docs
+ * Michael Scharf (Wind River) - [196454] Initial connection settings dialog should not be blank
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ * Martin Oberhuber (Wind River) - [206917] Add validation for Terminal Settings
+ * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
+ * Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+
+import java.nio.charset.Charset;
+import java.nio.charset.IllegalCharsetNameException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+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.Label;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage;
+import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
+import org.eclipse.ui.PlatformUI;
+
+class TerminalSettingsDlg extends Dialog {
+ private Combo fEncodingCombo;
+ private Combo fCtlConnTypeCombo;
+ private Text fTerminalTitleText;
+ private final ITerminalConnector[] fConnectors;
+ private final ISettingsPage[] fPages;
+ /**
+ * Maps the fConnectors index to the fPages index
+ */
+ private final int[] fPageIndex;
+ private int fNPages;
+ private int fSelectedConnector;
+ private PageBook fPageBook;
+ private IDialogSettings fDialogSettings;
+ private String fTerminalTitle;
+ private String fTitle=ViewMessages.TERMINALSETTINGS;
+ private String fEncoding;
+
+ public TerminalSettingsDlg(Shell shell, ITerminalConnector[] connectors, ITerminalConnector connector) {
+ super(shell);
+ fConnectors=getValidConnectors(connectors);
+ fPages=new ISettingsPage[fConnectors.length];
+ fPageIndex=new int[fConnectors.length];
+ fSelectedConnector=-1;
+ for (int i = 0; i < fConnectors.length; i++) {
+ if(fConnectors[i]==connector)
+ fSelectedConnector=i;
+ }
+ }
+ public void setTitle(String title) {
+ fTitle=title;
+ }
+ /**
+ * @param connectors
+ * @return connectors excluding connectors with errors
+ */
+ private ITerminalConnector[] getValidConnectors(ITerminalConnector[] connectors) {
+ List list=new ArrayList(Arrays.asList(connectors));
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ITerminalConnector info = (ITerminalConnector) iterator.next();
+ if(info.isInitialized() && info.getInitializationErrorMessage()!=null || info.isHidden())
+ iterator.remove();
+ }
+ connectors=(ITerminalConnector[]) list.toArray(new ITerminalConnector[list.size()]);
+ return connectors;
+ }
+ ISettingsPage getPage(int i) {
+ if(fPages[i]==null) {
+ if(fConnectors[i].getInitializationErrorMessage()!=null) {
+ // create a error message
+ final ITerminalConnector conn=fConnectors[i];
+ fPages[i]=new ISettingsPage(){
+ public void createControl(Composite parent) {
+ Label l=new Label(parent,SWT.WRAP);
+ String error=NLS.bind(ViewMessages.CONNECTOR_NOT_AVAILABLE,conn.getName());
+ l.setText(error);
+ l.setForeground(l.getDisplay().getSystemColor(SWT.COLOR_RED));
+ String msg = NLS.bind(ViewMessages.CANNOT_INITIALIZE, conn.getName(), conn.getInitializationErrorMessage());
+ // [168197] Replace JFace MessagDialog by SWT MessageBox
+ //MessageDialog.openError(getShell(), error, msg);
+ MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK);
+ mb.setText(error);
+ mb.setMessage(msg);
+ mb.open();
+ }
+ public void loadSettings() {}
+ public void saveSettings() {}
+ public boolean validateSettings() {return false;}
+ public void addListener(Listener listener) {}
+ public void removeListener(Listener listener) {}
+ };
+ } else {
+ fPages[i]=fConnectors[i].makeSettingsPage();
+ }
+ // TODO: what happens if an error occurs while
+ // the control is partly created?
+ fPages[i].createControl(fPageBook);
+ fPageIndex[i]=fNPages++;
+ resize();
+ }
+ return fPages[i];
+
+ }
+ void resize() {
+ Point size=getShell().getSize();
+ Point newSize=getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT,true);
+ newSize.x=Math.max(newSize.x,size.x);
+ newSize.y=Math.max(newSize.y,size.y);
+ if(newSize.x!=size.x || newSize.y!=size.y) {
+ setShellSize(newSize);
+ } else {
+ fPageBook.getParent().layout();
+ }
+ }
+ /**
+ * Increase the size of this dialog's Shell by the specified amounts.
+ * Do not increase the size of the Shell beyond the bounds of the Display.
+ */
+ protected void setShellSize(Point size) {
+ Rectangle bounds = getShell().getMonitor().getClientArea();
+ getShell().setSize(Math.min(size.x, bounds.width), Math.min(size.y, bounds.height));
+ }
+
+ protected void okPressed() {
+ if (!validateSettings()) {
+ showErrorMessage(ViewMessages.INVALID_SETTINGS);
+ return;
+ }
+ if (!updateValidState()) {
+ showErrorMessage(ViewMessages.ENCODING_NOT_AVAILABLE);
+ return;
+ }
+ if(fSelectedConnector>=0) {
+ getPage(fSelectedConnector).saveSettings();
+ }
+ fTerminalTitle=fTerminalTitleText.getText();
+ fEncoding = fEncodingCombo.getText();
+ 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(fTitle);
+ }
+ protected Control createDialogArea(Composite parent) {
+ Composite ctlComposite = (Composite) super.createDialogArea(parent);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(ctlComposite, TerminalViewPlugin.HELPPREFIX + "terminal_settings"); //$NON-NLS-1$
+
+ setupPanel(ctlComposite);
+ setupListeners();
+ initFields();
+
+ return ctlComposite;
+ }
+ public void create() {
+ super.create();
+ // initialize the OK button after creating the all dialog elements
+ updateOKButton();
+ }
+ private void initFields() {
+ // Load controls
+ for (int i = 0; i < fConnectors.length; i++) {
+ fCtlConnTypeCombo.add(fConnectors[i].getName());
+ }
+ int selectedConnector=getInitialConnector();
+ if(selectedConnector>=0) {
+ fCtlConnTypeCombo.select(selectedConnector);
+ selectPage(selectedConnector);
+ }
+ doLoad();
+ setCombo(fEncodingCombo, fEncoding);
+ }
+ /**
+ * @return the connector to show when the dialog opens
+ */
+ private int getInitialConnector() {
+ // if there is a selection, use it
+ if(fSelectedConnector>=0)
+ return fSelectedConnector;
+ // try the telnet connector, because it is the cheapest
+ for (int i = 0; i < fConnectors.length; i++) {
+ if("org.eclipse.tm.internal.terminal.telnet.TelnetConnector".equals(fConnectors[i].getId())) //$NON-NLS-1$
+ return i;
+ }
+ // if no telnet connector available, use the first one in the list
+ if(fConnectors.length>0)
+ return 0;
+ return -1;
+ }
+ private boolean validateSettings() {
+ if(fSelectedConnector<0)
+ return true;
+ return getPage(fSelectedConnector).validateSettings();
+ }
+ private void setupPanel(Composite wndParent) {
+ setupSettingsTypePanel(wndParent);
+ //setupEncodingPanel(wndParent);
+ if(fConnectors.length>0) {
+ setupConnTypePanel(wndParent);
+ setupSettingsGroup(wndParent);
+ }
+ }
+ private void setupSettingsTypePanel(Composite wndParent) {
+ Group wndGroup;
+ GridLayout gridLayout;
+
+ wndGroup = new Group(wndParent, SWT.NONE);
+ gridLayout = new GridLayout(2, false);
+ wndGroup.setLayout(gridLayout);
+ wndGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ wndGroup.setText(ViewMessages.VIEW_SETTINGS);
+
+
+ Label label=new Label(wndGroup,SWT.NONE);
+ label.setText(ViewMessages.VIEW_TITLE);
+ label.setLayoutData(new GridData(GridData.BEGINNING));
+
+ fTerminalTitleText = new Text(wndGroup, SWT.BORDER);
+ fTerminalTitleText.setText(fTerminalTitle);
+ fTerminalTitleText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Label encodingLabel=new Label(wndGroup,SWT.NONE);
+ encodingLabel.setText(ViewMessages.ENCODING);
+ encodingLabel.setLayoutData(new GridData(GridData.BEGINNING));
+
+ fEncodingCombo = new Combo(wndGroup, SWT.DROP_DOWN);
+ fEncodingCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ }
+ 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));
+ }
+
+ private void setupListeners() {
+ if(fCtlConnTypeCombo==null)
+ return;
+ 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;
+ getPage(index);
+ Control[] pages=fPageBook.getChildren();
+ fPageBook.showPage(pages[fPageIndex[fSelectedConnector]]);
+ updateOKButton();
+
+ }
+ /**
+ * enables the OK button if the user can create a connection
+ */
+ private void updateOKButton() {
+ // TODO: allow contributions to enable the OK button
+ // enable the OK button if we have a valid connection selected
+ if(getButton(IDialogConstants.OK_ID)!=null) {
+ boolean enable=false;
+ if(getConnector()!=null)
+ enable=getConnector().getInitializationErrorMessage()==null;
+ // enable the OK button if no connectors are available
+ if(!enable && fConnectors.length==0)
+ enable=true;
+ getButton(IDialogConstants.OK_ID).setEnabled(enable);
+ }
+ }
+ protected IDialogSettings getDialogBoundsSettings() {
+ IDialogSettings ds=TerminalViewPlugin.getDefault().getDialogSettings();
+ fDialogSettings = ds.getSection(getClass().getName());
+ if (fDialogSettings == null) {
+ fDialogSettings = ds.addNewSection(getClass().getName());
+ }
+ return fDialogSettings;
+ }
+ public void setTerminalTitle(String partName) {
+ fTerminalTitle=partName;
+
+ }
+ public String getTerminalTitle() {
+ return fTerminalTitle;
+ }
+ private void doLoad() {
+ if (fEncodingCombo != null) {
+ List encodings = new ArrayList();
+ encodings.add("ISO-8859-1"); //$NON-NLS-1$
+ encodings.add("UTF-8"); //$NON-NLS-1$
+ //TODO when moving to J2SE-1.5, restore the simpler way getting the default encoding
+ //String hostEncoding =Charset.defaultCharset().displayName();
+ String hostEncoding = new java.io.InputStreamReader(new java.io.ByteArrayInputStream(new byte[0])).getEncoding();
+ if (!encodings.contains(hostEncoding))
+ encodings.add(hostEncoding);
+ populateEncodingsCombo(encodings);
+
+ }
+ }
+ private void populateEncodingsCombo(List encodings) {
+ String[] encodingStrings = new String[encodings.size()];
+ encodings.toArray(encodingStrings);
+ fEncodingCombo.setItems(encodingStrings);
+ }
+ private boolean isEncodingValid() {
+ return isValidEncoding(fEncodingCombo.getText());
+ }
+ private boolean isValidEncoding(String enc) {
+ try {
+ return Charset.isSupported(enc);
+ } catch (IllegalCharsetNameException e) {
+ return false;
+ }
+
+ }
+ private boolean updateValidState() {
+ boolean isValid = true;
+ boolean isValidNow = isEncodingValid();
+ if (isValidNow != isValid) {
+ isValid = isValidNow;
+ }
+ return isValid;
+ }
+ private void showErrorMessage(String message) {
+ String strTitle = ViewMessages.TERMINALSETTINGS;
+ MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK);
+ mb.setText(strTitle);
+ mb.setMessage(message);
+ mb.open();
+ return;
+ }
+
+ private void setCombo(Combo combo,String value) {
+ if(value==null)
+ return;
+ int nIndex = combo.indexOf(value);
+ if (nIndex == -1) {
+ if((combo.getStyle() & SWT.READ_ONLY)==0) {
+ combo.add(value);
+ nIndex = combo.indexOf(value);
+ } else {
+ return;
+ }
+ }
+
+ combo.select(nIndex);
+
+ }
+ public String getEncoding() {
+ return fEncoding;
+ }
+ public void setEncoding(String fEncoding) {
+ this.fEncoding = fEncoding;
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java
new file mode 100644
index 00000000000..029a80091cc
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java
@@ -0,0 +1,709 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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
+ * Martin Oberhuber (Wind River) - [206892] State handling: Only allow connect when CLOSED
+ * Michael Scharf (Wind River) - [209656] ClassCastException in TerminalView under Eclipse-3.4M3
+ * Michael Scharf (Wind River) - [189774] Ctrl+V does not work in the command input field.
+ * Michael Scharf (Wind River) - [217999] Duplicate context menu entries in Terminal
+ * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
+ * Martin Oberhuber (Wind River) - [168186] Add Terminal User Docs
+ * Michael Scharf (Wind River) - [172483] switch between connections
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ * Michael Scharf (Wind River) - [196454] Initial connection settings dialog should not be blank
+ * Michael Scharf (Wind River) - [241096] Secondary terminals in same view do not observe the "invert colors" Preference
+ * Michael Scharf (Wind River) - [262996] get rid of TerminalState.OPENED
+ * Martin Oberhuber (Wind River) - [205486] Enable ScrollLock
+ * Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+ * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
+ * Kris De Volder (VMWare) - [392092] Extend ITerminalView API to allow programmatically opening a UI-less connector
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.jface.action.Action;
+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.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MenuEvent;
+import org.eclipse.swt.events.MenuListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+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.TerminalActionConnect;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionDisconnect;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionNewTerminal;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionRemove;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionScrollLock;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionSelectionDropDown;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionSettings;
+import org.eclipse.tm.internal.terminal.actions.TerminalActionToggleCommandInputField;
+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.control.actions.TerminalActionClearAll;
+import org.eclipse.tm.internal.terminal.control.actions.TerminalActionCopy;
+import org.eclipse.tm.internal.terminal.control.actions.TerminalActionCut;
+import org.eclipse.tm.internal.terminal.control.actions.TerminalActionPaste;
+import org.eclipse.tm.internal.terminal.control.actions.TerminalActionSelectAll;
+import org.eclipse.tm.internal.terminal.preferences.ITerminalConstants;
+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.LayeredSettingsStore;
+import org.eclipse.tm.internal.terminal.provisional.api.Logger;
+import org.eclipse.tm.internal.terminal.provisional.api.PreferenceSettingStore;
+import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
+import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager.ITerminalViewConnectionFactory;
+import org.eclipse.tm.internal.terminal.view.ITerminalViewConnectionManager.ITerminalViewConnectionListener;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+
+public class TerminalView extends ViewPart implements ITerminalView, ITerminalViewConnectionListener {
+ private static final String PREF_CONNECTORS = "Connectors."; //$NON-NLS-1$
+
+ private static final String STORE_CONNECTION_TYPE = "ConnectionType"; //$NON-NLS-1$
+
+ private static final String STORE_SETTING_SUMMARY = "SettingSummary"; //$NON-NLS-1$
+
+ private static final String STORE_TITLE = "Title"; //$NON-NLS-1$
+
+ public static final String FONT_DEFINITION = ITerminalConstants.FONT_DEFINITION;
+
+ protected ITerminalViewControl fCtlTerminal;
+
+ // TODO (scharf): this decorator is only there to deal wit the common
+ // actions. Find a better solution.
+ TerminalViewControlDecorator fCtlDecorator=new TerminalViewControlDecorator();
+
+ protected TerminalAction fActionTerminalNewTerminal;
+
+ protected TerminalAction fActionTerminalConnect;
+
+ private TerminalAction fActionTerminalScrollLock;
+
+ protected TerminalAction fActionTerminalDisconnect;
+
+ protected TerminalAction fActionTerminalSettings;
+
+ protected TerminalActionCopy fActionEditCopy;
+
+ protected TerminalActionCut fActionEditCut;
+
+ protected TerminalActionPaste fActionEditPaste;
+
+ protected TerminalActionClearAll fActionEditClearAll;
+
+ protected TerminalActionSelectAll fActionEditSelectAll;
+
+ protected TerminalAction fActionToggleCommandInputField;
+
+ protected TerminalPropertyChangeHandler fPropertyChangeHandler;
+
+ protected Action fActionTerminalDropDown;
+ protected Action fActionTerminalRemove;
+
+ protected boolean fMenuAboutToShow;
+
+ private SettingsStore fStore;
+
+ private final ITerminalViewConnectionManager fMultiConnectionManager=new TerminalViewConnectionManager();
+
+ private PageBook fPageBook;
+
+ /**
+ * This listener updates both, the view and the
+ * ITerminalViewConnection.
+ *
+ */
+ class TerminalListener implements ITerminalListener {
+ volatile ITerminalViewConnection fConnection;
+ void setConnection(ITerminalViewConnection connection) {
+ fConnection=connection;
+ }
+ public void setState(final TerminalState state) {
+ runInDisplayThread(new Runnable() {
+ public void run() {
+ fConnection.setState(state);
+ // if the active connection changes, update the view
+ if(fConnection==fMultiConnectionManager.getActiveConnection()) {
+ updateStatus();
+ }
+ }
+ });
+ }
+ public void setTerminalTitle(final String title) {
+ runInDisplayThread(new Runnable() {
+ public void run() {
+ fConnection.setTerminalTitle(title);
+ // if the active connection changes, update the view
+ if(fConnection==fMultiConnectionManager.getActiveConnection()) {
+ updateSummary();
+ }
+ }
+ });
+ }
+ /**
+ * @param runnable run in display thread
+ */
+ private void runInDisplayThread(Runnable runnable) {
+ if(Display.findDisplay(Thread.currentThread())!=null)
+ runnable.run();
+ else if(PlatformUI.isWorkbenchRunning())
+ PlatformUI.getWorkbench().getDisplay().syncExec(runnable);
+ // else should not happen and we ignore it...
+ }
+
+ }
+
+ public TerminalView() {
+ Logger
+ .log("==============================================================="); //$NON-NLS-1$
+ fMultiConnectionManager.addListener(this);
+ }
+
+ /**
+ * @param title
+ * @return a unique part name
+ */
+ String findUniqueTitle(String title) {
+ IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();
+ String id= getViewSite().getId();
+ Set names=new HashSet();
+ for (int i = 0; i < pages.length; i++) {
+ IViewReference[] views = pages[i].getViewReferences();
+ for (int j = 0; j < views.length; j++) {
+ IViewReference view = views[j];
+ // only look for views with the same ID
+ if(id.equals(view.getId())) {
+ String name=view.getTitle();
+ if(name!=null)
+ names.add(view.getPartName());
+ }
+ }
+ }
+ // find a unique name
+ int i=1;
+ String uniqueTitle=title;
+ while(true) {
+ if(!names.contains(uniqueTitle))
+ return uniqueTitle;
+ uniqueTitle=title+" "+i++; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * 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$
+ setupControls();
+ if(newConnection(ViewMessages.NEW_TERMINAL_CONNECTION)==null) {
+ fMultiConnectionManager.removeActive();
+ }
+ }
+
+ /**
+ * Programmatically create a new terminal connection within the view. This method
+ * does the same thing as onTerminalNewTerminal, but instead of popping up a settings
+ * dialog to allow the user fill in connection details, a connector is provided as
+ * a parameter. The connector should have all of its details pre-configured so it can
+ * be opened without requiring user input.
+ */
+ public void newTerminal(ITerminalConnector c) {
+ this.setupControls();
+ if(c!=null) {
+ this.setConnector(c);
+ this.onTerminalConnect();
+ }
+ }
+
+ public void onTerminalNewView() {
+ 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 undesirable. Therefore, we append the active 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.
+ IViewPart newTerminalView = getSite().getPage().showView(
+ "org.eclipse.tm.terminal.view.TerminalView",//$NON-NLS-1$
+ "SecondaryTerminal" + System.currentTimeMillis(), //$NON-NLS-1$
+ IWorkbenchPage.VIEW_ACTIVATE);
+ if(newTerminalView instanceof ITerminalView) {
+ ITerminalConnector c = ((TerminalView)newTerminalView).newConnection(ViewMessages.NEW_TERMINAL_VIEW);
+ // if there is no connector selected, hide the new view
+ if(c==null) {
+ getSite().getPage().hideView(newTerminalView);
+ }
+ }
+ } catch (PartInitException ex) {
+ Logger.logException(ex);
+ }
+ }
+
+
+ public void onTerminalConnect() {
+ //if (isConnected())
+ if (fCtlTerminal.getState()!=TerminalState.CLOSED)
+ return;
+ if(fCtlTerminal.getTerminalConnector()==null)
+ setConnector(showSettingsDialog(ViewMessages.TERMINALSETTINGS));
+ setEncoding(getActiveConnection().getEncoding());
+ fCtlTerminal.connectTerminal();
+ }
+
+ public void updateStatus() {
+ updateTerminalConnect();
+ updateTerminalDisconnect();
+ updateTerminalSettings();
+ fActionToggleCommandInputField.setChecked(hasCommandInputField());
+ fActionTerminalScrollLock.setChecked(isScrollLock());
+ updateSummary();
+ }
+
+ public void updateTerminalConnect() {
+ //boolean bEnabled = ((!isConnecting()) && (!fCtlTerminal.isConnected()));
+ boolean bEnabled = (fCtlTerminal.getState()==TerminalState.CLOSED);
+
+ fActionTerminalConnect.setEnabled(bEnabled);
+ }
+
+ private boolean isConnecting() {
+ return fCtlTerminal.getState()==TerminalState.CONNECTING;
+ }
+
+ public void onTerminalDisconnect() {
+ fCtlTerminal.disconnectTerminal();
+ }
+
+ public void updateTerminalDisconnect() {
+ boolean bEnabled = ((isConnecting()) || (fCtlTerminal.isConnected()));
+ fActionTerminalDisconnect.setEnabled(bEnabled);
+ }
+
+ public void onTerminalSettings() {
+ newConnection(null);
+ }
+
+ private ITerminalConnector newConnection(String title) {
+ ITerminalConnector c=showSettingsDialog(title);
+ if(c!=null) {
+ setConnector(c);
+ onTerminalConnect();
+ }
+ return c;
+ }
+
+ private ITerminalConnector showSettingsDialog(String title) {
+ // When the settings dialog is opened, load the Terminal settings from the
+ // persistent settings.
+
+ ITerminalConnector[] connectors = fCtlTerminal.getConnectors();
+ if(fCtlTerminal.getState()!=TerminalState.CLOSED)
+ connectors=new ITerminalConnector[0];
+ // load the state from the settings
+ // first load from fStore and then from the preferences.
+ ITerminalConnector c = loadSettings(new LayeredSettingsStore(fStore,getPreferenceSettingsStore()), connectors);
+ // if we have no connector show the one from the settings
+ if(fCtlTerminal.getTerminalConnector()!=null)
+ c=fCtlTerminal.getTerminalConnector();
+ TerminalSettingsDlg dlgTerminalSettings = new TerminalSettingsDlg(getViewSite().getShell(),connectors,c);
+ dlgTerminalSettings.setTerminalTitle(getActiveConnection().getPartName());
+ dlgTerminalSettings.setEncoding(getActiveConnection().getEncoding());
+ if(title!=null)
+ dlgTerminalSettings.setTitle(title);
+ 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(fStore,dlgTerminalSettings.getConnector());
+ // we also save it in the preferences. This will keep the last change
+ // made to this connector as default...
+ saveSettings(getPreferenceSettingsStore(), dlgTerminalSettings.getConnector());
+
+ setViewTitle(dlgTerminalSettings.getTerminalTitle());
+ setEncoding(dlgTerminalSettings.getEncoding());
+ return dlgTerminalSettings.getConnector();
+ }
+
+ private void setEncoding(String encoding) {
+ getActiveConnection().setEncoding(encoding);
+ updateSummary();
+ }
+
+ private void setConnector(ITerminalConnector connector) {
+ fCtlTerminal.setConnector(connector);
+ }
+
+ public void updateTerminalSettings() {
+// fActionTerminalSettings.setEnabled((fCtlTerminal.getState()==TerminalState.CLOSED));
+ }
+ private void setViewTitle(String title) {
+ setPartName(title);
+ getActiveConnection().setPartName(title);
+ }
+ private void setViewSummary(String summary) {
+ setContentDescription(summary);
+ getViewSite().getActionBars().getStatusLineManager().setMessage(
+ summary);
+ setTitleToolTip(getPartName()+": "+summary); //$NON-NLS-1$
+
+ }
+ public void updateSummary() {
+ setViewSummary(getActiveConnection().getFullSummary());
+ }
+
+ public void onTerminalFontChanged() {
+ // set the font for all - empty hook for extenders
+ }
+
+ // ViewPart interface
+
+ public void createPartControl(Composite wndParent) {
+ // Bind plugin.xml key bindings to this plugin. Overrides global Control-W key
+ // sequence.
+
+ fPageBook=new PageBook(wndParent,SWT.NONE);
+ ISettingsStore s=new SettingStorePrefixDecorator(fStore,"connectionManager"); //$NON-NLS-1$
+ fMultiConnectionManager.loadState(s,new ITerminalViewConnectionFactory() {
+ public ITerminalViewConnection create() {
+ return makeViewConnection();
+ }
+ });
+ // if there is no connection loaded, create at least one
+ // needed to read old states from the old terminal
+ if(fMultiConnectionManager.size()==0) {
+ ITerminalViewConnection conn = makeViewConnection();
+ fMultiConnectionManager.addConnection(conn);
+ fMultiConnectionManager.setActiveConnection(conn);
+ fPageBook.showPage(fCtlTerminal.getRootControl());
+ }
+ setTerminalControl(fMultiConnectionManager.getActiveConnection().getCtlTerminal());
+ setViewTitle(findUniqueTitle(ViewMessages.PROP_TITLE));
+ setupActions();
+ setupLocalToolBars();
+ // setup all context menus
+ ITerminalViewConnection[] conn=fMultiConnectionManager.getConnections();
+ for (int i = 0; i < conn.length; i++) {
+ setupContextMenus(conn[i].getCtlTerminal().getControl());
+ }
+ setupListeners(wndParent);
+
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(wndParent, TerminalViewPlugin.HELPPREFIX + "terminal_page"); //$NON-NLS-1$
+
+ legacyLoadState();
+ legacySetTitle();
+
+ refresh();
+ onTerminalFontChanged();
+
+ }
+
+ public void dispose() {
+ Logger.log("entered."); //$NON-NLS-1$
+
+ JFaceResources.getFontRegistry().removeListener(fPropertyChangeHandler);
+
+ // dispose all connections
+ ITerminalViewConnection[] conn=fMultiConnectionManager.getConnections();
+ for (int i = 0; i < conn.length; i++) {
+ conn[i].getCtlTerminal().disposeTerminal();
+ }
+ super.dispose();
+ }
+ /**
+ * 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() {
+ ITerminalViewConnection conn = makeViewConnection();
+ fMultiConnectionManager.addConnection(conn);
+ fMultiConnectionManager.setActiveConnection(conn);
+ setupContextMenus(fCtlTerminal.getControl());
+ }
+
+ private ITerminalViewConnection makeViewConnection() {
+ ITerminalConnector[] connectors = makeConnectors();
+ TerminalListener listener=new TerminalListener();
+ ITerminalViewControl ctrl = TerminalViewControlFactory.makeControl(listener, fPageBook, connectors, true);
+ setTerminalControl(ctrl);
+ ITerminalViewConnection conn = new TerminalViewConnection(fCtlTerminal);
+ listener.setConnection(conn);
+ conn.setPartName(getPartName());
+ // load from settings
+ ITerminalConnector connector = loadSettings(fStore,connectors);
+ // set the connector....
+ ctrl.setConnector(connector);
+
+ return conn;
+ }
+
+ /**
+ * @param store contains the data
+ * @param connectors loads the data from store
+ * @return null or the currently selected connector
+ */
+ private ITerminalConnector loadSettings(ISettingsStore store, ITerminalConnector[] connectors) {
+ ITerminalConnector connector=null;
+ String connectionType=store.get(STORE_CONNECTION_TYPE);
+ for (int i = 0; i < connectors.length; i++) {
+ connectors[i].load(getStore(store,connectors[i]));
+ if(connectors[i].getId().equals(connectionType))
+ connector=connectors[i];
+ }
+ return connector;
+ }
+
+ /**
+ * @return a list of connectors this view can use
+ */
+ protected ITerminalConnector[] makeConnectors() {
+ ITerminalConnector[] connectors=TerminalConnectorExtension.makeTerminalConnectors();
+ return connectors;
+ }
+
+ /**
+ * The preference setting store is used to save the settings that are
+ * shared between all views.
+ * @return the settings store for the connection based on the preferences.
+ *
+ */
+ private PreferenceSettingStore getPreferenceSettingsStore() {
+ return new PreferenceSettingStore(TerminalViewPlugin.getDefault().getPluginPreferences(),PREF_CONNECTORS);
+ }
+ /**
+ * @param store the settings will be saved in this store
+ * @param connector the connector that will be saved. Can be null.
+ */
+ private void saveSettings(ISettingsStore store, ITerminalConnector connector) {
+ if(connector!=null) {
+ connector.save(getStore(store, connector));
+ // the last saved connector becomes the default
+ store.put(STORE_CONNECTION_TYPE,connector.getId());
+ }
+
+ }
+ 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.put(STORE_TITLE,getPartName());
+ fMultiConnectionManager.saveState(new SettingStorePrefixDecorator(fStore,"connectionManager")); //$NON-NLS-1$
+ fStore.saveState(memento);
+ }
+ private ISettingsStore getStore(ISettingsStore store, ITerminalConnector connector) {
+ return new SettingStorePrefixDecorator(store,connector.getId()+"."); //$NON-NLS-1$
+ }
+
+ protected void setupActions() {
+ fActionTerminalDropDown = new TerminalActionSelectionDropDown(fMultiConnectionManager);
+ fActionTerminalRemove=new TerminalActionRemove(fMultiConnectionManager);
+ fActionTerminalNewTerminal = new TerminalActionNewTerminal(this);
+ fActionTerminalScrollLock = new TerminalActionScrollLock(this);
+ fActionTerminalConnect = new TerminalActionConnect(this);
+ fActionTerminalDisconnect = new TerminalActionDisconnect(this);
+ fActionTerminalSettings = new TerminalActionSettings(this);
+ fActionEditCopy = new TerminalActionCopy(fCtlDecorator);
+ fActionEditCut = new TerminalActionCut(fCtlDecorator);
+ fActionEditPaste = new TerminalActionPaste(fCtlDecorator);
+ fActionEditClearAll = new TerminalActionClearAll(fCtlDecorator);
+ fActionEditSelectAll = new TerminalActionSelectAll(fCtlDecorator);
+ fActionToggleCommandInputField = new TerminalActionToggleCommandInputField(this);
+ }
+ protected void setupLocalToolBars() {
+ IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();
+
+ toolBarMgr.add(fActionTerminalConnect);
+ toolBarMgr.add(fActionTerminalDisconnect);
+ toolBarMgr.add(fActionTerminalSettings);
+ toolBarMgr.add(fActionToggleCommandInputField);
+ toolBarMgr.add(fActionTerminalScrollLock);
+ toolBarMgr.add(new Separator("fixedGroup")); //$NON-NLS-1$
+ toolBarMgr.add(fActionTerminalDropDown);
+ toolBarMgr.add(fActionTerminalNewTerminal);
+ toolBarMgr.add(fActionTerminalRemove);
+ }
+
+ protected void setupContextMenus(Control ctlText) {
+ MenuManager menuMgr;
+ Menu menu;
+ TerminalContextMenuHandler contextMenuHandler;
+
+ menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
+ menu = menuMgr.createContextMenu(ctlText);
+ loadContextMenus(menuMgr);
+ contextMenuHandler = new TerminalContextMenuHandler();
+
+ ctlText.setMenu(menu);
+ 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);
+ menuMgr.add(new Separator());
+ menuMgr.add(fActionToggleCommandInputField);
+ menuMgr.add(fActionTerminalScrollLock);
+
+
+ // 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);
+ }
+
+ protected class TerminalContextMenuHandler implements MenuListener, IMenuListener {
+ public void menuHidden(MenuEvent event) {
+ fMenuAboutToShow = false;
+ fActionEditCopy.updateAction(fMenuAboutToShow);
+ }
+
+ public void menuShown(MenuEvent e) {
+ //
+ }
+ public void menuAboutToShow(IMenuManager menuMgr) {
+ fMenuAboutToShow = true;
+ fActionEditCopy.updateAction(fMenuAboutToShow);
+ fActionEditCut.updateAction(fMenuAboutToShow);
+ fActionEditSelectAll.updateAction(fMenuAboutToShow);
+ fActionEditPaste.updateAction(fMenuAboutToShow);
+ fActionEditClearAll.updateAction(fMenuAboutToShow);
+ }
+ }
+
+ protected class TerminalPropertyChangeHandler implements IPropertyChangeListener {
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getProperty().equals(FONT_DEFINITION)) {
+ onTerminalFontChanged();
+ }
+ }
+ }
+
+ public boolean hasCommandInputField() {
+ return getActiveConnection().hasCommandInputField();
+ }
+
+ public void setCommandInputField(boolean on) {
+ getActiveConnection().setCommandInputField(on);
+ }
+
+ public boolean isScrollLock() {
+ return fCtlTerminal.isScrollLock();
+ }
+
+ public void setScrollLock(boolean on) {
+ fCtlTerminal.setScrollLock(on);
+ }
+
+ private ITerminalViewConnection getActiveConnection() {
+ return fMultiConnectionManager.getActiveConnection();
+ }
+ /**
+ * @param ctrl this control becomes the currently used one
+ */
+ private void setTerminalControl(ITerminalViewControl ctrl) {
+ fCtlTerminal=ctrl;
+ fCtlDecorator.setViewContoler(ctrl);
+ }
+ public void connectionsChanged() {
+ if(getActiveConnection()!=null) {
+ // update the active {@link ITerminalViewControl}
+ ITerminalViewControl ctrl = getActiveConnection().getCtlTerminal();
+ if(fCtlTerminal!=ctrl) {
+ setTerminalControl(ctrl);
+ refresh();
+ }
+ }
+ }
+
+ /**
+ * Show the active {@link ITerminalViewControl} in the view
+ */
+ private void refresh() {
+ fPageBook.showPage(fCtlTerminal.getRootControl());
+ updateStatus();
+ setPartName(getActiveConnection().getPartName());
+ }
+ /**
+ * TODO REMOVE This code (added 2008-06-11)
+ * Legacy code to real the old state. Once the state of the
+ * terminal has been saved this method is not needed anymore.
+ * Remove this code with eclipse 3.5.
+ */
+ private void legacyLoadState() {
+ // TODO legacy: load the old title....
+ String summary=fStore.get(STORE_SETTING_SUMMARY);
+ if(summary!=null) {
+ getActiveConnection().setSummary(summary);
+ fStore.put(STORE_SETTING_SUMMARY,null);
+ }
+ }
+ /**
+ * TODO REMOVE This code (added 2008-06-11)
+ * Legacy code to real the old state. Once the state of the
+ * terminal has been saved this method is not needed anymore.
+ * Remove this code with eclipse 3.5.
+ */
+ private void legacySetTitle() {
+ // restore the title of this view
+ String title=fStore.get(STORE_TITLE);
+ if(title!=null && title.length()>0) {
+ setViewTitle(title);
+ fStore.put(STORE_TITLE, null);
+ }
+ }
+
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnection.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnection.java
new file mode 100644
index 00000000000..576c281811e
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnection.java
@@ -0,0 +1,237 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ * Michael Scharf (Wind River) - [240097] Allow paste with the middle mouse button
+ * Michael Scharf (Wind River) - [262996] get rid of TerminalState.OPENED
+ * Anton Leherbauer (Wind River) - [335021] Middle mouse button copy/paste does not work with the terminal
+ * Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.io.UnsupportedEncodingException;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.tm.internal.terminal.control.CommandInputFieldWithHistory;
+import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
+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.Logger;
+import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
+
+/**
+ * This class represents one connection. The connection might be
+ * closed or open.
+ *
+ */
+class TerminalViewConnection implements ITerminalViewConnection {
+ private static final String STORE_SUMMARY = "Summary"; //$NON-NLS-1$
+ private static final String STORE_PART_NAME = "PartName"; //$NON-NLS-1$
+ private static final String STORE_CONNECTION_TYPE = "ConnectionType"; //$NON-NLS-1$
+ private static final String STORE_HAS_COMMAND_INPUT_FIELD = "HasCommandInputField"; //$NON-NLS-1$
+ private static final String STORE_COMMAND_INPUT_FIELD_HISTORY = "CommandInputFieldHistory"; //$NON-NLS-1$
+ private static final String STORE_ENCODING="Encoding"; //$NON-NLS-1$
+ final private ITerminalViewControl fCtlTerminal;
+ private String fTitle;
+ private String fSummary;
+ private String fHistory;
+ private CommandInputFieldWithHistory fCommandInputField;
+ private String fPartName;
+ private String fEncoding;
+
+ public TerminalViewConnection(ITerminalViewControl ctl) {
+ fCtlTerminal = ctl;
+ fCtlTerminal.getControl().addMouseListener(new MouseAdapter(){
+ public void mouseDown(MouseEvent e) {
+ // paste when the middle button is clicked
+ if (e.button == 2) { // middle button
+ int clipboardType = DND.SELECTION_CLIPBOARD;
+ Clipboard clipboard = fCtlTerminal.getClipboard();
+ if (clipboard.getAvailableTypes(clipboardType).length == 0)
+ // use normal clipboard if selection clipboard is not available
+ clipboardType = DND.CLIPBOARD;
+ String text = (String) clipboard.getContents(TextTransfer.getInstance(), clipboardType);
+ if (text != null && text.length() > 0)
+ fCtlTerminal.pasteString(text);
+ }
+ }
+ });
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tm.internal.terminal.actions.ITerminalViewConnection#getName()
+ */
+ public String getFullSummary() {
+ // if the title is set, then we return the title, else the summary
+ if(fTitle==null)
+ return makeSummary();
+ return fTitle;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tm.internal.terminal.view.ITerminalViewConnection#getImageDescriptor()
+ */
+ public ImageDescriptor getImageDescriptor() {
+ return TerminalViewPlugin.getDefault().getImageRegistry().getDescriptor(ImageConsts.IMAGE_TERMINAL_VIEW);
+ }
+
+ public ITerminalViewControl getCtlTerminal() {
+ return fCtlTerminal;
+ }
+ private ISettingsStore getStore(ISettingsStore store,ITerminalConnector connector) {
+ return new SettingStorePrefixDecorator(store,connector.getId()+"."); //$NON-NLS-1$
+ }
+ public void loadState(ISettingsStore store) {
+ fPartName=store.get(STORE_PART_NAME);
+ fSummary=store.get(STORE_SUMMARY);
+ fHistory=store.get(STORE_COMMAND_INPUT_FIELD_HISTORY);
+ fEncoding=store.get(STORE_ENCODING);
+ // load the state of the connection types
+ ITerminalConnector[] connectors=fCtlTerminal.getConnectors();
+ String connectionType=store.get(STORE_CONNECTION_TYPE);
+ for (int i = 0; i < connectors.length; i++) {
+ connectors[i].load(getStore(store,connectors[i]));
+ // if this is active connection type
+ if(connectors[i].getId().equals(connectionType))
+ fCtlTerminal.setConnector(connectors[i]);
+ }
+
+ if("true".equals(store.get(STORE_HAS_COMMAND_INPUT_FIELD))) //$NON-NLS-1$
+ setCommandInputField(true);
+ }
+
+ public void saveState(ISettingsStore store) {
+ store.put(STORE_PART_NAME, fPartName);
+ store.put(STORE_SUMMARY,fSummary);
+ store.put(STORE_COMMAND_INPUT_FIELD_HISTORY, fHistory);
+ store.put(STORE_ENCODING, fEncoding);
+ if(fCommandInputField!=null)
+ store.put(STORE_COMMAND_INPUT_FIELD_HISTORY, fCommandInputField.getHistory());
+ else
+ store.put(STORE_COMMAND_INPUT_FIELD_HISTORY, fHistory);
+ store.put(STORE_HAS_COMMAND_INPUT_FIELD,hasCommandInputField()?"true":"false"); //$NON-NLS-1$//$NON-NLS-2$
+ ITerminalConnector[] connectors=fCtlTerminal.getConnectors();
+ for (int i = 0; i < connectors.length; i++) {
+ connectors[i].save(getStore(store,connectors[i]));
+ }
+ if(fCtlTerminal.getTerminalConnector()!=null) {
+ store.put(STORE_CONNECTION_TYPE,fCtlTerminal.getTerminalConnector().getId());
+ }
+ }
+ public boolean hasCommandInputField() {
+ return fCommandInputField!=null;
+ }
+ public void setCommandInputField(boolean on) {
+ // save the old history
+ if(fCommandInputField!=null) {
+ fHistory= fCommandInputField.getHistory();
+ fCommandInputField=null;
+ }
+ if(on) {
+ // TODO make history size configurable
+ fCommandInputField=new CommandInputFieldWithHistory(100);
+ fCommandInputField.setHistory(fHistory);
+ }
+ fCtlTerminal.setCommandInputField(fCommandInputField);
+ }
+
+ public void setState(TerminalState state) {
+ // update the title....
+ fTitle=null;
+ }
+
+ public void setTerminalTitle(String title) {
+ // When parameter 'title' 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.
+ fTitle=title;
+ }
+
+ 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.CLOSED) {
+ return ViewMessages.STATE_CLOSED;
+ } else {
+ throw new IllegalStateException(state.toString());
+ }
+ }
+
+ private String makeSummary() {
+ String strTitle = ""; //$NON-NLS-1$
+ if(fCtlTerminal.getTerminalConnector()==null){
+ strTitle=ViewMessages.NO_CONNECTION_SELECTED;
+ } else {
+ // When parameter 'data' is null, we construct a descriptive string to
+ // display in the content description line.
+ String strConnected = getStateDisplayName(fCtlTerminal.getState());
+ String summary = getSettingsSummary();
+ String encoding=getEncoding();
+ //TODO Title should use an NLS String and com.ibm.icu.MessageFormat
+ //In order to make the logic of assembling, and the separators, better adapt to foreign languages
+ if(summary.length()>0)
+ summary=summary+" - "; //$NON-NLS-1$
+ String name=fCtlTerminal.getTerminalConnector().getName();
+ if(name.length()>0) {
+ name+=": "; //$NON-NLS-1$
+ }
+ if (encoding.length()>0) {
+ encoding = NLS.bind(ViewMessages.ENCODING_WITH_PARENTHESES, encoding);
+ //encoding=ViewMessages.ENCODING+" "+"("+encoding+")"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ }
+ strTitle = name + "("+ summary + strConnected + ")"+" - "+encoding; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ return strTitle;
+ }
+ /**
+ * @return the setting summary. If there is no connection, or the connection
+ * has not been initialized, use the last stored state.
+ */
+ private String getSettingsSummary() {
+ if(fCtlTerminal.getTerminalConnector().isInitialized())
+ fSummary=fCtlTerminal.getSettingsSummary();
+ if(fSummary==null)
+ return ""; //$NON-NLS-1$
+ return fSummary;
+ }
+
+ public void setSummary(String summary) {
+ fSummary=summary;
+ }
+
+ public String getPartName() {
+ return fPartName==null?ViewMessages.PROP_TITLE:fPartName;
+ }
+
+ public void setPartName(String name) {
+ fPartName=name;
+
+ }
+ public String getEncoding() {
+ return fEncoding==null?fCtlTerminal.getEncoding():fEncoding;
+ }
+
+ public void setEncoding(String fEncoding) {
+ try {
+ fCtlTerminal.setEncoding(fEncoding);
+ this.fEncoding = fEncoding;
+ } catch (UnsupportedEncodingException uex) {
+ Logger.logException(uex);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnectionManager.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnectionManager.java
new file mode 100644
index 00000000000..3ba1a308e75
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnectionManager.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
+
+public class TerminalViewConnectionManager implements ITerminalViewConnectionManager {
+ private static final String STORE_CONNECTION_PREFIX = "connection"; //$NON-NLS-1$
+ private static final String STORE_SIZE = "size"; //$NON-NLS-1$
+ private static final String STORE_ACTIVE_CONNECTION = "active"; //$NON-NLS-1$
+ /**
+ * The list of {@link ITerminalViewConnection} in the order they were cerated.
+ * Ordered by creation time
+ */
+ private final List fConnections=new ArrayList();
+ /**
+ * The currently displayed connection
+ */
+ private ITerminalViewConnection fActiveConnection;
+ /**
+ * The list of {@link ITerminalViewConnection} in the order they
+ * were made the active connection. The most recently accessed
+ * connection is at the beginning of the list.
+ */
+ private final List fConnectionHistory=new ArrayList();
+ /**
+ * The {@link ITerminalViewConnectionListener}
+ */
+ private final List fListeners=new ArrayList();
+
+ public ITerminalViewConnection[] getConnections() {
+ return (ITerminalViewConnection[]) fConnections.toArray(new ITerminalViewConnection[fConnections.size()]);
+ }
+
+ public int size() { // TODO Auto-generated method stub
+ return fConnections.size();
+ }
+
+ public ITerminalViewConnection getActiveConnection() {
+ return fActiveConnection;
+ }
+ public void setActiveConnection(ITerminalViewConnection conn) {
+ fActiveConnection=conn;
+ // put the connection at the end of the history list
+ fConnectionHistory.remove(conn);
+ fConnectionHistory.add(0,conn);
+
+ fireListeners();
+ }
+
+ public void swapConnection() {
+ ITerminalViewConnection conn=getPreviousConnection();
+ if(conn!=null)
+ setActiveConnection(conn);
+ }
+
+ /**
+ * @return the connection that was most recently the active connection or null if there is
+ * no previous connection
+ */
+ private ITerminalViewConnection getPreviousConnection() {
+ // find the first connection that is not the active connection in
+ // the list
+ for (Iterator iterator = fConnectionHistory.iterator(); iterator.hasNext();) {
+ ITerminalViewConnection conn = (ITerminalViewConnection) iterator.next();
+ if(conn!=fActiveConnection) {
+ return conn;
+ }
+ }
+ return null;
+ }
+
+ public void addConnection(ITerminalViewConnection conn) {
+ fConnections.add(conn);
+ fireListeners();
+ }
+ public void removeConnection(ITerminalViewConnection conn) {
+ fConnections.remove(conn);
+ fConnectionHistory.remove(conn);
+ fireListeners();
+ }
+
+ public void addListener(ITerminalViewConnectionListener listener) {
+ fListeners.add(listener);
+ }
+
+ public void removeListener(ITerminalViewConnectionListener listener) {
+ fListeners.remove(listener);
+ }
+ protected void fireListeners() {
+ ITerminalViewConnectionListener[] listeners=(ITerminalViewConnectionListener[]) fListeners.toArray(new ITerminalViewConnectionListener[fListeners.size()]);
+ for (int i = 0; i < listeners.length; i++) {
+ listeners[i].connectionsChanged();
+ }
+ }
+
+ public void saveState(ISettingsStore store) {
+ store.put(STORE_SIZE,""+fConnections.size()); //$NON-NLS-1$
+ // save all connections
+ int n=0;
+ for (Iterator iterator = fConnections.iterator(); iterator.hasNext();) {
+ ITerminalViewConnection connection = (ITerminalViewConnection) iterator.next();
+ // the name under which we store the connection
+ String prefix=STORE_CONNECTION_PREFIX+n;
+ n++;
+ // remember the active connection by its prefix
+ if(connection.equals(fActiveConnection))
+ store.put(STORE_ACTIVE_CONNECTION,prefix);
+ connection.saveState(new SettingStorePrefixDecorator(store,prefix));
+ }
+ }
+
+ public void loadState(ISettingsStore store,ITerminalViewConnectionFactory factory) {
+ int size=0;
+ try {
+ size=Integer.parseInt(store.get(STORE_SIZE));
+ } catch(Exception e) {
+ // ignore
+ }
+ if(size>0) {
+ // a slot for the connections
+ String active=store.get(STORE_ACTIVE_CONNECTION);
+ int n=0;
+ for (int i=0;i1) {
+ fConnections.remove(fActiveConnection);
+ fConnectionHistory.remove(fActiveConnection);
+
+ // make sure connection is not null....
+ fActiveConnection=getPreviousConnection();
+ // if there is no previous connection then make
+ // the first connection the list the active connection
+ if(fActiveConnection==null)
+ fActiveConnection=(ITerminalViewConnection) fConnections.get(0);
+
+ fireListeners();
+ }
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewControlDecorator.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewControlDecorator.java
new file mode 100644
index 00000000000..7443f1d5922
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewControlDecorator.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2015 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
+ *
+ * Contributors:
+ * Michael Scharf (Wind River) - initial API and implementation
+ * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
+ *******************************************************************************/
+package org.eclipse.tm.internal.terminal.view;
+
+import java.io.UnsupportedEncodingException;
+
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.tm.internal.terminal.control.ICommandInputField;
+import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
+import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
+import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
+
+// TODO (scharf): this decorator is only there to deal with the common
+// actions. Find a better solution.
+public class TerminalViewControlDecorator implements ITerminalViewControl {
+ ITerminalViewControl fViewContoler;
+
+ public void clearTerminal() {
+ fViewContoler.clearTerminal();
+ }
+
+ public void connectTerminal() {
+ fViewContoler.connectTerminal();
+ }
+
+ public void copy() {
+ fViewContoler.copy();
+ }
+
+ public void disconnectTerminal() {
+ fViewContoler.disconnectTerminal();
+ }
+
+ public void disposeTerminal() {
+ fViewContoler.disposeTerminal();
+ }
+
+ public int getBufferLineLimit() {
+ return fViewContoler.getBufferLineLimit();
+ }
+
+ public Clipboard getClipboard() {
+ return fViewContoler.getClipboard();
+ }
+
+ public ICommandInputField getCommandInputField() {
+ return fViewContoler.getCommandInputField();
+ }
+
+ public ITerminalConnector[] getConnectors() {
+ return fViewContoler.getConnectors();
+ }
+
+ public Control getControl() {
+ return fViewContoler.getControl();
+ }
+
+ public String getEncoding() {
+ return fViewContoler.getEncoding();
+ }
+
+ public Font getFont() {
+ return fViewContoler.getFont();
+ }
+
+ public Control getRootControl() {
+ return fViewContoler.getRootControl();
+ }
+
+ public String getSelection() {
+ return fViewContoler.getSelection();
+ }
+
+ public String getSettingsSummary() {
+ return fViewContoler.getSettingsSummary();
+ }
+
+ public TerminalState getState() {
+ return fViewContoler.getState();
+ }
+
+ public ITerminalConnector getTerminalConnector() {
+ return fViewContoler.getTerminalConnector();
+ }
+
+ public boolean isConnected() {
+ return fViewContoler.isConnected();
+ }
+
+ public boolean isDisposed() {
+ return fViewContoler.isDisposed();
+ }
+
+ public boolean isEmpty() {
+ return fViewContoler.isEmpty();
+ }
+
+ public boolean isScrollLock() {
+ return fViewContoler.isScrollLock();
+ }
+
+ public void paste() {
+ fViewContoler.paste();
+ }
+
+ public boolean pasteString(String string) {
+ return fViewContoler.pasteString(string);
+ }
+
+ public void selectAll() {
+ fViewContoler.selectAll();
+ }
+
+ public void sendKey(char arg0) {
+ fViewContoler.sendKey(arg0);
+ }
+
+ public void setBufferLineLimit(int bufferLineLimit) {
+ fViewContoler.setBufferLineLimit(bufferLineLimit);
+ }
+
+ public void setCommandInputField(ICommandInputField inputField) {
+ fViewContoler.setCommandInputField(inputField);
+ }
+
+ public void setConnector(ITerminalConnector connector) {
+ fViewContoler.setConnector(connector);
+ }
+
+ public void setEncoding(String encoding) throws UnsupportedEncodingException {
+ fViewContoler.setEncoding(encoding);
+ }
+
+ public void setFocus() {
+ fViewContoler.setFocus();
+ }
+
+ public void setFont(Font font) {
+ fViewContoler.setFont(font);
+ }
+
+ public void setFont(String fontName) {
+ fViewContoler.setFont(fontName);
+ }
+
+ public void setInvertedColors(boolean invert) {
+ fViewContoler.setInvertedColors(invert);
+ }
+
+ public void setScrollLock(boolean on) {
+ fViewContoler.setScrollLock(on);
+ }
+
+ public ITerminalViewControl getViewContoler() {
+ return fViewContoler;
+ }
+
+ public void setViewContoler(ITerminalViewControl viewContoler) {
+ fViewContoler = viewContoler;
+ }
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java
new file mode 100644
index 00000000000..a476924cfb4
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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
+ * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
+ * Martin Oberhuber (Wind River) - [168186] Add Terminal User Docs
+ * Michael Scharf (Wind River) - [172483] switch between connections
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ *******************************************************************************/
+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.internal.terminal.provisional.api.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class TerminalViewPlugin extends AbstractUIPlugin {
+ protected static TerminalViewPlugin fDefault;
+
+ public static final String HELPPREFIX = "org.eclipse.tm.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$
+ map.put(ImageConsts.IMAGE_CLCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_CLCL_SCROLL_LOCK, "lock_co.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$
+ map.put(ImageConsts.IMAGE_ELCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_ELCL_SCROLL_LOCK, "lock_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_ELCL_REMOVE, "rem_co.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$
+ map.put(ImageConsts.IMAGE_DLCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_DLCL_SCROLL_LOCK, "lock_co.gif"); //$NON-NLS-1$
+ map.put(ImageConsts.IMAGE_DLCL_REMOVE, "rem_co.gif"); //$NON-NLS-1$
+
+ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_DLCL, map);
+
+ map.clear();
+
+ map.put(ImageConsts.IMAGE_TERMINAL_VIEW, "terminal_view.gif"); //$NON-NLS-1$
+
+ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_EVIEW, map);
+
+ map.clear();
+
+ } catch (MalformedURLException malformedURLException) {
+ malformedURLException.printStackTrace();
+ }
+ }
+ /**
+ * Returns the shared instance.
+ */
+ public static TerminalViewPlugin getDefault() {
+ return fDefault;
+ }
+
+ 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/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java
new file mode 100644
index 00000000000..8085d33569b
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2015 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
+ * Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+ * Martin Oberhuber (Wind River) - [206917] Add validation for Terminal Settings
+ * Martin Oberhuber (Wind River) - [262996] get rid of TerminalState.OPENED
+ * Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+ * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
+ *******************************************************************************/
+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 NO_CONNECTION_SELECTED;
+ public static String PROP_TITLE;
+ public static String SETTINGS;
+
+ public static String TERMINALSETTINGS;
+ public static String NEW_TERMINAL_CONNECTION;
+ public static String NEW_TERMINAL_VIEW;
+ public static String CONNECTIONTYPE;
+ public static String VIEW_TITLE;
+ public static String VIEW_SETTINGS;
+ public static String INVALID_SETTINGS;
+ public static String ENCODING;
+ public static String ENCODING_WITH_PARENTHESES;
+
+ public static String STATE_CONNECTED;
+ public static String STATE_CONNECTING;
+ public static String STATE_CLOSED;
+
+ public static String CANNOT_INITIALIZE;
+ public static String CONNECTOR_NOT_AVAILABLE;
+ public static String ENCODING_NOT_AVAILABLE;
+}
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties
new file mode 100644
index 00000000000..3d356ab2683
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties
@@ -0,0 +1,42 @@
+###############################################################################
+# Copyright (c) 2003, 2015 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
+# Michael Scharf (Wind River) - [240023] Get rid of the terminal's "Pin" button
+# Martin Oberhuber (Wind River) - [206917] Add validation for Terminal Settings
+# Martin Oberhuber (Wind River) - [262996] get rid of TerminalState.OPENED
+# Ahmet Alptekin (Tubitak) - [244405] Add a UI Control for setting the Terminal's encoding
+# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
+###############################################################################
+NO_CONNECTION_SELECTED = No Connection Selected
+PROP_TITLE = Terminal
+SETTINGS = Settings
+
+TERMINALSETTINGS = Terminal Settings
+NEW_TERMINAL_CONNECTION = New Terminal Connection
+NEW_TERMINAL_VIEW = New Terminal View
+CONNECTIONTYPE = Connection Type
+VIEW_TITLE = View Title:
+VIEW_SETTINGS = View Settings:
+INVALID_SETTINGS = The specified settings are invalid, please review or cancel.
+ENCODING = Encoding:
+ENCODING_WITH_PARENTHESES = Encoding: ({0})
+
+STATE_CONNECTED = CONNECTED
+STATE_CONNECTING = CONNECTING...
+STATE_CLOSED = CLOSED
+
+CANNOT_INITIALIZE = Cannot initialize {0}:\n{1}
+CONNECTOR_NOT_AVAILABLE = Connector {0} is not available!
+ENCODING_NOT_AVAILABLE = Encoding is not available!
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png b/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png
new file mode 100644
index 00000000000..3077b1220dd
Binary files /dev/null and b/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png differ
diff --git a/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml b/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml
new file mode 100644
index 00000000000..4409655e2b2
--- /dev/null
+++ b/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file