################################################################################
# <copyright>
#
# Copyright (c) 2005, 2010 SAP AG.
# 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:
#    Petya Sabeva - initial API, implementation and documentation
#
# </copyright>
#
################################################################################
AddJPAEntityFeature_basicAttributesShapes=Other Attributes
AddJPAEntityFeature_primaryKeysShape=Primary Key
AddJPAEntityFeature_relationAttributesShapes=Relation Attributes
ClickAddAttributeButtonFeature_createAttributeButtonDescription=Create a new attribute of this entity.
ClickAddAttributeButtonFeature_createAttributeButtonLabel=Create Attribute

ClickRemoveAttributeButtonFeature_createAttributeButtonDescription=Create a new attribute of this entity.
ClickRemoveAttributeButtonFeature_createAttributeButtonlabel=Create Attribute
ClickRemoveAttributeButtonFeature_deleteAttributeQuestion=Do you want to delete attribute "{0}"?

CreateDiagramJob_createDiagramJobName=Creating diagram for: {0}...
CreateDiagramJob_getJPADiagramMonitorTaskName=Get JPA Diagram
CreateJPAEntityFeature_createEntityErrorMsg=Entity could not be created.
CreateJPAEntityFeature_createEntityErrorMsgTitle=Cannot Create Entity
CreateJPAEntityFeature_createEntityErrorStatusMsg=Persistence provider library is not into the project's classpath.
CreateJPAEntityFeature_jpaEntityFeatureDescription=Create a new JPA entity.
CreateJPAEntityFeature_jpaEntityFeatureName=Java Entity
CreateJPAEntityFeature_jpaProjectSelectionDialogDescription=Select a JPA project to contain the entity.
CreateJPAEntityFeature_jpaProjectSelectionDialogTitle=Select JPA Project
CreateJPAEntityFromMappedSuperclassFeature_createInheritedEntityFeatureDescription=Create a new JPA entity that will inherit a new Mapped Superclass.
CreateJPAEntityFromMappedSuperclassFeature_createInheritedEntityFeatureName=Inherited Entity

CreateManyToManyBiDirRelationFeature_manyToManyBiDirFeatureName=Many-to-Many
CreateManyToManyBiDirRelationFeature_manyToManyUniDirFeatureDescription=Create new bidirectional many-to-many relation.

CreateManyToManyUniDirRelationFeature_manyToManyUniDirFeatureDescription=Create new unidirectional many-to-many relation.
CreateManyToManyUniDirRelationFeature_manyToManyUniDirFeatureName=Many-to-Many

CreateManyToOneBiDirRelationFeature_manyToOneBiDirFeatureDescription=Create new bidirectional many-to-one relation.
CreateManyToOneBiDirRelationFeature_manyToOneBiDirFeatureName=Many-to-One

CreateManyToOneUniDirRelationFeature_manyToOneUniDirFeatureDescription=Create new unidirectional many-to-one relation.
CreateManyToOneUniDirRelationFeature_manyToOneUniDirFeatureName=Many-to-One

CreateOneToManyUniDirRelationFeature_oneToManyUniDirFeatureDescription=Create new unidirectional one-to-many relation.
CreateOneToManyUniDirRelationFeature_oneToManyUniDirFeatureName=One-to-Many

CreateOneToOneBiDirRelationFeature_oneToOneBiDirFeatureDescription=Create new bidirectional one-to-one relation.
CreateOneToOneBiDirRelationFeature_oneToOneBiDirFeatureName=One-to-One

CreateOneToOneUniDirRelationFeature_oneToOneUniDirFeatureDescription=Create new unidirectional one-to-one relation.
CreateOneToOneUniDirRelationFeature_oneToOneUniDirFeatureName=One-to-One

DeleteJPAEntityFeature_deleteJPAEntityQuestion=Do you want to delete entity "{0}" from the JPA model?

DeleteRelationFeature_deleteRelationQuestion=Do you want to delete this relation?

DirectEditAttributeFeature_attributeExists=Attribute with name "{0}" already exists.
DirectEditAttributeFeature_classNameMsg=Enter an attribute name.
DirectEditAttributeFeature_lineBreaksNotAllowedMsg=You cannot use line breaks in attribute names.
DirectEditAttributeFeature_spacesNotAllowedMsg=You cannot use spaces in attribute names.

DirectEditJPAEntityFeature_bracesNotAllowedMsg=You cannot use braces in entity names.
DirectEditJPAEntityFeature_classNameMsg=Enter an entity name.
DirectEditJPAEntityFeature_duplicateEntityName=Entity with name "{0}" already exists.
DirectEditJPAEntityFeature_lineBreaksNotAllowedMsg=You cannot use line breaks in entity names.
DirectEditJPAEntityFeature_scpacesNotAllowedMsg=You cannot use spaces in entity names.
DirectEditJPAEntityFeature_invalidSymbolsMsg="{0}" is not a valid entity name.

JpaArtifactFactory_CanNotCheckReturnType=Cannot check the return type

JPADiagramEditor_waitingForMoin=Waiting for MOIN connection initialization...

JPADiagramPropertyPage_errSavePropsMsgTitle=Cannot Save Properties
JPADiagramPropertyPage_errSavePropsMsgText=The JPA diagram properties could not be saved

JPAEditorPreferencesPage_pageDescription=Default settings for the JPA diagram editor:
JPAEditorPreferencesPage_DefaultCollectionTypeSectionDescription=Relation attributes, which you generate using the JPA editor,\nare automatically created to be of the specified collection type.
JPAEditorPreferencesPage_DefaultCollectionTypeSectionTittle=Default Collection Type
JPAEditorPreferencesPage_DefaultPackageMsg=Entities, which you generate using the JPA editor palette,\nare automatically created in the specified package.
JPAEditorPreferencesPage_DefaultTableNamePrefixMsg=Entities, which you have created, using the JPA editor palette, are automatically\nannotated with @Table(name=...), where the name of the table is a result of\nconcatenation of the given prefix and the name of the entity. If you set\na blank prefix, the newly created entities are not annotated with @Table.
JPAEditorPreferencesPage_DefaultTableNameLabel=Default &table name prefix:
JPAEditorPreferencesPage_DefaultPackageToUse=Default &Java package for new entities:
JPAEditorPreferencesPage_invalidPackage="{0}" is not a valid Java identifier.
JPAEditorPreferencesPage_invalidTableNamePrefix=Table name prefix may contain letters, digits and underscores only, and must not start with a digit.
JPAEditorPreferencesPage_directEditAffectsClass=&Editing the entity name in the diagram affects the class name in the source file
JPAEditorPreferencesPage_directEditAffectsClassTooltip=If this option is checked and the entity name is appointed\nby the @Entity annotation, direct entity name editing will\naffect the annotation and will cause class name refactoring.\nIf this option is unchecked, direct editing will affect the\nannotation only. If the entity name is not appointed by the\n@Entity annotation, direct editing will cause class name\nrefactoring regardless this option is checked or not.
JPAEditorPreferencesPage_entityAccessTypeButtonGroupTooltip=Entities, which you generate using the JPA editor palette,\nare automatically created with the specified access.
JPAEditorPreferencesPage_entityAccessTypeButtonGroupLabel=Entity access type
JPAEditorPreferencesPage_entityFieldBasedAccessButtonLabel=&Field-based
JPAEditorPreferencesPage_entityPropertyBasedAccessButtonLabel=&Property-based
JPAEditorPreferencesPage_defaultFolderControlTooltip=The newly created diagram file(s) will be stored in this folder
JPAEditorPreferencesPage_defaultFolderControlLabel=Folder for &diagrams:
JPAEditorPreferencesPage_invalidFolder=The folder name must be preceded by "{0}".
JPAEditorPreferencesPage_emptyFolder=The folder name for diagrams must not be empty.
JPAEditorPreferencesPage_oneToManyOldStyle=&One-to-Many unidirectional old (JPA 1.0) style relations in JPA 2.0 projects 
JPAEditorPreferencesPage_oneToManyOldStyleTooltip=If this option is checked, the newly created One-to-Many\nunidirectional relations in JPA 2.0 projects will be old\n(JPA 1.0) style.  I.e., the corresponding attributes will\nbe created without @JoinColumn(s) annotation.

JPAEditorPropertyPage_oneToManyOldStyle=&One-to-Many unidirectional old (JPA 1.0) style relations
JPAEditorPropertyPage_oneToManyOldStyleTooltip=If this option is checked, the newly created One-to-Many\nunidirectional relations will be old (JPA 1.0) style.\nI.e., the corresponding attributes will be created without\n@JoinColumn(s) annotation.

JPAEditorToolBehaviorProvider_collapseAttrGroupMenuItem=Collapse Attributes Group
JPAEditorToolBehaviorProvider_collapseAttrGroupMenuItemDescr=Collapse the attributes group.
JPAEditorToolBehaviorProvider_collapseCompartToolTip=Double click to collapse "{0}" attributes group.
JPAEditorToolBehaviorProvider_collapseEntityMenuItem=Collapse Entity
JPAEditorToolBehaviorProvider_collapseEntityMenuItemDescr=Collapse entity.
JPAEditorToolBehaviorProvider_collapseAllEntitiesMenuItem=Collapse All
JPAEditorToolBehaviorProvider_collapseAllEntitiesMenuItemDescr=Collapse all entities
JPAEditorToolBehaviorProvider_createAttributeButtonDescription=Create new attribute of this entity.
JPAEditorToolBehaviorProvider_createAttributeButtonlabel=Create Attribute
JPAEditorToolBehaviorProvider_customSubMenuDescription=Custom features submenu
JPAEditorToolBehaviorProvider_customSubMenuText=Custom
JPAEditorToolBehaviorProvider_deleteAttributeButtonDescription=Delete this attribute from the model.
JPAEditorToolBehaviorProvider_deleteAttributeButtonlabel=Delete Attribute
JPAEditorToolBehaviorProvider_deleteEntityFromModelButtonDescription=Remove this JPA entity from the diagram and delete it from the JPA model.
JPAEditorToolBehaviorProvider_deleteEntityFromModelButtonLabel=Delete
JPAEditorToolBehaviorProvider_discardChangesMenuItem=Discard Changes
JPAEditorToolBehaviorProvider_discardChangesMenuItemDescr=Discard all changes made to this JPA entity after the last saving.
JPAEditorToolBehaviorProvider_removeEntityFromDiagramButtonDescription=Discard all changes made to this JPA entity after the last saving and remove it from the diagram.
JPAEditorToolBehaviorProvider_removeEntityFromDiagramButtonLabel=Discard Changes and Remove
JPAEditorToolBehaviorProvider_saveButtonText=Save
JPAEditorToolBehaviorProvider_saveButtonDescription=Save all changes made to this JPA entity.
JPAEditorToolBehaviorProvider_saveMenuItem=Save
JPAEditorToolBehaviorProvider_saveMenuItemDescr=Save all changes made to this JPA entity.
JPAEditorToolBehaviorProvider_restoreButtonText=Discard Changes
JPAEditorToolBehaviorProvider_restoreButtonDescription=Discard all changes made to this JPA entity after the last saving.
JPAEditorToolBehaviorProvider_removeAndSaveButtonText=Save And Remove
JPAEditorToolBehaviorProvider_removeAndSaveButtonDescription=Save all changes made to this entity and remove it from the diagram.
JPAEditorToolBehaviorProvider_showAllTheEntities=Show All Entities
JPAEditorToolBehaviorProvider_showAllTheEntitiesDesc=Show all entities within the project on the diagram.
JPAEditorToolBehaviorProvider_refactorSubMenu=Refactor Entity Class
JPAEditorToolBehaviorProvider_renameEntityClass=Rename...
JPAEditorToolBehaviorProvider_moveEntityClass=Move...
JPAEditorToolBehaviorProvider_openJPADetailsView=Open JPA Details View
JPAEditorToolBehaviorProvider_openJPADetailsViewDesc=Open the JPA Details view to view/modify the details of the selected persistent object.
JPAEditorToolBehaviorProvider_openMiniatureView=Open Miniature View 
JPAEditorToolBehaviorProvider_openMiniatureViewDesc=Open the Miniature view to display the diagram in a larger scale.
JPAEditorToolBehaviorProvider_applyPattern=Apply Template... 
JPAEditorToolBehaviorProvider_applyPatternDesc=Apply Template
JPAEditorToolBehaviorProvider_expandAttrMenuItem=Expand Attributes Group
JPAEditorToolBehaviorProvider_expandAttrMenuItemDescr=Expand the attributes group.
JPAEditorToolBehaviorProvider_expandCompartToolTip=Double click to expand "{0}" attributes group.
JPAEditorToolBehaviorProvider_expandEntityMenuItem=Expand Entity
JPAEditorToolBehaviorProvider_expandEntitymenuItemDescr=Expand entity.
JPAEditorToolBehaviorProvider_expandAllEntitiesMenuItem=Expand All
JPAEditorToolBehaviorProvider_expandAllEntitiesMenuItemDescr=Expand all entities.
JPAEditorToolBehaviorProvider_refactorAttributeType=Refactor Attribute Type...
JPAEditorToolBehaviorProvider_refactorAttributeTypeDesc=Change the type of the selected attribute.
JPAEditorToolBehaviorProvider_removeAllEntitiesMenu=Remove All Entities From Diagram
JPAEditorToolBehaviorProvider_removeAndSaveAllEntitiesAction=...and Save Changes
JPAEditorToolBehaviorProvider_removeAndDiscardAllEntitiesAction=...and Discard Changes
JPAEditorToolBehaviorProvider_removeAndSaveAllEntitiesConfirmation=Do you want to save the changes and remove all entities from the diagram?
JPAEditorToolBehaviorProvider_removeAndDiscardAllEntitiesConfirmation=Do you want to discard the changes and remove all entities from the diagram?

JPAEditorDiagramTypeProvider_cantMakeDiagramWritableTitle=Can't Make Diagram Writable
JPAEditorDiagramTypeProvider_cantMakeDiagramWritableMsg=Cannot make the JPA diagram file writable:\n\n{0}
JPAEditorDiagramTypeProvider_JPADiagramReadOnlyTitle=JPA Diagram Read-Only
JPAEditorDiagramTypeProvider_JPADiagramReadOnlyMsg=The JPA diagram file is read-only and cannot be synchronized with the model. In order to open the diagram, the JPA editor must make this file writable.
JPAEditorDiagramTypeProvider_JPADiagramReadOnlyHasToAddMsg=Cannot show the selected entity in the JPA diagram, because the diagram file is read-only. In order to show the entity, the JPA editor must make this file writable.

OpenJpaDiagramActionDelegate_openJPADiagramErrorMsgTitle=Cannot Open Diagram
OpenJpaDiagramActionDelegate_openJPADiagramErrorMsg=Cannot open the JPA diagram editor
OpenJpaDiagramActionDelegate_jpaSupportWarningTitle=JPA Support
OpenJpaDiagramActionDelegate_jpaSupportWarningMsg=JPA Diagram Editor supports JPA 1.0 only. When you use it with JPA 2.0 enabled projects you should visualize JPA 1.0 compliant entities only. Otherwise, the editor behavior will become erratic. 
OpenJpaDiagramActionDelegate_noPersistenceUnitTitle=No Persistence Unit
OpenJpaDiagramActionDelegate_noPersistenceUnitMsg=The JPA Diagram Editor can not be open, because the persistence unit does not exist or is corrupted. 

JPAEditorUtil_fullnameTooltipText=\ Class Name: {0} 
JPAEditorUtil_typeTooltipText=\ Type: {0} 
JPAEditorUtil_applyChangesJobName=Apply changes to persistence.xml.
JPAEditorUtil_inheritTypeTooltipText=\ Class Name: {0} \n This entity inherits {1}

PaletteCompartment_Connections=Relations
PaletteCompartment_Objects=Entities

BTN_OK=OK
BTN_CANCEL=Cancel

SelectTypeDialog_chooseAttributeTypeDialogText=Select a primitive type for the attribute "{0}" of the entity "{1}" or choose the "Browse" button to select a class type.
SelectTypeDialog_browseBtnTxt=&Browse...
SelectTypeDialog_browseBtnDesc=Browse to select a class.
SelectTypeDialog_typeLabel=&Type:
SelectTypeDialog_chooseAttributeTypeDialogWindowTitle=Select Type
SelectTypeDialog_chooseAttributeTypeDialogTitle=Select New Attribute Type
SelectTypeDialog_invalidTypeMsgTitle=Invalid Type
SelectTypeDialog_invalidTypeMsgText="{0}" is not valid java type or primitive.
SelectTypeDialog_emptyTypeErrorText=The new type name must not be empty

JPASolver_closeWarningMsg=The entity "{0}" is open elsewhere with identical changes. Using this button will not lose those changes. Close the other editor(s), where the entity "{0}" is open and try again!
JPASolver_closeEditors=Close Editors  

RemoveJPAEntityFeature_discardWarningMsg=The entity "{0}" is open elsewhere with identical changes. Using this button will remove the entity from the diagram, but will not lose those changes. In order to lose the changes you need first to close the other editor(s), where the entity "{0}" is open and try again!\n\nDo you want to continue with removing anyway?



