/*******************************************************************************
 *  Copyright (c) 2000, 2018 IBM Corporation and others.
 *
 *  This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License 2.0
 *  which accompanies this distribution, and is available at
 *  https://www.eclipse.org/legal/epl-2.0/
 *
 *  SPDX-License-Identifier: EPL-2.0
 *
 *  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_ActivateHelpfulNullPointerExceptions;
	public static String JavaArgumentsTab_AttributeTooltip_ActivateHelpfulNullPointerExceptions;

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

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

	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);
	}


}
