Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Proposal for launch configuration API change


What follows is a proposal for an API change in the launch configuration area.  The goal is to make it easier for developers to contribute configuration delegates and to simplify the overall API.

The major point of the API change is to move several responsibilities from ILaunchConfigurationDelegate  to ILaunchConfigurationTab.  The first responsibility is verifying that attribute values entered by the user are valid.  Currently this is done by the delegate.  The proposal is to move this to the UI tab that collects the attribute value.  This involves adding several 'life-cycle' methods to ILaunchConfigurationTab.  It also implies that because tabs are contributed and do not necessarily know about any other contributed tabs, when an attribute value is in an invalid state, the user will not be allowed to move to another tab until the problem is resolved.  Currently, the user is free to move to any tab when there is an invalid attribute value, but not allowed save or launch.   In addition, the UI tabs will be reponsible for initializing default values, rather than asking the delegate to do this. &! nbsp;All of this means that the delegate becomes concerned solely with launching, and is no longer concerned with initializing defaults or verifying that a configuration is valid.  Conversely, each UI tab takes on the responsibility of determining initial values for each of its attributes and for verifying that all values it collects from the user are valid.  

Assuming there are no violent objections to this proposal, there will be a future post that will give the specific API changes (methods added and removed) proposed.  

A related change in the launch configuration area is to get rid of the ability to launch a configuration without explicitly saving it.  At present, if a user launches a configuration that has *not* been explicitly saved, the configuration is available for relaunch via the F9 key or the history list, but is not available to be edited via the launch configuration dialog.  This means that if a user creates and explicitly saves a configuration, then at a later time selects that configuration to launch and makes a change to the configuration, the original configuration is intact and has not been overridden.  The changed configuration has only been saved internally.  The proposal is to change this behavior with the goal of reducing complexity.  The 'Save & Launch' button would be removed, and 'Launch' button would be understood to imply also saving the current configuration.  In the example above, this means that! selecting an existing configuration to launch, but changing an attribute value before launching results in overwriting the existing configuration with the new attribute value.  If the user wishes to create a second configuration with the new attribute value, they must explicitly 'Copy' the original configuration and make the change.

Any comments should be directed to this list in the next several days.

Back to the top