Package org.eclipse.debug.ui

# Interface ILaunchConfigurationTabGroup

All Known Implementing Classes:
  `AbstractLaunchConfigurationTabGroup`

public interface ILaunchConfigurationTabGroup
A launch configuration tab group is used to edit/view attributes of a specific type of launch configuration. Launch configurations are presented in a dialog, with a tab folder. Each tab manipulates one or more attributes of a launch configuration. The tab group controls which tabs are displayed for a specific type of launch configuration, and provides a mechanism for overriding configuration initialization performed by tabs.

A tab group has the following lifecycle methods:

- `createTabs(ILaunchConfigurationDialog, String)` - this is the first method called on a tab group after it is instantiated.
- `initializeFrom(ILaunchConfiguration)` - called when a launch configuration is selected to be displayed.
- `performApply(ILaunchConfigurationWorkingCopy)` - called when a tab group's values are to be written to a launch configuration.
- `dispose()` - the last method called on a tab group, when it is to perform any required cleanup. Note that a tab can be disposed before its control has been created.

The method `setDefaults(ILaunchConfigurationWorkingCopy)` can be called before a tab's controls are created.

The launch tab framework was originally designed to handle inter tab communication by applying attributes from the active tab to a launch configuration being edited, when a tab is exited, and by initializing a tab when activated. In 3.0, the addition of the methods `activated` and `deactivated` allow tabs to determine the appropriate course of action. The default implementation in `AbstractLaunchConfigurationTab` is to call the old methods (`initializeFrom` and `performApply`). Tabs should override the new methods as required.

A launch configuration group extension is defined in `plugin.xml`. Following is an example definition of a launch configuration group extension.

     <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
       <launchConfigurationTabGroup
          id="com.example.ExampleTabGroup"
          type="com.example.ExampleLaunchConfigurationTypeIdentifier"
          class="com.example.ExampleLaunchConfigurationTabGroupClass">
       </launchConfigurationTabGroup>
     </extension>

The attributes are specified as follows:

- `id` specifies a unique identifier for this launch configuration tab group.
- `type` specifies launch configuration type that this tab group is applicable to (corresponds to the id of a launch configuration type extension).
- `class` specifies a fully qualified name of a Java class that implements `ILaunchConfigurationTabGroup`.

This interface is intended to be implemented by clients.

Since:
  2.0
See Also:
  - `ILaunchConfigurationType`
  - `ILaunchConfiguration`
  - `ILaunchConfigurationTab`

## Method Summary

Modifier and Type
Method
Description
`void`
`createTabs(ILaunchConfigurationDialog dialog, String mode)`
Creates the tabs contained in this tab group for the specified launch mode.
`void`
`dispose()`
Notifies this launch configuration tab group that it has been disposed, and disposes this group's tabs.
`ILaunchConfigurationTab[]`
`getTabs()`
Returns the tabs contained in this tab group.
`void`
`initializeFrom(ILaunchConfiguration configuration)`
Initializes this group's tab controls with values from the given launch configuration.
`void`
`launched(ILaunch launch)`
Deprecated.
As of R3.0, this method is no longer called by the launch framework.
`void`
`performApply(ILaunchConfigurationWorkingCopy configuration)`
Copies values from this group's tabs into the given launch configuration.
`void`
`setDefaults(ILaunchConfigurationWorkingCopy configuration)`
Initializes the given launch configuration with default values for this tab group.

## Method Details

### createTabs

void createTabs(ILaunchConfigurationDialog dialog, String mode)
Creates the tabs contained in this tab group for the specified launch mode. The tabs control's are not created. This is the fist method called in the lifecycle of a tab group.

Parameters:
  `dialog` - the launch configuration dialog this tab group is contained in
  `mode` - the mode the launch configuration dialog was opened in

### getTabs

ILaunchConfigurationTab[] getTabs()
Returns the tabs contained in this tab group.

Returns:
  the tabs contained in this tab group

### dispose

void dispose()
Notifies this launch configuration tab group that it has been disposed, and disposes this group's tabs. Marks the end of this tab group's lifecycle, allowing this tab group to perform any cleanup required.

### setDefaults

void setDefaults(ILaunchConfigurationWorkingCopy configuration)
Initializes the given launch configuration with default values for this tab group. This method is called when a new launch configuration is created such that the configuration can be initialized with meaningful values. This method may be called before tab controls are created.

Parameters:
  `configuration` - launch configuration

### initializeFrom

void initializeFrom(ILaunchConfiguration configuration)
Initializes this group's tab controls with values from the given launch configuration. This method is called when a configuration is selected to view or edit.

Parameters:
  `configuration` - launch configuration

### performApply

void performApply(ILaunchConfigurationWorkingCopy configuration)
Copies values from this group's tabs into the given launch configuration.

Parameters:
  `configuration` - launch configuration

### launched

@Deprecated void launched(ILaunch launch)
Deprecated.
As of R3.0, this method is no longer called by the launch framework. Since tabs do not exist when launching is performed elsewhere than the launch dialog, this method cannot be relied upon for launching functionality.
Notifies this tab that a configuration has been launched, resulting in the given launch. This method can be called when a tab's control does not exist, to support single-click launching.

Parameters:
  `launch` - the result of launching the current launch configuration