/*******************************************************************************
 *  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_1;

	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 ClasspathTooLongStatusHandler_0;

	public static String ClasspathTooLongStatusHandler_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);
	}


}
