/*****************************************************************************
 * Copyright (c) 2010, 2019 CEA LIST.
 *    
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *   Nicolas Bros (Mia-Software) - initial API and implementation
 *   Nicolas Bros (Mia-Software) - Bug 339664 - org.eclipse.modisco.facet.widgets.celleditors API cleaning
 *****************************************************************************/
package org.eclipse.modisco.facet.widgets.celleditors.internal;

import org.eclipse.osgi.util.NLS;

public final class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.modisco.facet.widgets.celleditors.internal.messages"; //$NON-NLS-1$
	public static String CoreIFileComposite_mustSelectFile;
	public static String CoreIFileComposite_selectFile;
	public static String NaryAttributeEditingDialog_add;
	public static String NaryAttributeEditingDialog_delete;
	public static String NaryAttributeEditingDialog_enterNewValuePlaceholder;
	public static String NaryReferenceEditingDialog_add;
	public static String NaryReferenceEditingDialog_addAll;
	public static String NaryReferenceEditingDialog_addAllTooltip;
	public static String NaryReferenceEditingDialog_addTooltip;
	public static String NaryReferenceEditingDialog_availableValues;
	public static String NaryReferenceEditingDialog_deleteElements;
	public static String NaryReferenceEditingDialog_deleteElementsLong;
	public static String NaryReferenceEditingDialog_down;
	public static String NaryReferenceEditingDialog_moveWarning;
	public static String NaryReferenceEditingDialog_moveElement;
	public static String NaryReferenceEditingDialog_newInstance;
	public static String NaryReferenceEditingDialog_remove;
	public static String NaryReferenceEditingDialog_removeAll;
	public static String NaryReferenceEditingDialog_removeAllTooltip;
	public static String NaryReferenceEditingDialog_removeTooltip;
	public static String NaryReferenceEditingDialog_shellTitle;
	public static String NaryReferenceEditingDialog_typeFilterText;
	public static String NaryReferenceEditingDialog_up;
	public static String NaryReferenceEditingDialog_values;
	public static String UnaryReferenceCellEditorComposite_0;
	public static String UnaryReferenceCellEditorComposite_1;
	public static String UnaryReferenceCellEditorComposite_2;
	static {
		// initialize resource bundle
		NLS.initializeMessages(Messages.BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
