Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 53657 Details for
Bug 157059
[launching] extensible launch options
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
newest patch
157059_10.txt (text/plain), 76.62 KB, created by
Michael Rennie
on 2006-11-10 16:46:30 EST
(
hide
)
Description:
newest patch
Filename:
MIME Type:
Creator:
Michael Rennie
Created:
2006-11-10 16:46:30 EST
Size:
76.62 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.launching >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.launching/plugin.xml,v >retrieving revision 1.62 >diff -u -r1.62 plugin.xml >--- plugin.xml 26 Oct 2006 20:12:01 -0000 1.62 >+++ plugin.xml 10 Nov 2006 19:10:15 -0000 >@@ -28,6 +28,7 @@ > point="org.eclipse.debug.core.launchConfigurationTypes"> > <launchConfigurationType > delegate="org.eclipse.jdt.launching.JavaLaunchDelegate" >+ delegateDescription="%localJavaApplicationDelegate.description" > delegateName="%localJavaApplicationDelegate.name" > id="org.eclipse.jdt.launching.localJavaApplication" > migrationDelegate="org.eclipse.jdt.internal.launching.JavaMigrationDelegate" >Index: plugin.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.launching/plugin.properties,v >retrieving revision 1.24 >diff -u -r1.24 plugin.properties >--- plugin.properties 26 Oct 2006 20:12:01 -0000 1.24 >+++ plugin.properties 10 Nov 2006 19:10:15 -0000 >@@ -11,9 +11,11 @@ > > localJavaApplication = Java Application > localJavaApplicationDelegate.name=Eclipse JDT Java Application Tooling >+localJavaApplicationDelegate.description=The Eclipse JDT Java Application Tooling provides the capability to run and debug local Java applications. > pluginName = Java Development Tools Launching Support > remoteJavaApplication = Remote Java Application > remoteJavaApplicationDelegate.name=Eclipse JDT Java Remote Tooling >+remoteJavaApplicationDelegate.description=The Eclipse JDT Java Remote Tooling provides the capability to debug remotely running Java applications. > vmConnectors = VM Connectors > vmInstallTypes = VM Install Types > vmInstalls = VM Installs >@@ -28,6 +30,7 @@ > providerName=Eclipse.org > appletLabel= Java Applet > javaAppletDelegate.name=Eclipse JDT Java Applet Tooling >+javaAppletDelegate.description=The Eclipse JDT Java Applet Tooling provides the capability to run or debug Java applets. > > javaSourceLookupDirector.name= Java Source Locator > >#P org.eclipse.debug.core >Index: schema/launchDelegates.exsd >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/schema/launchDelegates.exsd,v >retrieving revision 1.14 >diff -u -r1.14 launchDelegates.exsd >--- schema/launchDelegates.exsd 28 Oct 2006 21:22:18 -0000 1.14 >+++ schema/launchDelegates.exsd 10 Nov 2006 19:10:19 -0000 >@@ -1,198 +1,212 @@ >-<?xml version='1.0' encoding='UTF-8'?> >-<!-- Schema file written by PDE --> >-<schema targetNamespace="org.eclipse.debug.core"> >-<annotation> >- <appInfo> >- <meta.schema plugin="org.eclipse.debug.core" id="launchDelegates" name="Launch Delegates"/> >- </appInfo> >- <documentation> >- This extension point provides a mechanism for contributing a launch delegate to an existing launch configuration type for one or more launch modes. Since launch modes are extensible, it may be neccessary to contribute additional launch delegates to an existing launch configuration type. Each launch delegate is contributed for a specific launch configuration type. A launch delegate supports one or more launch modes, and specifies a delegate responsible for the implementation of launching. >- </documentation> >- </annotation> >- >- <element name="extension"> >- <complexType> >- <sequence> >- <element ref="launchDelegate" minOccurs="1" maxOccurs="unbounded"/> >- </sequence> >- <attribute name="point" type="string" use="required"> >- <annotation> >- <documentation> >- a fully qualified identifier of the target extension point >- </documentation> >- </annotation> >- </attribute> >- <attribute name="id" type="string"> >- <annotation> >- <documentation> >- an optional identifier of the extension instance >- </documentation> >- </annotation> >- </attribute> >- <attribute name="name" type="string"> >- <annotation> >- <documentation> >- an optional name of the extension instance >- </documentation> >- </annotation> >- </attribute> >- </complexType> >- </element> >- >- <element name="launchDelegate"> >- <annotation> >- <appInfo> >- <meta.element labelAttribute="name"/> >- </appInfo> >- </annotation> >- <complexType> >- <sequence minOccurs="0" maxOccurs="unbounded"> >- <element ref="modeCombination" minOccurs="1" maxOccurs="unbounded"/> >- </sequence> >- <attribute name="id" type="string" use="required"> >- <annotation> >- <documentation> >- specifies a unique identifier for this launch delegate. >- </documentation> >- </annotation> >- </attribute> >- <attribute name="name" type="string"> >- <annotation> >- <documentation> >- A human readable name for this delegate. This attribute was added in the 3.3. release. >-<p> >-An example of a 'human readable name' would be something like (in the case of the default java application delegate): Eclipse JDT Java Tooling >-</p> >-<p> >-<strong>EXPERIMENTAL</strong>. This attribute has been added as >-part of a work in progress. There is no guarantee that this API will >-remain unchanged during the 3.3 release cycle. Please do not use this API >-without consulting with the Platform/Debug team. >-</p> >- </documentation> >- <appInfo> >- <meta.attribute translatable="true"/> >- </appInfo> >- </annotation> >- </attribute> >- <attribute name="delegate" type="string" use="required"> >- <annotation> >- <documentation> >- specifies the fully qualified name of the Java class that implements <code>ILaunchConfigurationDelegate</code>. >-Launch configuration instances of this delegate's type will delegate to instances of this class to perform launching. >- </documentation> >- <appInfo> >- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILaunchConfigurationDelegate"/> >- </appInfo> >- </annotation> >- </attribute> >- <attribute name="modes" type="string"> >- <annotation> >- <documentation> >- A comma-separated list of the launch modes this delegate supports. >- >-<p> >-New in 3.3: the comma seperated list of modes provided here, instead of via the modeCombination sub elements, will result in a set being created for each mode individually with no other combinations. >-</p> >- </documentation> >- </annotation> >- </attribute> >- <attribute name="type" type="string"> >- <annotation> >- <documentation> >- identifier of an existing launch configuration type that this launch delegate is capable of launching. >- </documentation> >- </annotation> >- </attribute> >- <attribute name="sourcePathComputerId" type="string"> >- <annotation> >- <documentation> >- The unique identifier of a sourcePathComputer extension that is used to compute a default source lookup path for launch configurations of this type. Since 3.1, this attribute cab be specified in a launchDelegate extension when unspecified in the assocaited launchConfigurationType extension. Only one source path computer can be specified per launch configuration type. >- </documentation> >- </annotation> >- </attribute> >- <attribute name="sourceLocatorId" type="string"> >- <annotation> >- <documentation> >- The unique identifier of a sourceLocator extension that is used to create the source locator for sessions launched using launch configurations of this type. Since 3.1, this attribute can be specified in a launchDelegate extension when unspecified in the assocaited launchConfigurationType extension. Only one source locater can be specified per launch configuration type. >- </documentation> >- </annotation> >- </attribute> >- </complexType> >- </element> >- >- <element name="modeCombination"> >- <annotation> >- <documentation> >- This element represents a collection of mode combinations that this delegate can launch. Each modeCombination attribute is a comma seperated list specifying a combination of modes the delegate supports. For example, a delegate that supports debugging, profiling and code coverage might have a modeCombination of consisting of debug, profile, and coverage. This element was added in the 3.3 release. EXPERIMENTAL. >- </documentation> >- </annotation> >- <complexType> >- <attribute name="modes" type="string" use="required"> >- <annotation> >- <documentation> >- a comma seperated list specifying a combination of modes the associated delegate can launch. This attribute was added in the 3.3 release. EXPERIMENTAL. >- </documentation> >- </annotation> >- </attribute> >- </complexType> >- </element> >- >- <annotation> >- <appInfo> >- <meta.section type="since"/> >- </appInfo> >- <documentation> >- 3.0 >- </documentation> >- </annotation> >- >- <annotation> >- <appInfo> >- <meta.section type="examples"/> >- </appInfo> >- <documentation> >- The following is an example of a launch delegate extension point: >- >-<p> >-<pre> >- <extension point="org.eclipse.debug.core.launchDelegates"> >- <launchDelegate >- id="com.example.ExampleProfileDelegate" >- delegate="com.example.ExampleProfileDelegate" >- type="org.eclipse.jdt.launching.localJavaApplication" >- name="Eclipse JDT Java Profile Tooling"> >- </launchDelegate> >- <modeCombination modes="run, profile"></modeCombination> >- <modeCombination modes="debug, profile, coverage"></modeCombination> >- </extension> >-</pre> >-</p> >- >-In the example above, the specified launch delegate is contributed to launch Java applications in profile mode. The delegate supports mixed mode launching. The delegate supports profiling when launching in run or debug mode, with code coverage in debug mode only. >- </documentation> >- </annotation> >- >- <annotation> >- <appInfo> >- <meta.section type="apiInfo"/> >- </appInfo> >- <documentation> >- Value of the attribute <b>delegate</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.debug.core.model.ILaunchConfigurationDelegate</b>. >- </documentation> >- </annotation> >- >- <annotation> >- <appInfo> >- <meta.section type="copyright"/> >- </appInfo> >- <documentation> >- Copyright (c) 2000, 2005 IBM Corporation and others.<br> >-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 >-<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> >- </documentation> >- </annotation> >- >-</schema> >+<?xml version='1.0' encoding='UTF-8'?> >+<!-- Schema file written by PDE --> >+<schema targetNamespace="org.eclipse.debug.core"> >+<annotation> >+ <appInfo> >+ <meta.schema plugin="org.eclipse.debug.core" id="launchDelegates" name="Launch Delegates"/> >+ </appInfo> >+ <documentation> >+ This extension point provides a mechanism for contributing a launch delegate to an existing launch configuration type for one or more launch modes. Since launch modes are extensible, it may be neccessary to contribute additional launch delegates to an existing launch configuration type. Each launch delegate is contributed for a specific launch configuration type. A launch delegate supports one or more launch modes, and specifies a delegate responsible for the implementation of launching. >+ </documentation> >+ </annotation> >+ >+ <element name="extension"> >+ <complexType> >+ <sequence> >+ <element ref="launchDelegate" minOccurs="1" maxOccurs="unbounded"/> >+ </sequence> >+ <attribute name="point" type="string" use="required"> >+ <annotation> >+ <documentation> >+ a fully qualified identifier of the target extension point >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="id" type="string"> >+ <annotation> >+ <documentation> >+ an optional identifier of the extension instance >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="name" type="string"> >+ <annotation> >+ <documentation> >+ an optional name of the extension instance >+ </documentation> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ >+ <element name="launchDelegate"> >+ <annotation> >+ <appInfo> >+ <meta.element labelAttribute="name"/> >+ </appInfo> >+ </annotation> >+ <complexType> >+ <sequence minOccurs="0" maxOccurs="unbounded"> >+ <element ref="modeCombination" minOccurs="1" maxOccurs="unbounded"/> >+ </sequence> >+ <attribute name="id" type="string" use="required"> >+ <annotation> >+ <documentation> >+ specifies a unique identifier for this launch delegate. >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="name" type="string"> >+ <annotation> >+ <documentation> >+ A human readable name for this delegate. This attribute was added in the 3.3. release. >+<p> >+An example of a 'human readable name' would be something like (in the case of the default java application delegate): Eclipse JDT Java Tooling >+</p> >+<p> >+<strong>EXPERIMENTAL</strong>. This attribute has been added as >+part of a work in progress. There is no guarantee that this API will >+remain unchanged during the 3.3 release cycle. Please do not use this API >+without consulting with the Platform/Debug team. >+</p> >+ </documentation> >+ <appInfo> >+ <meta.attribute translatable="true"/> >+ </appInfo> >+ </annotation> >+ </attribute> >+ <attribute name="delegate" type="string" use="required"> >+ <annotation> >+ <documentation> >+ specifies the fully qualified name of the Java class that implements <code>ILaunchConfigurationDelegate</code>. >+Launch configuration instances of this delegate's type will delegate to instances of this class to perform launching. >+ </documentation> >+ <appInfo> >+ <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILaunchConfigurationDelegate"/> >+ </appInfo> >+ </annotation> >+ </attribute> >+ <attribute name="modes" type="string"> >+ <annotation> >+ <documentation> >+ A comma-separated list of the launch modes this delegate supports. >+ >+<p> >+New in 3.3: the comma seperated list of modes provided here, instead of via the modeCombination sub elements, will result in a set being created for each mode individually with no other combinations. For example specifying: 'run,debug' will result in a set of two elements [[run], [debug]] (where run and debug are each in their own set). >+</p> >+<p> >+This attribute can be used in conjunction with modeCombination contributions. It is however, desirable to provide one or the other and not both (either a comma seperated listing in the modes attribute, or modeCombinations). Specifying 'run,debug' in the modes attribute is analogous to specifying two modeCombination contributions, one for 'run' and another for 'debug'. >+</p> >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="type" type="string"> >+ <annotation> >+ <documentation> >+ identifier of an existing launch configuration type that this launch delegate is capable of launching. >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="sourcePathComputerId" type="string"> >+ <annotation> >+ <documentation> >+ The unique identifier of a sourcePathComputer extension that is used to compute a default source lookup path for launch configurations of this type. Since 3.1, this attribute cab be specified in a launchDelegate extension when unspecified in the assocaited launchConfigurationType extension. Only one source path computer can be specified per launch configuration type. >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="sourceLocatorId" type="string"> >+ <annotation> >+ <documentation> >+ The unique identifier of a sourceLocator extension that is used to create the source locator for sessions launched using launch configurations of this type. Since 3.1, this attribute can be specified in a launchDelegate extension when unspecified in the assocaited launchConfigurationType extension. Only one source locater can be specified per launch configuration type. >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="delegateDescription" type="string"> >+ <annotation> >+ <documentation> >+ This attribute provides a description of this launch delegate i.e. what it does and what tooling it is assciated with. This attribute was added in the 3.3 release. EXPERIMENTAL. >+ </documentation> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ >+ <element name="modeCombination"> >+ <annotation> >+ <documentation> >+ This element represents a collection of mode combinations that this delegate can launch. Each modeCombination attribute is a comma seperated list specifying a combination of modes the delegate supports. For example, a delegate that supports debugging, profiling and code coverage might have a modeCombination of consisting of debug, profile, and coverage. This element was added in the 3.3 release. EXPERIMENTAL. >+ </documentation> >+ </annotation> >+ <complexType> >+ <attribute name="modes" type="string" use="required"> >+ <annotation> >+ <documentation> >+ a comma seperated list specifying a combination of modes the associated delegate can launch. This attribute was added in the 3.3 release. EXPERIMENTAL. >+ >+<p> >+Unlike the modes attribute of the main definition, this comma seperated listing is taken to be one set inclusively. For example: a modeCombination of 'profile,debug' would result in a single set of modes [[profile, debug]] and not a set with two distinct entries for each of profile and debug [[profile], [debug]] (unlike the other modes attribute from the main definition). >+</p> >+ </documentation> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ >+ <annotation> >+ <appInfo> >+ <meta.section type="since"/> >+ </appInfo> >+ <documentation> >+ 3.0 >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appInfo> >+ <meta.section type="examples"/> >+ </appInfo> >+ <documentation> >+ The following is an example of a launch delegate extension point: >+ >+<p> >+<pre> >+ <extension point="org.eclipse.debug.core.launchDelegates"> >+ <launchDelegate >+ id="com.example.ExampleProfileDelegate" >+ delegate="com.example.ExampleProfileDelegate" >+ type="org.eclipse.jdt.launching.localJavaApplication" >+ name="Eclipse JDT Java Profile Tooling"> >+ </launchDelegate> >+ <modeCombination modes="run, profile"></modeCombination> >+ <modeCombination modes="debug, profile, coverage"></modeCombination> >+ </extension> >+</pre> >+</p> >+ >+In the example above, the specified launch delegate is contributed to launch Java applications in profile mode. The delegate supports mixed mode launching. The delegate supports profiling when launching in run or debug mode, with code coverage in debug mode only. >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appInfo> >+ <meta.section type="apiInfo"/> >+ </appInfo> >+ <documentation> >+ Value of the attribute <b>delegate</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.debug.core.model.ILaunchConfigurationDelegate</b>. >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appInfo> >+ <meta.section type="copyright"/> >+ </appInfo> >+ <documentation> >+ Copyright (c) 2000, 2005 IBM Corporation and others.<br> >+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 >+<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> >+ </documentation> >+ </annotation> >+ >+</schema> >Index: schema/launchConfigurationTypes.exsd >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/schema/launchConfigurationTypes.exsd,v >retrieving revision 1.21 >diff -u -r1.21 launchConfigurationTypes.exsd >--- schema/launchConfigurationTypes.exsd 9 Nov 2006 18:54:42 -0000 1.21 >+++ schema/launchConfigurationTypes.exsd 10 Nov 2006 19:10:19 -0000 >@@ -130,25 +130,6 @@ > </appInfo> > </annotation> > </attribute> >- <attribute name="icon" type="string"> >- <annotation> >- <documentation> >- The id of the icon for this launch configuraiton type. >- >-since 3.3 >- >-<p> >-<strong>EXPERIMENTAL</strong>. This element has been added as >-part of a work in progress. There is no guarantee that this API will >-remain unchanged during the 3.3 release cycle. Please do not use this API >-without consulting with the Platform/Debug team. >-</p> >- </documentation> >- <appInfo> >- <meta.attribute kind="resource"/> >- </appInfo> >- </annotation> >- </attribute> > <attribute name="delegateName" type="string"> > <annotation> > <documentation> >@@ -245,10 +226,9 @@ > </appInfo> > <documentation> > <p> >-Value of the attribute <b>delegate</b> must be a fully qualified name of a Java class that implements the interface <code>org.eclipse.debug.core.model.ILaunchConfigurationDelegate</code>. >-</p> >-<p> >-The value of the attribute <b>migrationDelegate</b> must be a fully qualified name of a Java class that implements <code>org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate</code>. >+Value of the attribute <b>delegate</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.debug.core.model.ILaunchConfigurationDelegate</b>. >+ >+The value of the attribute <b>migrationDelegate</b> must be a fully qualified name of a Java class that implements <b>org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate</b>. > </p> > </documentation> > </annotation> >Index: core/org/eclipse/debug/internal/core/LaunchConfigurationType.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java,v >retrieving revision 1.41 >diff -u -r1.41 LaunchConfigurationType.java >--- core/org/eclipse/debug/internal/core/LaunchConfigurationType.java 31 Oct 2006 21:40:54 -0000 1.41 >+++ core/org/eclipse/debug/internal/core/LaunchConfigurationType.java 10 Nov 2006 19:10:18 -0000 >@@ -492,13 +492,6 @@ > public String getContributorName() { > return fElement.getContributor().getName(); > } >- >- /* (non-Javadoc) >- * @see org.eclipse.debug.core.ILaunchConfigurationType#getImageDescriptorId() >- */ >- public String getImageDescriptorPath() { >- return fElement.getAttribute(IConfigurationElementConstants.ICON); >- } > > /* (non-Javadoc) > * @see org.eclipse.debug.core.ILaunchConfigurationType#supportsModeCombination(java.util.Set) >Index: core/org/eclipse/debug/internal/core/DebugCoreMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties,v >retrieving revision 1.70 >diff -u -r1.70 DebugCoreMessages.properties >--- core/org/eclipse/debug/internal/core/DebugCoreMessages.properties 26 Oct 2006 20:12:25 -0000 1.70 >+++ core/org/eclipse/debug/internal/core/DebugCoreMessages.properties 10 Nov 2006 19:10:18 -0000 >@@ -51,6 +51,7 @@ > LaunchManager_does_not_exist=Launch configuration {0} at {1} does not exist. > LaunchManager_Source_locator_does_not_exist___0__13=Source locator does not exist: {0} > LaunchManager_30=Unable to retrieve shared launch configuration file for {0} >+LaunchDelegate_0=No description provided. > LaunchMode_1=Required attribute {0} missing for launchMode extension. > LaunchMode_0={0} As > LaunchOption_0=Required attribute {0} missing for launch option extension >Index: core/org/eclipse/debug/internal/core/LaunchDelegate.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java,v >retrieving revision 1.5 >diff -u -r1.5 LaunchDelegate.java >--- core/org/eclipse/debug/internal/core/LaunchDelegate.java 27 Oct 2006 21:35:42 -0000 1.5 >+++ core/org/eclipse/debug/internal/core/LaunchDelegate.java 10 Nov 2006 19:10:18 -0000 >@@ -188,4 +188,22 @@ > public String getSourcePathComputerId() { > return fElement.getAttribute(IConfigurationElementConstants.SOURCE_PATH_COMPUTER); > } >+ >+ /** >+ * @see org.eclipse.debug.core.ILaunchDelegate#getDescription() >+ */ >+ public String getDescription() { >+ String desc = fElement.getAttribute(IConfigurationElementConstants.DELEGATE_DESCRIPTION); >+ if(desc == null) { >+ return DebugCoreMessages.LaunchDelegate_0; >+ } >+ return desc; >+ } >+ >+ /** >+ * @see org.eclipse.debug.core.ILaunchDelegate#getPluginIdentifier() >+ */ >+ public String getPluginIdentifier() { >+ return fElement.getContributor().getName(); >+ } > } >Index: core/org/eclipse/debug/internal/core/IConfigurationElementConstants.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/IConfigurationElementConstants.java,v >retrieving revision 1.3 >diff -u -r1.3 IConfigurationElementConstants.java >--- core/org/eclipse/debug/internal/core/IConfigurationElementConstants.java 26 Oct 2006 20:12:25 -0000 1.3 >+++ core/org/eclipse/debug/internal/core/IConfigurationElementConstants.java 10 Nov 2006 19:10:18 -0000 >@@ -47,6 +47,11 @@ > public static final String PLACEMENT = "placement"; //$NON-NLS-1$ > > /** >+ * the associated launch delegate node name for s configuration element >+ */ >+ public static final String ASSOCIATED_DELEGATE = "associatedDelegate"; //$NON-NLS-1$ >+ >+ /** > * the label node name for a configuration element > */ > public static final String LABEL = "label"; //$NON-NLS-1$ >@@ -127,6 +132,11 @@ > public static final String SOURCE_PATH_COMPUTER = "sourcePathComputerId"; //$NON-NLS-1$ > > /** >+ * the delegateDescription node name for a configuraiton element >+ */ >+ public static final String DELEGATE_DESCRIPTION = "delegateDescription"; //$NON-NLS-1$ >+ >+ /** > * the sourceLocatorId node name for a configuration element > */ > public static final String SOURCE_LOCATOR = "sourceLocatorId"; //$NON-NLS-1$ >Index: core/org/eclipse/debug/internal/core/DebugCoreMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java,v >retrieving revision 1.17 >diff -u -r1.17 DebugCoreMessages.java >--- core/org/eclipse/debug/internal/core/DebugCoreMessages.java 26 Oct 2006 20:12:25 -0000 1.17 >+++ core/org/eclipse/debug/internal/core/DebugCoreMessages.java 10 Nov 2006 19:10:18 -0000 >@@ -33,6 +33,8 @@ > > public static String LaunchConfigurationType_7; > >+ public static String LaunchDelegate_0; >+ > public static String LaunchOption_0; > public static String SystemPropertyResolver_0; > public static String InputStreamMonitor_label; >Index: core/org/eclipse/debug/core/ILaunchConfigurationType.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java,v >retrieving revision 1.31 >diff -u -r1.31 ILaunchConfigurationType.java >--- core/org/eclipse/debug/core/ILaunchConfigurationType.java 27 Oct 2006 20:20:12 -0000 1.31 >+++ core/org/eclipse/debug/core/ILaunchConfigurationType.java 10 Nov 2006 19:10:18 -0000 >@@ -324,20 +324,5 @@ > * </p> > */ > public String getContributorName(); >- >- /** >- * Returns the plug-in relative path of the image for this launch configuration type. >- * >- * @return plug-in relative path for image >- * @since 3.3 >- * >- * <p> >- * <strong>EXPERIMENTAL</strong>. This method has been added as >- * part of a work in progress. There is no guarantee that this API will >- * remain unchanged during the 3.3 release cycle. Please do not use this API >- * without consulting with the Platform/Debug team. >- * </p> >- */ >- public String getImageDescriptorPath(); > > } >Index: core/org/eclipse/debug/core/ILaunchDelegate.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchDelegate.java,v >retrieving revision 1.1 >diff -u -r1.1 ILaunchDelegate.java >--- core/org/eclipse/debug/core/ILaunchDelegate.java 26 Oct 2006 20:12:26 -0000 1.1 >+++ core/org/eclipse/debug/core/ILaunchDelegate.java 10 Nov 2006 19:10:18 -0000 >@@ -46,6 +46,13 @@ > public String getName(); > > /** >+ * Returns a description of this launch delegate, or >+ * <code>null</code> if one has not been provided >+ * @return the description of the launch delegate >+ */ >+ public String getDescription(); >+ >+ /** > * Returns the name of the plug-in that contributed this delegate. > * > * @return contributor name >@@ -69,4 +76,10 @@ > */ > public List getModes(); > >+ /** >+ * Returns the id of the plugin that contributed this launch delegate >+ * @return the id of the plugin that contributed this launch delegate >+ */ >+ public String getPluginIdentifier(); >+ > } >#P org.eclipse.debug.ui >Index: ui/org/eclipse/debug/internal/ui/LaunchConfigurationTabExtension.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/LaunchConfigurationTabExtension.java,v >retrieving revision 1.2 >diff -u -r1.2 LaunchConfigurationTabExtension.java >--- ui/org/eclipse/debug/internal/ui/LaunchConfigurationTabExtension.java 20 Oct 2006 22:01:50 -0000 1.2 >+++ ui/org/eclipse/debug/internal/ui/LaunchConfigurationTabExtension.java 10 Nov 2006 19:10:20 -0000 >@@ -10,6 +10,9 @@ > *******************************************************************************/ > package org.eclipse.debug.internal.ui; > >+import java.util.HashSet; >+import java.util.Set; >+ > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IConfigurationElement; > import org.eclipse.debug.internal.core.IConfigurationElementConstants; >@@ -32,6 +35,7 @@ > * The configuration element backing this proxy > */ > IConfigurationElement fElement = null; >+ private Set fDelegates = null; > > /** > * Constructor >@@ -42,7 +46,7 @@ > } > > /** >- * Returns the unique id ofthe tab >+ * Returns the unique id of the tab > * @return the unique id of the tab > */ > public String getIdentifier() { >@@ -83,9 +87,6 @@ > * This method returns the id of the tab that this tab should be placed immediately after. > * @return the id of the relative tab or <code>null</code> if one has not been specified > * >- * @since 3.3 >- * >- * EXPERIMENTAL > */ > public String getRelativeTabId() { > IConfigurationElement[] elems = fElement.getChildren(IConfigurationElementConstants.PLACEMENT); >@@ -94,5 +95,31 @@ > } > return null; > } >- >+ >+ /** >+ * Returns the id of the plugin that contributed this tab extension >+ * @return the id of the plugin tat contirbuted this tab >+ */ >+ public String getPluginIdentifier() { >+ return fElement.getContributor().getName(); >+ } >+ >+ /** >+ * Returns a set of strings of the launch delegates that this tab contribution is associated with >+ * @return the set of strings of the associated launch delegates, which can be an empty collection, never <code>null</code>. >+ */ >+ public Set getDelegateSet() { >+ if(fDelegates == null) { >+ fDelegates = new HashSet(); >+ IConfigurationElement[] children = fElement.getChildren(IConfigurationElementConstants.ASSOCIATED_DELEGATE); >+ String id = null; >+ for(int i = 0; i < children.length; i++) { >+ id = children[i].getAttribute(IConfigurationElementConstants.DELEGATE); >+ if(id != null) { >+ fDelegates.add(id); >+ } >+ } >+ } >+ return fDelegates; >+ } > } >Index: ui/org/eclipse/debug/internal/ui/SWTUtil.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/SWTUtil.java,v >retrieving revision 1.22 >diff -u -r1.22 SWTUtil.java >--- ui/org/eclipse/debug/internal/ui/SWTUtil.java 26 Oct 2006 20:12:40 -0000 1.22 >+++ ui/org/eclipse/debug/internal/ui/SWTUtil.java 10 Nov 2006 19:10:20 -0000 >@@ -166,6 +166,24 @@ > } > > /** >+ * Creates a wrapping label >+ * @param parent the parent composite to add this label to >+ * @param text the text to be displayed in the label >+ * @param hspan the horozontal span that label should take up in the parent composite >+ * @return a new label that wraps at a specified width >+ * @since 3.3 >+ */ >+ public static Label createWrapLabel(Composite parent, String text, int hspan) { >+ Label l = new Label(parent, SWT.NONE | SWT.WRAP); >+ l.setFont(parent.getFont()); >+ l.setText(text); >+ GridData gd = new GridData(GridData.FILL_HORIZONTAL); >+ gd.horizontalSpan = hspan; >+ l.setLayoutData(gd); >+ return l; >+ } >+ >+ /** > * Creates a new text widget > * @param parent the parent composite to add this text widget to > * @param hspan the horizontal span to take up on the parent composite >@@ -187,6 +205,24 @@ > * @param parent the parent composite to add this text widget to > * @param style the style bits for the text widget > * @param hspan the horizontal span to take up on the parent composite >+ * @param fill the fill for the grid layout >+ * @return the new text widget >+ * @since 3.3 >+ */ >+ public static Text createText(Composite parent, int style, int hspan, int fill) { >+ Text t = new Text(parent, style); >+ t.setFont(parent.getFont()); >+ GridData gd = new GridData(fill); >+ gd.horizontalSpan = hspan; >+ t.setLayoutData(gd); >+ return t; >+ } >+ >+ /** >+ * Creates a new text widget >+ * @param parent the parent composite to add this text widget to >+ * @param style the style bits for the text widget >+ * @param hspan the horizontal span to take up on the parent composite > * @return the new text widget > * @since 3.3 > */ >Index: ui/org/eclipse/debug/internal/ui/DebugPluginImages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugPluginImages.java,v >retrieving revision 1.95 >diff -u -r1.95 DebugPluginImages.java >--- ui/org/eclipse/debug/internal/ui/DebugPluginImages.java 17 Oct 2006 20:09:19 -0000 1.95 >+++ ui/org/eclipse/debug/internal/ui/DebugPluginImages.java 10 Nov 2006 19:10:20 -0000 >@@ -14,16 +14,12 @@ > > > import java.net.URL; >-import java.util.HashSet; >-import java.util.Set; > > import org.eclipse.core.runtime.FileLocator; > import org.eclipse.core.runtime.IConfigurationElement; > import org.eclipse.core.runtime.IExtensionPoint; > import org.eclipse.core.runtime.Path; > import org.eclipse.core.runtime.Platform; >-import org.eclipse.debug.core.DebugPlugin; >-import org.eclipse.debug.core.ILaunchConfigurationType; > import org.eclipse.debug.internal.core.IConfigurationElementConstants; > import org.eclipse.debug.ui.IDebugUIConstants; > import org.eclipse.jface.resource.ImageDescriptor; >@@ -236,36 +232,20 @@ > > // launch configuration types > //try to get the images from the config types themselves, cache those that could not be found >- ILaunchConfigurationType[] types = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationTypes(); >- String path = null; >- Set missing = new HashSet(); >- ImageDescriptor descriptor = null; >- for (int i = 0; i < types.length; i++) { >- path = types[i].getImageDescriptorPath(); >- if(path == null) { >- missing.add(types[i].getIdentifier()); >- } >- else { >- descriptor = DebugUIPlugin.getImageDescriptor(types[i].getContributorName(), path); >- imageRegistry.put(types[i].getIdentifier(), (descriptor == null ? ImageDescriptor.getMissingImageDescriptor() : descriptor)); >- } >- } >- if(missing.size() > 0) { >- //if we are missing some images try to find them in the deprecated extension point >- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugUIPlugin.getUniqueIdentifier(), IDebugUIConstants.EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPE_IMAGES); >- IConfigurationElement[] configElements = extensionPoint.getConfigurationElements(); >- String configTypeID = null; >- for (int i = 0; i < configElements.length; i++) { >- configTypeID = configElements[i].getAttribute(ATTR_LAUNCH_CONFIG_TYPE_ID); >- if (configTypeID == null) { >- // bug 12652 >- configTypeID = configElements[i].getAttribute(IConfigurationElementConstants.TYPE); >- } >- if(missing.contains(configTypeID)) { >- descriptor = DebugUIPlugin.getImageDescriptor(configElements[i], ATTR_LAUNCH_CONFIG_TYPE_ICON); >- imageRegistry.put(configTypeID, (descriptor == null ? ImageDescriptor.getMissingImageDescriptor() : descriptor)); >- } >+ IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugUIPlugin.getUniqueIdentifier(), IDebugUIConstants.EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPE_IMAGES); >+ IConfigurationElement[] configElements= extensionPoint.getConfigurationElements(); >+ for (int i = 0; i < configElements.length; i++) { >+ IConfigurationElement configElement = configElements[i]; >+ ImageDescriptor descriptor = DebugUIPlugin.getImageDescriptor(configElement, ATTR_LAUNCH_CONFIG_TYPE_ICON); >+ if (descriptor == null) { >+ descriptor = ImageDescriptor.getMissingImageDescriptor(); > } >+ String configTypeID = configElement.getAttribute(ATTR_LAUNCH_CONFIG_TYPE_ID); >+ if (configTypeID == null) { >+ // bug 12652 >+ configTypeID = configElement.getAttribute(IConfigurationElementConstants.TYPE); >+ } >+ imageRegistry.put(configTypeID, descriptor); > } > } > >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties,v >retrieving revision 1.159 >diff -u -r1.159 LaunchConfigurationsMessages.properties >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties 26 Oct 2006 20:12:41 -0000 1.159 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties 10 Nov 2006 19:10:21 -0000 >@@ -177,6 +177,7 @@ > SelectLaunchDelegatesDialog_0=There is more than one set of tooling capable of launching the current configuration in the current mode. Please select which launch tooling you would like to use. > SelectLaunchDelegatesDialog_1=Select Launch Tooling > SelectLaunchDelegatesDialog_2=Select &preferred launch tooling: >+SelectLaunchDelegatesDialog_3=Description > SelectLaunchDelegateActionDialog_0=Select Resolution Action > SelectLaunchDelegateActionDialog_1=More than one tool capable of launching the current configuration has been detected and preferred tooling must be selected so that launching can continue.\n\nCanceling this or any following dialog(s) will cancel the current launch. > SelectLaunchDelegateActionDialog_4=&Always perform the selected action. >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupWrapper.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupWrapper.java,v >retrieving revision 1.3 >diff -u -r1.3 LaunchConfigurationTabGroupWrapper.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupWrapper.java 27 Oct 2006 20:20:45 -0000 1.3 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupWrapper.java 10 Nov 2006 19:10:21 -0000 >@@ -3,9 +3,11 @@ > import java.util.ArrayList; > import java.util.List; > >+import org.eclipse.core.runtime.CoreException; > import org.eclipse.debug.core.ILaunch; > import org.eclipse.debug.core.ILaunchConfiguration; > import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; >+import org.eclipse.debug.internal.ui.DebugUIPlugin; > import org.eclipse.debug.internal.ui.LaunchConfigurationTabExtension; > import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; > import org.eclipse.debug.ui.ILaunchConfigurationDialog; >@@ -29,14 +31,18 @@ > private ILaunchConfigurationTabGroup fGroup = null; > private String fGroupId = null; > private List fTabs = null; >+ private String fMode = null; >+ private ILaunchConfiguration fConfig = null; > > /** > * Constructor > * @param group the existing group to wrapper >+ * @param groupId the string id of the associated tab group > */ >- public LaunchConfigurationTabGroupWrapper(ILaunchConfigurationTabGroup group, String groupId) { >+ public LaunchConfigurationTabGroupWrapper(ILaunchConfigurationTabGroup group, String groupId, ILaunchConfiguration config) { > fGroup = group; > fGroupId = groupId; >+ fConfig = config; > } > > /** >@@ -45,6 +51,7 @@ > public void createTabs(ILaunchConfigurationDialog dialog, String mode) { > if(fGroup != null) { > fGroup.createTabs(dialog, mode); >+ fMode = mode; > } > } > >@@ -65,50 +72,68 @@ > */ > public ILaunchConfigurationTab[] getTabs() { > if(fTabs == null) { >- fTabs = new ArrayList(); >- ILaunchConfigurationTab[] tmp = fGroup.getTabs(); >- for(int i = 0; i < tmp.length; i++) { >- fTabs.add(tmp[i]); >- } >- LaunchConfigurationTabExtension[] ext = LaunchConfigurationPresentationManager.getDefault().getTabExtensions(fGroupId); >- //copy contributed into correct postion or end if no id or id is not found >- AbstractLaunchConfigurationTab alct = null; >- String id = null; >- List item = null; >- for(int i = 0; i < ext.length; i++) { >- id = ext[i].getRelativeTabId(); >- if(id != null) { >- //position specified, try to find it >- boolean found = false; >- for(int j = 0; j < tmp.length; j++) { >- if(tmp[j] instanceof AbstractLaunchConfigurationTab) { >- alct = (AbstractLaunchConfigurationTab) tmp[j]; >- if(id.equals(alct.getId())) { >- if(j != tmp.length-1) { >- item = new ArrayList(); >- item.add(ext[i].getTab()); >- fTabs.addAll(j+1, item); >- found = true; >- break; >+ try { >+ fTabs = new ArrayList(); >+ ILaunchConfigurationTab[] tmp = fGroup.getTabs(); >+ for(int i = 0; i < tmp.length; i++) { >+ fTabs.add(tmp[i]); >+ } >+ LaunchConfigurationTabExtension[] ext = LaunchConfigurationPresentationManager.getDefault().getTabExtensions(fGroupId, fConfig, fMode); >+ //copy contributed into correct position or end if no id or id is not found >+ AbstractLaunchConfigurationTab alct = null; >+ String id = null; >+ List item = null; >+ for(int i = 0; i < ext.length; i++) { >+ id = ext[i].getRelativeTabId(); >+ if(id != null) { >+ //position specified, try to find it >+ boolean found = false; >+ for(int j = 0; j < tmp.length; j++) { >+ if(tmp[j] instanceof AbstractLaunchConfigurationTab) { >+ alct = (AbstractLaunchConfigurationTab) tmp[j]; >+ if(id.equals(alct.getId())) { >+ if(j != tmp.length-1) { >+ item = new ArrayList(); >+ item.add(ext[i].getTab()); >+ fTabs.addAll(j+1, item); >+ found = true; >+ break; >+ } > } > } > } >+ if(!found) { >+ //id did not match any tabs, add it to the end >+ fTabs.add(ext[i].getTab()); >+ } > } >- if(!found) { >- //id did not match any tabs, add it to the end >+ else { >+ //no position specified, add it to the end > fTabs.add(ext[i].getTab()); > } > } >- else { >- //no position specified, add it to the end >- fTabs.add(ext[i].getTab()); >- } > } >+ catch (CoreException ce) {DebugUIPlugin.log(ce);} > } > return (ILaunchConfigurationTab[]) fTabs.toArray(new ILaunchConfigurationTab[fTabs.size()]); > } > > /** >+ * This method is used internally to force a refresh on the current tab set to filter visible tabs >+ * >+ * @since 3.3 >+ */ >+ protected void refreshTabs() { >+ if(fTabs != null) { >+ for(int i = 0; i < fTabs.size(); i++) { >+ ((ILaunchConfigurationTab)fTabs.get(i)).dispose(); >+ } >+ fTabs = null; >+ } >+ getTabs(); >+ } >+ >+ /** > * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration) > */ > public void initializeFrom(ILaunchConfiguration configuration) { >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java,v >retrieving revision 1.41 >diff -u -r1.41 LaunchConfigurationsMessages.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java 26 Oct 2006 20:12:41 -0000 1.41 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java 10 Nov 2006 19:10:21 -0000 >@@ -218,6 +218,8 @@ > > public static String SelectLaunchDelegatesDialog_1; > public static String SelectLaunchDelegatesDialog_2; >+ >+ public static String SelectLaunchDelegatesDialog_3; > public static String SelectLaunchOptionsDialog_2; > public static String SelectLaunchOptionsDialog_3; > public static String SelectLaunchOptionsDialog_4; >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java,v >retrieving revision 1.71 >diff -u -r1.71 LaunchConfigurationTabGroupViewer.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java 27 Oct 2006 20:20:45 -0000 1.71 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java 10 Nov 2006 19:10:21 -0000 >@@ -67,6 +67,7 @@ > import org.eclipse.swt.widgets.Text; > import org.eclipse.ui.IWorkbenchPreferenceConstants; > import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.activities.WorkbenchActivityHelper; > > import com.ibm.icu.text.MessageFormat; > >@@ -322,8 +323,9 @@ > Object[] res = sld.getResult(); > if(res != null) { > fTabType.setPreferredDelegate(modes, (ILaunchDelegate) res[0]); >- refresh(); >- refreshStatus(); >+ ((LaunchConfigurationTabGroupWrapper)fTabGroup).refreshTabs(); >+ disposeExistingTabs(); >+ displayInstanceTabs(); > } > } > } >@@ -830,7 +832,7 @@ > public void run() { > ILaunchConfigurationTabGroup tabGroup = null; > try { >- tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(configType, getLaunchConfigurationDialog().getMode()); >+ tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(getWorkingCopy(), getLaunchConfigurationDialog().getMode()); > finalArray[0] = tabGroup; > } catch (CoreException ce) { > finalArray[1] = ce; >@@ -1080,8 +1082,15 @@ > if(config != null) { > Set modes = config.getModes(); > modes.add(getLaunchConfigurationDialog().getMode()); >- if(fTabType.getDelegates(modes).length > 1) { >- return fTabType.getPreferredDelegate(modes) == null; >+ ILaunchDelegate[] delegates = LaunchConfigurationManager.filterLaunchDelegates(fTabType, modes); >+ if(delegates.length > 1) { >+ ILaunchDelegate preferred = fTabType.getPreferredDelegate(modes); >+ if(preferred == null) { >+ return true; >+ } >+ else if(WorkbenchActivityHelper.filterItem(new LaunchDelegateContribution(preferred))) { >+ return true; >+ } > } > } > } >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationManager.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationManager.java,v >retrieving revision 1.69 >diff -u -r1.69 LaunchConfigurationManager.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationManager.java 13 Sep 2006 19:09:18 -0000 1.69 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationManager.java 10 Nov 2006 19:10:21 -0000 >@@ -41,6 +41,7 @@ > import org.eclipse.debug.core.ILaunchConfiguration; > import org.eclipse.debug.core.ILaunchConfigurationType; > import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; >+import org.eclipse.debug.core.ILaunchDelegate; > import org.eclipse.debug.core.ILaunchListener; > import org.eclipse.debug.core.ILaunchManager; > import org.eclipse.debug.core.ILaunchMode; >@@ -202,7 +203,34 @@ > } > return (ILaunchConfiguration[]) filteredConfigs.toArray(new ILaunchConfiguration[filteredConfigs.size()]); > } >+ >+ /** >+ * Returns a listing of <code>IlaunchDeleagtes</code> that does not contain any delegates from disabled activities >+ * @param delegates the raw listing of delegates to filter >+ * @return the filtered listing of <code>ILaunchDelegate</code>s or an empty array, nevere <code>null</code>. >+ * @since 3.3 >+ * >+ * EXPERIMENTAL >+ */ >+ public static ILaunchDelegate[] filterLaunchDelegates(ILaunchConfigurationType type, Set modes) throws CoreException { >+ IWorkbenchActivitySupport as = PlatformUI.getWorkbench().getActivitySupport(); >+ ILaunchDelegate[] delegates = type.getDelegates(modes); >+ if(as == null) { >+ return delegates; >+ } >+ HashSet set = new HashSet(); >+ for(int i = 0; i < delegates.length; i++) { >+ //filter by capabilities >+ if(!WorkbenchActivityHelper.filterItem(new LaunchDelegateContribution(delegates[i]))) { >+ set.add(delegates[i]); >+ } >+ } >+ return (ILaunchDelegate[]) set.toArray(new ILaunchDelegate[set.size()]); >+ } > >+ /** >+ * Performs cleanup operations when the manager is being disposed of. >+ */ > public void shutdown() { > ILaunchManager launchManager= DebugPlugin.getDefault().getLaunchManager(); > launchManager.removeLaunchListener(this); >@@ -218,15 +246,12 @@ > /** > * @see ILaunchListener#launchRemoved(ILaunch) > */ >- public void launchRemoved(ILaunch launch) { >- } >+ public void launchRemoved(ILaunch launch) {} > > /** > * @see ILaunchListener#launchChanged(ILaunch) > */ >- public void launchChanged(ILaunch launch) { >- >- } >+ public void launchChanged(ILaunch launch) {} > > /** > * Must not assume that will only be called from the UI thread. >@@ -237,6 +262,10 @@ > removeTerminatedLaunches(launch); > } > >+ /** >+ * Removes terminated launches from the launch view, leaving the specified launch in the view >+ * @param newLaunch the newly added launch to leave in the view >+ */ > protected void removeTerminatedLaunches(ILaunch newLaunch) { > if (DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IDebugUIConstants.PREF_AUTO_REMOVE_OLD_LAUNCHES)) { > ILaunchManager lManager= DebugPlugin.getDefault().getLaunchManager(); >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/SelectLaunchDelegatesDialog.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/SelectLaunchDelegatesDialog.java,v >retrieving revision 1.1 >diff -u -r1.1 SelectLaunchDelegatesDialog.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/SelectLaunchDelegatesDialog.java 26 Oct 2006 20:12:41 -0000 1.1 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/SelectLaunchDelegatesDialog.java 10 Nov 2006 19:10:21 -0000 >@@ -16,14 +16,19 @@ > import org.eclipse.jface.viewers.ICheckStateListener; > import org.eclipse.jface.viewers.ILabelProvider; > import org.eclipse.jface.viewers.ILabelProviderListener; >+import org.eclipse.jface.viewers.ISelectionChangedListener; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.swt.SWT; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.graphics.Point; > import org.eclipse.swt.layout.GridData; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Group; > import org.eclipse.swt.widgets.Shell; > import org.eclipse.swt.widgets.Table; >+import org.eclipse.swt.widgets.Text; > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.dialogs.SelectionDialog; > >@@ -66,6 +71,8 @@ > private CheckboxTableViewer fTableViewer = null; > private Table fTable = null; > private ILaunchDelegate[] fDelegates = null; >+ private Text fDescriptionText = null; >+ private final String EMPTY_STRING = ""; //$NON-NLS-1$ > > /** > * Constructor >@@ -102,6 +109,20 @@ > getButton(IDialogConstants.OK_ID).setEnabled(true); > } > }); >+ fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { >+ public void selectionChanged(SelectionChangedEvent event) { >+ IStructuredSelection ss = (IStructuredSelection) event.getSelection(); >+ if(ss != null && !ss.isEmpty()) { >+ fDescriptionText.setText(((ILaunchDelegate)ss.getFirstElement()).getDescription()); >+ } >+ else { >+ fDescriptionText.setText(EMPTY_STRING); >+ } >+ } >+ }); >+ Group group = SWTUtil.createGroup(comp, LaunchConfigurationsMessages.SelectLaunchDelegatesDialog_3, 1, 1, GridData.FILL_BOTH); >+ fDescriptionText = SWTUtil.createText(group, SWT.WRAP | SWT.READ_ONLY, 1, GridData.FILL_BOTH); >+ fDescriptionText.setBackground(group.getBackground()); > Dialog.applyDialogFont(comp); > PlatformUI.getWorkbench().getHelpSystem().setHelp(comp, IDebugHelpContextIds.SELECT_LAUNCH_DELEGATES_DIALOG); > return comp; >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationPresentationManager.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationPresentationManager.java,v >retrieving revision 1.37 >diff -u -r1.37 LaunchConfigurationPresentationManager.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationPresentationManager.java 20 Oct 2006 22:01:50 -0000 1.37 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationPresentationManager.java 10 Nov 2006 19:10:21 -0000 >@@ -13,6 +13,7 @@ > > import java.util.ArrayList; > import java.util.Collections; >+import java.util.HashSet; > import java.util.Hashtable; > import java.util.Iterator; > import java.util.List; >@@ -26,7 +27,9 @@ > import org.eclipse.core.runtime.Platform; > import org.eclipse.core.runtime.Status; > import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.core.ILaunchConfiguration; > import org.eclipse.debug.core.ILaunchConfigurationType; >+import org.eclipse.debug.core.ILaunchDelegate; > import org.eclipse.debug.core.ILaunchManager; > import org.eclipse.debug.core.ILaunchMode; > import org.eclipse.debug.internal.core.IConfigurationElementConstants; >@@ -34,6 +37,9 @@ > import org.eclipse.debug.internal.ui.LaunchConfigurationTabExtension; > import org.eclipse.debug.ui.IDebugUIConstants; > import org.eclipse.debug.ui.ILaunchConfigurationTabGroup; >+import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.activities.IWorkbenchActivitySupport; >+import org.eclipse.ui.activities.WorkbenchActivityHelper; > > import com.ibm.icu.text.MessageFormat; > >@@ -165,27 +171,89 @@ > MessageFormat.format(LaunchConfigurationsMessages.LaunchConfigurationPresentationManager_No_tab_group_defined_for_launch_configuration_type__0__3, (new String[] {type.getIdentifier()})), null); > throw new CoreException(status); > } >- return new LaunchConfigurationTabGroupWrapper(ext.newTabGroup(), ext.getIdentifier()); >+ return new LaunchConfigurationTabGroupWrapper(ext.newTabGroup(), ext.getIdentifier(), null); >+ } >+ >+ /** >+ * Returns the tab group for the given launch configutation, its type and the mode the dialog opened in >+ * @param type the type of the configuration >+ * @param config >+ * @param mode >+ * @return >+ * @throws CoreException >+ */ >+ public ILaunchConfigurationTabGroup getTabGroup(ILaunchConfiguration config, String mode) throws CoreException { >+ LaunchConfigurationTabGroupExtension ext = getExtension(config.getType().getIdentifier(), mode); >+ if (ext == null) { >+ IStatus status = new Status(IStatus.ERROR, IDebugUIConstants.PLUGIN_ID, IDebugUIConstants.INTERNAL_ERROR, >+ MessageFormat.format(LaunchConfigurationsMessages.LaunchConfigurationPresentationManager_No_tab_group_defined_for_launch_configuration_type__0__3, (new String[] {config.getType().getIdentifier()})), null); >+ throw new CoreException(status); >+ } >+ return new LaunchConfigurationTabGroupWrapper(ext.newTabGroup(), ext.getIdentifier(), config); > } > > /** > * Returns the proxy elements for all contributed tabs for the specified tab group id > * @param groupid the id of the tab group >+ * @param type the type the tab group is opened on >+ * @param mode the mode the associated launch dialog is opened on > * @return the listing of all of the tab extensions or an empty array, never <code>null</code> > * > * @since 3.3 > * > * EXPERIMENTAL > */ >- protected LaunchConfigurationTabExtension[] getTabExtensions(String groupid) { >+ protected LaunchConfigurationTabExtension[] getTabExtensions(String groupid, ILaunchConfiguration config, String mode) throws CoreException { > Hashtable tabs = (Hashtable) fContributedTabs.get(groupid); > if(tabs != null) { >- return (LaunchConfigurationTabExtension[]) tabs.values().toArray(new LaunchConfigurationTabExtension[tabs.size()]); >+ return filterLaunchTabExtensions((LaunchConfigurationTabExtension[]) tabs.values().toArray(new LaunchConfigurationTabExtension[tabs.size()]), config, mode); > } > return new LaunchConfigurationTabExtension[0]; > } > > /** >+ * Returns a listing of <code>LaunchConfiguraitonTabExtension</code>s that does not contain any tabs >+ * from disabled activities >+ * @param tabs the raw listing of tabs to filter >+ * @return the listing of filtered <code>LaunchConfigurationTabExtension</code>s or an empty array, never <code>null</code> >+ * >+ * @since 3.3 >+ * >+ * EXPERIMENTAL >+ */ >+ protected LaunchConfigurationTabExtension[] filterLaunchTabExtensions(LaunchConfigurationTabExtension[] tabs, ILaunchConfiguration config, String mode) throws CoreException { >+ IWorkbenchActivitySupport as = PlatformUI.getWorkbench().getActivitySupport(); >+ if(as == null || config == null) { >+ return tabs; >+ } >+ HashSet set = new HashSet(); >+ for(int i = 0; i < tabs.length; i ++) { >+ //filter capabilities >+ if(!WorkbenchActivityHelper.filterItem(new LaunchTabContribution(tabs[i]))) { >+ //filter to preferred delegate (if there is one) >+ HashSet modes = (HashSet) config.getModes(); >+ modes.add(mode); >+ ILaunchDelegate delegate = config.getType().getPreferredDelegate(modes); >+ if(delegate != null) { >+ if(tabs[i].getDelegateSet().contains(delegate.getId())) { >+ set.add(tabs[i]); >+ } >+ } >+ else { >+ //otherwise filter based on the collection of delegates for the modes >+ ILaunchDelegate[] delegates = config.getType().getDelegates(modes); >+ for(int j = 0; j < delegates.length; j++) { >+ if(tabs[i].getDelegateSet().contains(delegates[j].getId())) { >+ set.add(tabs[i]); >+ } >+ } >+ } >+ } >+ } >+ return (LaunchConfigurationTabExtension[]) set.toArray(new LaunchConfigurationTabExtension[set.size()]); >+ } >+ >+ /** > * Returns the launch tab group extension for the given type and mode, or > * <code>null</code> if none > * >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java,v >retrieving revision 1.17 >diff -u -r1.17 CreateLaunchConfigurationAction.java >--- ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java 11 Sep 2006 16:06:55 -0000 1.17 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java 10 Nov 2006 19:10:20 -0000 >@@ -66,7 +66,7 @@ > } > try { > ILaunchConfigurationWorkingCopy wc = type.newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(LaunchConfigurationsMessages.CreateLaunchConfigurationAction_New_configuration_2)); >- ILaunchConfigurationTabGroup tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(wc.getType(), getMode()); >+ ILaunchConfigurationTabGroup tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(wc, getMode()); > // this only works because this action is only present when the dialog is open > ILaunchConfigurationDialog dialog = LaunchConfigurationsDialog.getCurrentlyVisibleLaunchConfigurationDialog(); > tabGroup.createTabs(dialog, dialog.getMode()); >Index: schema/launchConfigurationTabs.exsd >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/schema/launchConfigurationTabs.exsd,v >retrieving revision 1.2 >diff -u -r1.2 launchConfigurationTabs.exsd >--- schema/launchConfigurationTabs.exsd 20 Oct 2006 22:01:50 -0000 1.2 >+++ schema/launchConfigurationTabs.exsd 10 Nov 2006 19:10:20 -0000 >@@ -38,8 +38,9 @@ > </documentation> > </annotation> > <complexType> >- <sequence minOccurs="0" maxOccurs="1"> >- <element ref="placement"/> >+ <sequence> >+ <element ref="placement" minOccurs="0" maxOccurs="1"/> >+ <element ref="associatedDelegate" minOccurs="0" maxOccurs="unbounded"/> > </sequence> > <attribute name="id" type="string" use="required"> > <annotation> >@@ -92,6 +93,23 @@ > </complexType> > </element> > >+ <element name="associatedDelegate"> >+ <annotation> >+ <documentation> >+ This attribute is used to map a contrinbuted tab to one or more launch delegates. This allows tabs to be filtered from the launch dialog based on what launch delegate/tooling is selected as the current default. >+ </documentation> >+ </annotation> >+ <complexType> >+ <attribute name="delegate" type="string" use="required"> >+ <annotation> >+ <documentation> >+ The id of the <code>launchDelegate</code> that this tab is associated with. The association allows the tab to be filtered based on the modesets supported by the delegates. since 3.3 EXPERIMENTAL >+ </documentation> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ > <annotation> > <appInfo> > <meta.section type="since"/> >Index: ui/org/eclipse/debug/ui/AbstractLaunchModeConfigurationTab.java >=================================================================== >RCS file: ui/org/eclipse/debug/ui/AbstractLaunchModeConfigurationTab.java >diff -N ui/org/eclipse/debug/ui/AbstractLaunchModeConfigurationTab.java >--- ui/org/eclipse/debug/ui/AbstractLaunchModeConfigurationTab.java 19 Oct 2006 21:37:29 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,90 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2006 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- *******************************************************************************/ >-package org.eclipse.debug.ui; >- >-import java.util.Set; >- >-import org.eclipse.core.runtime.CoreException; >-import org.eclipse.debug.core.DebugPlugin; >-import org.eclipse.debug.core.ILaunchConfiguration; >-import org.eclipse.debug.core.ILaunchConfigurationListener; >-import org.eclipse.debug.internal.ui.DebugUIPlugin; >-import org.eclipse.swt.widgets.Composite; >- >-/** >- * Common function for a launch tab that edits a launch mode. >- * <p> >- * This class is intended to be subclassed by clients contributing launch tabs >- * that modify launch modes on a launch configuration. >- * </p> >- * @since 3.3 >- * >- * <p> >- * <strong>EXPERIMENTAL</strong>. This class has been added as >- * part of a work in progress. There is no guarantee that this API will >- * remain unchanged during the 3.3 release cycle. Please do not use this API >- * without consulting with the Platform/Debug team. >- * </p> >- */ >-public abstract class AbstractLaunchModeConfigurationTab extends AbstractLaunchConfigurationTab implements ILaunchConfigurationListener { >- >- /** >- * Returns the set of the modes this tab modifies. >- * >- * @return set of the modes this tab modifies >- */ >- public abstract Set getModes(); >- >- /** >- * Updates the controls associated with this tab's launch modes. >- * Called when a launch configuration has changed, which can occur when a tab >- * is de-activated. Launch modes may have been modified outside of this tab's control. >- * >- * @param modes the current set of modes specified by the working copy being edited >- */ >- public abstract void updateLaunchModeControls(Set modes); >- >- /** >- * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite) >- */ >- public void createControl(Composite parent) { >- DebugPlugin.getDefault().getLaunchManager().addLaunchConfigurationListener(this); >- } >- >- /** >- * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose() >- */ >- public void dispose() { >- DebugPlugin.getDefault().getLaunchManager().removeLaunchConfigurationListener(this); >- super.dispose(); >- } >- >- /** >- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration) >- */ >- public void launchConfigurationAdded(ILaunchConfiguration configuration) {} >- >- /** >- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration) >- */ >- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {} >- >- /** >- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration) >- */ >- public void launchConfigurationChanged(ILaunchConfiguration configuration) { >- try { >- updateLaunchModeControls(configuration.getModes()); >- } >- catch (CoreException e) {DebugUIPlugin.log(e);} >- } >- >-} >Index: ui/org/eclipse/debug/internal/ui/preferences/ProcessPropertyPage.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/ProcessPropertyPage.java,v >retrieving revision 1.18 >diff -u -r1.18 ProcessPropertyPage.java >--- ui/org/eclipse/debug/internal/ui/preferences/ProcessPropertyPage.java 1 Jul 2006 03:47:08 -0000 1.18 >+++ ui/org/eclipse/debug/internal/ui/preferences/ProcessPropertyPage.java 10 Nov 2006 19:10:21 -0000 >@@ -54,6 +54,7 @@ > ((GridData)text.getLayoutData()).horizontalIndent = 10; > PlatformUI.getWorkbench().getHelpSystem().setHelp(text, IDebugHelpContextIds.PROCESS_PAGE_RUN_AT); > text.setText(getTimeText(proc)); >+ text.setBackground(parent.getBackground()); > SWTUtil.createVerticalSpacer(parent, 2); > > //create the path name section >@@ -61,6 +62,7 @@ > text = SWTUtil.createText(parent, SWT.WRAP | SWT.READ_ONLY, 1); > ((GridData)text.getLayoutData()).horizontalIndent = 10; > text.setText(getPathText(proc)); >+ text.setBackground(parent.getBackground()); > SWTUtil.createVerticalSpacer(parent, 2); > > //create commandline section >@@ -71,6 +73,7 @@ > convertWidthInCharsToPixels(80), > convertHeightInCharsToPixels(15), > GridData.FILL_BOTH); >+ text.setBackground(parent.getBackground()); > ((GridData)text.getLayoutData()).horizontalIndent = 10; > String commandLineText = getCommandLineText(proc); > if (commandLineText != null) { >Index: ui/org/eclipse/debug/ui/AbstractLaunchConfigurationListenerTab.java >=================================================================== >RCS file: ui/org/eclipse/debug/ui/AbstractLaunchConfigurationListenerTab.java >diff -N ui/org/eclipse/debug/ui/AbstractLaunchConfigurationListenerTab.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/debug/ui/AbstractLaunchConfigurationListenerTab.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,69 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.debug.ui; >+ >+import java.util.Set; >+ >+import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.core.ILaunchConfiguration; >+import org.eclipse.debug.core.ILaunchConfigurationListener; >+import org.eclipse.swt.widgets.Composite; >+ >+/** >+ * Common function for a launch tab that edits a launch mode. >+ * <p> >+ * This class is intended to be subclassed by clients contributing launch tabs >+ * that modify launch modes on a launch configuration. >+ * </p> >+ * @since 3.3 >+ * >+ * <p> >+ * <strong>EXPERIMENTAL</strong>. This class has been added as >+ * part of a work in progress. There is no guarantee that this API will >+ * remain unchanged during the 3.3 release cycle. Please do not use this API >+ * without consulting with the Platform/Debug team. >+ * </p> >+ */ >+public abstract class AbstractLaunchConfigurationListenerTab extends AbstractLaunchConfigurationTab implements ILaunchConfigurationListener { >+ >+ /** >+ * Returns the set of the modes this tab modifies. >+ * >+ * @return set of the modes this tab modifies >+ */ >+ public abstract Set getModes(); >+ >+ /** >+ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite) >+ */ >+ public void createControl(Composite parent) { >+ DebugPlugin.getDefault().getLaunchManager().addLaunchConfigurationListener(this); >+ } >+ >+ /** >+ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose() >+ */ >+ public void dispose() { >+ DebugPlugin.getDefault().getLaunchManager().removeLaunchConfigurationListener(this); >+ super.dispose(); >+ } >+ >+ /** >+ * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration) >+ */ >+ public void launchConfigurationAdded(ILaunchConfiguration configuration) {} >+ >+ /** >+ * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration) >+ */ >+ public void launchConfigurationRemoved(ILaunchConfiguration configuration) {} >+ >+} >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchDelegateContribution.java >=================================================================== >RCS file: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchDelegateContribution.java >diff -N ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchDelegateContribution.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchDelegateContribution.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,48 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.debug.internal.ui.launchConfigurations; >+ >+import org.eclipse.debug.core.ILaunchDelegate; >+import org.eclipse.ui.IPluginContribution; >+ >+/** >+ * This class provides a wrapper for a launch delegate so tht it can be filtered from UI and launching choices >+ * @since 3.3 >+ * >+ * EXPERIMENTAL >+ */ >+public class LaunchDelegateContribution implements IPluginContribution { >+ >+ private ILaunchDelegate fDelegate = null; >+ >+ /** >+ * Constructor >+ * @param delegate >+ */ >+ public LaunchDelegateContribution(ILaunchDelegate delegate) { >+ fDelegate = delegate; >+ } >+ >+ /** >+ * @see org.eclipse.ui.IPluginContribution#getLocalId() >+ */ >+ public String getLocalId() { >+ return fDelegate.getId(); >+ } >+ >+ /** >+ * @see org.eclipse.ui.IPluginContribution#getPluginId() >+ */ >+ public String getPluginId() { >+ return fDelegate.getPluginIdentifier(); >+ } >+ >+} >Index: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchTabContribution.java >=================================================================== >RCS file: ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchTabContribution.java >diff -N ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchTabContribution.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchTabContribution.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,46 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.debug.internal.ui.launchConfigurations; >+ >+import org.eclipse.debug.internal.ui.LaunchConfigurationTabExtension; >+import org.eclipse.ui.IPluginContribution; >+ >+/** >+ * This class provides a wrapper for a launch tab contribution so that it can be filtered from the UI >+ * via the use of capabilities >+ * >+ * @since 3.3 >+ * >+ * EXPERIMENTAL >+ */ >+public class LaunchTabContribution implements IPluginContribution { >+ >+ LaunchConfigurationTabExtension fTab = null; >+ >+ public LaunchTabContribution(LaunchConfigurationTabExtension tab) { >+ fTab = tab; >+ } >+ >+ /** >+ * @see org.eclipse.ui.IPluginContribution#getLocalId() >+ */ >+ public String getLocalId() { >+ return fTab.getIdentifier(); >+ } >+ >+ /** >+ * @see org.eclipse.ui.IPluginContribution#getPluginId() >+ */ >+ public String getPluginId() { >+ return fTab.getPluginIdentifier(); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 157059
:
50306
|
50933
|
51706
|
51719
|
51935
|
51964
|
52144
|
52498
|
52620
|
53657
|
54555
|
54562
|
54584