###############################################################################
# Copyright (c) 2003, 2005 IBM 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:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/Attic/messages.properties,v $
# $Revision: 1.6 $  $Date: 2005/12/14 19:06:13 $
#


SearchPathDialog_ChoosePackages                         = &Choose Packages
SearchPathDialog_Remove                                 = &Remove
SearchPathDialog_Desc_Label                             = &Modify search path of packages within this BeanInfo classes JAR/folder
SearchPathDialog_ModifySearchPaths                      = Modify Search Paths - {0}
SearchPathDialog_NotEditable_INFO_                      = IWAV0075I Plugin type BeanInfo classes locations are not editable
SearchPathDialog_PackagePresent_INFO_                   = IWAV0076I Package already in the search path
SearchPathDialog_InputDialog_Title                      = Package
SearchPathDialog_InputDialog_Message                    = &Enter a package:
BeanInfoPathsBlock_ExportAll                            = E&xport all
BeanInfoPathsBlock_UnexportAll                          = U&nexport all
BeanInfoPathsBlock_Page_Tab_Packages                    = &Packages
BeanInfoPathsBlock_Page_Tab_Classes                     = &BeanInfo classes
BeanInfosWorkbookPage_AddFolders                        = &Add Folders
BeanInfosWorkbookPage_AddJARs                           = Add &JARs
BeanInfosWorkbookPage_AddExternalJAR                    = Add E&xternal JARs
BeanInfosWorkbookPage_AddVariable                       = Add &Variable
BeanInfosWorkbookPage_AddProjects                       = Add Projec&ts
BeanInfosWorkbookPage_ModifyPaths                       = &Modify Paths
BeanInfosWorkbookPage_Remove                            = &Remove
BeanInfosWorkbookPage_List_Text                         = &Choose locations of BeanInfo classes (BeanInfo classes locations not in current project)
BeanInfosWorkbookPage_SelectionDialog_Classes_Title     = BeanInfo Class Folders Selection
BeanInfosWorkbookPage_SelectionDialog_JARs_Title        = JAR Selection
BeanInfosWorkbookPage_SelectionDialog_JARs_Message      = &Choose JARs to be added as BeanInfo classes JARs
BeanInfosWorkbookPage_SelectionDialog_ExtJARs_Text      = JAR Selection
BeanInfosWorkbookPage_SelectionDialog_Projects_Title    = BeanInfo Projects Selection
BeanInfosWorkbookPage_SelectionDialog_Classes_Prompt    = &Choose folders to be added as BeanInfo classes folders.
BeanInfosWorkbookPage_SelectionDialog_Projects_Prompt   = &Choose projects to be added as BeanInfo projects.
PackagesWorkbook_ChoosePackages                         = &Choose packages
PackagesWorkbook_ChooseDefinedPaths                     = Choose &defined paths
PackagesWorkbook_Remove                                 = &Remove
PackagesWorkbook_LabelText                              = Choose BeanInfo &packages from the class path
PackagesWorkbook_SelectionDialog_DefinedPaths_Title     = Choose Defined Paths
PackagesWorkbook_SelectionDialog_DefinedPaths_Message   = Choose the pre-defined paths to add to the search path
LabelProvider_Library_Folder                            = {0} (class folder)
LabelProvider_Library__PathLastSegment_PathRelative_    = {0} - {1}
LabelProvider_Library__PathLastSegment_PathExceptLast_  = {0} - {1}
LabelProvider_Variable__name_PathOSString_              = {0} - {1}
LabelProvider__packageName_Path_                        = {0}: {1}

VariableSelectionBlock_variable_label                   = &Variable Name:
VariableSelectionBlock_variable_button                  = &Browse...
VariableSelectionBlock_extension_label                  = Path E&xtension:
VariableSelectionBlock_extension_button                 = Bro&wse...
VariableSelectionBlock_fullpath_label                   = Resolved Path:

VariableSelectionBlock_error_entername_ERROR_           = IWAV0077E Variable name must be entered.
VariableSelectionBlock_error_namenotexists_ERROR_       = IWAV0078E Variable does not exist.
VariableSelectionBlock_error_pathexists_ERROR_          = IWAV0079E Class path entry already exists.
VariableSelectionBlock_error_invalidextension_ERROR_    = IWAV0080E Extension is not a valid path.

VariableSelectionBlock_warning_pathnotexists_WARN_      = IWAV0081W Resolved path is not an existing JAR file.

VariableSelectionBlock_ExtJarDialog_title               = JAR Selection




#
# Properties for the com.ibm.etools.beaninfo.ui plugin
#

# This shows up as the title of a message dialog
Beaninfo_UI__errortitle                                 = Error

Beaninfo_UI__error                                      = Error while setting BeanInfo configuration.

BeaninfoPropertiesPage_INFO__nojavaproject              = IWAV0019I BeanInfo is only applicable to Java projects.
BeaninfoPropertiesPage_INFO__closedproject              = IWAV0020I BeanInfo is not available for a closed project.

# This is a checkbox on a preference page. The label is to indicate whether introspection is enabled to run or not.
BeaninfoPathsBlock_UI__enablebeaninfo                   = &Enable BeanInfo Introspection on this Project

# This is a header line for a page of preferences.
BeaninfoPathsBlock_UI__searchpath_label                 = Build BeanInfo &search path order and exported entries:\n(Exported entries are contributed to dependent projects)
BeaninfoPathsBlock_UI__searchpath_up_button             = &Up
BeaninfoPathsBlock_UI__searchpath_down_button           = &Down
BeaninfoPathsBlock_UI__searchpath_remove_button         = &Remove
BeaninfoPathsBlock_UI__serachpath_tab_order             = &Order and Export

BeaninfoPathsBlock_UI__warning_EntryMissing             = Project class path entries, or BeanInfo class files are missing.

# {0} will be the package name, e.g. java.lang
BeaninfoPathsBlock_WARN__searchpath_missing_path_format = IWAV0021W {0} - Package path not found.

# This is a message on a progress dialog.
BeaninfoPathsBlock_UI__searchpath_operationdescription  = Setting BeanInfo search paths...

BeaninfoPathsBlock_UI__addsearchpath_title              = Select Packages
BeaninfoPathsBlock_UI__addsearchpath_description        = &Select packages to add to search path:

BeaninfoPathsBlock_UI__warning_EntryMissing             = Project class path entries, or BeanInfo class files are missing.
BeaninfoPathsBlock_UI__searchpath_add_button            = Add Package...
ExceptionHandler_errordialog_msg_seelog=See error log for more details.
