/*******************************************************************************
 *  Copyright (c) 2000, 2018 IBM Corporation and others.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  Contributors:
 *  IBM - Initial API and implementation
 *  BEA - Daniel R Somerfield - Bug 88939
 *  Remy Chi Jian Suen - Bug 221973
 *  Axel Richard (Obeo) - Bug 41353 - Launch configurations prototypes
 *******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.launcher;

import org.eclipse.osgi.util.NLS;

public class LauncherMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.jdt.internal.debug.ui.launcher.LauncherMessages";//$NON-NLS-1$

	public static String JavaArgumentsTab_5;
	public static String JavaArgumentsTab__Arguments_16;
	public static String JavaArgumentsTab__Program_arguments__5;
	public static String JavaArgumentsTab_Exception_occurred_reading_configuration___15;
	public static String JavaArgumentsTab_VM_ar_guments__6;
	public static String JavaArgumentsTab_AttributeLabel_ProgramArguments;
	public static String JavaArgumentsTab_AttributeLabel_VMArguments;
	public static String JavaArgumentsTab_AttributeLabel_UseAtStart;
	public static String JavaArgumentsTab_AttributeLabel_WorkingDirectory;

	public static String JavaClasspathTab_1;

	public static String JavaJRETab_0;

	public static String JavaJRETab_1;

	public static String JavaJRETab_2;

	public static String JavaJRETab_3;
	public static String JavaJRETab_4;

	public static String JavaJRETab_AttributeLabel_JREContainerPath;
	public static String JavaJRETab_AttributeLabel_VMAttributes;

	public static String MainMethodLabelProvider_0;
	public static String RuntimeClasspathAdvancedDialog_6;
	public static String RuntimeClasspathAdvancedDialog_7;

	public static String VMArgumentsBlock_0;

	public static String VMArgumentsBlock_VM_Arguments;
	public static String VMArgumentsBlock_4;

	public static String JavaConnectTab__Allow_termination_of_remote_VM_6;
	public static String JavaConnectTab_Conn_ect_20;
	public static String JavaConnectTab_Connect_ion_Type__7;
	public static String JavaConnectTab_Project_does_not_exist_14;
	public static String JavaConnectTab_Connection_Properties_1;
	public static String JavaConnectTab_Unable_to_display_connection_arguments__2;
	public static String JavaConnectTab__is_invalid__5;

	public static String JavaJRETab__JRE_1;

	public static String JavaJRETab_5;
	public static String JavaJRETab_7;
	public static String JavaJRETab_8;
	public static String JavaJRETab_9;
	public static String JavaJRETab_10;
	public static String JavaJRETab_11;
	public static String JavaJRETab_12;
	public static String JavaJRETab_13;

	public static String JavaMainTab__Main_19;
	public static String JavaMainTab_Choose_a_main__type_to_launch__12;
	public static String JavaMainTab_Choose_Main_Type_11;
	public static String JavaMainTab_E_xt__jars_6;
	public static String JavaMainTab_Main_cla_ss__4;
	public static String JavaMainTab_Main_type_not_specified_16;
	public static String JavaMainTab_St_op_in_main_1;
	public static String JavaMainTab_19;
	public static String JavaMainTab_20;
	public static String JavaMainTab_21;
	public static String JavaMainTab_22;
	public static String JavaMainTab_missing_project;

	public static String JavaLauncherTab_AttributeLabel_ProjectName;
	public static String SharedJavaMainTab_AttributeLabel_MainTypeName;
	public static String JavaMainTab_AttributeLabel_StopInMain;
	public static String JavaMainTab_AttributeLabel_IncludeExternalJars;
	public static String JavaMainTab_AttributeLabel_InheritedMain;

	public static String JavaUISourceLocator_askagain_message;
	public static String JavaUISourceLocator_selectprojects_message;
	public static String JavaUISourceLocator_selectprojects_title;

	public static String jdkLauncher_error_timeout;

	public static String MainMethodSearchEngine_1;
	public static String MainMethodSearchEngine_2;

	public static String SourceLookupBlock_Use_defau_lt_source_lookup_path_1;
	public static String SourceLookupBlock_Unable_to_save_source_lookup_path_1;

	public static String VMConnectTimeoutStatusHandler_Java_Application_1;

	public static String JavaClasspathTab_Cla_ss_path_3;
	public static String JavaClasspathTab_0;
	public static String JavaClasspathTab_Unable_to_save_classpath_1;
	public static String JavaClasspathTab_Invalid_runtime_classpath_1;
	public static String JavaClasspathTab_Exclude_Test_Code;

	public static String JavaClasspathTab_AttributeLabel_DefaultClasspath;
	public static String JavaClasspathTab_AttributeLabel_Classpath;

	public static String JavaDependenciesTab_0;
	public static String JavaDependenciesTab_Dependencies_3;

	public static String JavaSourceLookupTab_Source_1;

	public static String SourceLookupBlock_Source_1;
	public static String SourceLookupBlock__Source_Lookup_Path__1;
	public static String SourceLookupBlock__Search_for_duplicate_source_files_on_path_1;

	public static String RuntimeClasspathAdvancedDialog_Advanced_Options_1;
	public static String RuntimeClasspathAdvancedDialog_Unable_to_create_new_entry__3;
	public static String RuntimeClasspathAdvancedDialog_Select_an_advanced_option__1;

	public static String RuntimeClasspathEntryLabelProvider_Invalid_path;

	public static String AbstractJavaMainTab_0;
	public static String AbstractJavaMainTab_1;
	public static String AbstractJavaMainTab_2;
	public static String AbstractJavaMainTab_4;
	public static String AbstractJavaMainTab_3;

	public static String appletlauncher_argumenttab_widthlabel_text;
	public static String appletlauncher_argumenttab_heightlabel_text;
	public static String appletlauncher_argumenttab_namelabel_text;
	public static String appletlauncher_argumenttab_parameterslabel_text;
	public static String appletlauncher_argumenttab_parameters_button_add_text;
	public static String appletlauncher_argumenttab_parameters_button_edit_text;
	public static String appletlauncher_argumenttab_parameters_button_remove_text;
	public static String appletlauncher_argumenttab_width_error_notaninteger;
	public static String appletlauncher_argumenttab_height_error_notaninteger;
	public static String appletlauncher_argumenttab_parameters_dialog_add_title;
	public static String appletlauncher_argumenttab_parameters_dialog_add_name_text;
	public static String appletlauncher_argumenttab_parameters_dialog_add_value_text;
	public static String appletlauncher_argumenttab_parameters_dialog_edit_title;
	public static String appletlauncher_argumenttab_parameters_dialog_edit_name_text;
	public static String appletlauncher_argumenttab_parameters_dialog_edit_value_text;
	public static String appletlauncher_argumenttab_name_defaultvalue;
	public static String appletlauncher_argumenttab_parameterscolumn_name_text;
	public static String appletlauncher_argumenttab_parameterscolumn_value_text;
	public static String appletlauncher_argumenttab_name;

	public static String appletlauncher_maintab_mainclasslabel_name;
	public static String appletlauncher_maintab_selection_applet_dialog_title;
	public static String appletlauncher_maintab_project_error_doesnotexist;
	public static String appletlauncher_maintab_type_error_doesnotexist;
	public static String appletlauncher_maintab_name;

	public static String appletlauncher_utils_error_main_type_not_specified;
	public static String appletlauncher_utils_error_main_type_does_not_exist;

	public static String appletlauncher_search_task_inprogress;

	public static String AppletParametersTab__optional_applet_instance_name__1;
	public static String AppletMainTab_1;
	public static String AppletMainTab_2;
	public static String AppletMainTab_3;

	public static String JREContainerResolution_Select_a_system_library_to_use_when_building__0__2;
	public static String JREContainerResolution_Unable_to_update_classpath_1;
	public static String DefineSystemLibraryQuickFix_Create_a_system_library_definition_2;

	public static String SelectDefaultSystemLibraryQuickFix_Select_Default_System_Library_1;
	public static String SelectDefaultSystemLibraryQuickFix__Select_the_system_library_to_use_by_default_for_building_and_running_Java_projects__2;
	public static String SelectDefaultSystemLibraryQuickFix_Unable_to_update_the_default_system_library__4;
	public static String SelectDefaultSystemLibraryQuickFix_Select_default_system_library_5;

	public static String AppletSelectionDialog_Searching____1;

	public static String ExecutionEnvironmentSelector_0;
	public static String ExecutionEnvironmentSelector_1;

	public static String JavaAppletLaunchShortcut_0;
	public static String JavaAppletLaunchShortcut_1;
	public static String JavaAppletLaunchShortcut_2;
	public static String JavaApplicationLaunchShortcut_0;
	public static String JavaApplicationLaunchShortcut_1;
	public static String JavaApplicationLaunchShortcut_2;
	public static String JavaLaunchShortcut_0;
	public static String JavaLaunchShortcut_1;
	public static String JavaLaunchShortcut_2;
	public static String JavaLaunchShortcut_3;

	public static String JreResolutionGenerator_open_ee_prefs;
	public static String JreResolutionGenerator_opens_ee_prefs;

	public static String JreResolutionGenerator_open_cc_props;
	public static String JreResolutionGenerator_opens_cc_props;

	public static String ProjectClasspathArugumentSelector_0;
	public static String ProjectClasspathArugumentSelector_1;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, LauncherMessages.class);
	}


}
