All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.debug.ui.ILaunchConfigurationTabGroup Maven / Gradle / Ivy

There is a newer version: 3.18.500
Show newest version
/*******************************************************************************
 * Copyright (c) 2000, 2013 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.ui;


import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

/**
 * 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. *

* @see org.eclipse.debug.core.ILaunchConfigurationType * @see org.eclipse.debug.core.ILaunchConfiguration * @see org.eclipse.debug.ui.ILaunchConfigurationTab * @since 2.0 */ public interface ILaunchConfigurationTabGroup { /** * 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. * * @param dialog the launch configuration dialog this tab group * is contained in * @param mode the mode the launch configuration dialog was * opened in */ void createTabs(ILaunchConfigurationDialog dialog, String mode); /** * Returns the tabs contained in this tab group. * * @return the tabs contained in this tab group */ ILaunchConfigurationTab[] getTabs(); /** * 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. */ void dispose(); /** * 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. * * @param configuration launch configuration */ void setDefaults(ILaunchConfigurationWorkingCopy 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. * * @param configuration launch configuration */ void initializeFrom(ILaunchConfiguration configuration); /** * Copies values from this group's tabs into the given * launch configuration. * * @param configuration launch configuration */ void performApply(ILaunchConfigurationWorkingCopy configuration); /** * 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. * * @param launch the result of launching the current * launch configuration * @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. */ @Deprecated void launched(ILaunch launch); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy