/*******************************************************************************
 * Copyright (c) 2009, 2010 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 Corporation - Initial API and implementation
 *******************************************************************************/
package org.eclipse.ptp.internal.rdt.sync.ui.messages;

import org.eclipse.osgi.util.NLS;

@SuppressWarnings("javadoc")
public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.ptp.internal.rdt.sync.ui.messages.messages"; //$NON-NLS-1$
	public static String AddSyncConfigWizard_description;
	public static String AddSyncConfigWizard_title;
	public static String AddSyncConfigWizardPage_Connection_and_location_must_be_sepecified;
	public static String AddSyncConfigWizardPage_Name_already_exists;
	public static String AddSyncConfigWizardPage_Name_must_be_specified;
	public static String AddSyncConfigWizardPage_Project_location;
	public static String AddSyncConfigWizardPage_Provider_must_be_selected;
	public static String AddSyncConfigWizardPage_Browse;
	public static String AddSyncConfigWizardPage_Configuration_name;
	public static String AddSyncConfigWizardPage_browse_message;
	public static String AddSyncConfigWizardPage_Sync_Config;
	public static String AddSyncConfigWizardPage_Synchronize_provider;
	public static String CommonMissingConnectionHandler_0;
	public static String CommonMissingConnectionHandler_1;
	public static String CommonMissingConnectionHandler_2;
	public static String CommonMissingConnectionHandler_3;
	public static String CommonMissingConnectionHandler_4;
	public static String CommonMissingConnectionHandler_5;
	public static String CommonMissingConnectionHandler_6;
	public static String CommonSyncExceptionHandler_0;
	public static String CommonSyncExceptionHandler_1;
	public static String CommonSyncExceptionHandler_2;
	public static String CommonSyncExceptionHandler_3;
	public static String CommonSyncExceptionHandler_4;
	public static String CommonSyncExceptionHandler_5;
	public static String ConvertProject_description;
	public static String ConvertProject_title;
	public static String ConvertProject_windowTitle;
	public static String ManageConfigurationDialog_Title;
	public static String ManageConfigurationWidget_Connection_name;
	public static String ManageConfigurationWidget_Project_location;
	public static String ManageConfigurationWidget_Sync_provider;
	public static String NewProject_caseVariantExistsError;
	public static String NewProject_description;
	public static String NewProject_errorMessage;
	public static String NewProject_errorOpeningWindow;
	public static String NewProject_internalError;
	public static String NewProject_perspSwitchMessage;
	public static String NewProject_perspSwitchMessageWithDesc;
	public static String NewProject_perspSwitchTitle;
	public static String NewProject_referenceDescription;
	public static String NewProject_referenceTitle;
	public static String NewProject_title;
	public static String NewProject_windowTitle;
	public static String NewSyncFileFilterPage_Add;
	public static String NewSyncFileFilterPage_Add_Pattern;
	public static String NewSyncFileFilterPage_Edit;
	public static String NewSyncFileFilterPage_Edit_pattern;
	public static String NewSyncFileFilterPage_Exclude;
	public static String NewSyncFileFilterPage_exclude;
	public static String NewSyncFileFilterPage_include;
	public static String NewSyncFileFilterPage_Include;
	public static String NewSyncFileFilterPage_Matcher;
	public static String NewSyncFileFilterPage_Matcher_Type;
	public static String NewSyncFileFilterPage_Move_down;
	public static String NewSyncFileFilterPage_Move_up;
	public static String NewSyncFileFilterPage_Pattern;
	public static String NewSyncFileFilterPage_Pattern_label;
	public static String NewSyncFileFilterPage_Pattern_Type;
	public static String NewSyncFileFilterPage_Patterns_to_include;
	public static String NewSyncFileFilterPage_Remote_is_disconnected;
	public static String NewSyncFileFilterPage_Remove;
	public static String NewSyncFileFilterPage_Select_files_to_be_included;
	public static String NewSyncFileFilterPage_Show_remote_files;
	public static String NewSyncFileFilterPage_Title;
	public static String NewSyncFileFilterPage_Type;
	public static String NewSyncProjectWizard_Set_mode_too_late_error;
	public static String NewSyncProjectWizard_Unable_to_find_perspective;
	public static String NewSyncProjectWizard_Unexpected_core_exception;
	public static String ResourceChangeListener_0;
	public static String SyncFileFilterPage_0;
	public static String SyncFileFilterPage_Attempt_to_edit_unsupported;
	public static String SyncFileFilterPage_Cancel;
	public static String SyncFileFilterPage_Default_Include_exclude_title;
	public static String SyncFileFilterPage_Down;
	public static String SyncFileFilterPage_Edit;
	public static String SyncFileFilterPage_Edit_Pattern;
	public static String SyncFileFilterPage_Enter_Path;
	public static String SyncFileFilterPage_Enter_Regex;
	public static String SyncFileFilterPage_Enter_Wildcard;
	public static String SyncFileFilterPage_EnterPathOrFile;
	public static String SyncFileFilterPage_EnterWildcard;
	public static String SyncFileFilterPage_EnterRegex;
	public static String SyncFileFilterPage_Exclude;
	public static String SyncFileFilterPage_File_view;
	public static String SyncFileFilterPage_Include;
	public static String SyncFileFilterPage_Include_exclude_title;
	public static String SyncFileFilterPage_Inclusive;
	public static String SyncFileFilterPage_Invalid_Regular_Expression;
	public static String SyncFileFilterPage_OK;
	public static String SyncFileFilterPage_path;
	public static String SyncFileFilterPage_Pattern_View;
	public static String SyncFileFilterPage_regex;
	public static String SyncFileFilterPage_Remote_is_disconnected;
	public static String SyncFileFilterPage_Remove;
	public static String SyncFileFilterPage_Show_Remote_Files;
	public static String SyncFileFilterPage_toExcludeOrInclude;
	public static String SyncFileFilterPage_Up;
	public static String SyncFileFilterPage_wildcard;
	public static String SynchronizeParticipantDescriptor_invalidClass;
	public static String SyncMainWizardPage_Project_name;
	public static String SyncMainWizardPage_Project_name_cannot_contain_hash;
	public static String SyncMainWizardPage_Project_name_must_be_specified;
	public static String SyncMenuOperation_0;
	public static String SyncMenuOperation_1;
	public static String SyncMenuOperation_2;
	public static String SyncMenuOperation_6;
	public static String SyncMergeEditor_0;
	public static String SyncMergeEditor_1;
	public static String SyncMergeEditor_2;
	public static String SyncMergeFileTreeViewer_0;
	public static String SyncMergeFileTableViewer_Resolve_all_as_remote;
	public static String SyncMergeFileTableViewer_Error;
	public static String SyncMergeFileTableViewer_Error_resolving_all;
	public static String SyncMergeFileTableViewer_Error_description;
	public static String SyncMergeFileTableViewer_Selected_element_not_adaptable;
	public static String SyncPreferencePage_0;
	public static String SyncProjectWidget_Project_to_convert;
	public static String SyncProjectWidget_Project_to_convert_label;
	public static String SyncProjectWidget_9;
	public static String SyncProjectWidget_Browse;
	public static String SyncProjectWidget_Directory_already_exists;
	public static String SyncProjectWidget_Local_directory;
	public static String SyncProjectWidget_Local_directory_label;
	public static String SyncProjectWidget_Modify_file_filtering;
	public static String SyncProjectWidget_Project_already_exists;
	public static String SyncProjectWidget_Project_name_must_be_specified;
	public static String SyncProjectWidget_Remote_directory;
	public static String SyncProjectWidget_Select_project_local_directory;
	public static String SyncProjectWidget_Use_default_location;
	public static String ManageConfigurationWidget_Add;
	public static String ManageConfigurationWidget_Cannot_remove_active;
	public static String ManageConfigurationWidget_Failed_to_save_properties;
	public static String ManageConfigurationWidget_Must_be_at_least_one;
	public static String ManageConfigurationWidget_Only_one_configuration_active;
	public static String ManageConfigurationWidget_Remove;
	public static String ManageConfigurationWidget_Remove_Configuration;
	public static String ManageConfigurationWidget_Save_failed;
	public static String ManageConfigurationWidget_Set_Active;
	public static String ManageConfigurationWidget_Set_Active_Configuration;

	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
