/*******************************************************************************
 * Copyright (c) 2003, 2017 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
 * QNX Software Systems - Mikhail Khodjaiants - Bug 114664
 * Axel Richard (Obeo) - Bug 41353 - Launch configurations prototypes
 *******************************************************************************/
package org.eclipse.debug.internal.ui.sourcelookup;

import org.eclipse.osgi.util.NLS;

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

	public static String CommonSourceNotFoundEditor_0;

	public static String CommonSourceNotFoundEditor_1;

	// Source search launch configuration tab/errors/dialogs
	public static String EditContainerAction_0;

	public static String SourceLookupDialog_0;

	public static String SourceLookupDialog_1;

	public static String SourceLookupDialog_add_edit_remove;
	public static String sourceTab_lookupLabel;
	public static String sourceTab_searchDuplicateLabel;
	public static String sourceTab_upButton;
	public static String sourceTab_downButton;
	public static String sourceTab_removeButton;
	public static String sourceTab_addButton;
	public static String sourceTab_tabTitle;
	public static String sourceTab_defaultButton;

	public static String sourceTab_AttributeLabel_SourceLocatorMemento;
	public static String sourceTab_AttributeLabel_SourceLocatorID;

	public static String addSourceLocation_title;
	public static String addSourceLocation_description;

	public static String addSourceLocation_addButton2;
	public static String addSourceLocation_editorMessage;

	public static String sourceSearch_folderSelectionError;
	public static String sourceSearch_initError;

	public static String projectSelection_chooseLabel;
	public static String projectSelection_requiredLabel;

	public static String folderSelection_title;
	public static String folderSelection_label;

	public static String manageSourceDialog_title;
	public static String manageSourceDialog_description;

	public static String sourceLookupPanel_1;
	public static String sourceLookupPanel_2;
	public static String ResolveDuplicatesHandler_0;
	public static String ResolveDuplicatesHandler_1;
	public static String EditSourceLookupPathAction_0;
	public static String LookupSourceAction_0;
	public static String ExternalArchiveSourceContainerBrowser_2;
	public static String AddSourceContainerDialog_select_source_container;

	public static String ArchiveSourceContainerBrowser_3;
	public static String ArchiveSourceContainerBrowser_4;
	public static String DirectorySourceContainerDialog_0;
	public static String DirectorySourceContainerDialog_1;

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

	public static String DirectorySourceContainerDialog_2;

	public static String DirectorySourceContainerDialog_3;

	public static String DirectorySourceContainerDialog_4;

	public static String DirectorySourceContainerDialog_5;

	public static String DirectorySourceContainerDialog_6;

	public static String DirectorySourceContainerDialog_7;

	public static String DirectorySourceContainerDialog_8;

	public static String Prompter_0;
}
