private void show(ILaunchConfiguration config) {
    try {
      launchConfig = config;
      workingCopy = launchConfig.getWorkingCopy();
      configNameText.setText(workingCopy.getName());

      currentTabGroup =
          LaunchConfigurationPresentationManager.getDefault().getTabGroup(workingCopy, getMode());
      currentTabGroup.createTabs(this, getMode());

      ILaunchConfigurationTab[] tabs = currentTabGroup.getTabs();

      for (int i = 0; i < tabs.length; i++) {
        tabs[i].setLaunchConfigurationDialog(this);
      }

      setActiveTab(0);
    } catch (CoreException ce) {
      DebugErrorHandler.errorDialog(
          getShell(),
          "Error Displaying Launch",
          "Unable to display launch settings: " + ce.toString(),
          ce);
    }
  }
  private void saveConfig() {
    if (currentTabGroup != null) {
      currentTabGroup.performApply(workingCopy);

      try {
        workingCopy.doSave();
      } catch (CoreException e) {
        DebugErrorHandler.errorDialog(
            getShell(),
            "Error Saving Launch",
            "Unable to save launch settings: " + e.toString(),
            e);
      }
    }

    updateButtons();
    updateMessage();
    refreshTable();
  }