Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2012-03-29 08:50:27 -0400
committerUwe Stieber2012-03-29 08:50:27 -0400
commit480caaf38db3a983d6f0745ed3b8cd252868f0e5 (patch)
tree65981a2d21877a9b5337339c62406a3547bb4e6e
parent53ceb4cdd7ece15b6a2cb375cd60eae58173617c (diff)
downloadorg.eclipse.tcf-480caaf38db3a983d6f0745ed3b8cd252868f0e5.tar.gz
org.eclipse.tcf-480caaf38db3a983d6f0745ed3b8cd252868f0e5.tar.xz
org.eclipse.tcf-480caaf38db3a983d6f0745ed3b8cd252868f0e5.zip
Target Explorer: Fixed .gitignore and added moved files
-rw-r--r--.gitignore16
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/.project28
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/build.properties5
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/epl-v10.html256
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.properties164
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.xml50
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/license.html107
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/pom.xml21
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/.project28
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/build.properties5
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/epl-v10.html256
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.properties164
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.xml50
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/license.html107
-rw-r--r--target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/pom.xml21
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.classpath7
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.project28
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.core.prefs362
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/META-INF/MANIFEST.MF15
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/build.properties5
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/plugin.properties12
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/pom.xml17
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/Application.java91
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationActionBarAdvisor.java1109
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchAdvisor.java167
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchWindowAdvisor.java394
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/activator/UIPlugin.java64
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.java47
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.properties16
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.classpath7
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.project28
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.core.prefs362
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/META-INF/MANIFEST.MF14
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/build.properties7
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.properties164
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.xml53
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin_customization.ini65
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/pom.xml17
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer.product102
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer_TCF.product109
-rw-r--r--target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/src/org/eclipse/tcf/te/rcp/activator/ProductBundleActivator.java54
43 files changed, 4594 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 90d041ddb..aff1a7bcd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -75,10 +75,6 @@ tests/plugins/org.eclipse.tcf.debug.test/bin
/target_explorer/plugins/org.eclipse.tcf.te.launch.core/bin
/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/target
/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/bin
-/target_explorer/plugins/org.eclipse.tcf.te.rcp/target
-/target_explorer/plugins/org.eclipse.tcf.te.rcp/bin
-/target_explorer/plugins/org.eclipse.tcf.te.rcp.application/target
-/target_explorer/plugins/org.eclipse.tcf.te.rcp.application/bin
/target_explorer/plugins/org.eclipse.tcf.te.runtime/target
/target_explorer/plugins/org.eclipse.tcf.te.runtime/bin
/target_explorer/plugins/org.eclipse.tcf.te.runtime.concurrent/target
@@ -155,18 +151,22 @@ tests/plugins/org.eclipse.tcf.debug.test/bin
/target_explorer/features/org.eclipse.tcf.te.feature/bin
/target_explorer/features/org.eclipse.tcf.te.cdt.feature/target
/target_explorer/features/org.eclipse.tcf.te.cdt.feature/bin
-/target_explorer/features/org.eclipse.tcf.te.rcp.feature/target
-/target_explorer/features/org.eclipse.tcf.te.rcp.feature/bin
/target_explorer/features/org.eclipse.tcf.te.sdk.feature/target
/target_explorer/features/org.eclipse.tcf.te.sdk.feature/bin
/target_explorer/features/org.eclipse.tcf.te.cdt.sdk.feature/target
/target_explorer/features/org.eclipse.tcf.te.cdt.sdk.feature/bin
/target_explorer/features/org.eclipse.tcf.te.tcf.feature/target
/target_explorer/features/org.eclipse.tcf.te.tcf.feature/bin
-/target_explorer/features/org.eclipse.tcf.te.tcf.rcp.feature/target
-/target_explorer/features/org.eclipse.tcf.te.tcf.rcp.feature/bin
/target_explorer/features/org.eclipse.tcf.te.tcf.sdk.feature/target
/target_explorer/features/org.eclipse.tcf.te.tcf.sdk.feature/bin
+/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/target
+/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/bin
+/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/target
+/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/bin
/target_explorer/experimental/plugins/org.eclipse.tcf.te.ui.sequoyah.vnc/target
/target_explorer/experimental/plugins/org.eclipse.tcf.te.ui.sequoyah.vnc/bin
+/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/target
+/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/bin
+/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/target
+/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/bin
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/.project b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/.project
new file mode 100644
index 000000000..0e2b14656
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.tcf.te.rcp.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+ <filteredResources>
+ <filter>
+ <id>1311579318584</id>
+ <name></name>
+ <type>10</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-target</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/build.properties b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/build.properties
new file mode 100644
index 000000000..f81919125
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/build.properties
@@ -0,0 +1,5 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ license.html
+src.includes = feature.properties
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/epl-v10.html b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/epl-v10.html
new file mode 100644
index 000000000..9321f4082
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/epl-v10.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Eclipse Public License - Version 1.0</title>
+
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style></head><body lang="EN-US">
+
+<p align="center"><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body></html> \ No newline at end of file
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.properties b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.properties
new file mode 100644
index 000000000..73cfe7207
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.properties
@@ -0,0 +1,164 @@
+##################################################################################
+# Copyright (c) 2011 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:
+# Wind River Systems - 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 Explorer
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org - TCF
+
+# "description" property - description of the feature
+description=The Target Explorer with RCP-only dependencies
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011 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\
+April 14, 2010\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\
+ - 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/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.xml b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.xml
new file mode 100644
index 000000000..a004db1b3
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/feature.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.tcf.te.rcp.feature"
+ label="%featureName"
+ version="1.0.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.tcf.te.rcp">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.tcf.te.feature"
+ version="0.0.0"/>
+
+ <requires>
+ <import plugin="org.eclipse.core.runtime" version="3.2.0" match="compatible"/>
+ <import plugin="org.eclipse.ui" version="3.3.0" match="compatible"/>
+ <import plugin="org.eclipse.ui.forms" version="3.3.0" match="compatible"/>
+ <import plugin="com.ibm.icu"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.pde.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ui.views.log"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/license.html b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/license.html
new file mode 100644
index 000000000..c184ca36a
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/pom.xml b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/pom.xml
new file mode 100644
index 000000000..22760667f
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.rcp.feature/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.tcf</groupId>
+ <artifactId>tcf-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+
+ <version>1.0.0.qualifier</version>
+ <artifactId>org.eclipse.tcf.te.rcp.feature</artifactId>
+ <packaging>eclipse-feature</packaging>
+
+ <properties>
+ <jacoco.skip>true</jacoco.skip>
+ </properties>
+</project>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/.project b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/.project
new file mode 100644
index 000000000..6b0cf44e3
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.tcf.te.tcf.rcp.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+ <filteredResources>
+ <filter>
+ <id>1311579318584</id>
+ <name></name>
+ <type>10</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-target</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/build.properties b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/build.properties
new file mode 100644
index 000000000..f81919125
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/build.properties
@@ -0,0 +1,5 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ license.html
+src.includes = feature.properties
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/epl-v10.html b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/epl-v10.html
new file mode 100644
index 000000000..9321f4082
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/epl-v10.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Eclipse Public License - Version 1.0</title>
+
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style></head><body lang="EN-US">
+
+<p align="center"><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body></html> \ No newline at end of file
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.properties b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.properties
new file mode 100644
index 000000000..3d9afb724
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.properties
@@ -0,0 +1,164 @@
+##################################################################################
+# Copyright (c) 2011 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:
+# Wind River Systems - 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 Explorer, TCF
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org - TCF
+
+# "description" property - description of the feature
+description=The Target Explorer with RCP-only dependencies
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011 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\
+April 14, 2010\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\
+ - 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/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.xml b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.xml
new file mode 100644
index 000000000..6c6336889
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/feature.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.tcf.te.tcf.rcp.feature"
+ label="%featureName"
+ version="1.0.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.tcf.te.rcp">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.tcf.te.tcf.feature"
+ version="0.0.0"/>
+
+ <requires>
+ <import plugin="org.eclipse.core.runtime" version="3.2.0" match="compatible"/>
+ <import plugin="org.eclipse.ui" version="3.3.0" match="compatible"/>
+ <import plugin="org.eclipse.ui.forms" version="3.3.0" match="compatible"/>
+ <import plugin="com.ibm.icu"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.pde.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ui.views.log"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/license.html b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/license.html
new file mode 100644
index 000000000..c184ca36a
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/pom.xml b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/pom.xml
new file mode 100644
index 000000000..8ab21832e
--- /dev/null
+++ b/target_explorer/experimental/features/org.eclipse.tcf.te.tcf.rcp.feature/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.tcf</groupId>
+ <artifactId>tcf-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+
+ <version>1.0.0.qualifier</version>
+ <artifactId>org.eclipse.tcf.te.tcf.rcp.feature</artifactId>
+ <packaging>eclipse-feature</packaging>
+
+ <properties>
+ <jacoco.skip>true</jacoco.skip>
+ </properties>
+</project>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.classpath b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.project b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.project
new file mode 100644
index 000000000..eef217349
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.tcf.te.rcp.application</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.core.prefs b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0e57f0904
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,362 @@
+#Fri Oct 07 16:15:14 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+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.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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=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.fatalOptionalError=enabled
+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.includeNullInfoFromAsserts=enabled
+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.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=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.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+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=warning
+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.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+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.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=100
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=4
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=4
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=true
+org.eclipse.jdt.core.formatter.lineSplit=100
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.ui.prefs b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..426f51cba
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Fri Oct 07 16:15:14 CEST 2011
+eclipse.preferences.version=1
+formatter_profile=_Target Explorer Java STD
+formatter_settings_version=12
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/META-INF/MANIFEST.MF b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..4f228f679
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.tcf.te.rcp.application;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.tcf.te.rcp.application.activator.UIPlugin
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
+ org.eclipse.ui;bundle-version="3.7.0",
+ org.eclipse.ui.ide;bundle-version="3.7.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
+Export-Package: org.eclipse.tcf.te.rcp.application;version="1.0.0",
+ org.eclipse.tcf.te.rcp.application.nls;version="1.0.0"
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/build.properties b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/build.properties
new file mode 100644
index 000000000..aa1a00826
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/plugin.properties b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/plugin.properties
new file mode 100644
index 000000000..de6714bba
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/plugin.properties
@@ -0,0 +1,12 @@
+##################################################################################
+# Copyright (c) 2011 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:
+# Wind River Systems - initial API and implementation
+##################################################################################
+
+pluginName = Target Explorer RCP Application
+providerName = Eclipse.org - TCF
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/pom.xml b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/pom.xml
new file mode 100644
index 000000000..8a479f2d3
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.tcf</groupId>
+ <artifactId>tcf-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+
+ <version>1.0.0.qualifier</version>
+ <artifactId>org.eclipse.tcf.te.rcp.application</artifactId>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/Application.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/Application.java
new file mode 100644
index 000000000..487e56328
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/Application.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.application;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.osgi.service.datalocation.Location;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * RCP: Application implementation.
+ */
+public class Application implements IApplication {
+
+ private static final String PROP_EXIT_CODE = "eclipse.exitcode"; //$NON-NLS-1$
+
+ /**
+ * A special return code that will be recognized by the launcher and used to
+ * restart the application.
+ */
+ private static final Integer EXIT_RELAUNCH = new Integer(24);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+ */
+ public Object start(IApplicationContext context) throws Exception {
+ Display display = createDisplay();
+
+ try {
+ // create the workbench with this advisor and run it until it exits
+ // N.B. createWorkbench remembers the advisor, and also registers
+ // the workbench globally so that all UI plug-ins can find it using
+ // PlatformUI.getWorkbench() or AbstractUIPlugin.getWorkbench()
+ int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
+
+ // the workbench doesn't support relaunch yet (bug 61809) so
+ // for now restart is used, and exit data properties are checked
+ // here to substitute in the relaunch return code if needed
+ if (returnCode != PlatformUI.RETURN_RESTART) {
+ return EXIT_OK;
+ }
+
+ // if the exit code property has been set to the relaunch code, then
+ // return that code now, otherwise this is a normal restart
+ return EXIT_RELAUNCH.equals(Integer.getInteger(PROP_EXIT_CODE)) ? EXIT_RELAUNCH : EXIT_RESTART;
+ } finally {
+ if (display != null) {
+ display.dispose();
+ }
+ Location instanceLoc = Platform.getInstanceLocation();
+ if (instanceLoc != null)
+ instanceLoc.release();
+ }
+ }
+
+ /**
+ * Creates the display used by the application.
+ *
+ * @return the display used by the application
+ */
+ protected Display createDisplay() {
+ return PlatformUI.createDisplay();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.app.IApplication#stop()
+ */
+ public void stop() {
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ if (workbench == null) return;
+
+ final Display display = workbench.getDisplay();
+ display.syncExec(new Runnable() {
+ public void run() {
+ if (!display.isDisposed())
+ workbench.close();
+ }
+ });
+ }
+
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationActionBarAdvisor.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationActionBarAdvisor.java
new file mode 100644
index 000000000..330faf78e
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationActionBarAdvisor.java
@@ -0,0 +1,1109 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.application;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.ICoolBarManager;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.StatusLineContributionItem;
+import org.eclipse.jface.internal.provisional.action.IToolBarContributionItem;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.util.Util;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchCommandConstants;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.actions.ContributionItemFactory;
+import org.eclipse.ui.actions.NewWizardMenu;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.ide.IDEActionFactory;
+import org.eclipse.ui.ide.IIDEActionConstants;
+import org.eclipse.ui.internal.IPreferenceConstants;
+import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.ui.internal.WorkbenchPlugin;
+import org.eclipse.ui.internal.handlers.IActionCommandMappingService;
+import org.eclipse.ui.internal.ide.AboutInfo;
+import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
+import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
+import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
+import org.eclipse.ui.internal.ide.actions.QuickMenuAction;
+import org.eclipse.ui.internal.provisional.application.IActionBarConfigurer2;
+import org.eclipse.ui.menus.CommandContributionItem;
+import org.eclipse.ui.menus.CommandContributionItemParameter;
+import org.eclipse.ui.menus.IMenuService;
+
+/**
+ * RCP: Adds actions to the application window.
+ */
+@SuppressWarnings("restriction")
+public final class ApplicationActionBarAdvisor extends ActionBarAdvisor {
+ private final IWorkbenchWindow window;
+
+ // generic actions
+ private IWorkbenchAction closeAction;
+
+ private IWorkbenchAction closeAllAction;
+
+ private IWorkbenchAction closeOthersAction;
+
+ private IWorkbenchAction closeAllSavedAction;
+
+ private IWorkbenchAction saveAction;
+
+ private IWorkbenchAction saveAllAction;
+
+ private IWorkbenchAction newWindowAction;
+
+ private IWorkbenchAction newEditorAction;
+
+ private IWorkbenchAction helpContentsAction;
+
+ private IWorkbenchAction helpSearchAction;
+
+ private IWorkbenchAction dynamicHelpAction;
+
+ private IWorkbenchAction aboutAction;
+
+ private IWorkbenchAction openPreferencesAction;
+
+ private IWorkbenchAction saveAsAction;
+
+ private IWorkbenchAction hideShowEditorAction;
+
+ private IWorkbenchAction savePerspectiveAction;
+
+ private IWorkbenchAction resetPerspectiveAction;
+
+ private IWorkbenchAction editActionSetAction;
+
+ private IWorkbenchAction closePerspAction;
+
+ private IWorkbenchAction lockToolBarAction;
+
+ private IWorkbenchAction closeAllPerspsAction;
+
+ private IWorkbenchAction showViewMenuAction;
+
+ private IWorkbenchAction showPartPaneMenuAction;
+
+ private IWorkbenchAction nextPartAction;
+
+ private IWorkbenchAction prevPartAction;
+
+ private IWorkbenchAction nextEditorAction;
+
+ private IWorkbenchAction prevEditorAction;
+
+ private IWorkbenchAction nextPerspectiveAction;
+
+ private IWorkbenchAction prevPerspectiveAction;
+
+ private IWorkbenchAction activateEditorAction;
+
+ private IWorkbenchAction maximizePartAction;
+
+ private IWorkbenchAction minimizePartAction;
+
+ private IWorkbenchAction switchToEditorAction;
+
+ private IWorkbenchAction workbookEditorsAction;
+
+ private IWorkbenchAction quickAccessAction;
+
+ private IWorkbenchAction backwardHistoryAction;
+
+ private IWorkbenchAction forwardHistoryAction;
+
+ // generic retarget actions
+ private IWorkbenchAction undoAction;
+
+ private IWorkbenchAction redoAction;
+
+ private IWorkbenchAction quitAction;
+
+ private IWorkbenchAction goIntoAction;
+
+ private IWorkbenchAction backAction;
+
+ private IWorkbenchAction forwardAction;
+
+ private IWorkbenchAction upAction;
+
+ private IWorkbenchAction nextAction;
+
+ private IWorkbenchAction previousAction;
+
+ private IWorkbenchAction newWizardAction;
+
+ private IWorkbenchAction newWizardDropDownAction;
+
+ private IWorkbenchAction importResourcesAction;
+
+ private IWorkbenchAction exportResourcesAction;
+
+ private IWorkbenchAction quickStartAction;
+
+ private IWorkbenchAction tipsAndTricksAction;
+
+ private QuickMenuAction showInQuickMenu;
+
+ private QuickMenuAction newQuickMenu;
+
+ private IWorkbenchAction introAction;
+
+ // contribution items
+ // @issue should obtain from ContributionItemFactory
+ private NewWizardMenu newWizardMenu;
+
+ // @issue class is workbench internal
+ private StatusLineContributionItem statusLineItem;
+
+ // listener for the "close editors automatically"
+ // preference change
+ private IPropertyChangeListener propPrefListener;
+
+ /**
+ * Indicates if the action builder has been disposed
+ */
+ private boolean isDisposed = false;
+
+ /**
+ * The coolbar context menu manager.
+ */
+ private MenuManager coolbarPopupMenuManager;
+
+ /**
+ * Constructs a new action builder which contributes actions to the given window.
+ *
+ * @param configurer the action bar configurer for the window
+ */
+ public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
+ super(configurer);
+ window = configurer.getWindowConfigurer().getWindow();
+ }
+
+ /**
+ * Returns the window to which this action builder is contributing.
+ */
+ private IWorkbenchWindow getWindow() {
+ return window;
+ }
+
+ /**
+ * Hooks listeners on the preference store and the window's page, perspective and selection services.
+ */
+ private void hookListeners() {
+
+ // listener for the "close editors automatically"
+ // preference change
+ propPrefListener = new IPropertyChangeListener() {
+ @SuppressWarnings("synthetic-access")
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getProperty().equals(IPreferenceConstants.REUSE_EDITORS_BOOLEAN)) {
+ if (window.getShell() != null && !window.getShell().isDisposed()) {
+ // this property change notification could be from a non-UI thread
+ window.getShell().getDisplay().syncExec(new Runnable() {
+ public void run() {
+ updatePinActionToolbar();
+ }
+ });
+ }
+ }
+ }
+ };
+ /*
+ * In order to ensure that the pin action toolbar sets its size
+ * correctly, the pin action should set its visiblity before we call updatePinActionToolbar().
+ *
+ * In other words we always want the PinActionContributionItem to be notified before the
+ * WorkbenchActionBuilder.
+ */
+ WorkbenchPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(propPrefListener);
+ }
+
+ @Override
+ public void fillActionBars(int flags) {
+ super.fillActionBars(flags);
+ if ((flags & FILL_PROXY) == 0) {
+ hookListeners();
+ }
+ }
+
+ /**
+ * Fills the coolbar with the workbench actions.
+ */
+ @Override
+ protected void fillCoolBar(ICoolBarManager coolBar) {
+
+ IActionBarConfigurer2 actionBarConfigurer = (IActionBarConfigurer2)getActionBarConfigurer();
+ { // Set up the context Menu
+ coolbarPopupMenuManager = new MenuManager();
+ coolbarPopupMenuManager.add(new ActionContributionItem(lockToolBarAction));
+ coolbarPopupMenuManager.add(new ActionContributionItem(editActionSetAction));
+ coolBar.setContextMenuManager(coolbarPopupMenuManager);
+ IMenuService menuService = (IMenuService)window.getService(IMenuService.class);
+ menuService.populateContributionManager(coolbarPopupMenuManager, "popup:windowCoolbarContextMenu"); //$NON-NLS-1$
+ }
+ coolBar.add(new GroupMarker(IIDEActionConstants.GROUP_FILE));
+ { // File Group
+ IToolBarManager fileToolBar = actionBarConfigurer.createToolBarManager();
+ fileToolBar.add(new Separator(IWorkbenchActionConstants.NEW_GROUP));
+ fileToolBar.add(newWizardDropDownAction);
+ fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT));
+ fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.SAVE_GROUP));
+ fileToolBar.add(saveAction);
+ fileToolBar.add(saveAllAction);
+ fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT));
+ fileToolBar.add(getPrintItem());
+ fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.PRINT_EXT));
+
+ fileToolBar.add(new Separator(IWorkbenchActionConstants.BUILD_GROUP));
+ fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT));
+ fileToolBar.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+
+ // Add to the cool bar manager
+ coolBar.add(actionBarConfigurer.createToolBarContributionItem(fileToolBar, IWorkbenchActionConstants.TOOLBAR_FILE));
+ }
+
+ coolBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+
+ coolBar.add(new GroupMarker(IIDEActionConstants.GROUP_NAV));
+ { // Navigate group
+ IToolBarManager navToolBar = actionBarConfigurer.createToolBarManager();
+ navToolBar.add(new Separator(IWorkbenchActionConstants.HISTORY_GROUP));
+ navToolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_APP));
+ navToolBar.add(backwardHistoryAction);
+ navToolBar.add(forwardHistoryAction);
+ navToolBar.add(new Separator(IWorkbenchActionConstants.PIN_GROUP));
+ navToolBar.add(getPinEditorItem());
+
+ // Add to the cool bar manager
+ coolBar.add(actionBarConfigurer.createToolBarContributionItem(navToolBar, IWorkbenchActionConstants.TOOLBAR_NAVIGATE));
+ }
+
+ coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_EDITOR));
+
+ coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_HELP));
+
+ { // Help group
+ IToolBarManager helpToolBar = actionBarConfigurer.createToolBarManager();
+ helpToolBar.add(new Separator(IWorkbenchActionConstants.GROUP_HELP));
+ // helpToolBar.add(searchComboItem);
+ // Add the group for applications to contribute
+ helpToolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_APP));
+ // Add to the cool bar manager
+ coolBar.add(actionBarConfigurer.createToolBarContributionItem(helpToolBar, IWorkbenchActionConstants.TOOLBAR_HELP));
+ }
+
+ }
+
+ /**
+ * Fills the menu bar with the workbench actions.
+ */
+ @Override
+ protected void fillMenuBar(IMenuManager menuBar) {
+ menuBar.add(createFileMenu());
+ menuBar.add(createEditMenu());
+ menuBar.add(createNavigateMenu());
+ menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ menuBar.add(createWindowMenu());
+ menuBar.add(createHelpMenu());
+ }
+
+ /**
+ * Creates and returns the File menu.
+ */
+ private MenuManager createFileMenu() {
+ MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_file, IWorkbenchActionConstants.M_FILE);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));
+ {
+ // create the New submenu, using the same id for it as the New action
+ String newText = IDEWorkbenchMessages.Workbench_new;
+ String newId = ActionFactory.NEW.getId();
+ MenuManager newMenu = new MenuManager(newText, newId);
+ newMenu.setActionDefinitionId("org.eclipse.ui.file.newQuickMenu"); //$NON-NLS-1$
+ newMenu.add(new Separator(newId));
+ this.newWizardMenu = new NewWizardMenu(getWindow());
+ newMenu.add(this.newWizardMenu);
+ newMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ menu.add(newMenu);
+ }
+
+ menu.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT));
+ menu.add(new Separator());
+
+ menu.add(closeAction);
+ menu.add(closeAllAction);
+ // menu.add(closeAllSavedAction);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.CLOSE_EXT));
+ menu.add(new Separator());
+ menu.add(saveAction);
+ menu.add(saveAsAction);
+ menu.add(saveAllAction);
+ menu.add(getRevertItem());
+ menu.add(new Separator());
+ menu.add(getMoveItem());
+ menu.add(getRenameItem());
+ menu.add(getRefreshItem());
+
+ menu.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT));
+ menu.add(new Separator());
+ menu.add(getPrintItem());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.PRINT_EXT));
+ menu.add(new Separator());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT));
+ menu.add(new Separator());
+ menu.add(importResourcesAction);
+ menu.add(exportResourcesAction);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.IMPORT_EXT));
+ menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+
+ menu.add(new Separator());
+ menu.add(getPropertiesItem());
+
+ menu.add(ContributionItemFactory.REOPEN_EDITORS.create(getWindow()));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.MRU));
+ menu.add(new Separator());
+
+ // If we're on OS X we shouldn't show this command in the File menu. It
+ // should be invisible to the user. However, we should not remove it -
+ // the carbon UI code will do a search through our menu structure
+ // looking for it when Cmd-Q is invoked (or Quit is chosen from the
+ // application menu.
+ ActionContributionItem quitItem = new ActionContributionItem(quitAction);
+ quitItem.setVisible(!Util.isMac());
+ menu.add(quitItem);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));
+ return menu;
+ }
+
+ /**
+ * Creates and returns the Edit menu.
+ */
+ private MenuManager createEditMenu() {
+ MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_edit, IWorkbenchActionConstants.M_EDIT);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));
+
+ menu.add(undoAction);
+ menu.add(redoAction);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));
+ menu.add(new Separator());
+
+ menu.add(getCutItem());
+ menu.add(getCopyItem());
+ menu.add(getPasteItem());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));
+ menu.add(new Separator());
+
+ menu.add(getDeleteItem());
+ menu.add(getSelectAllItem());
+ menu.add(new Separator());
+
+ menu.add(getFindItem());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT));
+ menu.add(new Separator());
+
+ menu.add(getBookmarkItem());
+ menu.add(getTaskItem());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));
+
+ menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));
+ menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ return menu;
+ }
+
+ /**
+ * Creates and returns the Navigate menu.
+ */
+ private MenuManager createNavigateMenu() {
+ MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_navigate, IWorkbenchActionConstants.M_NAVIGATE);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_START));
+ menu.add(goIntoAction);
+
+ MenuManager goToSubMenu = new MenuManager(IDEWorkbenchMessages.Workbench_goTo, IWorkbenchActionConstants.GO_TO);
+ menu.add(goToSubMenu);
+ goToSubMenu.add(backAction);
+ goToSubMenu.add(forwardAction);
+ goToSubMenu.add(upAction);
+ goToSubMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+
+ menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT));
+ for (int i = 2; i < 5; ++i) {
+ menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT + i));
+ }
+ menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT));
+ {
+ MenuManager showInSubMenu = new MenuManager(IDEWorkbenchMessages.Workbench_showIn, "showIn"); //$NON-NLS-1$
+ showInSubMenu.setActionDefinitionId(showInQuickMenu.getActionDefinitionId());
+ showInSubMenu.add(ContributionItemFactory.VIEWS_SHOW_IN.create(getWindow()));
+ menu.add(showInSubMenu);
+ }
+ for (int i = 2; i < 5; ++i) {
+ menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT + i));
+ }
+ menu.add(new Separator());
+ menu.add(nextAction);
+ menu.add(previousAction);
+ menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_END));
+
+ // TBD: Location of this actions
+ menu.add(new Separator());
+ menu.add(backwardHistoryAction);
+ menu.add(forwardHistoryAction);
+ return menu;
+ }
+
+ /**
+ * Creates and returns the Window menu.
+ */
+ private MenuManager createWindowMenu() {
+ MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_window, IWorkbenchActionConstants.M_WINDOW);
+
+ menu.add(newWindowAction);
+ menu.add(newEditorAction);
+
+ menu.add(new Separator());
+ addPerspectiveActions(menu);
+ menu.add(new Separator());
+ addKeyboardShortcuts(menu);
+ Separator sep = new Separator(IWorkbenchActionConstants.MB_ADDITIONS);
+ sep.setVisible(!Util.isMac());
+ menu.add(sep);
+
+ // See the comment for quit in createFileMenu
+ ActionContributionItem openPreferencesItem = new ActionContributionItem(openPreferencesAction);
+ openPreferencesItem.setVisible(!Util.isMac());
+ menu.add(openPreferencesItem);
+
+ menu.add(ContributionItemFactory.OPEN_WINDOWS.create(getWindow()));
+ return menu;
+ }
+
+ /**
+ * Adds the perspective actions to the specified menu.
+ */
+ private void addPerspectiveActions(MenuManager menu) {
+ {
+ String openText = IDEWorkbenchMessages.Workbench_openPerspective;
+ MenuManager changePerspMenuMgr = new MenuManager(openText, "openPerspective"); //$NON-NLS-1$
+ IContributionItem changePerspMenuItem = ContributionItemFactory.PERSPECTIVES_SHORTLIST.create(getWindow());
+ changePerspMenuMgr.add(changePerspMenuItem);
+ menu.add(changePerspMenuMgr);
+ }
+ {
+ MenuManager showViewMenuMgr = new MenuManager(IDEWorkbenchMessages.Workbench_showView, "showView"); //$NON-NLS-1$
+ IContributionItem showViewMenu = ContributionItemFactory.VIEWS_SHORTLIST.create(getWindow());
+ showViewMenuMgr.add(showViewMenu);
+ menu.add(showViewMenuMgr);
+ }
+ menu.add(new Separator());
+ menu.add(editActionSetAction);
+ menu.add(savePerspectiveAction);
+ menu.add(resetPerspectiveAction);
+ menu.add(closePerspAction);
+ menu.add(closeAllPerspsAction);
+ }
+
+ /**
+ * Adds the keyboard navigation submenu to the specified menu.
+ */
+ private void addKeyboardShortcuts(MenuManager menu) {
+ MenuManager subMenu = new MenuManager(IDEWorkbenchMessages.Workbench_shortcuts, "shortcuts"); //$NON-NLS-1$
+ menu.add(subMenu);
+ subMenu.add(showPartPaneMenuAction);
+ subMenu.add(showViewMenuAction);
+ subMenu.add(quickAccessAction);
+ subMenu.add(new Separator());
+ subMenu.add(maximizePartAction);
+ subMenu.add(minimizePartAction);
+ subMenu.add(new Separator());
+ subMenu.add(activateEditorAction);
+ subMenu.add(nextEditorAction);
+ subMenu.add(prevEditorAction);
+ subMenu.add(switchToEditorAction);
+ subMenu.add(new Separator());
+ subMenu.add(nextPartAction);
+ subMenu.add(prevPartAction);
+ subMenu.add(new Separator());
+ subMenu.add(nextPerspectiveAction);
+ subMenu.add(prevPerspectiveAction);
+ }
+
+ /**
+ * Creates and returns the Help menu.
+ */
+ private MenuManager createHelpMenu() {
+ MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_help, IWorkbenchActionConstants.M_HELP);
+ addSeparatorOrGroupMarker(menu, "group.intro"); //$NON-NLS-1$
+ // See if a welcome or intro page is specified
+ if (introAction != null) {
+ menu.add(introAction);
+ } else if (quickStartAction != null) {
+ menu.add(quickStartAction);
+ }
+ menu.add(new GroupMarker("group.intro.ext")); //$NON-NLS-1$
+ addSeparatorOrGroupMarker(menu, "group.main"); //$NON-NLS-1$
+ menu.add(helpContentsAction);
+ menu.add(helpSearchAction);
+ menu.add(dynamicHelpAction);
+ addSeparatorOrGroupMarker(menu, "group.assist"); //$NON-NLS-1$
+ // See if a tips and tricks page is specified
+ if (tipsAndTricksAction != null) {
+ menu.add(tipsAndTricksAction);
+ }
+ // HELP_START should really be the first item, but it was after
+ // quickStartAction and tipsAndTricksAction in 2.1.
+ menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));
+ menu.add(new GroupMarker("group.main.ext")); //$NON-NLS-1$
+ addSeparatorOrGroupMarker(menu, "group.tutorials"); //$NON-NLS-1$
+ addSeparatorOrGroupMarker(menu, "group.tools"); //$NON-NLS-1$
+ addSeparatorOrGroupMarker(menu, "group.updates"); //$NON-NLS-1$
+ menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END));
+ addSeparatorOrGroupMarker(menu, IWorkbenchActionConstants.MB_ADDITIONS);
+ // about should always be at the bottom
+ menu.add(new Separator("group.about")); //$NON-NLS-1$
+
+ ActionContributionItem aboutItem = new ActionContributionItem(aboutAction);
+ aboutItem.setVisible(!Util.isMac());
+ menu.add(aboutItem);
+ menu.add(new GroupMarker("group.about.ext")); //$NON-NLS-1$
+ return menu;
+ }
+
+ /**
+ * Adds a <code>GroupMarker</code> or <code>Separator</code> to a menu. The test for whether a separator should be
+ * added is done by checking for the existence of a preference matching the string useSeparator.MENUID.GROUPID that
+ * is set to <code>true</code>.
+ *
+ * @param menu the menu to add to
+ * @param groupId the group id for the added separator or group marker
+ */
+ private void addSeparatorOrGroupMarker(MenuManager menu, String groupId) {
+ String prefId = "useSeparator." + menu.getId() + "." + groupId; //$NON-NLS-1$ //$NON-NLS-2$
+ boolean addExtraSeparators = IDEWorkbenchPlugin.getDefault().getPreferenceStore().getBoolean(prefId);
+ if (addExtraSeparators) {
+ menu.add(new Separator(groupId));
+ } else {
+ menu.add(new GroupMarker(groupId));
+ }
+ }
+
+ /**
+ * Disposes any resources and unhooks any listeners that are no longer needed. Called when the window is closed.
+ */
+ @Override
+ public void dispose() {
+ if (isDisposed) { return; }
+ isDisposed = true;
+ IMenuService menuService = (IMenuService)window.getService(IMenuService.class);
+ menuService.releaseContributions(coolbarPopupMenuManager);
+ coolbarPopupMenuManager.dispose();
+
+ getActionBarConfigurer().getStatusLineManager().remove(statusLineItem);
+ if (propPrefListener != null) {
+ WorkbenchPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(propPrefListener);
+ propPrefListener = null;
+ }
+
+ showInQuickMenu.dispose();
+ newQuickMenu.dispose();
+
+ // null out actions to make leak debugging easier
+ closeAction = null;
+ closeAllAction = null;
+ closeAllSavedAction = null;
+ closeOthersAction = null;
+ saveAction = null;
+ saveAllAction = null;
+ newWindowAction = null;
+ newEditorAction = null;
+ helpContentsAction = null;
+ helpSearchAction = null;
+ dynamicHelpAction = null;
+ aboutAction = null;
+ openPreferencesAction = null;
+ saveAsAction = null;
+ hideShowEditorAction = null;
+ savePerspectiveAction = null;
+ resetPerspectiveAction = null;
+ editActionSetAction = null;
+ closePerspAction = null;
+ lockToolBarAction = null;
+ closeAllPerspsAction = null;
+ showViewMenuAction = null;
+ showPartPaneMenuAction = null;
+ nextPartAction = null;
+ prevPartAction = null;
+ nextEditorAction = null;
+ prevEditorAction = null;
+ nextPerspectiveAction = null;
+ prevPerspectiveAction = null;
+ activateEditorAction = null;
+ maximizePartAction = null;
+ minimizePartAction = null;
+ switchToEditorAction = null;
+ quickAccessAction.dispose();
+ quickAccessAction = null;
+ backwardHistoryAction = null;
+ forwardHistoryAction = null;
+ undoAction = null;
+ redoAction = null;
+ quitAction = null;
+ goIntoAction = null;
+ backAction = null;
+ forwardAction = null;
+ upAction = null;
+ nextAction = null;
+ previousAction = null;
+ newWizardAction = null;
+ newWizardDropDownAction = null;
+ importResourcesAction = null;
+ exportResourcesAction = null;
+ quickStartAction = null;
+ tipsAndTricksAction = null;
+ showInQuickMenu = null;
+ newQuickMenu = null;
+ newWizardMenu = null;
+ statusLineItem = null;
+ propPrefListener = null;
+ introAction = null;
+
+ super.dispose();
+ }
+
+ void updateModeLine(final String text) {
+ statusLineItem.setText(text);
+ }
+
+ /**
+ * Returns true if the menu with the given ID should be considered as an OLE container menu. Container menus are
+ * preserved in OLE menu merging.
+ */
+ @Override
+ public boolean isApplicationMenu(String menuId) {
+ if (menuId.equals(IWorkbenchActionConstants.M_FILE)) { return true; }
+ if (menuId.equals(IWorkbenchActionConstants.M_WINDOW)) { return true; }
+ return false;
+ }
+
+ /**
+ * Return whether or not given id matches the id of the coolitems that the workbench creates.
+ */
+ public boolean isWorkbenchCoolItemId(String id) {
+ if (IWorkbenchActionConstants.TOOLBAR_FILE.equalsIgnoreCase(id)) { return true; }
+ if (IWorkbenchActionConstants.TOOLBAR_NAVIGATE.equalsIgnoreCase(id)) { return true; }
+ return false;
+ }
+
+ /**
+ * Fills the status line with the workbench contribution items.
+ */
+ @Override
+ protected void fillStatusLine(IStatusLineManager statusLine) {
+ statusLine.add(statusLineItem);
+ }
+
+ /**
+ * Creates actions (and contribution items) for the menu bar, toolbar and status line.
+ */
+ @Override
+ protected void makeActions(final IWorkbenchWindow window) {
+ // @issue should obtain from ConfigurationItemFactory
+ statusLineItem = new StatusLineContributionItem("ModeContributionItem"); //$NON-NLS-1$
+
+ newWizardAction = ActionFactory.NEW.create(window);
+ register(newWizardAction);
+
+ newWizardDropDownAction = IDEActionFactory.NEW_WIZARD_DROP_DOWN.create(window);
+ register(newWizardDropDownAction);
+
+ importResourcesAction = ActionFactory.IMPORT.create(window);
+ register(importResourcesAction);
+
+ exportResourcesAction = ActionFactory.EXPORT.create(window);
+ register(exportResourcesAction);
+
+ saveAction = ActionFactory.SAVE.create(window);
+ register(saveAction);
+
+ saveAsAction = ActionFactory.SAVE_AS.create(window);
+ register(saveAsAction);
+
+ saveAllAction = ActionFactory.SAVE_ALL.create(window);
+ register(saveAllAction);
+
+ newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(getWindow());
+ newWindowAction.setText(IDEWorkbenchMessages.Workbench_openNewWindow);
+ register(newWindowAction);
+
+ newEditorAction = ActionFactory.NEW_EDITOR.create(window);
+ register(newEditorAction);
+
+ undoAction = ActionFactory.UNDO.create(window);
+ register(undoAction);
+
+ redoAction = ActionFactory.REDO.create(window);
+ register(redoAction);
+
+ closeAction = ActionFactory.CLOSE.create(window);
+ register(closeAction);
+
+ closeAllAction = ActionFactory.CLOSE_ALL.create(window);
+ register(closeAllAction);
+
+ closeOthersAction = ActionFactory.CLOSE_OTHERS.create(window);
+ register(closeOthersAction);
+
+ closeAllSavedAction = ActionFactory.CLOSE_ALL_SAVED.create(window);
+ register(closeAllSavedAction);
+
+ helpContentsAction = ActionFactory.HELP_CONTENTS.create(window);
+ register(helpContentsAction);
+
+ helpSearchAction = ActionFactory.HELP_SEARCH.create(window);
+ register(helpSearchAction);
+
+ dynamicHelpAction = ActionFactory.DYNAMIC_HELP.create(window);
+ register(dynamicHelpAction);
+
+ aboutAction = ActionFactory.ABOUT.create(window);
+ aboutAction.setImageDescriptor(IDEInternalWorkbenchImages.getImageDescriptor(IDEInternalWorkbenchImages.IMG_OBJS_DEFAULT_PROD));
+ register(aboutAction);
+
+ openPreferencesAction = ActionFactory.PREFERENCES.create(window);
+ register(openPreferencesAction);
+
+ makeFeatureDependentActions(window);
+
+ // Actions for invisible accelerators
+ showViewMenuAction = ActionFactory.SHOW_VIEW_MENU.create(window);
+ register(showViewMenuAction);
+
+ showPartPaneMenuAction = ActionFactory.SHOW_PART_PANE_MENU.create(window);
+ register(showPartPaneMenuAction);
+
+ nextEditorAction = ActionFactory.NEXT_EDITOR.create(window);
+ register(nextEditorAction);
+ prevEditorAction = ActionFactory.PREVIOUS_EDITOR.create(window);
+ register(prevEditorAction);
+ ActionFactory.linkCycleActionPair(nextEditorAction, prevEditorAction);
+
+ nextPartAction = ActionFactory.NEXT_PART.create(window);
+ register(nextPartAction);
+ prevPartAction = ActionFactory.PREVIOUS_PART.create(window);
+ register(prevPartAction);
+ ActionFactory.linkCycleActionPair(nextPartAction, prevPartAction);
+
+ nextPerspectiveAction = ActionFactory.NEXT_PERSPECTIVE.create(window);
+ register(nextPerspectiveAction);
+ prevPerspectiveAction = ActionFactory.PREVIOUS_PERSPECTIVE.create(window);
+ register(prevPerspectiveAction);
+ ActionFactory.linkCycleActionPair(nextPerspectiveAction, prevPerspectiveAction);
+
+ activateEditorAction = ActionFactory.ACTIVATE_EDITOR.create(window);
+ register(activateEditorAction);
+
+ maximizePartAction = ActionFactory.MAXIMIZE.create(window);
+ register(maximizePartAction);
+
+ minimizePartAction = ActionFactory.MINIMIZE.create(window);
+ register(minimizePartAction);
+
+ switchToEditorAction = ActionFactory.SHOW_OPEN_EDITORS.create(window);
+ register(switchToEditorAction);
+
+ workbookEditorsAction = ActionFactory.SHOW_WORKBOOK_EDITORS.create(window);
+ register(workbookEditorsAction);
+
+ quickAccessAction = ActionFactory.SHOW_QUICK_ACCESS.create(window);
+
+ hideShowEditorAction = ActionFactory.SHOW_EDITOR.create(window);
+ register(hideShowEditorAction);
+ savePerspectiveAction = ActionFactory.SAVE_PERSPECTIVE.create(window);
+ register(savePerspectiveAction);
+ editActionSetAction = ActionFactory.EDIT_ACTION_SETS.create(window);
+ register(editActionSetAction);
+ lockToolBarAction = ActionFactory.LOCK_TOOL_BAR.create(window);
+ register(lockToolBarAction);
+ resetPerspectiveAction = ActionFactory.RESET_PERSPECTIVE.create(window);
+ register(resetPerspectiveAction);
+ closePerspAction = ActionFactory.CLOSE_PERSPECTIVE.create(window);
+ register(closePerspAction);
+ closeAllPerspsAction = ActionFactory.CLOSE_ALL_PERSPECTIVES.create(window);
+ register(closeAllPerspsAction);
+
+ forwardHistoryAction = ActionFactory.FORWARD_HISTORY.create(window);
+ register(forwardHistoryAction);
+
+ backwardHistoryAction = ActionFactory.BACKWARD_HISTORY.create(window);
+ register(backwardHistoryAction);
+
+ quitAction = ActionFactory.QUIT.create(window);
+ register(quitAction);
+
+ goIntoAction = ActionFactory.GO_INTO.create(window);
+ register(goIntoAction);
+
+ backAction = ActionFactory.BACK.create(window);
+ register(backAction);
+
+ forwardAction = ActionFactory.FORWARD.create(window);
+ register(forwardAction);
+
+ upAction = ActionFactory.UP.create(window);
+ register(upAction);
+
+ nextAction = ActionFactory.NEXT.create(window);
+ nextAction.setImageDescriptor(IDEInternalWorkbenchImages.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV));
+ register(nextAction);
+
+ previousAction = ActionFactory.PREVIOUS.create(window);
+ previousAction.setImageDescriptor(IDEInternalWorkbenchImages.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV));
+ register(previousAction);
+
+ if (window.getWorkbench().getIntroManager().hasIntro()) {
+ introAction = ActionFactory.INTRO.create(window);
+ register(introAction);
+ }
+
+ String showInQuickMenuId = IWorkbenchCommandConstants.NAVIGATE_SHOW_IN_QUICK_MENU;
+ showInQuickMenu = new QuickMenuAction(showInQuickMenuId) {
+ @Override
+ protected void fillMenu(IMenuManager menu) {
+ menu.add(ContributionItemFactory.VIEWS_SHOW_IN.create(window));
+ }
+ };
+ register(showInQuickMenu);
+
+ final String newQuickMenuId = "org.eclipse.ui.file.newQuickMenu"; //$NON-NLS-1$
+ newQuickMenu = new QuickMenuAction(newQuickMenuId) {
+ @Override
+ protected void fillMenu(IMenuManager menu) {
+ menu.add(new NewWizardMenu(window));
+ }
+ };
+ register(newQuickMenu);
+
+ }
+
+ /**
+ * Creates the feature-dependent actions for the menu bar.
+ */
+ @SuppressWarnings("deprecation")
+ private void makeFeatureDependentActions(IWorkbenchWindow window) {
+ AboutInfo[] infos = null;
+
+ IPreferenceStore prefs = IDEWorkbenchPlugin.getDefault().getPreferenceStore();
+
+ // Optimization: avoid obtaining the about infos if the platform state is
+ // unchanged from last time. See bug 75130 for details.
+ String stateKey = "platformState"; //$NON-NLS-1$
+ String prevState = prefs.getString(stateKey);
+ String currentState = String.valueOf(Platform.getStateStamp());
+ boolean sameState = currentState.equals(prevState);
+ if (!sameState) {
+ prefs.putValue(stateKey, currentState);
+ }
+
+ // See if a welcome page is specified.
+ // Optimization: if welcome pages were found on a previous run, then just add the action.
+ String quickStartKey = IDEActionFactory.QUICK_START.getId();
+ String showQuickStart = prefs.getString(quickStartKey);
+ if (sameState && "true".equals(showQuickStart)) { //$NON-NLS-1$
+ quickStartAction = IDEActionFactory.QUICK_START.create(window);
+ register(quickStartAction);
+ } else if (sameState && "false".equals(showQuickStart)) { //$NON-NLS-1$
+ // do nothing
+ } else {
+ // do the work
+ infos = IDEWorkbenchPlugin.getDefault().getFeatureInfos();
+ boolean found = hasWelcomePage(infos);
+ prefs.setValue(quickStartKey, String.valueOf(found));
+ if (found) {
+ quickStartAction = IDEActionFactory.QUICK_START.create(window);
+ register(quickStartAction);
+ }
+ }
+
+ // See if a tips and tricks page is specified.
+ // Optimization: if tips and tricks were found on a previous run, then just add the action.
+ String tipsAndTricksKey = IDEActionFactory.TIPS_AND_TRICKS.getId();
+ String showTipsAndTricks = prefs.getString(tipsAndTricksKey);
+ if (sameState && "true".equals(showTipsAndTricks)) { //$NON-NLS-1$
+ tipsAndTricksAction = IDEActionFactory.TIPS_AND_TRICKS.create(window);
+ register(tipsAndTricksAction);
+ } else if (sameState && "false".equals(showTipsAndTricks)) { //$NON-NLS-1$
+ // do nothing
+ } else {
+ // do the work
+ if (infos == null) {
+ infos = IDEWorkbenchPlugin.getDefault().getFeatureInfos();
+ }
+ boolean found = hasTipsAndTricks(infos);
+ prefs.setValue(tipsAndTricksKey, String.valueOf(found));
+ if (found) {
+ tipsAndTricksAction = IDEActionFactory.TIPS_AND_TRICKS.create(window);
+ register(tipsAndTricksAction);
+ }
+ }
+ }
+
+ /**
+ * Returns whether any of the given infos have a welcome page.
+ *
+ * @param infos the infos
+ * @return <code>true</code> if a welcome page was found, <code>false</code> if not
+ */
+ private boolean hasWelcomePage(AboutInfo[] infos) {
+ for (int i = 0; i < infos.length; i++) {
+ if (infos[i].getWelcomePageURL() != null) { return true; }
+ }
+ return false;
+ }
+
+ /**
+ * Returns whether any of the given infos have tips and tricks.
+ *
+ * @param infos the infos
+ * @return <code>true</code> if tips and tricks were found, <code>false</code> if not
+ */
+ private boolean hasTipsAndTricks(AboutInfo[] infos) {
+ for (int i = 0; i < infos.length; i++) {
+ if (infos[i].getTipsAndTricksHref() != null) { return true; }
+ }
+ return false;
+ }
+
+ /**
+ * Update the pin action's tool bar
+ */
+ void updatePinActionToolbar() {
+
+ ICoolBarManager coolBarManager = getActionBarConfigurer().getCoolBarManager();
+ IContributionItem cbItem = coolBarManager.find(IWorkbenchActionConstants.TOOLBAR_NAVIGATE);
+ if (!(cbItem instanceof IToolBarContributionItem)) {
+ // This should not happen
+ IDEWorkbenchPlugin.log("Navigation toolbar contribution item is missing"); //$NON-NLS-1$
+ return;
+ }
+ IToolBarContributionItem toolBarItem = (IToolBarContributionItem)cbItem;
+ IToolBarManager toolBarManager = toolBarItem.getToolBarManager();
+ if (toolBarManager == null) {
+ // error if this happens, navigation toolbar assumed to always exist
+ IDEWorkbenchPlugin.log("Navigate toolbar is missing"); //$NON-NLS-1$
+ return;
+ }
+
+ toolBarManager.update(false);
+ toolBarItem.update(ICoolBarManager.SIZE);
+ }
+
+ private IContributionItem getPinEditorItem() {
+ return ContributionItemFactory.PIN_EDITOR.create(window);
+ }
+
+ private IContributionItem getCutItem() {
+ return getItem( ActionFactory.CUT.getId(), ActionFactory.CUT.getCommandId(), ISharedImages.IMG_TOOL_CUT, ISharedImages.IMG_TOOL_CUT_DISABLED,
+ WorkbenchMessages.Workbench_cut, WorkbenchMessages.Workbench_cutToolTip, null);
+ }
+
+ private IContributionItem getCopyItem() {
+ return getItem( ActionFactory.COPY.getId(), ActionFactory.COPY.getCommandId(), ISharedImages.IMG_TOOL_COPY, ISharedImages.IMG_TOOL_COPY_DISABLED,
+ WorkbenchMessages.Workbench_copy, WorkbenchMessages.Workbench_copyToolTip, null);
+ }
+
+ private IContributionItem getPasteItem() {
+ return getItem( ActionFactory.PASTE.getId(), ActionFactory.PASTE.getCommandId(), ISharedImages.IMG_TOOL_PASTE, ISharedImages.IMG_TOOL_PASTE_DISABLED,
+ WorkbenchMessages.Workbench_paste, WorkbenchMessages.Workbench_pasteToolTip, null);
+ }
+
+ private IContributionItem getPrintItem() {
+ return getItem( ActionFactory.PRINT.getId(), ActionFactory.PRINT.getCommandId(), ISharedImages.IMG_ETOOL_PRINT_EDIT,
+ ISharedImages.IMG_ETOOL_PRINT_EDIT_DISABLED, WorkbenchMessages.Workbench_print, WorkbenchMessages.Workbench_printToolTip, null);
+ }
+
+ private IContributionItem getSelectAllItem() {
+ return getItem( ActionFactory.SELECT_ALL.getId(), ActionFactory.SELECT_ALL.getCommandId(), null, null, WorkbenchMessages.Workbench_selectAll,
+ WorkbenchMessages.Workbench_selectAllToolTip, null);
+ }
+
+ private IContributionItem getFindItem() {
+ return getItem( ActionFactory.FIND.getId(), ActionFactory.FIND.getCommandId(), null, null, WorkbenchMessages.Workbench_findReplace,
+ WorkbenchMessages.Workbench_findReplaceToolTip, null);
+ }
+
+ private IContributionItem getBookmarkItem() {
+ return getItem( IDEActionFactory.BOOKMARK.getId(), IDEActionFactory.BOOKMARK.getCommandId(), null, null, IDEWorkbenchMessages.Workbench_addBookmark,
+ IDEWorkbenchMessages.Workbench_addBookmarkToolTip, null);
+ }
+
+ private IContributionItem getTaskItem() {
+ return getItem( IDEActionFactory.ADD_TASK.getId(), IDEActionFactory.ADD_TASK.getCommandId(), null, null, IDEWorkbenchMessages.Workbench_addTask,
+ IDEWorkbenchMessages.Workbench_addTaskToolTip, null);
+ }
+
+ private IContributionItem getDeleteItem() {
+ return getItem( ActionFactory.DELETE.getId(), ActionFactory.DELETE.getCommandId(), ISharedImages.IMG_TOOL_DELETE,
+ ISharedImages.IMG_TOOL_DELETE_DISABLED, WorkbenchMessages.Workbench_delete, WorkbenchMessages.Workbench_deleteToolTip,
+ IWorkbenchHelpContextIds.DELETE_RETARGET_ACTION);
+ }
+
+ private IContributionItem getRevertItem() {
+ return getItem( ActionFactory.REVERT.getId(), ActionFactory.REVERT.getCommandId(), null, null, WorkbenchMessages.Workbench_revert,
+ WorkbenchMessages.Workbench_revertToolTip, null);
+ }
+
+ private IContributionItem getRefreshItem() {
+ return getItem( ActionFactory.REFRESH.getId(), ActionFactory.REFRESH.getCommandId(), null, null, WorkbenchMessages.Workbench_refresh,
+ WorkbenchMessages.Workbench_refreshToolTip, null);
+ }
+
+ private IContributionItem getPropertiesItem() {
+ return getItem( ActionFactory.PROPERTIES.getId(), ActionFactory.PROPERTIES.getCommandId(), null, null, WorkbenchMessages.Workbench_properties,
+ WorkbenchMessages.Workbench_propertiesToolTip, null);
+ }
+
+ private IContributionItem getMoveItem() {
+ return getItem( ActionFactory.MOVE.getId(), ActionFactory.MOVE.getCommandId(), null, null, WorkbenchMessages.Workbench_move,
+ WorkbenchMessages.Workbench_moveToolTip, null);
+ }
+
+ private IContributionItem getRenameItem() {
+ return getItem( ActionFactory.RENAME.getId(), ActionFactory.RENAME.getCommandId(), null, null, WorkbenchMessages.Workbench_rename,
+ WorkbenchMessages.Workbench_renameToolTip, null);
+ }
+
+ private IContributionItem getItem(String actionId, String commandId, String image, String disabledImage, String label, String tooltip, String helpContextId) {
+ ISharedImages sharedImages = getWindow().getWorkbench().getSharedImages();
+
+ IActionCommandMappingService acms = (IActionCommandMappingService)getWindow().getService(IActionCommandMappingService.class);
+ acms.map(actionId, commandId);
+
+ CommandContributionItemParameter commandParm = new CommandContributionItemParameter(getWindow(), actionId, commandId, null,
+ sharedImages.getImageDescriptor(image),
+ sharedImages.getImageDescriptor(disabledImage), null, label, null,
+ tooltip, CommandContributionItem.STYLE_PUSH, null, false);
+ return new CommandContributionItem(commandParm);
+ }
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchAdvisor.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchAdvisor.java
new file mode 100644
index 000000000..c27374f4f
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchAdvisor.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.application;
+
+import java.text.Collator;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.TrayDialog;
+import org.eclipse.jface.util.Policy;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.tcf.te.rcp.application.nls.Messages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.application.IWorkbenchConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+import org.eclipse.ui.internal.PluginActionBuilder;
+
+
+/**
+ * RCP: Workbench advisor implementation.
+ */
+@SuppressWarnings("restriction")
+public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
+
+ private final static String PERSPECTIVE_ID = "org.eclipse.tcf.te.ui.perspective"; //$NON-NLS-1$
+
+ private static ApplicationWorkbenchAdvisor workbenchAdvisor = null;
+
+ private Listener settingsChangeListener;
+
+ /**
+ * Creates a new workbench advisor instance.
+ */
+ public ApplicationWorkbenchAdvisor() {
+ super();
+ if (workbenchAdvisor != null) { throw new IllegalStateException(); }
+ workbenchAdvisor = this;
+
+ Listener closeListener = new Listener() {
+ public void handleEvent(Event event) {
+ boolean doExit = ApplicationWorkbenchWindowAdvisor.promptOnExit(null);
+ event.doit = doExit;
+ if (!doExit) event.type = SWT.None;
+ }
+ };
+ Display.getDefault().addListener(SWT.Close, closeListener);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize
+ */
+ @Override
+ public void initialize(IWorkbenchConfigurer configurer) {
+
+ PluginActionBuilder.setAllowIdeLogging(false);
+
+ // make sure we always save and restore workspace state
+ configurer.setSaveAndRestore(true);
+
+ // show Help button in JFace dialogs
+ TrayDialog.setDialogHelpAvailable(true);
+
+ Policy.setComparator(Collator.getInstance());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
+ */
+ @Override
+ public void preStartup() {
+
+ // Suspend background jobs while we startup
+ Job.getJobManager().suspend();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup()
+ */
+ @Override
+ public void postStartup() {
+ try {
+ initializeSettingsChangeListener();
+ Display.getCurrent().addListener(SWT.Settings, settingsChangeListener);
+ } finally {// Resume background jobs after we startup
+ Job.getJobManager().resume();
+ }
+ }
+
+ /**
+ * Initialize the listener for settings changes.
+ */
+ private void initializeSettingsChangeListener() {
+ settingsChangeListener = new Listener() {
+
+ boolean currentHighContrast = Display.getCurrent().getHighContrast();
+
+ public void handleEvent(org.eclipse.swt.widgets.Event event) {
+ if (Display.getCurrent().getHighContrast() == currentHighContrast) return;
+
+ currentHighContrast = !currentHighContrast;
+
+ // make sure they really want to do this
+ if (new MessageDialog(null, Messages.SystemSettingsChange_title, null, Messages.SystemSettingsChange_message,
+ MessageDialog.QUESTION, new String[] { Messages.SystemSettingsChange_yes,
+ Messages.SystemSettingsChange_no }, 1).open() == Window.OK) {
+ PlatformUI.getWorkbench().restart();
+ }
+ }
+ };
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#preShutdown()
+ */
+ @Override
+ public boolean preShutdown() {
+ Display.getCurrent().removeListener(SWT.Settings, settingsChangeListener);
+ return super.preShutdown();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
+ */
+ @Override
+ public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+ return new ApplicationWorkbenchWindowAdvisor(this, configurer);
+ }
+
+ /**
+ * Return true if the intro plugin is present and false otherwise.
+ *
+ * @return boolean
+ */
+ public boolean hasIntro() {
+ return getWorkbenchConfigurer().getWorkbench().getIntroManager().hasIntro();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchAdvisor
+ */
+ @Override
+ public String getInitialWindowPerspectiveId() {
+ return PERSPECTIVE_ID;
+ }
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchWindowAdvisor.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchWindowAdvisor.java
new file mode 100644
index 000000000..8fc36fba6
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/ApplicationWorkbenchWindowAdvisor.java
@@ -0,0 +1,394 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.application;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProduct;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.tcf.te.rcp.application.activator.UIPlugin;
+import org.eclipse.tcf.te.rcp.application.nls.Messages;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IPageListener;
+import org.eclipse.ui.IPartListener2;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartConstants;
+import org.eclipse.ui.IWorkbenchPartReference;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PerspectiveAdapter;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+import org.eclipse.ui.part.EditorInputTransfer;
+
+
+/**
+ * RCP: Workbench window advisor implementation.
+ */
+public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
+ // (boolean) Prompt for exit confirmation when last window closed.
+ public static final String EXIT_PROMPT_ON_CLOSE_LAST_WINDOW = "EXIT_PROMPT_ON_CLOSE_LAST_WINDOW"; //$NON-NLS-1$
+
+ private ApplicationWorkbenchAdvisor wbAdvisor;
+ private IEditorPart lastActiveEditor = null;
+ private IPerspectiveDescriptor lastPerspective = null;
+
+ private IWorkbenchPage lastActivePage;
+ private String lastEditorTitle = ""; //$NON-NLS-1$
+
+ private IPropertyListener editorPropertyListener = new IPropertyListener() {
+ @SuppressWarnings("synthetic-access")
+ public void propertyChanged(Object source, int propId) {
+ if (propId == IWorkbenchPartConstants.PROP_TITLE) {
+ if (lastActiveEditor != null) {
+ String newTitle = lastActiveEditor.getTitle();
+ if (!lastEditorTitle.equals(newTitle)) {
+ recomputeTitle();
+ }
+ }
+ }
+ }
+ };
+
+ private IAdaptable lastInput;
+ private IWorkbenchAction openPerspectiveAction;
+
+ /**
+ * Crates a new IDE workbench window advisor.
+ *
+ * @param wbAdvisor the workbench advisor
+ * @param configurer the window configurer
+ */
+ public ApplicationWorkbenchWindowAdvisor(ApplicationWorkbenchAdvisor wbAdvisor, IWorkbenchWindowConfigurer configurer) {
+ super(configurer);
+ this.wbAdvisor = wbAdvisor;
+ }
+
+ /**
+ * Returns the workbench.
+ *
+ * @return the workbench
+ */
+ private IWorkbench getWorkbench() {
+ return getWindowConfigurer().getWorkbenchConfigurer().getWorkbench();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
+ */
+ @Override
+ public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
+ return new ApplicationActionBarAdvisor(configurer);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowShellClose
+ */
+ @Override
+ public boolean preWindowShellClose() {
+ if (getWorkbench().getWorkbenchWindowCount() > 1) { return true; }
+ // the user has asked to close the last window, while will cause the
+ // workbench to close in due course - prompt the user for confirmation
+ return promptOnExit(getWindowConfigurer().getWindow().getShell());
+ }
+
+ /**
+ * Asks the user whether the workbench should really be closed. Only asks if the preference is enabled.
+ *
+ * @param parentShell the parent shell to use for the confirmation dialog
+ * @return <code>true</code> if OK to exit, <code>false</code> if the user canceled
+ */
+ static boolean promptOnExit(Shell parentShell) {
+ boolean promptOnExit = Platform.getPreferencesService().getBoolean(UIPlugin.getUniqueIdentifier(),
+ EXIT_PROMPT_ON_CLOSE_LAST_WINDOW,
+ false,
+ null);
+
+ if (promptOnExit) {
+ String message;
+
+ String productName = null;
+ IProduct product = Platform.getProduct();
+ if (product != null) {
+ productName = product.getName();
+ }
+ if (productName == null) {
+ message = Messages.PromptOnExitDialog_message0;
+ } else {
+ message = NLS.bind(Messages.PromptOnExitDialog_message1, productName);
+ }
+
+ MessageDialogWithToggle dlg = MessageDialogWithToggle.openOkCancelConfirm( parentShell, Messages.PromptOnExitDialog_shellTitle,
+ message,
+ Messages.PromptOnExitDialog_choice, false, null, null);
+ if (dlg.getReturnCode() != IDialogConstants.OK_ID) { return false; }
+ if (dlg.getToggleState()) {
+ InstanceScope.INSTANCE.getNode(UIPlugin.getUniqueIdentifier()).putBoolean(EXIT_PROMPT_ON_CLOSE_LAST_WINDOW, false);
+ }
+ }
+
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowOpen
+ */
+ @Override
+ public void preWindowOpen() {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+
+ // show the shortcut bar and progress indicator, which are hidden by
+ // default
+ configurer.setShowPerspectiveBar(true);
+ configurer.setShowFastViewBars(true);
+ configurer.setShowProgressIndicator(true);
+
+ // add the drag and drop support for the editor area
+ configurer.addEditorAreaTransfer(EditorInputTransfer.getInstance());
+ configurer.addEditorAreaTransfer(FileTransfer.getInstance());
+
+ hookTitleUpdateListeners(configurer);
+ }
+
+ /**
+ * Hooks the listeners needed on the window
+ *
+ * @param configurer
+ */
+ @SuppressWarnings("synthetic-access")
+ private void hookTitleUpdateListeners(IWorkbenchWindowConfigurer configurer) {
+ // hook up the listeners to update the window title
+ configurer.getWindow().addPageListener(new IPageListener() {
+ public void pageActivated(IWorkbenchPage page) {
+ updateTitle(false);
+ }
+
+ public void pageClosed(IWorkbenchPage page) {
+ updateTitle(false);
+ }
+
+ public void pageOpened(IWorkbenchPage page) {
+ // do nothing
+ }
+ });
+ configurer.getWindow().addPerspectiveListener(new PerspectiveAdapter() {
+ @Override
+ public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ updateTitle(false);
+ }
+
+ @Override
+ public void perspectiveSavedAs(IWorkbenchPage page, IPerspectiveDescriptor oldPerspective, IPerspectiveDescriptor newPerspective) {
+ updateTitle(false);
+ }
+
+ @Override
+ public void perspectiveDeactivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ updateTitle(false);
+ }
+ });
+ configurer.getWindow().getPartService().addPartListener(new IPartListener2() {
+ public void partActivated(IWorkbenchPartReference ref) {
+ if (ref instanceof IEditorReference) {
+ updateTitle(false);
+ }
+ }
+
+ public void partBroughtToTop(IWorkbenchPartReference ref) {
+ if (ref instanceof IEditorReference) {
+ updateTitle(false);
+ }
+ }
+
+ public void partClosed(IWorkbenchPartReference ref) {
+ updateTitle(false);
+ }
+
+ public void partDeactivated(IWorkbenchPartReference ref) {
+ // do nothing
+ }
+
+ public void partOpened(IWorkbenchPartReference ref) {
+ // do nothing
+ }
+
+ public void partHidden(IWorkbenchPartReference ref) {
+ if (ref.getPart(false) == lastActiveEditor && lastActiveEditor != null) {
+ updateTitle(true);
+ }
+ }
+
+ public void partVisible(IWorkbenchPartReference ref) {
+ if (ref.getPart(false) == lastActiveEditor && lastActiveEditor != null) {
+ updateTitle(false);
+ }
+ }
+
+ public void partInputChanged(IWorkbenchPartReference ref) {
+ // do nothing
+ }
+ });
+ }
+
+ private String computeTitle() {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ IWorkbenchPage currentPage = configurer.getWindow().getActivePage();
+ IEditorPart activeEditor = null;
+ if (currentPage != null) {
+ activeEditor = lastActiveEditor;
+ }
+
+ String title = null;
+ IProduct product = Platform.getProduct();
+ if (product != null) {
+ title = product.getName();
+ }
+ if (title == null) {
+ title = ""; //$NON-NLS-1$
+ }
+
+ if (currentPage != null) {
+ if (activeEditor != null) {
+ lastEditorTitle = activeEditor.getTitleToolTip();
+ title = NLS.bind("{0} - {1}", lastEditorTitle, title); //$NON-NLS-1$
+ }
+ IPerspectiveDescriptor persp = currentPage.getPerspective();
+ String label = ""; //$NON-NLS-1$
+ if (persp != null) {
+ label = persp.getLabel();
+ }
+ IAdaptable input = currentPage.getInput();
+ if (input != null && !input.equals(wbAdvisor.getDefaultPageInput())) {
+ label = currentPage.getLabel();
+ }
+ if (label != null && !label.equals("")) { //$NON-NLS-1$
+ title = NLS.bind("{0} - {1}", label, title); //$NON-NLS-1$
+ }
+ }
+
+ return title;
+ }
+
+ private void recomputeTitle() {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ String oldTitle = configurer.getTitle();
+ String newTitle = computeTitle();
+ if (!newTitle.equals(oldTitle)) {
+ configurer.setTitle(newTitle);
+ }
+ }
+
+ /**
+ * Updates the window title. Format will be: [pageInput -] [currentPerspective -] [editorInput -] [workspaceLocation
+ * -] productName
+ *
+ * @param editorHidden TODO
+ */
+ private void updateTitle(boolean editorHidden) {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ IWorkbenchWindow window = configurer.getWindow();
+ IEditorPart activeEditor = null;
+ IWorkbenchPage currentPage = window.getActivePage();
+ IPerspectiveDescriptor persp = null;
+ IAdaptable input = null;
+
+ if (currentPage != null) {
+ activeEditor = currentPage.getActiveEditor();
+ persp = currentPage.getPerspective();
+ input = currentPage.getInput();
+ }
+
+ if (editorHidden) {
+ activeEditor = null;
+ }
+
+ // Nothing to do if the editor hasn't changed
+ if (activeEditor == lastActiveEditor && currentPage == lastActivePage && persp == lastPerspective && input == lastInput) { return; }
+
+ if (lastActiveEditor != null) {
+ lastActiveEditor.removePropertyListener(editorPropertyListener);
+ }
+
+ lastActiveEditor = activeEditor;
+ lastActivePage = currentPage;
+ lastPerspective = persp;
+ lastInput = input;
+
+ if (activeEditor != null) {
+ activeEditor.addPropertyListener(editorPropertyListener);
+ }
+
+ recomputeTitle();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#createEmptyWindowContents(org.eclipse.ui.application.IWorkbenchWindowConfigurer,
+ * org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public Control createEmptyWindowContents(Composite parent) {
+ final IWorkbenchWindow window = getWindowConfigurer().getWindow();
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+ Display display = composite.getDisplay();
+ Color bgCol = display.getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
+ composite.setBackground(bgCol);
+ Label label = new Label(composite, SWT.WRAP);
+ label.setForeground(display.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
+ label.setBackground(bgCol);
+ label.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
+ String msg = Messages.ApplicationWorkbenchAdvisor_noPerspective;
+ label.setText(msg);
+ ToolBarManager toolBarManager = new ToolBarManager();
+ // TODO: should obtain the open perspective action from ActionFactory
+ openPerspectiveAction = ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window);
+ toolBarManager.add(openPerspectiveAction);
+ ToolBar toolBar = toolBarManager.createControl(composite);
+ toolBar.setBackground(bgCol);
+ return composite;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#dispose()
+ */
+ @Override
+ public void dispose() {
+ if (openPerspectiveAction != null) {
+ openPerspectiveAction.dispose();
+ openPerspectiveAction = null;
+ }
+ super.dispose();
+ }
+
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/activator/UIPlugin.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/activator/UIPlugin.java
new file mode 100644
index 000000000..5cc503063
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/activator/UIPlugin.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.application.activator;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class UIPlugin extends AbstractUIPlugin {
+ // The shared instance
+ private static UIPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public UIPlugin() {
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static UIPlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Convenience method which returns the unique identifier of this plugin.
+ */
+ public static String getUniqueIdentifier() {
+ if (getDefault() != null && getDefault().getBundle() != null) {
+ return getDefault().getBundle().getSymbolicName();
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.java
new file mode 100644
index 000000000..0c30dad23
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.java
@@ -0,0 +1,47 @@
+/**
+ * Messages.java
+ * Created on Dec 05, 2010
+ *
+ * Copyright (c) 2010 Wind River Systems Inc.
+ *
+ * The right to copy, distribute, modify, or otherwise make use
+ * of this software may be licensed only pursuant to the terms
+ * of an applicable Wind River license agreement.
+ */
+package org.eclipse.tcf.te.rcp.application.nls;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Target Management product bundle externalized strings management.
+ *
+ * @author uwe.stieber@windriver.com
+ */
+public class Messages extends NLS {
+
+ // The plug-in resource bundle name
+ private static final String BUNDLE_NAME = "org.eclipse.tcf.te.rcp.internal.nls.Messages"; //$NON-NLS-1$
+
+ /**
+ * Static constructor.
+ */
+ static {
+ // Load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ // **** Declare externalized string id's down here *****
+
+ public static String SystemSettingsChange_title;
+ public static String SystemSettingsChange_message;
+ public static String SystemSettingsChange_yes;
+ public static String SystemSettingsChange_no;
+
+ public static String PromptOnExitDialog_shellTitle;
+ public static String PromptOnExitDialog_message0;
+ public static String PromptOnExitDialog_message1;
+ public static String PromptOnExitDialog_choice;
+
+ public static String ApplicationWorkbenchAdvisor_noPerspective;
+
+}
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.properties b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.properties
new file mode 100644
index 000000000..ca2af3f93
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp.application/src/org/eclipse/tcf/te/rcp/application/nls/Messages.properties
@@ -0,0 +1,16 @@
+#
+# org.eclipse.tcf.te.rcp.application
+# Externalized Strings.
+#
+
+SystemSettingsChange_title = High Contrast Mode Change
+SystemSettingsChange_message = The high contrast mode has changed. You will need to restart the workbench to complete the change. Restart now?
+SystemSettingsChange_yes = Yes
+SystemSettingsChange_no = No
+
+PromptOnExitDialog_shellTitle = Confirm Exit
+PromptOnExitDialog_message0 = Exit application?
+PromptOnExitDialog_message1 = Exit {0}?
+PromptOnExitDialog_choice = &Always exit without prompt
+
+ApplicationWorkbenchAdvisor_noPerspective=No perspectives are open. To open a perspective, press this button:
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.classpath b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.project b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.project
new file mode 100644
index 000000000..d9ec31760
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.tcf.te.rcp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.core.prefs b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..3f2f7b843
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,362 @@
+#Fri Oct 07 16:15:09 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+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.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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=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.fatalOptionalError=enabled
+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.includeNullInfoFromAsserts=enabled
+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.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=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.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+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=warning
+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.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+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.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=100
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=4
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=4
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=true
+org.eclipse.jdt.core.formatter.lineSplit=100
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.ui.prefs b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..f38d126b9
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Fri Oct 07 16:15:09 CEST 2011
+eclipse.preferences.version=1
+formatter_profile=_Target Explorer Java STD
+formatter_settings_version=12
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/META-INF/MANIFEST.MF b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..6901a91cb
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.tcf.te.rcp;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.tcf.te.rcp.activator.ProductBundleActivator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
+ org.eclipse.ui;bundle-version="3.7.0",
+ org.eclipse.ui.ide;bundle-version="3.7.0",
+ org.eclipse.tcf.te.rcp.application;bundle-version="1.0.0"
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/build.properties b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/build.properties
new file mode 100644
index 000000000..0fff6fa34
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml,\
+ plugin_customization.ini
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.properties b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.properties
new file mode 100644
index 000000000..f41066df7
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.properties
@@ -0,0 +1,164 @@
+##################################################################################
+# Copyright (c) 2011 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:
+# Wind River Systems - initial API and implementation
+##################################################################################
+
+pluginName = Target Explorer, RCP
+providerName = Eclipse.org - TCF
+
+productName = Target Explorer
+appName = Target Explorer
+productBlurb = Target Explorer\n\
+\n\
+Version: 1.0.0\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2011 Wind River Systems, Inc. and others. All rights reserved.\n\
+Visit http://www.eclipse.org/dsdp\n\
+\n\
+Powered by Eclipse\n\
+\n\
+Version: 3.6.2 BUILDIDTEMPLATE\n\
+\n\
+(c) Copyright Eclipse contributors and others 2000, 2011. All rights reserved.\n\
+Visit http://www.eclipse.org/platform
+
+productIntroTitle = Welcome to Target Explorer
+productIntroBrandingText = Eclipse.org
+productIntroThemeNameWindriver = Target Explorer Welcome
+
+# "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\
+April 14, 2010\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\
+ - 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/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.xml b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.xml
new file mode 100644
index 000000000..d77f13290
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+<!-- Eclipse product contributions -->
+ <extension id="TargetExplorer" point="org.eclipse.core.runtime.products">
+ <product
+ application="org.eclipse.tcf.te.rcp.TargetExplorer"
+ description="%productBlurb"
+ name="%productName">
+ <property name="aboutText" value="%productBlurb"/>
+ <property name="appName" value="%productName"/>
+ <property
+ name="preferenceCustomization"
+ value="plugin_customization.ini"/>
+ <property
+ name="startupForegroundColor"
+ value="000000"/>
+ <property
+ name="startupMessageRect"
+ value="5,214,157,15"/>
+ <property
+ name="startupProgressRect"
+ value="0,232,315,10"/>
+ <property
+ name="introTitle"
+ value="%productIntroTitle"/>
+ <property
+ name="introBrandingImageText"
+ value="%productIntroBrandingText"/>
+ </product>
+ </extension>
+
+<!-- Bind our product to the universal intro for now -->
+ <extension
+ point="org.eclipse.ui.intro">
+ <introProductBinding
+ introId="org.eclipse.ui.intro.universal"
+ productId="org.eclipse.tcf.te.rcp.TargetExplorer">
+ </introProductBinding>
+ </extension> -->
+
+<!-- Application contribution -->
+ <extension id="TargetExplorer" point="org.eclipse.core.runtime.applications">
+ <application
+ cardinality="singleton-global"
+ thread="main"
+ visible="true">
+ <run class="org.eclipse.tcf.te.rcp.application.Application"/>
+ </application>
+ </extension>
+
+</plugin>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin_customization.ini b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin_customization.ini
new file mode 100644
index 000000000..1b8b92932
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/plugin_customization.ini
@@ -0,0 +1,65 @@
+# sets default values for plug-in-specific preferences
+# This file does not need to be translated.
+
+# The following two defaults are also overwritten by the eclipse plugin_customization
+# Not clear why they would not make the default so that they don't have to override it though..
+# new-style tabs by default
+org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false
+# put the perspective switcher on the top right
+org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
+
+# enable progress bar on splash screen
+org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = true
+
+# refresh resources on every startup, is is a performance issue (Bug 1052). Don't change default.
+
+# disable showing tasks view on build errors or warnings
+org.eclipse.ui.workbench/SHOW_TASKS_ON_BUILD=false
+
+# set default perspective to the Target Management perspective
+org.eclipse.ui/defaultPerspectiveId=org.eclipse.tm.te.ui.perspective
+
+# always switch to defined perspective for launches
+org.eclipse.debug.ui/org.eclipse.debug.ui.switch_to_perspective=always
+org.eclipse.debug.ui/org.eclipse.debug.ui.switch_perspective_on_suspend=never
+
+# make eclipse remove terminated debug-sessions from the debug-view
+org.eclipse.debug.ui/org.eclipse.debug.ui.auto_remove_old_launches=true
+
+# Switch of console activation on output event on stdout
+org.eclipse.debug.ui/DEBUG.consoleOpenOnOut=false
+
+# Turn off automatic activating of workbench window when a breakpoint is hit by the debugger.
+org.eclipse.debug.ui/org.eclipse.debug.ui.activate_workbench = false
+
+#per derfault limit editors, so we can pin the devcenter
+org.eclipse.ui.workbench/REUSE_OPEN_EDITORS_BOOLEAN=true
+org.eclipse.ui.workbench/REUSE_OPEN_EDITORS=30
+
+# show the heap status
+org.eclipse.ui/SHOW_MEMORY_MONITOR=true
+
+# ======= Intro-related preferences (since Eclipse 3.2) =======
+
+#Initially hide intro
+org.eclipse.ui/showIntro = false
+
+# Root page links to show in the Universal Welcome
+org.eclipse.ui.intro.universal/INTRO_ROOT_PAGES = overview,tutorials,whatsnew
+
+# Initial page layout of the Universal Welcome
+org.eclipse.ui.intro.universal/INTRO_DATA = product:introContent/introData.xml
+
+# Initial page to show
+org.eclipse.ui.intro/INTRO_START_PAGE = overview
+
+# context launches have been disabled
+# because they can only be associated with resources and not
+# with arbitrary objects like build targets.
+# https://bugs.eclipse.org/bugs/show_bug.cgi?id=181204
+# once this bug is resolved, reinvestigate the setting!
+# Michael.Scharf@windriver.com 2007-05-30
+org.eclipse.debug.ui/org.eclipse.debug.ui.UseContextualLaunch=false
+
+# Hide detail pane in Breakpoints view
+org.eclipse.debug.ui/Breakpoints.detail.orientation=Variables.detail.orientation.hidden
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/pom.xml b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/pom.xml
new file mode 100644
index 000000000..74a104387
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.tcf</groupId>
+ <artifactId>tcf-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+
+ <version>1.0.0.qualifier</version>
+ <artifactId>org.eclipse.tcf.te.rcp</artifactId>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer.product b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer.product
new file mode 100644
index 000000000..1cdab4b85
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer.product
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="%productName" uid="org.eclipse.tcf.te.rcp.targetexplorer" id="org.eclipse.tcf.te.rcp.TargetExplorer" application="org.eclipse.tcf.te.rcp.TargetExplorer" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
+
+ <aboutInfo>
+ <text>
+ %productBlurb
+ </text>
+ </aboutInfo>
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <vmArgs>-Xmx512M
+-XX:MaxPermSize=128m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <splash
+ startupProgressRect="0,232,315,10"
+ startupMessageRect="5,214,157,15"
+ startupForegroundColor="000000" />
+ <launcher name="targetExplorer">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</linux>
+ <solaris include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</solaris>
+ <windows include="true">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</windows>
+ </vm>
+
+ <license>
+ <url>%licenseURL</url>
+ <text>
+ %license
+ </text>
+ </license>
+
+ <plugins>
+ <plugin id="com.ibm.icu"/>
+ <plugin id="org.eclipse.core.commands"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.databinding"/>
+ <plugin id="org.eclipse.core.databinding.observable"/>
+ <plugin id="org.eclipse.core.databinding.property"/>
+ <plugin id="org.eclipse.core.expressions"/>
+ <plugin id="org.eclipse.core.filesystem"/>
+ <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.p2.core"/>
+ <plugin id="org.eclipse.equinox.p2.engine"/>
+ <plugin id="org.eclipse.equinox.p2.metadata"/>
+ <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
+ <plugin id="org.eclipse.equinox.p2.repository"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.security"/>
+ <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.equinox.security.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.help"/>
+ <plugin id="org.eclipse.jface"/>
+ <plugin id="org.eclipse.jface.databinding"/>
+ <plugin id="org.eclipse.jface.text"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.swt"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.text"/>
+ <plugin id="org.eclipse.tcf.te.rcp"/>
+ <plugin id="org.eclipse.tcf.te.rcp.application"/>
+ <plugin id="org.eclipse.tcf.te.runtime"/>
+ <plugin id="org.eclipse.tcf.te.ui"/>
+ <plugin id="org.eclipse.tcf.te.ui.forms"/>
+ <plugin id="org.eclipse.tcf.te.ui.swt"/>
+ <plugin id="org.eclipse.tcf.te.ui.views"/>
+ <plugin id="org.eclipse.ui"/>
+ <plugin id="org.eclipse.ui.forms"/>
+ <plugin id="org.eclipse.ui.ide"/>
+ <plugin id="org.eclipse.ui.navigator"/>
+ <plugin id="org.eclipse.ui.win32" fragment="true"/>
+ <plugin id="org.eclipse.ui.workbench"/>
+ </plugins>
+
+
+</product>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer_TCF.product b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer_TCF.product
new file mode 100644
index 000000000..8ee85a6b5
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/products/TargetExplorer_TCF.product
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="%productName" uid="org.eclipse.tcf.te.rcp.targetexplorer.tcf" id="org.eclipse.tcf.te.rcp.TargetExplorer" application="org.eclipse.tcf.te.rcp.TargetExplorer" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
+
+ <aboutInfo>
+ <text>
+ %productBlurb
+ </text>
+ </aboutInfo>
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <vmArgs>-Xmx512M
+-XX:MaxPermSize=128m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <splash
+ startupProgressRect="0,232,315,10"
+ startupMessageRect="5,214,157,15"
+ startupForegroundColor="000000" />
+ <launcher name="targetExplorer">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</linux>
+ <solaris include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</solaris>
+ <windows include="true">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5</windows>
+ </vm>
+
+ <license>
+ <url>%licenseURL</url>
+ <text>
+ %license
+ </text>
+ </license>
+
+ <plugins>
+ <plugin id="com.ibm.icu"/>
+ <plugin id="org.eclipse.core.commands"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.databinding"/>
+ <plugin id="org.eclipse.core.databinding.observable"/>
+ <plugin id="org.eclipse.core.databinding.property"/>
+ <plugin id="org.eclipse.core.expressions"/>
+ <plugin id="org.eclipse.core.filesystem"/>
+ <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.p2.core"/>
+ <plugin id="org.eclipse.equinox.p2.engine"/>
+ <plugin id="org.eclipse.equinox.p2.metadata"/>
+ <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
+ <plugin id="org.eclipse.equinox.p2.repository"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.security"/>
+ <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.equinox.security.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.help"/>
+ <plugin id="org.eclipse.jface"/>
+ <plugin id="org.eclipse.jface.databinding"/>
+ <plugin id="org.eclipse.jface.text"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.swt"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.text"/>
+ <plugin id="org.eclipse.tcf.core"/>
+ <plugin id="org.eclipse.tcf.te.rcp"/>
+ <plugin id="org.eclipse.tcf.te.rcp.application"/>
+ <plugin id="org.eclipse.tcf.te.runtime"/>
+ <plugin id="org.eclipse.tcf.te.runtime.persistence"/>
+ <plugin id="org.eclipse.tcf.te.tcf.core"/>
+ <plugin id="org.eclipse.tcf.te.tcf.filesystem"/>
+ <plugin id="org.eclipse.tcf.te.tcf.locator"/>
+ <plugin id="org.eclipse.tcf.te.tcf.ui"/>
+ <plugin id="org.eclipse.tcf.te.ui"/>
+ <plugin id="org.eclipse.tcf.te.ui.controls"/>
+ <plugin id="org.eclipse.tcf.te.ui.forms"/>
+ <plugin id="org.eclipse.tcf.te.ui.swt"/>
+ <plugin id="org.eclipse.tcf.te.ui.views"/>
+ <plugin id="org.eclipse.ui"/>
+ <plugin id="org.eclipse.ui.forms"/>
+ <plugin id="org.eclipse.ui.ide"/>
+ <plugin id="org.eclipse.ui.navigator"/>
+ <plugin id="org.eclipse.ui.win32" fragment="true"/>
+ <plugin id="org.eclipse.ui.workbench"/>
+ </plugins>
+
+
+</product>
diff --git a/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/src/org/eclipse/tcf/te/rcp/activator/ProductBundleActivator.java b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/src/org/eclipse/tcf/te/rcp/activator/ProductBundleActivator.java
new file mode 100644
index 000000000..18b1456d3
--- /dev/null
+++ b/target_explorer/experimental/plugins/org.eclipse.tcf.te.rcp/src/org/eclipse/tcf/te/rcp/activator/ProductBundleActivator.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.rcp.activator;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class ProductBundleActivator implements BundleActivator {
+ // The bundle context
+ private static BundleContext context;
+
+ /**
+ * Returns the bundle context
+ *
+ * @return the bundle context
+ */
+ public static BundleContext getContext() {
+ return context;
+ }
+
+ /**
+ * Convenience method which returns the unique identifier of this plugin.
+ */
+ public static String getUniqueIdentifier() {
+ if (getContext() != null && getContext().getBundle() != null) {
+ return getContext().getBundle().getSymbolicName();
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ ProductBundleActivator.context = bundleContext;
+ }
+
+ /* (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ ProductBundleActivator.context = null;
+ }
+}

Back to the top