/*******************************************************************************
 * 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.pageflow;

import org.eclipse.osgi.util.NLS;

/**
 * Pageflow message bundle
 *
 */
public final class PageflowMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.facesconfig.ui.pageflow.PageflowMessages";

	private PageflowMessages() {
		// Do not instantiate
	}

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

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Label_True;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Label_False;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Label_Saving;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Dialog_Label_CreateFileTitle;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Dialog_Label_FileNotExistedPart1;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Dialog_Label_FileNotExistedPart2;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_OpenEditor_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_OpenEditor_ToolTip;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_ShowPropertyView_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_ShowPropertyView_ToolTip;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_ShowPaletteView_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_ShowPaletteView_ToolTip;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_SyncWithFacesConfig_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_SyncWithFacesConfig_ToolTip;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_UpdateFacesConfig_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Action_UpdateFacesConfig_ToolTip;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Group_Controls;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Select_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Select_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Marquee_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Marquee_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Link_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Link_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Group_Nodes;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Begin_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Begin_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_End_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_End_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Action_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Action_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Page_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_PaletteTool_Page_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Contextmenu_Align_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Contextmenu_ShowView_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_AddNodeCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_CreateNodeCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_DeleteNodeCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_ConnectionCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_CreateBendpointCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_MoveBendpointCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_DeleteBendpointCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_OpenEditorCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_OrphanChildCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_UpdatePageflowCommand_Label;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_CreateNodeCommand_SelectJSPDialog_Title;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Commands_CreateNodeCommand_SelectJSPDialog_Description;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_comment;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_name;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_largeicon;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_smallicon;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_action;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_path;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_begin;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_end;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_configfile;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_source;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_target;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_outcome;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_redirect;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_fromaction;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Attributes_referenceLink;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Items_Pageflow;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Items_PFPage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Model_Items_PFLink;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_Choice;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_Title;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_JSPName;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_ActionListTable_Title;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_ActionListTable_Component;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_ActionListTable_Action;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Property_Action_OutcomeSelectionDialog_Outcome;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_UndefinedOutcome;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_NotExistedSourcePage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_MissingSourcePage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_InvalidWebPage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_NotExitedWebPage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_MissingWebPage;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_MissingManagedBean;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String Pageflow_Validation_MissingAction;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String ExistingPagePathDialogCellEdito_LabelText;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String PageflowLinkEditPart_FromAction;

	/**
	 * see PageFlowMessages.properties
	 */
	public static String PageflowLinkEditPart_FromOutcome;

	public static String ProjectWebPageSelectionDialog_Description;
}
