diff --git a/admin/pom-config.xml b/admin/pom-config.xml index d1220c94b34..2fc3d98dcef 100644 --- a/admin/pom-config.xml +++ b/admin/pom-config.xml @@ -65,7 +65,6 @@ http://download.eclipse.org/tools/ptp/builds/remote/mars/milestones http://download.eclipse.org/technology/swtbot/releases/latest/ http://archive.eclipse.org/tm/updates/rxtx - http://download.eclipse.org/tm/builds/luna/nightly @@ -104,11 +103,6 @@ ${rxtx-site} p2 - - tm-luna - ${tm-luna-site} - p2 - diff --git a/pom.xml b/pom.xml index 4d73193a720..9cc1b45a697 100644 --- a/pom.xml +++ b/pom.xml @@ -116,6 +116,11 @@ terminal/features/org.eclipse.tm.terminal.remote.feature terminal/features/org.eclipse.tm.terminal.remote.sdk.feature + + terminal/deprecated/plugins/org.eclipse.tm.terminal.view + terminal/deprecated/features/org.eclipse.tm.terminal.view-feature + terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature + releng/org.eclipse.tm.repo diff --git a/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/.project b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/.project new file mode 100644 index 00000000000..92158332e5e --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/build.properties b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/build.properties new file mode 100644 index 00000000000..3f525e489bf --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.properties b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.properties new file mode 100644 index 00000000000..4d52ee3a86c --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml new file mode 100644 index 00000000000..d1d437578de --- /dev/null +++ b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/feature.xml @@ -0,0 +1,57 @@ + + + + + + %description + + + + %copyright + + + + %license + + + + + + + + + + + + + + + + + + + diff --git a/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/pom.xml b/terminal/deprecated/features/org.eclipse.tm.terminal.sdk-feature/pom.xml new file mode 100644 index 00000000000..eb957301c59 --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/.project b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/.project new file mode 100644 index 00000000000..57ff3d8e631 --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/build.properties b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/build.properties new file mode 100644 index 00000000000..400f7fd68ee --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.properties b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.properties new file mode 100644 index 00000000000..0a6e4bdc5e7 --- /dev/null +++ b/terminal/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/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml new file mode 100644 index 00000000000..c1984a2165c --- /dev/null +++ b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/feature.xml @@ -0,0 +1,53 @@ + + + + + + %description + + + + %copyright + + + + %license + + + + + + + + + + + + + + + + + diff --git a/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/pom.xml b/terminal/deprecated/features/org.eclipse.tm.terminal.view-feature/pom.xml new file mode 100644 index 00000000000..27352ba805b --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath new file mode 100644 index 00000000000..ad32c83a788 --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore new file mode 100644 index 00000000000..ba077a4031a --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.cvsignore @@ -0,0 +1 @@ +bin diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.project b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.project new file mode 100644 index 00000000000..b54e2fe953b --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.core.prefs b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..c2dc3aa2f47 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.ui.prefs b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000000..9a20fca52a4 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/HelpContexts.xml b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/HelpContexts.xml new file mode 100644 index 00000000000..5ba920568af --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..eb076cf1ebd --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml new file mode 100644 index 00000000000..387756f5c68 --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/TerminalContexts.xml @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.html new file mode 100644 index 00000000000..a603d19ab21 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.ini b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.ini new file mode 100644 index 00000000000..3adc27ab587 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.mappings b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.mappings new file mode 100644 index 00000000000..bddaab43109 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.properties b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/about.properties new file mode 100644 index 00000000000..10075af5412 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/build.properties b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/build.properties new file mode 100644 index 00000000000..51984c14501 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css new file mode 100644 index 00000000000..faa4199fe34 --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/book.css @@ -0,0 +1 @@ +@import "../../PRODUCT_PLUGIN/book.css"; diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/01_terminalview.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/01_terminalview.html new file mode 100644 index 00000000000..c423cbf8be5 --- /dev/null +++ b/terminal/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. + +

+
       | Next >
+ + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/02_terminal_page.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/02_terminal_page.html new file mode 100644 index 00000000000..1442ac022db --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/02_terminal_page.html @@ -0,0 +1,82 @@ + + + + + + + + +Terminal View Quick Reference + + + +

Terminal View Quick Reference

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Button

Description

Connect to selected target.

Disconnect from selected connection.

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. +
+ +

+
< Prev | Next >
+ + + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/03_terminal_settings.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/03_terminal_settings.html new file mode 100644 index 00000000000..953025ae0db --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/03_terminal_settings.html @@ -0,0 +1,101 @@ + + + + + + + + +Terminal Settings Dialog + + + +

Terminal Settings Dialog

+ +
+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. +
+ +

+
< Prev | Next >
+ + + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/04_terminal_emulation.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/04_terminal_emulation.html new file mode 100644 index 00000000000..0b987d5e87b --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/04_terminal_emulation.html @@ -0,0 +1,64 @@ + + + + + + + + +Terminal Emulation + + + +

Terminal Emulation

+ +
+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. +
+ +

+
< Prev |
+ + + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/notice.html b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/notice.html new file mode 100644 index 00000000000..91a8824e7cc --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/doc/html/notice.html @@ -0,0 +1,30 @@ + + + + + + + + +Legal Notice + + + +

Legal Notice

+

+The material in this guide is Copyright (c) Wind River Systems, Inc. and others 2004, 2012. +

+

+Terms and conditions regarding the use of this guide. +

+ + \ No newline at end of file diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/command_input_field.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/command_input_field.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/connect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/connect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/disconnect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/disconnect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/lock_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/lock_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif new file mode 100644 index 00000000000..80201e0d469 Binary files /dev/null and b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/newterminal.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/properties_tsk.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/clcl16/properties_tsk.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/command_input_field.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/command_input_field.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/connect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/connect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/disconnect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/disconnect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/lock_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/lock_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif new file mode 100644 index 00000000000..80201e0d469 Binary files /dev/null and b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/newterminal.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/properties_tsk.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/properties_tsk.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/rem_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/dlcl16/rem_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/command_input_field.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/command_input_field.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/connect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/connect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/disconnect_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/disconnect_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/lock_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/lock_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif new file mode 100644 index 00000000000..80201e0d469 Binary files /dev/null and b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/newterminal.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/properties_tsk.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/properties_tsk.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/rem_co.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/elcl16/rem_co.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/eview16/terminal_view.gif b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/icons/eview16/terminal_view.gif differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.properties b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.properties new file mode 100644 index 00000000000..8bc93b55917 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml new file mode 100644 index 00000000000..b43368431ee --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/plugin.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/pom.xml b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/pom.xml new file mode 100644 index 00000000000..4ae0aaa1199 --- /dev/null +++ b/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ShowTerminalConnectionAction.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalAction.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionConnect.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionDisconnect.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionNewTerminal.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionRemove.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSelectionDropDown.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionSettings.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionToggleCommandInputField.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnection.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalViewConnectionManager.java b/terminal/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/terminal/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: + * + * + */ + 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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/PageBook.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingStorePrefixDecorator.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/SettingsStore.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnection.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewConnectionManager.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewControlDecorator.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.java b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ViewMessages.properties b/terminal/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/terminal/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/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png new file mode 100644 index 00000000000..3077b1220dd Binary files /dev/null and b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/tm32.png differ diff --git a/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml new file mode 100644 index 00000000000..4409655e2b2 --- /dev/null +++ b/terminal/deprecated/plugins/org.eclipse.tm.terminal.view/toc.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + \ No newline at end of file