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

import org.eclipse.osgi.util.NLS;

public final class EditorMessages extends NLS {

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

	private EditorMessages() {
		// Do not instantiate
	}

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

	public static String UI_Button_Add;

	public static String UI_Button_Edit;

	public static String UI_Button_Remove;

	public static String UI_Button_Add_more;

	public static String UI_Button_Edit_more;

	public static String Remove_Title;

	public static String Remove_Msg;

	public static String FindType;

	public static String FindType_Filter;

	public static String FindType_Error_CannotFindType;

	public static String FacesConfigEditor_Introduction_TabName;

	public static String FacesConfigEditor_Overview_TabName;

	public static String FacesConfigEditor_Pageflow_TabName;

	public static String FacesConfigEditor_ManagedBeans_TabName;

	public static String FacesConfigEditor_Components_TabName;

	public static String FacesConfigEditor_Others_TabName;

	public static String FacesConfigEditor_Source_TabName;

	public static String editor_pageflow_page_intro_name;

	public static String editor_pageflow_page_intro_title;

	public static String editor_pageflow_page_intro_help_HelpContextID;

	public static String editor_pageflow_page_intro_help_HelpToolTip;

	public static String ManagedBeanPage_Title;

	public static String ManagedBeanMasterSection_Name;

	public static String ManagedBeanMasterSection_Description;

	public static String ManagedBeanMasterSection_HelpContextID;

	public static String ManagedBeanMasterSection_HelpToolTip;

	public static String ManagedBeanGeneralSection_Name;

	public static String ManagedBeanGeneralSection_Desc;

	public static String ManagedBeanGeneralSection_HelpContextID;

	public static String ManagedBeanGeneralSection_HelpToolTip;

	public static String ManagedBeanGeneralSection_ManagedBeanName;

	public static String ManagedBeanGeneralSection_ManagedBeanClass;

	public static String ManagedBeanGeneralSection_ManagedBeanScope;

	public static String InitializationSection_Name;

	public static String InitializationSection_Description;

	public static String InitializationSection_HelpContextID;

	public static String InitializationSection_HelpToolTip;

	public static String ManagedBeanPropertyEditDialog_Title_NewPropertyEntry;

	public static String ManagedBeanPropertyEditDialog_Title_ExistingPropertyEntry;

	public static String ManagedBeanPropertyEditDialog_PropertyName;

	public static String ManagedBeanPropertyEditDialog_PropertyClass;

	public static String ManagedBeanPropertyEditDialog_PropertyClass_Browse;

	public static String ManagedBeanPropertyEditDialog_ValueType;

	public static String ManagedBeanProeprtyEditPage_Description;

	public static String ManagedBeanPropertyEditDialog_Value;

	public static String ManagedBeanPropertyEditWizard_Title;

	public static String ManagedBeanProeprtyEditPage_Title;

	public static String ManagedBeanPropertyEditDialog_Value_Change;

	public static String ManagedBeanPropertyEditDialog_FindType;

	public static String ManagedBeanPropertyEditDialog_FindType_Filter;

	public static String InitializationSection_ClassType;

	public static String InitializationSection_ClassType_General;

	public static String InitializationSection_ClassType_Map;

	public static String InitializationSection_ClassType_List;

	public static String InitializationSection_PropertyTable_Name;

	public static String InitializationSection_PropertyTable_Class;

	public static String InitializationSection_PropertyTable_Value;

	public static String InitializationSection_MapType_KeyClass;

	public static String InitializationSection_MapType_ValueClass;

	public static String InitializationSection_MapTable_Title;

	public static String InitializationSection_MapTable_Key;

	public static String InitializationSection_MapTable_Value;

	public static String InitializationSection_ListType_ValueClass;

	public static String InitializationSection_ListTable_Title;

	public static String InitializationSection_ListTable_Value;

	public static String ListEntriesEditPage_Title;

	public static String ListEntriesWizard_Title;

	public static String ListEntriesEditPage_Description;

	public static String OverviewPage_page_id;

	public static String OverviewPage_page_title;

	public static String OverviewPage_PageflowOverview_summary;

	public static String OverviewPage_EditorSection_name;

	public static String OverviewPage_EditorSection_description;

	public static String OverviewPage_EditorSection_noplugin;

	public static String OverviewPage_EditorSection_nooverview;

	public static String OverviewPage_EditorSection_Help_HelpContextID;

	public static String OverviewPage_EditorSection_Help_HelpToolTip;

	public static String OverviewPage_GeneralSection_name;

	public static String OverviewPage_GeneralSection_description;

	public static String OverviewPage_GeneralSection_label_name;

	public static String OverviewPage_GeneralSection_label_version;

	public static String OverviewPage_GeneralSection_Help_HelpContextID;

	public static String OverviewPage_GeneralSection_Help_HelpToolTip;

	public static String OverviewPage_NavigationSection_name;

	public static String OverviewPage_NavigationSection_description;

	public static String OverviewPage_NavigationSection_table_col1;

	public static String OverviewPage_NavigationSection_table_col2;

	public static String OverviewPage_NavigationSection_table_col3;

	public static String OverviewPage_NavigationSection_pageflowPageID;

	public static String OverviewPage_NavigationSection_Help_HelpContextID;

	public static String OverviewPage_NavigationSection_Help_HelpToolTip;

	public static String OverviewPage_ManagedBeanSection_name;

	public static String OverviewPage_ManagedBeanSection_description;

	public static String OverviewPage_ManagedBeanSection_table_namecol;

	public static String OverviewPage_ManagedBeanSection_table_scopecol;

	public static String OverviewPage_ManagedBeanSection_table_classcol;

	public static String OverviewPage_ManagedBeanSection_managedbeanPageID;

	public static String OverviewPage_ManagedBeanSection_Help_HelpContextID;

	public static String OverviewPage_ManagedBeanSection_Help_HelpToolTip;

	public static String OverviewPage_ComponentsSection_name;

	public static String OverviewPage_ComponentsSection_description;

	public static String OverviewPage_ComponentsSection_table_typecol;

	public static String OverviewPage_ComponentsSection_table_namecol;

	public static String OverviewPage_ComponentsSection_componentsPageID;

	public static String OverviewPage_ComponentsSection_Help_HelpContextID;

	public static String OverviewPage_ComponentsSection_Help_HelpToolTip;

	public static String OverviewPage_OthersSection_name;

	public static String OverviewPage_OthersSection_description;

	public static String OverviewPage_OthersSection_table_typecol;

	public static String OverviewPage_OthersSection_table_namecol;

	public static String OverviewPage_OthersSection_table_valuecol;

	public static String OverviewPage_OthersSection_othersPageID;

	public static String OverviewPage_OthersSection_Help_HelpContextID;

	public static String OverviewPage_OthersSection_Help_HelpToolTip;

	public static String ManagedBeanPropertyGroup_error_EmptyName;

	public static String ManagedBeanPropertyGroup_error_EmptyClass;

	public static String MapEntriesEditGroup_Edit;

	public static String MapEntriesEditPage_Title;

	public static String MapEntriesWizard_Title;

	public static String MapEntryEditGroup_Key;

	public static String MapEntryEditGroup_error_EmptyKey;

	public static String MapEntryEditGroup_error_DuplicateKey;

	public static String MapEntryEditPage_Title;

	public static String MapEntryEditWizard_Title;

	public static String MapEntriesEditPage_Description;

	public static String MapEntryEditPage_Description;

	public static String ValueEditDialog_Title;

	public static String ValueEditWizard_Title;

	public static String ValueEditPage_Description;

	public static String ValueEditGroup_Value;

	public static String ValueEditPage_Title;

	public static String ComponentsPage_Title;

	public static String ComponentMasterSection_Name;

	public static String ComponentMasterSection_Description;

	public static String ComponentMasterSection_HelpContextID;

	public static String ComponentMasterSection_HelpToolTip;

	public static String ComponentGeneralSection_Name;

	public static String ComponentGeneralSection_Description;

	public static String ComponentGeneralSection_HelpContextID;

	public static String ComponentGeneralSection_HelpToolTip;

	public static String ComponentGeneralSection_Label_DisplayName;

	public static String ComponentGeneralSection_Label_Description;

	public static String ComponentGeneralSection_Label_ComponentType;

	public static String ComponentGeneralSection_Label_ComponentClass;

	public static String RenderKitMasterSection_Name;

	public static String RenderKitMasterSection_Description;

	public static String RenderKitMasterSection_HelpContextID;

	public static String RenderKitMasterSection_HelpToolTip;

	public static String RenderKitGeneralSection_Name;

	public static String RenderKitGeneralSection_Description;

	public static String RenderKitGeneralSection_HelpContextID;

	public static String RenderKitGeneralSection_HelpToolTip;

	public static String RenderKitGeneralSection_Label_DisplayName;

	public static String RenderKitGeneralSection_Label_Description;

	public static String RenderKitGeneralSection_Label_RenderKitID;

	public static String RenderKitGeneralSection_Label_RenderKitClass;

	public static String RendererSection_Name;

	public static String RendererSection_Description;

	public static String RendererSection_HelpContextID;

	public static String RendererSection_HelpToolTip;

	public static String RendererSection_Table_NameColumn;

	public static String RendererSection_Table_ComponentFamilyColumn;

	public static String RendererSection_Table_TypeColumn;

	public static String RendererSection_Table_ClassColumn;

	public static String RendererSection_Dialog_Title_Add;

	public static String RendererSection_Dialog_Title_Edit;

	public static String RendererSection_Dialog_Tab_General;

	public static String RendererSection_Dialog_DisplayName;

	public static String RendererSection_Dialog_ComponentFamilyValue;

	public static String RendererSection_Dialog_TypeValue;

	public static String RendererSection_Dialog_RendererClass;

	public static String RendererSection_Dialog_Error_ComponentFamilyEmpty;

	public static String RendererSection_Dialog_Error_RendererTypeEmpty;

	public static String RendererSection_Dialog_Error_RendererClassEmpty;

	public static String RendererSection_Dialog_SelectComponentFamilyDialog_Title;

	public static String RendererSection_Dialog_ComponentFamilyCaption;

	public static String RendererSection_Dialog_ComponentFamilyLabel;

	public static String ConverterMasterSection_Name;

	public static String ConverterMasterSection_Description;

	public static String ConverterMasterSection_HelpContextID;

	public static String ConverterMasterSection_HelpToolTip;

	public static String ConverterGeneralSection_Name;

	public static String ConverterGeneralSection_Description;

	public static String ConverterGeneralSection_HelpContextID;

	public static String ConverterGeneralSection_HelpToolTip;

	public static String ConverterGeneralSection_Label_DisplayName;

	public static String ConverterGeneralSection_Label_Description;

	public static String ConverterGeneralSection_Label_ConverterID;

	public static String ConverterGeneralSection_Label_ConverterForClass;

	public static String ConverterGeneralSection_Label_ConverterClass;

	public static String ValidatorMasterSection_Name;

	public static String ValidatorMasterSection_Description;

	public static String ValidatorMasterSection_HelpContextID;

	public static String ValidatorMasterSection_HelpToolTip;

	public static String ValidatorGeneralSection_Name;

	public static String ValidatorGeneralSection_Description;

	public static String ValidatorGeneralSection_HelpContextID;

	public static String ValidatorGeneralSection_HelpToolTip;

	public static String ValidatorGeneralSection_Label_DisplayName;

	public static String ValidatorGeneralSection_Label_Description;

	public static String ValidatorGeneralSection_Label_ValidatorID;

	public static String ValidatorGeneralSection_Label_ValidatorClass;

	public static String AttributeSection_Name;

	public static String AttributeSection_Description;

	public static String AttributeSection_HelpContextID;

	public static String AttributeSection_HelpToolTip;

	public static String AttributeSection_Table_NameColumn;

	public static String AttributeSection_Table_ClassColumn;

	public static String AttributeSection_Table_DefaultValueColumn;

	public static String AttributeSection_Table_SuggestedValueColumn;

	public static String AttributeSection_Dialog_Title_Add;

	public static String AttributeSection_Dialog_Title_Edit;

	public static String AttributeSection_Dialog_Tab_General;

	public static String AttributeSection_Dialog_AttributeName;

	public static String AttributeSection_Dialog_AttributeClass;

	public static String AttributeSection_Dialog_DefaultValue;

	public static String AttributeSection_Dialog_SuggestedValue;

	public static String AttributeSection_Dialog_Error_NameEmpty;

	public static String AttributeSection_Dialog_Error_ClassEmpty;

	public static String PropertySection_Name;

	public static String PropertySection_Description;

	public static String PropertySection_HelpContextID;

	public static String PropertySection_HelpToolTip;

	public static String PropertySection_Table_NameColumn;

	public static String PropertySection_Table_ClassColumn;

	public static String PropertySection_Table_DefaultValueColumn;

	public static String PropertySection_Table_SuggestedValueColumn;

	public static String PropertySection_Dialog_Title_Add;

	public static String PropertySection_Dialog_Title_Edit;

	public static String PropertySection_Dialog_Tab_General;

	public static String PropertySection_Dialog_PropertyName;

	public static String PropertySection_Dialog_PropertyClass;

	public static String PropertySection_Dialog_DefaultValue;

	public static String PropertySection_Dialog_SuggestedValue;

	public static String PropertySection_Dialog_Error_NameEmpty;

	public static String PropertySection_Dialog_Error_ClassEmpty;

	public static String FacetSection_Name;

	public static String FacetSection_Description;

	public static String FacetSection_HelpContextID;

	public static String FacetsSection_HelpToolTip;

	public static String FacetSection_Table_DisplayNameColumn;

	public static String FacetSection_Table_FacetNameColumn;

	public static String FacetSection_Table_DescriptionColumn;

	public static String FacetSection_Dialog_Title_Add;

	public static String FacetSection_Dialog_Title_Edit;

	public static String FacetSection_Dialog_Tab_General;

	public static String FacetSection_Dialog_FacetName;

	public static String FacetSection_Dialog_DisplayName;

	public static String FacetSection_Dialog_Description;

	public static String FacetSection_Dialog_Error_NameEmpty;

	public static String OthersPage_Title;

	public static String ActionListenerSection_Name;

	public static String ActionListenerSection_Description;

	public static String ActionListenerSection_HelpContextID;

	public static String ActionListenerSection_HelpToolTip;

	public static String MessageBundleSection_Name;

	public static String MessageBundleSection_Description;

	public static String MessageBundleSection_HelpContextID;

	public static String MessageBundleSection_HelpToolTip;

	public static String MessageBundleSection_Dialog_Title;

	public static String MessageBundleSection_Dialog_Message_SelectPropertyFile;

	public static String MessageBundleSection_Dialog_Message_AlreadyExists;

	public static String LocaleConfigSection_Name;

	public static String LocaleConfigSection_Description;

	public static String LocaleConfigSection_HelpContextID;

	public static String LocaleConfigSection_HelpToolTip;

	public static String LocaleConfigSection_Wizard_WindowTitle;

	public static String LocaleConfigSection_Wizard_Page_Name;

	public static String LocaleConfigSection_Wizard_Page_Title;

	public static String LocaleConfigSection_Wizard_Page_Description;

	public static String LocaleConfigSection_Wizard_Page_LabelText;

	public static String LocaleConfigSection_Wizard_Page_AlreadyExistsError;

	public static String DefaultRenderKitIDSection_Name;

	public static String DefaultRenderKitIDSection_Description;

	public static String DefaultRenderKitIDSection_HelpContextID;

	public static String DefaultRenderKitIDSection_HelpToolTip;

	public static String DefaultRenderKitIDSection_Wizard_WindowTitle;

	public static String DefaultRenderKitIDSection_Wizard_Page_Name;

	public static String DefaultRenderKitIDSection_Wizard_Page_Title;

	public static String DefaultRenderKitIDSection_Wizard_Page_Description;

	public static String DefaultRenderKitIDSection_Wizard_Page_LabelText;

	public static String DefaultRenderKitIDSection_Wizard_Page_AlreadyExistsError;

	public static String NavigationHandlerSection_Name;

	public static String NavigationHandlerSection_Description;

	public static String NavigationHandlerSection_HelpContextID;

	public static String NavigationHandlerSection_HelpToolTip;

	public static String ViewHandlerSection_Name;

	public static String ViewHandlerSection_Description;

	public static String ViewHandlerSection_HelpContextID;

	public static String ViewHandlerSection_HelpToolTip;

	public static String StateManagerSection_Name;

	public static String StateManagerSection_Description;

	public static String StateManagerSection_HelpContextID;

	public static String StateManagerSection_HelpToolTip;

	public static String PropertyResolverSection_Name;

	public static String PropertyResolverSection_Description;

	public static String PropertyResolverSection_HelpContextID;

	public static String PropertyResolverSection_HelpToolTip;

	public static String VariableResolverSection_Name;

	public static String VariableResolverSection_Description;

	public static String VariableResolverSection_HelpContextID;

	public static String VariableResolverSection_HelpToolTip;

	public static String ApplicationFactorySection_Name;

	public static String ApplicationFactorySection_Description;

	public static String ApplicationFactorySection_HelpContextID;

	public static String ApplicationFactorySection_HelpToolTip;

	public static String FacesContextFactorySection_Name;

	public static String FacesContextFactorySection_Description;

	public static String FacesContextFactorySection_HelpContextID;

	public static String FacesContextFactorySection_HelpToolTip;

	public static String LifecycleFactorySection_Name;

	public static String LifecycleFactorySection_Description;

	public static String LifecycleFactorySection_HelpContextID;

	public static String LifecycleFactorySection_HelpToolTip;

	public static String RenderKitFactorySection_Name;

	public static String RenderKitFactorySection_Description;

	public static String RenderKitFactorySection_HelpContextID;

	public static String RenderKitFactorySection_HelpToolTip;

	public static String PhaseListenerSection_Name;

	public static String PhaseListenerSection_Description;

	public static String PhaseListenerSection_HelpContextID;

	public static String PhaseListenerSection_HelpToolTip;

	public static String MultiPageEditorOutlinePage_noOutline;

}
