/*
   * (non-Javadoc)
   *
   * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
   */
  @Override
  public void performApply(ILaunchConfigurationWorkingCopy configuration) {
    super.performApply(configuration);
    try {
      // has the location changed
      String newLocation =
          configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, (String) null);
      if (newLocation != null) {
        if (!newLocation.equals(fCurrentLocation)) {
          updateTargetsTab();
          fCurrentLocation = newLocation;
          updateProjectName(configuration);
        }
      } else if (fCurrentLocation != null) {
        updateTargetsTab();
        fCurrentLocation = newLocation;
        updateProjectName(configuration);
      }
    } catch (CoreException e) {
      // do nothing
    }

    setMappedResources(configuration);
    setAttribute(
        IAntUIConstants.SET_INPUTHANDLER,
        configuration,
        fSetInputHandlerButton.getSelection(),
        true);
  }
 /*
  * (non-Javadoc)
  *
  * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
  */
 @Override
 public void initializeFrom(ILaunchConfiguration configuration) {
   super.initializeFrom(configuration);
   try {
     fCurrentLocation =
         configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, (String) null);
   } catch (CoreException e) {
     // do nothing
   }
   updateCheckButtons(configuration);
 }
 /*
  * (non-Javadoc)
  *
  * @see
  * org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy
  * )
  */
 @Override
 public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
   super.setDefaults(configuration);
   // prevent a new blank configuration from being dirty when first created and not yet edited
   setMappedResources(configuration);
 }