###############################################################################
# Copyright (c) 2001, 2007 Oracle Corporation 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:
#     Oracle Corporation - initial API and implementation
###############################################################################
NewManagedBeanWizardBase_Type = ManagedBeanTypeName
NewManagedBeanWizardBase_Description = ManagedBeanTypeDescription
NewManagedBeanWizardBase_Title = New Managed Bean Wizard

NewManagedBeanCreationWizard_Title = Create a Managed Bean

IntroWizardPage_Title = Introduction Page
IntroWizardPage_Intro = This wizard walks through the steps to create a managed bean.

ManagedBeanWizardSelectionPage_Title = Managed Bean Selection Page
ManagedBeanWizardSelectionPage_Description = Select a managed bean type to proceed
ManagedBeanWizardSelectionPage_Group = Please select the managed bean type:
ManagedBeanWizardSelectionPage_HelpContextID = com.sybase.stf.jmt.new_managedbean_wizard

Registry_LoadWizard_Error = Error loading wizard element, couldn't initialize!
####################################################
# Resource message for NewWizard
####################################################
NewWizard_Title_WizardDefault = call setWindowTitle(String) in your wizard sub-class

##################################################################
# Resource message for NewJavaManagedBeanWizards and its' pages.
##################################################################
ManagedBeanPropertyWizardPage_Title = Managed Bean Configuration
ManagedBeanPropertyWizardPage_Description = Set managed bean's name and scope, and create or update Managed Bean's properties, their types and default values.

ManagedBeanPropertyWizardPage_General = General

ManagedBeanPropertyWizardPage_ManagedBeanName = Name:
ManagedBeanPropertyWizardPage_ManagedBeanScope = Scope:
ManagedBeanPropertyWizardPage_ManagedBeanDescription = Description:

ManagedBeanPropertyWizardPage_ManagedBeanProperty = Properties:
ManagedBeanPropertyWizardPage_PropertyName = Property Name
ManagedBeanPropertyWizardPage_Type = Property Type
ManagedBeanPropertyWizardPage_Value = Value
ManagedBeanPropertyWizardPage_Button_Add = Add...
ManagedBeanPropertyWizardPage_Button_Edit = Edit...
ManagedBeanPropertyWizardPage_Button_Remove = Remove

ManagedBeanPropertyWizardPage_Warning_MissingManagedBeanName = Managed bean name must be entered!
ManagedBeanPropertyWizardPage_Warning_InvalidManagedBeanName = Managed bean name is not valid!
ManagedBeanPropertyWizardPage_Warning_DuplicateManagedBeanName = Managed bean name can not be duplicate!

ManagedBeanPropertyEditDialog_PropertyName = Property name:
ManagedBeanPropertyEditDialog_DataType = Data type:
ManagedBeanPropertyEditDialog_InitialValue = Initial value:

ManagedBeanPropertyEditDialog_Title_NewPropertyEntry = New Property Entry
ManagedBeanPropertyEditDialog_Title_ExistingPropertyEntry = Existing Property Entry

FacesConfigSelectionWizardPage_Title = Faces-Config File
FacesConfigSelectionWizardPage_Description = Select an existing faces-config file, such as faces-config.xml, to save the new managed bean.

FacesConfigSelectionWizardPage_Project = Project name:
FacesConfigSelectionWizardPage_FacesConfig = Faces-Config file:
FacesConfigSelectionWizardPage_FacesConfig_Browser = Browse...

FacesConfigSelectionWizardPage_Warning_MissingProjectName = Project name must be entered!
FacesConfigSelectionWizardPage_Warning_MissingFacesConfigName = Faces-Config file name must be entered!
FacesConfigSelectionWizardPage_Warning_InvalidFacesConfigName = Faces-config file name does not exist!
FacesConfigSelectionWizardPage_Warning_InvalidFacesConfigContent = ''{0}'' is not a valid faces-config file!
FacesConfigSelectionWizardPage_Warning_FacesConfigNotDefinedInWebDotXML = ''{0}'' is not specified in web.xml file!
FacesConfigSelectionWizardPage_HelpContextID = com.sybase.stf.jmt.select_facesconfig_page

FacesConfigFileSelectionDialog_Title = Faces-config File Selection
FacesConfigFileSelectionDialog_Description = Select a faces-config file in the current project.

JavaSelectionWizardPage_Title = Java Class Selection
JavaSelectionWizardPage_Description = Search for an existing class or generate a new one.
JavaSelectionWizardPage_Group = Source type for Java class
JavaSelectionWizardPage_Search = Using an existing Java class
JavaSelectionWizardPage_Search_Description = (This option will use an existing java class as managed bean's type.)
JavaSelectionWizardPage_Search_ClassName = Qualified class name:
JavaSelectionWizardPage_Search_ClassName_Browse = Browse...
JavaSelectionWizardPage_Create = Create a new Java class
JavaSelectionWizardPage_Create_Description = (This option will create a new java class in the next wizard page.)

JavaSelectionWizardPage_FindType = Find Type
JavaSelectionWizardPage_FindType_Filter = Choose a type (?=any character, *=any string):
JavaSelectionWizardPage_Error_ClassIsEmpty = The type name should not be empty.
JavaSelectionWizardPage_Error_ClassIsNotDefined = The type name ''{0}'' does not exist.
JavaSelectionWizardPage_HelpContextID = com.sybase.stf.jmt.new_java_managedbean_wizard

NewJavaManagedBeanWizard_Summary_ProjectName = Project name
NewJavaManagedBeanWizard_Summary_FacesConfigFileName = Faces-Config file name
NewJavaManagedBeanWizard_Summary_TypeName = Type name
NewJavaManagedBeanWizard_Summary_PackageName = Package name
NewJavaManagedBeanWizard_Summary_SourceFolder = Source folder
NewJavaManagedBeanWizard_Summary_ManagedBeanName = Managed bean name
NewJavaManagedBeanWizard_Summary_ManagedBeanScope = Managed bean scope
NewJavaManagedBeanWizard_Summary_ClassName = Managed bean class
NewJavaManagedBeanWizard_Summary_Description = Description
NewJavaManagedBeanWizard_SummaryPage_Description = A new java managed bean will be created.

NewJavaManagedBeanWizard_Task_CreateNewManagedBean = Creating a new managed bean
NewJavaManagedBeanWizard_Task_CreateNewJavaClass = Creating a new java class

DuplicateBeanWizard_Title = Set Duplicated Managed Bean
DuplicateBeanPage_Title = Set duplicated managed bean
DuplicateBeanPage_Description = Overwrite the duplicated managed bean or create a new one.

DuplicateBeanGroup_Group_Label = Duplicated Managed Bean Options
DuplicateBeanGroup_OverwriteButton_Text = Overwrite an existing managed bean using the new one

DuplicateBeanGroup_NewButton_Text = Create a new managed bean
DuplicateBeanGroup_NewNameDialogField_Label = New managed bean name:

DuplicateBeanGroup_Error_EmptyManagedBeanName = The managed bean name can not be empty.
DuplicateBeanGroup_Error_InvalidManagedBeanName = The managed bean name ''{0}'' contains invalid string, such as #,!.
DuplicateBeanGroup_Error_DuplicatedManagedBeanName = The managed bean name ''{0}'' is duplicated.

WizardSummaryPage_Title_WizardSummary = Wizard Summarys
WizardSummaryPage_Summary_SummaryDesc = A new java managed bean will be created.
WizardSummaryPage_Label_Field = Field
WizardSummaryPage_Label_Value = Value


