// Path: org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/AngularUIMessages.java
// public final class AngularUIMessages extends NLS {
// 
// 	private static final String BUNDLE_NAME = "org.eclipse.angularjs.internal.ui.AngularUIMessages"; //$NON-NLS-1$
// 
// 	private static ResourceBundle fResourceBundle;
// 
// 	public static String ConvertProjectToAngular_converting_project_job_title;
// 
// 	public static String AngularGlobalPreferencesPage_desc;
// 	public static String HTMLAngularGlobalPreferencesPage_desc;
// 	public static String HTMLAngularEditorPreferencesPage_desc;
// 
// 	public static String Sample_HTMLAngular_doc;
// 
// 	public static String AngularTyping_Auto_Complete;
// 	public static String AngularTyping_Close_EL;
// 
// 	// Angular Explorer View
// 	public static String AngularOutline_computing;
// 	
// 	public static String GoToDefinitionAction_text;
// 	public static String GoToDefinitionAction_tooltip;
// 	public static String LinkToControllerAction_text;
// 	public static String LinkToControllerAction_tooltip;
// 	public static String RefreshExplorerAction_text;
// 	public static String RefreshExplorerAction_tooltip;
// 	public static String UnLinkToControllerAction_text;
// 	public static String UnLinkToControllerAction_tooltip;
// 
// 	public static String AngularExplorerView_openFile_error;
// 	public static String AngularExplorerView_openFileDialog_title;
// 
// 	public static String LexicalSortingAction_text;
// 	public static String LexicalSortingAction_tooltip;
// 	public static String LexicalSortingAction_description;
// 
// 	// Hyperlink
// 	public static String HTMLAngularHyperLink_text;
// 	public static String HTMLAngularHyperLink_typeLabel;
// 
// 	// Preferences
// 	public static String DirectivesPropertyPage_desc;
// 	public static String DirectivesPropertyPage_useOriginalName_label;
// 	public static String DirectivesPropertyPage_startsWithLabel_text;
// 	public static String DirectivesPropertyPage_startsWithNothing_label;
// 	public static String DirectivesPropertyPage_startsWithX_label;
// 	public static String DirectivesPropertyPage_startsWithData_label;
// 	public static String DirectivesPropertyPage_delimiterLabel_text;
// 	public static String DirectivesPropertyPage_colonDelimiter_label;
// 	public static String DirectivesPropertyPage_minusDelimiter_label;
// 	public static String DirectivesPropertyPage_underscoreDelimiter_label;
// 	public static String DirectivesPropertyPage_directiveTestLabel_text;
// 
// 	public static String ExpressionPropertyPage_startSybol_label;
// 	public static String ExpressionPropertyPage_endSybol_label;
// 
// 	public static String OpenAngularElementAction_label;
// 	public static String OpenAngularElementAction_description;
// 	public static String OpenAngularElementAction_tooltip;
// 	public static String OpenAngularElementAction_dialogMessage;
// 	public static String OpenAngularElementAction_dialogTitle;
// 
// 	// Protractor
// 	public static String ProtractorLaunchShortcut_Error;
// 	public static String ProtractorLaunchShortcut_Protractor_Failed;
// 
// 	public static String ProtractorPreferencesPage_desc;
// 	public static String ProtractorPreferencesPage_defaultCliFile_label;
// 	public static String ProtractorPreferencesPage_debugger_label;
// 	
// 	public static String Protractor_MainTab_location_label;
// 	public static String Protractor_MainTab_Select_a_protractor_config_file;
// 	public static String Protractor_ProtractorTab_name;
// 	public static String Protractor_ProtractorTab_cliFile;
// 
// 
// 	private AngularUIMessages() {
// 	}
// 
// 	public static ResourceBundle getResourceBundle() {
// 		try {
// 			if (fResourceBundle == null)
// 				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
// 		} catch (MissingResourceException x) {
// 			fResourceBundle = null;
// 		}
// 		return fResourceBundle;
// 	}
// 
// 	static {
// 		NLS.initializeMessages(BUNDLE_NAME, AngularUIMessages.class);
// 	}
// }


import org.eclipse.angularjs.internal.ui.AngularUIMessages;
import org.eclipse.core.externaltools.internal.IExternalToolConstants;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.variables.IStringVariableManager;
import org.eclipse.core.variables.VariablesPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
import org.eclipse.ui.externaltools.internal.ui.FileSelectionDialog;
import tern.eclipse.ide.server.nodejs.core.debugger.launchConfigurations.NodejsCliFileHelper;
		Dialog.applyDialogFont(parent);
	}

	/*
	 * (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
	}

	private void updateCheckButtons(ILaunchConfiguration configuration) {
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.externaltools.internal.launchConfigurations.
	 * ExternalToolsMainTab#handleWorkspaceLocationButtonSelected()
	 */
	@Override
	protected void handleWorkspaceLocationButtonSelected() {
		FileSelectionDialog dialog;
		dialog = new FileSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(),
// Path: org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/AngularUIMessages.java
// public final class AngularUIMessages extends NLS {
// 
// 	private static final String BUNDLE_NAME = "org.eclipse.angularjs.internal.ui.AngularUIMessages"; //$NON-NLS-1$
// 
// 	private static ResourceBundle fResourceBundle;
// 
// 	public static String ConvertProjectToAngular_converting_project_job_title;
// 
// 	public static String AngularGlobalPreferencesPage_desc;
// 	public static String HTMLAngularGlobalPreferencesPage_desc;
// 	public static String HTMLAngularEditorPreferencesPage_desc;
// 
// 	public static String Sample_HTMLAngular_doc;
// 
// 	public static String AngularTyping_Auto_Complete;
// 	public static String AngularTyping_Close_EL;
// 
// 	// Angular Explorer View
// 	public static String AngularOutline_computing;
// 	
// 	public static String GoToDefinitionAction_text;
// 	public static String GoToDefinitionAction_tooltip;
// 	public static String LinkToControllerAction_text;
// 	public static String LinkToControllerAction_tooltip;
// 	public static String RefreshExplorerAction_text;
// 	public static String RefreshExplorerAction_tooltip;
// 	public static String UnLinkToControllerAction_text;
// 	public static String UnLinkToControllerAction_tooltip;
// 
// 	public static String AngularExplorerView_openFile_error;
// 	public static String AngularExplorerView_openFileDialog_title;
// 
// 	public static String LexicalSortingAction_text;
// 	public static String LexicalSortingAction_tooltip;
// 	public static String LexicalSortingAction_description;
// 
// 	// Hyperlink
// 	public static String HTMLAngularHyperLink_text;
// 	public static String HTMLAngularHyperLink_typeLabel;
// 
// 	// Preferences
// 	public static String DirectivesPropertyPage_desc;
// 	public static String DirectivesPropertyPage_useOriginalName_label;
// 	public static String DirectivesPropertyPage_startsWithLabel_text;
// 	public static String DirectivesPropertyPage_startsWithNothing_label;
// 	public static String DirectivesPropertyPage_startsWithX_label;
// 	public static String DirectivesPropertyPage_startsWithData_label;
// 	public static String DirectivesPropertyPage_delimiterLabel_text;
// 	public static String DirectivesPropertyPage_colonDelimiter_label;
// 	public static String DirectivesPropertyPage_minusDelimiter_label;
// 	public static String DirectivesPropertyPage_underscoreDelimiter_label;
// 	public static String DirectivesPropertyPage_directiveTestLabel_text;
// 
// 	public static String ExpressionPropertyPage_startSybol_label;
// 	public static String ExpressionPropertyPage_endSybol_label;
// 
// 	public static String OpenAngularElementAction_label;
// 	public static String OpenAngularElementAction_description;
// 	public static String OpenAngularElementAction_tooltip;
// 	public static String OpenAngularElementAction_dialogMessage;
// 	public static String OpenAngularElementAction_dialogTitle;
// 
// 	// Protractor
// 	public static String ProtractorLaunchShortcut_Error;
// 	public static String ProtractorLaunchShortcut_Protractor_Failed;
// 
// 	public static String ProtractorPreferencesPage_desc;
// 	public static String ProtractorPreferencesPage_defaultCliFile_label;
// 	public static String ProtractorPreferencesPage_debugger_label;
// 	
// 	public static String Protractor_MainTab_location_label;
// 	public static String Protractor_MainTab_Select_a_protractor_config_file;
// 	public static String Protractor_ProtractorTab_name;
// 	public static String Protractor_ProtractorTab_cliFile;
// 
// 
// 	private AngularUIMessages() {
// 	}
// 
// 	public static ResourceBundle getResourceBundle() {
// 		try {
// 			if (fResourceBundle == null)
// 				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
// 		} catch (MissingResourceException x) {
// 			fResourceBundle = null;
// 		}
// 		return fResourceBundle;
// 	}
// 
// 	static {
// 		NLS.initializeMessages(BUNDLE_NAME, AngularUIMessages.class);
// 	}
// }


// Path: org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/launchConfigurations/MainTab.java
import org.eclipse.angularjs.internal.ui.AngularUIMessages;
import org.eclipse.core.externaltools.internal.IExternalToolConstants;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.variables.IStringVariableManager;
import org.eclipse.core.variables.VariablesPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
import org.eclipse.ui.externaltools.internal.ui.FileSelectionDialog;
import tern.eclipse.ide.server.nodejs.core.debugger.launchConfigurations.NodejsCliFileHelper;

		Dialog.applyDialogFont(parent);
	}

	/*
	 * (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
	}

	private void updateCheckButtons(ILaunchConfiguration configuration) {
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.externaltools.internal.launchConfigurations.
	 * ExternalToolsMainTab#handleWorkspaceLocationButtonSelected()
	 */
	@Override
	protected void handleWorkspaceLocationButtonSelected() {
		FileSelectionDialog dialog;
		dialog = new FileSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(),
				AngularUIMessages.Protractor_MainTab_Select_a_protractor_config_file);