/*******************************************************************************
 * Copyright (c) 2004, 2006 Sybase, Inc. 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:
 *     Sybase, Inc. - initial API and implementation
 *******************************************************************************/


package org.eclipse.jst.jsf.facesconfig.ui.preference;

import org.eclipse.osgi.util.NLS;

/**
 * The NLS message manager for PreferenceMessages
 * 
 */
/*package*/ final class PreferenceMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.facesconfig.ui.preference.PreferenceMessages"; //$NON-NLS-1$

	private PreferenceMessages() {
		// Do not instantiate
	}

	static {
		NLS.initializeMessages(BUNDLE_NAME, PreferenceMessages.class);
	}

	/**
	 * see PreferenceMessages.properties
	 */
	public static String CanvasPreferenceTab_LABEL_UseSystemColors;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_BackgroundColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_Canvas;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_GridHeight;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_GridLineColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_GridWidth;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_IconLabelFont;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_IconGroup;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_InputPortColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_OutputPortColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineGroup;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_ShowLineLabels;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineLabelColor;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineLabelFont;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineRouting;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LineWidth;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_SnapToGeometry;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_SnapToGrid;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_UndoStackSize;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Direct;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Manhattan;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Manual;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_LabelPlacement;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Top;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Bottom;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Left;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Right;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferenceTab_LABEL_IconSize;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Small;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Medium;

    /**
     * see PreferenceMessages.properties
     */
	public static String CanvasPreferences_LABEL_Large;

    /**
     * label property for check box that selects whether or not
     * the introduction section editor should be loaded.
     */
    public static String EditorPreferences_LABEL_ShowIntroEditor;

	/**
	 * see PreferenceMessages.properties
	 */
	public static String GEMPreferences_description;
	/**
	 * see PreferenceMessages.properties
	 */
	public static String CompoundNodeFigure_MaximizeLabel;
	/**
	 * see PreferenceMessages.properties
	 */
	public static String CompoundNodeFigure_MinimizeLabel;
	/**
	 * see PreferenceMessages.properties
	 */
	public static String CompoundNodeFigure_RestoreLabel;
	/**
	 * see PreferenceMessages.properties
	 */
	public static String WindowFigure_NoTitleText;
	/**
	 * see PreferenceMessages.properties
	 */
	public static String WindowFigure_Title;

}
