Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Hauge2012-09-25 22:02:07 +0000
committerNeil Hauge2012-09-25 22:02:07 +0000
commit6a2ebd5a3b325ee399dbfaf7b46e2c18e6ddd9a7 (patch)
tree97a4774497d0aceb190b93ef3bde885ff5d50f68
parentb747981e5ec6615112f2867bb4ae94949d7ba75a (diff)
downloadwebtools.dali-6a2ebd5a3b325ee399dbfaf7b46e2c18e6ddd9a7.tar.gz
webtools.dali-6a2ebd5a3b325ee399dbfaf7b46e2c18e6ddd9a7.tar.xz
webtools.dali-6a2ebd5a3b325ee399dbfaf7b46e2c18e6ddd9a7.zip
377064 - Add org.eclipse.jpt.ui to 2.3.5 patches stream to fix notedv201209252200
bug.
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.classpath13
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.gitignore1
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.jetproperties4
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.options14
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.project34
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF96
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/about.html34
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/build.properties26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/component.xml12
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_entity_wiz.gifbin0 -> 594 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpa_file_wiz.gifbin0 -> 359 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gifbin0 -> 372 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gifbin0 -> 896 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_entity_wiz.gifbin0 -> 624 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gifbin0 -> 586 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gifbin0 -> 991 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gifbin0 -> 953 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gifbin0 -> 896 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gifbin0 -> 900 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gifbin0 -> 897 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/element-collection.gifbin0 -> 872 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gifbin0 -> 1003 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gifbin0 -> 953 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gifbin0 -> 905 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gifbin0 -> 974 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gifbin0 -> 1010 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gifbin0 -> 938 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-content.gifbin0 -> 896 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-file.gifbin0 -> 968 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gifbin0 -> 1013 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gifbin0 -> 328 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gifbin0 -> 307 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gifbin0 -> 1005 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gifbin0 -> 911 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gifbin0 -> 586 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gifbin0 -> 306 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gifbin0 -> 283 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gifbin0 -> 931 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gifbin0 -> 961 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gifbin0 -> 892 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gifbin0 -> 321 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/warning.gifbin0 -> 338 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gifbin0 -> 3485 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_entity_wizban.gifbin0 -> 3316 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_jpa_file_wizban.gifbin0 -> 3070 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/add-connection.gifbin0 -> 920 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/add.pngbin0 -> 1000 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse-mini.pngbin0 -> 448 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse.pngbin0 -> 1072 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/collapse-all.pngbin0 -> 989 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/delete.pngbin0 -> 1059 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/deselect-all.pngbin0 -> 1050 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/dot.gifbin0 -> 121 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/edit.pngbin0 -> 380 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/expand-all.pngbin0 -> 1004 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/list-of-values.pngbin0 -> 1072 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-down.pngbin0 -> 305 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-up.pngbin0 -> 284 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/reconnect.pngbin0 -> 1022 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/restore-defaults.pngbin0 -> 1057 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/select-all.pngbin0 -> 1096 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/buttons/warningstd.pngbin0 -> 993 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img-hover.pngbin0 -> 1222 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img.pngbin0 -> 1047 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_left_bg.pngbin0 -> 232 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_mid_bg.pngbin0 -> 190 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_right_bg.pngbin0 -> 232 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/print-hover.pngbin0 -> 1219 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/print.pngbin0 -> 1051 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-bottom.pngbin0 -> 928 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-left.pngbin0 -> 978 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-right.pngbin0 -> 989 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-side.pngbin0 -> 924 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-upper-right.pngbin0 -> 976 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/diagram/toolbar_bg.pngbin0 -> 196 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/column.gifbin0 -> 113 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/columnKey.gifbin0 -> 1715 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/file.pngbin0 -> 456 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/folder.pngbin0 -> 310 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/forward.gifbin0 -> 138 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/moveRight.gifbin0 -> 138 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/package.pngbin0 -> 319 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/table.gifbin0 -> 953 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/objects/table_obj.gifbin0 -> 561 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/overlays/error.gifbin0 -> 82 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/overlays/warning.pngbin0 -> 322 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/images/save-image-16.pngbin0 -> 508 bytes
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/plugin.properties73
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/plugin.xml994
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties140
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details.properties330
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties52
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details_orm.properties56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties111
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_wizard.properties57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence.properties59
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence2_0.properties59
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_validation_preferences.properties183
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatformUis.exsd139
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUi.java125
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiFactory.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java236
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/MappingResourceUiDefinition.java72
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/PersistenceXmlResourceUiDefinition.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/ResourceUiDefinition.java34
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/WidgetFactory.java240
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/DefaultMappingUiDefinition.java28
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaComposite.java45
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsPage.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsProvider.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaPageComposite.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/MappingUiDefinition.java65
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaAttributeMappingUiDefinition.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaTypeMappingUiDefinition.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaAttributeMappingUiDefinition.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaTypeMappingUiDefinition.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java265
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmAttributeMappingUiDefinition.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmTypeMappingUiDefinition.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmXmlUiFactory.java220
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/AbstractJpaPlatformUiProvider.java88
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/EditorPartAdapterFactory.java65
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/GenericJpaPlatformUiProvider.java70
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/ImageRepository.java149
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaHelpContextIds.java151
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaJavaCompletionProposalComputer.java187
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaMappingImageHelper.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java127
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java138
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiValidationPreferenceMessages.java192
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/Tracing.java161
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/MigrateJavaProjectAction.java82
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/OpenJpaResourceAction.java101
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlAndMapHandler.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlHandler.java62
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentClassHandler.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentAttributeMapAsHandler.java143
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentTypeMapAsHandler.java124
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentAttributeFromXmlHandler.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentClassHandler.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/UpgradeXmlFileVersionHandler.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingComposite.java216
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableComposite.java66
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingComposite.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingUiDefinition.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingOverridesComposite.java39
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java216
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityMappingsDetailsProvider.java32
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingComposite.java136
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingUiDefinition.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractInheritanceComposite.java290
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJoiningStrategyPane.java97
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJpaDetailsPage.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingComposite.java140
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingComposite.java80
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassComposite.java62
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappingUiDefinition.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOneToManyMappingComposite.java132
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOneToManyMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOneToOneMappingComposite.java80
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOneToOneMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOrderingComposite.java140
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOverridesComposite.java404
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractPrimaryKeyJoinColumnsComposite.java353
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractSecondaryTablesComposite.java177
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractTransientMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractVersionMappingComposite.java161
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractVersionMappingUiDefinition.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AccessTypeComposite.java117
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AddQueryDialog.java186
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AddQueryStateObject.java124
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AssociationOverrideComposite.java80
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AttributeOverrideComposite.java70
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJoinColumnDialog.java109
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJoinColumnDialogPane.java441
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJoinColumnStateObject.java396
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BasicMappingComposite.java80
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/CascadeComposite.java211
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ColumnComposite.java573
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/DiscriminatorColumnComposite.java308
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedIdMappingComposite.java35
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedMappingComposite.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedMappingOverridesComposite.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EntityNameComposite.java121
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EntityOverridesComposite.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EnumTypeComposite.java115
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/FetchTypeComposite.java109
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/GeneratedValueComposite.java205
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/GenerationComposite.java234
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/GeneratorComposite.java206
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IdClassComposite.java138
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IdMappingComposite.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IdMappingGenerationComposite.java348
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/InverseJoinColumnInJoinTableDialog.java88
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/InverseJoinColumnInJoinTableStateObject.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnDialog.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnDialogPane.java285
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnInJoiningStrategyDialog.java66
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnInJoiningStrategyStateObject.java95
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnInReferenceTableDialog.java78
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnInReferenceTableStateObject.java87
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnJoiningStrategyPane.java149
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnStateObject.java209
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnsComposite.java331
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinTableComposite.java417
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinTableJoiningStrategyPane.java109
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoiningStrategyJoinColumnsComposite.java236
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoiningStrategyJoinColumnsWithOverrideOptionComposite.java149
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JptUiDetailsMessages.java309
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ManyToManyJoiningStrategyPane.java124
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ManyToManyMappingComposite.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ManyToOneJoiningStrategyPane.java68
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ManyToOneMappingComposite.java84
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/MapAsComposite.java638
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/MappedByJoiningStrategyPane.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/MappedByPane.java100
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/NamedNativeQueryPropertyComposite.java182
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/NamedQueryPropertyComposite.java119
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OneToManyJoiningStrategyPane.java82
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OneToManyMappingComposite.java82
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OneToOneJoiningStrategyPane.java96
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OneToOneMappingComposite.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OptionalComposite.java101
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OrderingComposite.java115
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java180
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeMapAsComposite.java138
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java169
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeMapAsComposite.java128
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnDialog.java108
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnInSecondaryTableDialog.java111
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnInSecondaryTableStateObject.java99
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnJoiningStrategyPane.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnStateObject.java101
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PrimaryKeyJoinColumnsInSecondaryTableComposite.java413
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/QueriesComposite.java313
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/QueryHintsComposite.java339
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java424
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/SecondaryTableDialog.java450
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/SequenceGeneratorComposite.java136
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/TableComposite.java239
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/TableGeneratorComposite.java499
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/TargetEntityComposite.java130
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/TemporalTypeComposite.java139
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/TransientMappingComposite.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/VersionMappingComposite.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/CatalogCombo.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/ColumnCombo.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/DatabaseObjectCombo.java349
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/SchemaCombo.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/SequenceCombo.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/db/TableCombo.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/AbstractJavaResourceUiDefinition.java243
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java173
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/DefaultBasicMappingUiDefinition.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/DefaultEmbeddedMappingUiDefinition.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/GenericJavaResourceUiDefinition.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/GenericJavaUiFactory.java23
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaBasicMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEmbeddableComposite.java45
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEmbeddableUiDefinition.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEmbeddedIdMappingUDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEmbeddedMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEntityComposite.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaEntityUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaIdMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaInheritanceComposite.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaManyToManyMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaManyToOneMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaMappedSuperclassComposite.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaMappedSuperclassUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaOneToManyMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaOneToOneMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaPersistentAttributeDetailsPage.java68
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaPersistentAttributeDetailsProvider.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaPersistentTypeDetailsProvider.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaPrimaryKeyJoinColumnsComposite.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaSecondaryTablesComposite.java131
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaTransientMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/JavaVersionMappingUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/NullJavaAttributeMappingUiDefinition.java92
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/NullJavaTypeMappingUiDefinition.java95
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/AbstractEntityMappingsDetailsPage.java268
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/AbstractOrmEntityComposite.java90
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/AbstractOrmXmlResourceUiDefinition.java174
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/AddGeneratorDialog.java187
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/AddGeneratorStateObject.java123
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/BaseOrmXmlUiFactory.java134
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/EntityMappingsDetailsPage.java82
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/EntityMappingsDetailsProvider.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/EntityMappingsGeneratorsComposite.java371
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/GenericOrmXmlUiFactory.java15
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/JptUiDetailsOrmMessages.java78
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/MetadataCompleteComposite.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmBasicMappingComposite.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmBasicMappingUiDefinition.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddableComposite.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddableUiDefinition.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddedIdMappingComposite.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddedIdMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddedMappingComposite.java65
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEmbeddedMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEntityComposite.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmEntityUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmIdMappingComposite.java36
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmIdMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmInheritanceComposite.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmJavaClassChooser.java112
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmManyToManyMappingComposite.java91
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmManyToManyMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmManyToOneMappingComposite.java92
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmManyToOneMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmMappedSuperclassComposite.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmMappedSuperclassUiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmMappingNameChooser.java70
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmOneToManyMappingComposite.java90
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmOneToManyMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmOneToOneMappingComposite.java92
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmOneToOneMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmPackageChooser.java98
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmPersistentAttributeDetailsPage.java112
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmPersistentAttributeDetailsProvider.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmPersistentTypeDetailsProvider.java62
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmPrimaryKeyJoinColumnsComposite.java78
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmQueriesComposite.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmSecondaryTablesComposite.java210
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmTransientMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmVersionMappingComposite.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmVersionMappingUiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/OrmXmlUiDefinition.java84
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/PersistenceUnitMetadataComposite.java303
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/orm/UnsupportedOrmMappingUiDefinition.java89
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java197
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java310
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceContributor.java106
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java436
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/AbstractItemLabelProvider.java224
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/AbstractTreeItemContentProvider.java204
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/ArchiveFileViewerFilter.java71
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/ImageImageDescriptor.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/JarFileItemLabelProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullLabelProvider.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullTreeContentProvider.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/StructuredContentProviderAdapter.java265
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/XmlMappingFileViewerFilter.java88
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/Generic2_0JpaPlatformUiProvider.java77
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/GenericOrmXml2_0UiFactory.java147
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/Jpa2_0ProjectFlagModel.java31
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java376
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0UiDefinition.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AbstractManyToOneMapping2_0Composite.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AbstractOneToOneMapping2_0Composite.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AssociationOverride2_0Composite.java82
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Cacheable2_0Pane.java107
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/CascadePane2_0.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/CollectionTable2_0Composite.java155
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/DerivedIdentity2_0Pane.java200
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/ElementCollectionMapping2_0Composite.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/ElementCollectionValueOverridesComposite.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/EmbeddedIdMapping2_0Composite.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/EmbeddedIdMapping2_0MappedByRelationshipPane.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/EmbeddedMapping2_0OverridesComposite.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Entity2_0OverridesComposite.java35
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Generation2_0Composite.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/IdMapping2_0MappedByRelationshipPane.java71
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/IdMappingGeneration2_0Composite.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java78
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/LockModeComposite.java89
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/ManyToOneJoiningStrategy2_0Pane.java84
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/NamedQueryProperty2_0Composite.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OneToManyJoiningStrategy2_0Pane.java95
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OneToOneJoiningStrategy2_0Pane.java115
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java369
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Ordering2_0Composite.java168
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java111
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Queries2_0Composite.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/SequenceGenerator2_0Composite.java190
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/TargetClassComposite.java130
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaResourceUiDefinition.java91
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java134
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaElementCollectionMapping2_0UiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEmbeddable2_0Composite.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEmbeddedMapping2_0Composite.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java105
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaIdMapping2_0Composite.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaManyToManyMapping2_0Composite.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaManyToOneMapping2_0Composite.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaManyToOneMapping2_0Pane.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaMappedSuperclass2_0Composite.java74
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java66
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/EntityMappings2_0DetailsPage.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/EntityMappings2_0DetailsProvider.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/EntityMappingsGenerators2_0Composite.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmBasicMapping2_0Composite.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0UiDefinition.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java77
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java91
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmIdMapping2_0Composite.java58
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmManyToManyMapping2_0Composite.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmManyToOneMapping2_0Composite.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java80
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java76
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmQueries2_0Composite.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmVersionMapping2_0Composite.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmXml2_0UiDefinition.java96
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/Generic2_0PersistenceXmlUiFactory.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/JptUiPersistence2_0Messages.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/PersistenceXml2_0UiDefinition.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/ConnectionPropertiesComposite.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/DataSourcePropertiesComposite.java142
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/GenericPersistenceUnit2_0ConnectionComposite.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/GenericPersistenceUnit2_0ConnectionTab.java90
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/JdbcConnectionPropertiesComposite.java314
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/JdbcDriverComposite.java93
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/JdbcPropertiesComposite.java79
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/connection/TransactionTypeComposite.java123
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/GenericPersistenceUnit2_0OptionsComposite.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/GenericPersistenceUnit2_0OptionsTab.java90
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/LockingConfigurationComposite.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/QueryConfigurationComposite.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/SharedCacheModeComposite.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/ValidationConfigurationComposite.java131
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/persistence/options/ValidationModeComposite.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/platform/generic/Generic2_0JpaPlatformUiFactory.java34
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java154
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTConnectionListenerWrapper.java351
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTListChangeListenerWrapper.java204
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTStateChangeListenerWrapper.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/listeners/SWTTreeChangeListenerWrapper.java154
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java204
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorActionProvider.java59
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentAndLabelProvider.java20
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java217
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorItemLabelProviderFactory.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorLabelProvider.java137
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorTreeItemContentProviderFactory.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/JptUiPersistenceMessages.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/AbstractPersistenceXmlResourceUiDefinition.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/ArchiveFileSelectionDialog.java225
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/GenericPersistenceUnitGeneralComposite.java116
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/GenericPersistenceUnitJarFilesComposite.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/GenericPersistenceUnitMappingFilesComposite.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/GenericPersistenceXmlUiFactory.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitClassesComposite.java378
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitConnectionComposite.java144
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitConnectionDatabaseComposite.java159
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitConnectionGeneralComposite.java106
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitGeneralComposite.java230
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitJarFilesComposite.java231
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java362
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitPropertiesComposite.java419
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceXmlUiDefinition.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceXmlUiFactory.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/perspective/JpaPerspectiveFactory.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/JpaPlatformUiRegistry.java190
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java191
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java66
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/ClassRefItemLabelProvider.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/EntityMappingsItemLabelProvider.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericJpaPlatformUi.java34
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericJpaPlatformUiFactory.java32
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java255
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorProvider.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/JarFileRefItemLabelProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/JavaPersistentTypeItemContentProvider.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/MappingFileRefItemLabelProvider.java63
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/OrmPersistentTypeItemContentProvider.java79
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/OrmXmlItemContentProvider.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/OrmXmlItemLabelProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistenceItemLabelProvider.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistenceUnitItemLabelProvider.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistenceXmlItemContentProvider.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistenceXmlItemLabelProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistentAttributeItemContentProvider.java39
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistentAttributeItemLabelProvider.java76
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/PersistentTypeItemLabelProvider.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/RootContextItemContentProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/RootContextItemLabelProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/preferences/JpaPreferencesPage.java68
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/preferences/JpaProblemSeveritiesPage.java899
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/DataModelPropertyPage.java309
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/JpaProjectPropertiesPage.java1827
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/DefaultJpaSelection.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/DefaultJpaSelectionManager.java288
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaDetailsSelectionParticipant.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaSelection.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaSelectionEvent.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaSelectionManager.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaSelectionParticipant.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaStructureSelectionParticipant.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManagerFactory.java105
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/TextEditorSelectionParticipant.java224
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/WorkbenchPartAdapterFactory.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/GeneralJpaMappingItemLabelProviderFactory.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/JavaItemContentProviderFactory.java39
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/JavaItemLabelProviderFactory.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/JavaResourceModelStructureProvider.java45
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/OrmItemContentProviderFactory.java79
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/OrmItemLabelProviderFactory.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/OrmResourceModelStructureProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemContentProviderFactory.java271
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemLabelProviderFactory.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceResourceModelStructureProvider.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/ResourceModelItemContentProvider.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/AbstractComboModelAdapter.java699
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/ColumnAdapter.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/ComboModelAdapter.java210
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/DateTimeModelAdapter.java352
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/SpinnerModelAdapter.java214
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/TableItemModelAdapter.java209
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/TableModelAdapter.java716
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/swt/TriStateCheckBoxModelAdapter.java188
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/ControlAligner.java913
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/ControlSwitcher.java130
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/LabeledButton.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/LabeledControl.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/LabeledControlUpdater.java130
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/LabeledLabel.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/PaneEnabler.java175
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/PaneVisibilityEnabler.java173
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/SWTUtil.java447
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/StateController.java320
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/TableLayoutComposite.java207
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/AsynchronousUiCommandExecutor.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/SynchronousUiCommandExecutor.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/AbstractListWidgetAdapter.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/BooleanButtonModelBinding.java190
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/BooleanStateController.java188
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java283
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/ListBoxSelectionBinding.java305
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/ListWidgetModelBinding.java428
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/MultiControlBooleanStateController.java157
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/SWTComboAdapter.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/SWTListAdapter.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/SWTTools.java392
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/SimpleBooleanStateController.java68
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/TextFieldModelBinding.java196
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/AbstractJpaView.java166
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java190
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/structure/JpaStructurePage.java409
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/structure/JpaStructureView.java134
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveListPane.java554
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemovePane.java923
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveTablePane.java314
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ChooserPane.java167
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ClassChooserComboPane.java92
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ClassChooserPane.java368
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ComboPane.java288
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/DefaultWidgetFactory.java260
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/Dialog.java350
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/DialogPane.java109
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/EnumComboViewer.java369
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/EnumDialogComboViewer.java77
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/EnumFormComboViewer.java77
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FileChooserComboPane.java105
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FileChooserPane.java167
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserComboPane.java106
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserPane.java140
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FormWidgetFactory.java338
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/IntegerCombo.java188
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/NewNameDialog.java166
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/NewNameDialogBuilder.java179
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/NewNameStateObject.java145
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/NullPostExecution.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/PackageChooserPane.java237
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/Pane.java3732
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/PostExecution.java31
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/PropertySheetWidgetFactory.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/TriStateCheckBox.java287
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ValidatingDialog.java198
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/DatabaseSchemaWizardPage.java445
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetActionPage.java203
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetInstallPage.java231
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetVersionChangePage.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewEntityDropDownAction.java261
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectFirstPage.java24
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectWizard.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/AnnotatedEntityTemplate.java166
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityClassWizardPage.java393
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityFieldsWizardPage.java234
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityRowTableWizardSection.java822
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityTemplate.java126
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityWizard.java137
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/EntityWizardMsg.java126
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/IdClassTemplate.java255
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/data/model/CreateEntityTemplateModel.java384
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/data/model/EntityDataModelProvider.java363
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/data/model/EntityRow.java206
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/data/model/IEntityDataModelProperties.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/entity/data/operation/NewEntityClassOperation.java535
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationFigure.java227
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationTablesPage.java194
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationsListComposite.java137
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/CardinalityPage.java161
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/CascadeDialog.java191
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/ColumnGenPanel.java360
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/DatabaseGroup.java526
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/DefaultTableGenerationWizardPage.java328
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java545
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JoinColumnsPage.java629
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JptUiEntityGenMessages.java123
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/NewAssociationWizard.java199
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/NewAssociationWizardPage.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/PromptJPAProjectWizardPage.java154
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SWTUtil.java133
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SelectTableDialog.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableAssociationsWizardPage.java775
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableFigure.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableGenPanel.java400
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TablesAndColumnsCustomizationWizardPage.java377
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TablesSelectorWizardPage.java557
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/orm/MappingFileWizard.java277
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/orm/MappingFileWizardPage.java295
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/DelegatingContentAndLabelProvider.java207
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/ItemContentProvider.java36
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/ItemContentProviderFactory.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/ItemLabelProvider.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/ItemLabelProviderFactory.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/TreeItemContentProvider.java40
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jface/TreeItemContentProviderFactory.java26
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jpa2/details/java/JavaUiFactory2_0.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/jpa2/details/orm/OrmXmlUiFactory2_0.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/navigator/JpaNavigatorProvider.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/structure/JpaStructureProvider.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/templates/annotated_entity.javajet64
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/templates/entity.javajet50
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet124
650 files changed, 83369 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.classpath b/jpa/plugins/org.eclipse.jpt.ui/.classpath
new file mode 100644
index 0000000000..5ee7c76127
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.classpath
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="property_files"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/jst/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.gitignore b/jpa/plugins/org.eclipse.jpt.ui/.gitignore
new file mode 100644
index 0000000000..c5e82d7458
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.gitignore
@@ -0,0 +1 @@
+bin \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.jetproperties b/jpa/plugins/org.eclipse.jpt.ui/.jetproperties
new file mode 100644
index 0000000000..2907c83a43
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.jetproperties
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<jet-settings>
+ <template-container>templates</template-container> <source-container>src</source-container>
+</jet-settings>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.options b/jpa/plugins/org.eclipse.jpt.ui/.options
new file mode 100644
index 0000000000..37e1229856
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.options
@@ -0,0 +1,14 @@
+# Debugging options for org.eclipse.jpt.ui plug-in
+
+# Turn on debugging for the org.eclipse.jpt.ui plugin.
+org.eclipse.jpt.ui/debug=false
+
+# Turn on debugging for unit-tests
+org.eclipse.jpt.ui/debug/unit-tests=false
+
+# Turn on debugging for events occurring in the UI panes
+org.eclipse.jpt.ui/debug/ui/layout=false
+org.eclipse.jpt.ui/debug/ui/detailsView=false
+
+# Turn on debugging for events coming from ConnectionProfile
+org.eclipse.jpt.ui/debug/ui/db=false
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.project b/jpa/plugins/org.eclipse.jpt.ui/.project
new file mode 100644
index 0000000000..f1b147fd81
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jpt.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.emf.codegen.JETBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.emf.codegen.jet.IJETNature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..2c6dda4a74
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Jan 15 11:12:14 EST 2008
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..d909c105d5
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sun May 27 14:55:01 EDT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..62fcd659aa
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,96 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.jpt.ui;singleton:=true
+Bundle-Version: 2.3.3.qualifier
+Bundle-Activator: org.eclipse.jpt.ui.JptUiPlugin
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.draw2d;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.codegen;bundle-version="[2.4.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.help;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
+ org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jpt.core;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.jpt.db.ui;bundle-version="[1.0.1,2.0.0)",
+ org.eclipse.jpt.gen;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.jst.common.annotations.controller;bundle-version="[1.1.100,1.2.0)",
+ org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.jst.common.project.facet.ui;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.jst.j2ee;bundle-version="[1.1.200,1.2.0)",
+ org.eclipse.jst.j2ee.ui;bundle-version="[1.1.200,2.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.ui.navigator;bundle-version="[3.3.100,4.0.0)",
+ org.eclipse.ui.navigator.resources;bundle-version="[3.3.100,4.0.0)",
+ org.eclipse.ui.workbench.texteditor;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.wst.common.emf;bundle-version="[1.1.200,2.0.0)",
+ org.eclipse.wst.common.frameworks.ui;bundle-version="[1.1.200,1.3.0)",
+ org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.wst.sse.ui;bundle-version="[1.1.0,1.3.0)",
+ org.eclipse.wst.web.ui;bundle-version="[1.1.200,2.0.0)"
+Export-Package: org.eclipse.jpt.ui,
+ org.eclipse.jpt.ui.details,
+ org.eclipse.jpt.ui.details.java,
+ org.eclipse.jpt.ui.details.orm,
+ org.eclipse.jpt.ui.internal;x-internal:=true,
+ org.eclipse.jpt.ui.internal.actions;x-internal:=true,
+ org.eclipse.jpt.ui.internal.commands;x-internal:=true,
+ org.eclipse.jpt.ui.internal.details;x-internal:=true,
+ org.eclipse.jpt.ui.internal.details.db;x-internal:=true,
+ org.eclipse.jpt.ui.internal.details.java;x-internal:=true,
+ org.eclipse.jpt.ui.internal.details.orm;x-internal:=true,
+ org.eclipse.jpt.ui.internal.dialogs;x-internal:=true,
+ org.eclipse.jpt.ui.internal.editors;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jface;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.details;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.details.java;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.details.orm;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.persistence;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.persistence.connection;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.persistence.options;x-internal:=true,
+ org.eclipse.jpt.ui.internal.jpa2.platform.generic;x-internal:=true,
+ org.eclipse.jpt.ui.internal.listeners;x-internal:=true,
+ org.eclipse.jpt.ui.internal.menus;x-internal:=true,
+ org.eclipse.jpt.ui.internal.navigator;x-internal:=true,
+ org.eclipse.jpt.ui.internal.persistence;x-internal:=true,
+ org.eclipse.jpt.ui.internal.persistence.details;x-internal:=true,
+ org.eclipse.jpt.ui.internal.perspective;x-internal:=true,
+ org.eclipse.jpt.ui.internal.platform;x-internal:=true,
+ org.eclipse.jpt.ui.internal.platform.base;x-internal:=true,
+ org.eclipse.jpt.ui.internal.platform.generic;x-internal:=true,
+ org.eclipse.jpt.ui.internal.preferences;x-internal:=true,
+ org.eclipse.jpt.ui.internal.properties;x-internal:=true,
+ org.eclipse.jpt.ui.internal.selection;x-internal:=true,
+ org.eclipse.jpt.ui.internal.structure;x-internal:=true,
+ org.eclipse.jpt.ui.internal.swt;x-internal:=true,
+ org.eclipse.jpt.ui.internal.util;
+ x-friends:="org.eclipse.jpt.jaxb.ui",
+ org.eclipse.jpt.ui.internal.utility;x-internal:=true,
+ org.eclipse.jpt.ui.internal.utility.swt;x-internal:=true,
+ org.eclipse.jpt.ui.internal.views;x-internal:=true,
+ org.eclipse.jpt.ui.internal.views.structure;x-internal:=true,
+ org.eclipse.jpt.ui.internal.widgets;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards.entity;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards.entity.data.model;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards.entity.data.operation;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards.gen;x-internal:=true,
+ org.eclipse.jpt.ui.internal.wizards.orm;x-internal:=true,
+ org.eclipse.jpt.ui.jface,
+ org.eclipse.jpt.ui.jpa2.details.java,
+ org.eclipse.jpt.ui.jpa2.details.orm,
+ org.eclipse.jpt.ui.navigator,
+ org.eclipse.jpt.ui.structure
+Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/jpa/plugins/org.eclipse.jpt.ui/about.html b/jpa/plugins/org.eclipse.jpt.ui/about.html
new file mode 100644
index 0000000000..be534ba44f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>May 02, 2008</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in
+("Content"). Unless otherwise indicated below, the Content is provided to you
+under the terms and conditions of the Eclipse Public License Version 1.0
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>.
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the
+Content is being redistributed by another party ("Redistributor") and different
+terms and conditions may apply to your use of any object code in the Content.
+Check the Redistributor's license that was provided with the Content. If no such
+license exists, contact the Redistributor. Unless otherwise indicated below, the
+terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/build.properties b/jpa/plugins/org.eclipse.jpt.ui/build.properties
new file mode 100644
index 0000000000..83fdfc70e1
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/build.properties
@@ -0,0 +1,26 @@
+################################################################################
+# Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+################################################################################
+javacSource = 1.5
+javacTarget = 1.5
+source.. = src/,\
+ property_files/
+output.. = bin/
+bin.includes = .,\
+ META-INF/,\
+ about.html,\
+ icons/,\
+ plugin.xml,\
+ plugin.properties,\
+ templates/,\
+ images/
+jars.compile.order = .
+src.includes = templates/,\
+ schema/
+
diff --git a/jpa/plugins/org.eclipse.jpt.ui/component.xml b/jpa/plugins/org.eclipse.jpt.ui/component.xml
new file mode 100644
index 0000000000..228345981f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/component.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ -->
+
+<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.ui"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.ui" fragment="false"/></component> \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_entity_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_entity_wiz.gif
new file mode 100644
index 0000000000..55f7cc932f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_entity_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpa_file_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpa_file_wiz.gif
new file mode 100644
index 0000000000..610f6042d0
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpa_file_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif
new file mode 100644
index 0000000000..633768f35d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif
new file mode 100644
index 0000000000..c0ab917511
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_entity_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_entity_wiz.gif
new file mode 100644
index 0000000000..8533ca10fb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_entity_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif
new file mode 100644
index 0000000000..6e0042e98c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif
new file mode 100644
index 0000000000..12da8074ae
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif
new file mode 100644
index 0000000000..3280138b67
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif
new file mode 100644
index 0000000000..c0ab917511
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif
new file mode 100644
index 0000000000..682c90a589
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif
new file mode 100644
index 0000000000..a547d743e7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/element-collection.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/element-collection.gif
new file mode 100644
index 0000000000..64706d215f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/element-collection.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif
new file mode 100644
index 0000000000..8856f78874
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif
new file mode 100644
index 0000000000..c1c8e210e7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif
new file mode 100644
index 0000000000..c2ae66497a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif
new file mode 100644
index 0000000000..c349c962e2
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif
new file mode 100644
index 0000000000..d606f482e2
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif
new file mode 100644
index 0000000000..a205ec38ab
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-content.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-content.gif
new file mode 100644
index 0000000000..c0ab917511
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-content.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-file.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-file.gif
new file mode 100644
index 0000000000..b4e9f4724b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-file.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif
new file mode 100644
index 0000000000..e92828d2d9
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif
new file mode 100644
index 0000000000..48885b21fe
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif
new file mode 100644
index 0000000000..2e1e2b9387
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif
new file mode 100644
index 0000000000..8cc37645c0
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif
new file mode 100644
index 0000000000..70a9c23541
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif
new file mode 100644
index 0000000000..6279478c51
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif
new file mode 100644
index 0000000000..1e90027861
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif
new file mode 100644
index 0000000000..578ec36aa3
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif
new file mode 100644
index 0000000000..9cc45f6945
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif
new file mode 100644
index 0000000000..d1f616d64f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif
new file mode 100644
index 0000000000..cc5d83db20
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif
new file mode 100644
index 0000000000..202a8104f4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/warning.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/warning.gif
new file mode 100644
index 0000000000..14009e9974
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/warning.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif
new file mode 100644
index 0000000000..8ce181f606
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_entity_wizban.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_entity_wizban.gif
new file mode 100644
index 0000000000..b1d934cb87
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_entity_wizban.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_jpa_file_wizban.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_jpa_file_wizban.gif
new file mode 100644
index 0000000000..e84622322a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/new_jpa_file_wizban.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add-connection.gif b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add-connection.gif
new file mode 100644
index 0000000000..864034f74e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add-connection.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add.png
new file mode 100644
index 0000000000..6bd3486b7a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/add.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse-mini.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse-mini.png
new file mode 100644
index 0000000000..1f64f24965
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse-mini.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse.png
new file mode 100644
index 0000000000..8081fd9293
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/browse.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/collapse-all.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/collapse-all.png
new file mode 100644
index 0000000000..3582d18d5b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/collapse-all.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/delete.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/delete.png
new file mode 100644
index 0000000000..afba8b4463
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/delete.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/deselect-all.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/deselect-all.png
new file mode 100644
index 0000000000..49544f5703
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/deselect-all.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/dot.gif b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/dot.gif
new file mode 100644
index 0000000000..57a514d649
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/dot.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/edit.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/edit.png
new file mode 100644
index 0000000000..306d6a1c5f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/edit.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/expand-all.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/expand-all.png
new file mode 100644
index 0000000000..db729a3990
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/expand-all.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/list-of-values.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/list-of-values.png
new file mode 100644
index 0000000000..8081fd9293
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/list-of-values.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-down.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-down.png
new file mode 100644
index 0000000000..f6e5281b70
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-down.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-up.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-up.png
new file mode 100644
index 0000000000..7c8b1ccf79
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/move-up.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/reconnect.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/reconnect.png
new file mode 100644
index 0000000000..df009468ab
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/reconnect.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/restore-defaults.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/restore-defaults.png
new file mode 100644
index 0000000000..2d74ae4e01
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/restore-defaults.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/select-all.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/select-all.png
new file mode 100644
index 0000000000..4eaff2beab
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/select-all.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/buttons/warningstd.png b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/warningstd.png
new file mode 100644
index 0000000000..a7b471c2d3
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/buttons/warningstd.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img-hover.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img-hover.png
new file mode 100644
index 0000000000..0751b3267c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img-hover.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img.png
new file mode 100644
index 0000000000..5fb4dc2a2c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/export-as-img.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_left_bg.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_left_bg.png
new file mode 100644
index 0000000000..abfffe4bc7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_left_bg.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_mid_bg.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_mid_bg.png
new file mode 100644
index 0000000000..caa828d3c0
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_mid_bg.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_right_bg.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_right_bg.png
new file mode 100644
index 0000000000..bd7414470c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/header_right_bg.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print-hover.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print-hover.png
new file mode 100644
index 0000000000..468a09b5de
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print-hover.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print.png
new file mode 100644
index 0000000000..ee15ba107e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/print.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-bottom.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-bottom.png
new file mode 100644
index 0000000000..d84b339401
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-bottom.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-left.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-left.png
new file mode 100644
index 0000000000..fa25df32e8
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-left.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-right.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-right.png
new file mode 100644
index 0000000000..a58c953f1a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-lower-right.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-side.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-side.png
new file mode 100644
index 0000000000..585ed6a9e4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-side.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-upper-right.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-upper-right.png
new file mode 100644
index 0000000000..ccabb96f5c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/shadow-upper-right.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/diagram/toolbar_bg.png b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/toolbar_bg.png
new file mode 100644
index 0000000000..c483a49336
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/diagram/toolbar_bg.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/column.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/column.gif
new file mode 100644
index 0000000000..5f1551ba96
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/column.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/columnKey.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/columnKey.gif
new file mode 100644
index 0000000000..4f385155d6
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/columnKey.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/file.png b/jpa/plugins/org.eclipse.jpt.ui/images/objects/file.png
new file mode 100644
index 0000000000..f5c1810a63
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/file.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/folder.png b/jpa/plugins/org.eclipse.jpt.ui/images/objects/folder.png
new file mode 100644
index 0000000000..9759da4e20
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/folder.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/forward.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/forward.gif
new file mode 100644
index 0000000000..562bd70b5c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/forward.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/moveRight.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/moveRight.gif
new file mode 100644
index 0000000000..7a1511dd8e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/moveRight.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/package.png b/jpa/plugins/org.eclipse.jpt.ui/images/objects/package.png
new file mode 100644
index 0000000000..471cc4367d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/package.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/table.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/table.gif
new file mode 100644
index 0000000000..a99388a9af
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/table.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/objects/table_obj.gif b/jpa/plugins/org.eclipse.jpt.ui/images/objects/table_obj.gif
new file mode 100644
index 0000000000..e2ccabb383
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/objects/table_obj.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/overlays/error.gif b/jpa/plugins/org.eclipse.jpt.ui/images/overlays/error.gif
new file mode 100644
index 0000000000..119dcccd5a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/overlays/error.gif
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/overlays/warning.png b/jpa/plugins/org.eclipse.jpt.ui/images/overlays/warning.png
new file mode 100644
index 0000000000..8c1e86c479
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/overlays/warning.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/images/save-image-16.png b/jpa/plugins/org.eclipse.jpt.ui/images/save-image-16.png
new file mode 100644
index 0000000000..eca4774fec
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/images/save-image-16.png
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
new file mode 100644
index 0000000000..3140500741
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
@@ -0,0 +1,73 @@
+###############################################################################
+# Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+###############################################################################
+
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+pluginName= Dali Java Persistence Tools - UI
+providerName=Eclipse Web Tools Platform
+
+JPA_PLATFORM_UI="JPA Platform UI"
+
+jpaNavigatorContent=JPA Content
+
+jpaWizardCategoryName = JPA
+newJpaProjectWizardName = JPA Project
+newJpaProjectWizardDesc = Create a JPA project
+newJpaEntityWizardName = Entity
+newJpaEntityWizardDesc = Create a JPA Entity
+newJpaMappingFileWizardName = Mapping File
+newJpaMappingFileWizardDesc = Create a JPA Mapping File
+newJpaEntityFromTableWizardName = Entities from Tables
+newJpaEntityFromTableWizardDesc = Create JPA Entities from database tables
+
+upgradeToLatestVersion = Upgrade Document Version
+jpaStructureViewCommandCategory = JPA Structure View
+addPersistentClass = Add Class ...
+removePersistentClass = Remove Class
+addPersistentAttributeToXml = Add Attribute to XML
+addPersistentAttributeToXmlAndMap = Add Attribute to XML and Map ...
+removePersistentAttributeFromXml = Remove Attribute from XML
+mapAs=Map As
+mapAsMnemonic=M
+mapAsSpecifiedMappingParameterName=specified mapping key
+mapAsDefaultMappingParameterName=default mapping key
+
+jpaMenuName = JPA Tools
+generateEntities = Generate Entities from Tables...
+generateDDL = Generate Tables from Entities...
+convertToJPAProject = Convert to JPA Project ...
+synchronizeClasses = Synchronize Class List
+
+persistenceEditor=Persistence XML Editor
+
+jpaProblemSeveritiesPageName=Errors/Warnings
+jpaPreferencePage = Java Persistence
+
+jpaProjectPropertiesPage = Java Persistence
+
+jpaPerspective = JPA
+jpaPerspectiveDescription = This perspective is designed to support Java Persistence (JPA) development. It offers a Project Explorer, JPA Details, JPA Structure and a Data Source Explorer.
+jpaDetails = JPA Details
+jpaStructure = JPA Structure
+JpaProposalCategory = JPA Proposals
+
+JptCreationActionSet.label = Jpt Creation
+JptCreationActionSet.description = Jpt Creation Action Set
+
+NewEntityAction.label = New Entity \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.xml b/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
new file mode 100644
index 0000000000..10c5cc7b8e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
@@ -0,0 +1,994 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?> <!--
+ Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ -->
+
+<plugin>
+
+ <extension-point
+ id="jpaPlatformUis"
+ name="%JPA_PLATFORM_UI"
+ schema="schema/jpaPlatformUis.exsd"/>
+
+
+ <extension
+ point="org.eclipse.core.expressions.definitions">
+
+ <!--
+ A test for determining whether our current context is within the
+ JPA Structure View
+ -->
+ <definition
+ id="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ <with
+ variable="activePartId">
+ <equals
+ value="org.eclipse.jpt.ui.jpaStructureView"/>
+ </with>
+ </definition>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.core.runtime.adapters">
+
+ <factory
+ adaptableType="org.eclipse.ui.IWorkbenchPart"
+ class="org.eclipse.jpt.ui.internal.selection.WorkbenchPartAdapterFactory">
+ <adapter type="org.eclipse.jpt.ui.internal.selection.JpaSelectionParticipant"/>
+ </factory>
+
+ <factory
+ adaptableType="org.eclipse.ui.IEditorPart"
+ class="org.eclipse.jpt.ui.internal.EditorPartAdapterFactory">
+ <adapter type="org.eclipse.jpt.core.JpaFile"/>
+ </factory>
+
+ </extension>
+
+
+<!-- =================================================================================== -->
+<!-- Extension: Java Completion Proposal Computer -->
+<!-- =================================================================================== -->
+
+ <extension
+ point="org.eclipse.jdt.ui.javaCompletionProposalComputer"
+ id="JpaCompletionProposalComputer">
+
+ <javaCompletionProposalComputer
+ class="org.eclipse.jpt.ui.internal.JpaJavaCompletionProposalComputer"
+ categoryId="org.eclipse.jpt.ui.jpaProposalCategory">
+ <partition type="__dftl_partition_content_type"/>
+ <partition type="__java_string"/>
+ </javaCompletionProposalComputer>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.jdt.ui.javaCompletionProposalComputer"
+ id="jpaProposalCategory"
+ name="%JpaProposalCategory">
+ <proposalCategory
+ icon="$nl$/icons/full/eview16/jpa_perspective.gif"/>
+ </extension>
+
+
+ <extension
+ point="org.eclipse.jpt.ui.jpaPlatformUis">
+
+ <jpaPlatformUi
+ id="generic.ui"
+ jpaPlatform="generic"
+ factoryClass="org.eclipse.jpt.ui.internal.platform.generic.GenericJpaPlatformUiFactory"/>
+
+ <jpaPlatformUi
+ id="generic2_0.ui"
+ jpaPlatform="generic2_0"
+ factoryClass="org.eclipse.jpt.ui.internal.jpa2.platform.generic.Generic2_0JpaPlatformUiFactory"/>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.actionSets">
+
+ <actionSet
+ description="%JptCreationActionSet.description"
+ id="org.eclipse.jpt.ui.JptCreationActionSet"
+ label="%JptCreationActionSet.label">
+ <action
+ class="org.eclipse.jpt.ui.internal.wizards.NewEntityDropDownAction"
+ disabledIcon="icons/full/etool16/new_entity_wiz.gif"
+ icon="icons/full/etool16/new_entity_wiz.gif"
+ id="org.eclipse.jpt.ui.NewEntityAction"
+ label="%NewEntityAction.label"
+ pulldown="true"
+ toolbarPath="Normal/JptWizards">
+ </action>
+ </actionSet>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.commands">
+
+ <command
+ id="org.eclipse.jpt.ui.xmlFileUpgradeToLatestVersion"
+ name="%upgradeToLatestVersion"/>
+
+ <category
+ id="org.eclipse.jpt.ui.jpaStructureViewCommands"
+ name="%jpaStructureViewCommandCategory">
+ </category>
+
+ <command
+ id="org.eclipse.jpt.ui.entityMappingsAddPersistentClass"
+ name="%addPersistentClass"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentTypeRemovePersistentClass"
+ name="%removePersistentClass"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentAttributeAddToXml"
+ name="%addPersistentAttributeToXml"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentAttributeAddToXmlAndMap"
+ name="%addPersistentAttributeToXmlAndMap"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentAttributeRemoveFromXml"
+ name="%removePersistentAttributeFromXml"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentTypeMapAs"
+ name="%mapAs"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ <commandParameter
+ id="persistentTypeMappingKey"
+ name="%mapAsParameterName"
+ optional="false">
+ </commandParameter>
+ </command>
+
+ <command
+ id="org.eclipse.jpt.ui.persistentAttributeMapAs"
+ name="%mapAs"
+ categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
+ <commandParameter
+ id="specifiedPersistentAttributeMappingKey"
+ name="%mapAsSpecifiedMappingParameterName"
+ optional="false">
+ </commandParameter>
+ <commandParameter
+ id="defaultPersistentAttributeMappingKey"
+ name="%mapAsDefaultMappingParameterName"
+ optional="false">
+ </commandParameter>
+ </command>
+
+ </extension>
+
+
+<!-- =================================================================================== -->
+<!-- Extension: Persistence Editor -->
+<!-- =================================================================================== -->
+
+ <extension
+ point="org.eclipse.ui.editors">
+
+ <editor
+ class="org.eclipse.jpt.ui.internal.editors.PersistenceEditor"
+ contributorClass="org.eclipse.jpt.ui.internal.editors.PersistenceContributor"
+ icon="$nl$/icons/full/obj16/jpa-file.gif"
+ id="org.eclipse.jpt.ui.internal.editors.PersistenceEditor"
+ name="%persistenceEditor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.jpt.core.content.persistence"/>
+ </editor>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.handlers">
+
+ <handler
+ commandId="org.eclipse.jpt.ui.xmlFileUpgradeToLatestVersion"
+ class="org.eclipse.jpt.ui.internal.commands.UpgradeXmlFileVersionHandler">
+ <enabledWhen>
+ <iterate>
+ <or>
+ <adapt
+ type="org.eclipse.jpt.core.context.XmlFile">
+ <test
+ property="org.eclipse.jpt.core.isLatestSupportedVersion"
+ value="false"/>
+ </adapt>
+ <adapt
+ type="org.eclipse.jpt.core.resource.xml.JpaXmlResource">
+ <test
+ property="org.eclipse.jpt.core.isLatestSupportedVersion"
+ value="false"/>
+ </adapt>
+ </or>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.entityMappingsAddPersistentClass"
+ class="org.eclipse.jpt.ui.internal.commands.AddPersistentClassHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <and>
+ <count value="1"/>
+ <iterate>
+ <instanceof value="org.eclipse.jpt.core.context.orm.EntityMappings"/>
+ </iterate>
+ </and>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentTypeRemovePersistentClass"
+ class="org.eclipse.jpt.ui.internal.commands.RemovePersistentClassHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentType"/>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentAttributeAddToXml"
+ class="org.eclipse.jpt.ui.internal.commands.AddPersistentAttributeToXmlHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="true"/>
+ <test property="org.eclipse.jpt.core.isMapped" value="true"/>
+ </and>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentAttributeAddToXmlAndMap"
+ class="org.eclipse.jpt.ui.internal.commands.AddPersistentAttributeToXmlAndMapHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="true"/>
+ </and>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentAttributeRemoveFromXml"
+ class="org.eclipse.jpt.ui.internal.commands.RemovePersistentAttributeFromXmlHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="false"/>
+ </and>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentTypeMapAs"
+ class="org.eclipse.jpt.ui.internal.commands.PersistentTypeMapAsHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView"/>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <instanceof value="org.eclipse.jpt.core.context.PersistentType"/>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ <handler
+ commandId="org.eclipse.jpt.ui.persistentAttributeMapAs"
+ class="org.eclipse.jpt.ui.internal.commands.PersistentAttributeMapAsHandler">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.jpt.ui.reference.inJpaStructureView"/>
+ </activeWhen>
+ <enabledWhen>
+ <iterate>
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.PersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="false"/>
+ </and>
+ </iterate>
+ </enabledWhen>
+ </handler>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.menus">
+
+ <!-- contributions for any popup -->
+ <menuContribution
+ locationURI="popup:org.eclipse.ui.popup.any">
+
+ <!-- "JPA Tools" submenu for
+ - anything that adapts to JpaXmlResource (IFile objects, mostly)
+ - anything that adapts to IProject and has a JPA facet -->
+ <menu
+ id="org.eclipse.jpt.ui.menu.JpaTools"
+ label="%jpaMenuName">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <or>
+ <adapt
+ type="org.eclipse.jpt.core.resource.xml.JpaXmlResource"/>
+ <adapt
+ type="org.eclipse.core.resources.IProject">
+ <test
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa"/>
+ </adapt>
+ </or>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </menu>
+
+ <!-- commands for objects that don't need "JPA Tools" submenu -->
+ <command
+ commandId="org.eclipse.jpt.ui.xmlFileUpgradeToLatestVersion">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <adapt
+ type="org.eclipse.jpt.core.context.XmlFile">
+ <test
+ property="org.eclipse.jpt.core.isLatestSupportedVersion"
+ value="false"/>
+ </adapt>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+
+ <!-- contributions to the "JPA Tools" submenu -->
+ <menuContribution
+ locationURI="popup:org.eclipse.jpt.ui.menu.JpaTools">
+ <command
+ commandId="org.eclipse.jpt.ui.xmlFileUpgradeToLatestVersion">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <adapt
+ type="org.eclipse.jpt.core.resource.xml.JpaXmlResource">
+ <test
+ property="org.eclipse.jpt.core.isLatestSupportedVersion"
+ value="false"/>
+ </adapt>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+
+ <!-- contributions to objects in the JPA structure view -->
+ <menuContribution
+ locationURI="popup:org.eclipse.jpt.ui.jpaStructureView">
+ <command
+ commandId="org.eclipse.jpt.ui.entityMappingsAddPersistentClass">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <instanceof value="org.eclipse.jpt.core.context.orm.EntityMappings"/>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.jpt.ui.persistentTypeRemovePersistentClass">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentType"/>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.jpt.ui.persistentAttributeAddToXml">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="true"/>
+ </and>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.jpt.ui.persistentAttributeAddToXmlAndMap">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="true"/>
+ </and>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.jpt.ui.persistentAttributeRemoveFromXml">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.orm.OrmPersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="false"/>
+ </and>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+
+ <menu
+ id="org.eclipse.jpt.ui.persistentTypeMapAs"
+ label="%mapAs"
+ mnemonic="%mapAsMnemonic">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <instanceof value="org.eclipse.jpt.core.context.PersistentType"/>
+ </iterate>
+ </with>
+ </visibleWhen>
+ <dynamic
+ id="org.eclipse.jpt.ui.persistentTypeMapAs"
+ class="org.eclipse.jpt.ui.internal.menus.PersistentTypeMapAsContribution">
+ </dynamic>
+ </menu>
+
+ <menu
+ id="org.eclipse.jpt.ui.persistentAttributeMapAs"
+ label="%mapAs"
+ mnemonic="%mapAsMnemonic">
+ <visibleWhen>
+ <with
+ variable="selection">
+ <iterate ifEmpty="false">
+ <and>
+ <instanceof value="org.eclipse.jpt.core.context.PersistentAttribute"/>
+ <test property="org.eclipse.jpt.core.isVirtual" value="false"/>
+ </and>
+ </iterate>
+ </with>
+ </visibleWhen>
+ <dynamic
+ id="org.eclipse.jpt.ui.persistentAttributeMapAs"
+ class="org.eclipse.jpt.ui.internal.menus.PersistentAttributeMapAsContribution">
+ </dynamic>
+ </menu>
+
+ </menuContribution>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.navigator.viewer">
+
+ <viewerContentBinding
+ viewerId="org.eclipse.ui.navigator.ProjectExplorer">
+ <includes>
+ <contentExtension pattern="org.eclipse.jpt.ui.*"/>
+ </includes>
+ </viewerContentBinding>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.navigator.navigatorContent">
+
+ <navigatorContent
+ id="org.eclipse.jpt.ui.jpaNavigatorContent"
+ name="%jpaNavigatorContent"
+ priority="higher"
+ icon="icons/full/obj16/jpa-content.gif"
+ activeByDefault="true"
+ contentProvider="org.eclipse.jpt.ui.internal.navigator.JpaNavigatorContentProvider"
+ labelProvider="org.eclipse.jpt.ui.internal.navigator.JpaNavigatorLabelProvider">
+
+ <triggerPoints>
+ <or>
+ <instanceof
+ value="org.eclipse.jpt.core.context.JpaContextNode"/>
+ <and>
+ <adapt type="org.eclipse.core.resources.IProject">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa" />
+ </adapt>
+ </and>
+ </or>
+ </triggerPoints>
+
+ <possibleChildren>
+ <instanceof
+ value="org.eclipse.jpt.core.context.JpaContextNode"/>
+ </possibleChildren>
+
+ <actionProvider
+ class="org.eclipse.jpt.ui.internal.navigator.JpaNavigatorActionProvider"
+ id="org.eclipse.jpt.ui.jpaActionProvider">
+ <enablement>
+ <and>
+ <instanceof
+ value="org.eclipse.jpt.core.context.JpaContextNode"/>
+ </and>
+ </enablement>
+ </actionProvider>
+
+ <commonWizard
+ menuGroupId="org.eclipse.jpt.ui"
+ type="new"
+ wizardId="org.eclipse.jpt.ui.wizard.newEntity">
+ <enablement>
+ <and>
+ <or>
+ <instanceof
+ value="org.eclipse.core.resources.IProject"/>
+ <instanceof
+ value="org.eclipse.jdt.core.IPackageFragment"/>
+ <instanceof
+ value="org.eclipse.jdt.core.IPackageFragmentRoot"/>
+ </or>
+ <adapt type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa" />
+ </adapt>
+ </and>
+ </enablement>
+ </commonWizard>
+
+ <commonWizard
+ menuGroupId="org.eclipse.jpt.ui"
+ type="new"
+ wizardId="org.eclipse.jpt.ui.wizard.newMappingFile">
+ <enablement>
+ <and>
+ <or>
+ <instanceof value="org.eclipse.core.resources.IProject"/>
+ <instanceof value="org.eclipse.core.resources.IFolder"/>
+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/>
+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
+ </or>
+ <adapt type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa" />
+ </adapt>
+ </and>
+ </enablement>
+ </commonWizard>
+
+ <!--
+
+ <commonSorter
+ id="org.eclipse.jst.j2ee.navigator.internal.J2EEViewerSorter"
+ class="org.eclipse.jst.j2ee.navigator.internal.J2EEViewerSorter" />
+
+ -->
+
+ <commonWizard
+ menuGroupId="org.eclipse.jpt.ui"
+ type="new"
+ wizardId="org.eclipse.jpt.ui.wizard.newEntitiesFromTables">
+ <enablement>
+ <and>
+ <or>
+ <instanceof
+ value="org.eclipse.core.resources.IProject"/>
+ <instanceof
+ value="org.eclipse.jdt.core.IPackageFragment"/>
+ <instanceof
+ value="org.eclipse.jdt.core.IPackageFragmentRoot"/>
+ </or>
+ <adapt type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa" />
+ </adapt>
+ </and>
+ </enablement>
+ </commonWizard>
+
+ </navigatorContent>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+
+ <category
+ id="org.eclipse.jpt"
+ name="%jpaWizardCategoryName"/>
+
+ <wizard
+ id="org.eclipse.jpt.ui.wizard.newJpaProject"
+ name="%newJpaProjectWizardName"
+ icon="icons/full/etool16/new_jpaproject_wiz.gif"
+ category="org.eclipse.jpt"
+ project="true"
+ finalPerspective="org.eclipse.jpt.ui.jpaPerspective">
+ <description>%newJpaProjectWizardDesc</description>
+ <class class="org.eclipse.jpt.ui.internal.wizards.NewJpaProjectWizard">
+ <parameter name="javaeeproject" value="true"/>
+ <parameter name="menuIndex" value="35" />
+ </class>
+ </wizard>
+
+ <wizard
+ id="org.eclipse.jpt.ui.wizard.newEntity"
+ name="%newJpaEntityWizardName"
+ icon="icons/full/etool16/new_entity_wiz.gif"
+ category="org.eclipse.jpt">
+ <description>%newJpaEntityWizardDesc</description>
+ <class class="org.eclipse.jpt.ui.internal.wizards.entity.EntityWizard">
+ <parameter name="javaeeartifact" value="true"/>
+ <parameter name="menuIndex" value="38" />
+ <parameter name="jptartifact" value="true"/>
+ </class>
+ </wizard>
+
+ <wizard
+ category="org.eclipse.jpt"
+ class="org.eclipse.jpt.ui.internal.wizards.gen.GenerateEntitiesFromSchemaWizard"
+ icon="platform:/plugin/org.eclipse.jpt.ui/icons/full/etool16/new_entity_wiz.gif"
+ id="org.eclipse.jpt.ui.wizard.newEntitiesFromTables"
+ name="%newJpaEntityFromTableWizardName">
+ <description>%newJpaEntityFromTableWizardDesc</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+
+ <wizard
+ id="org.eclipse.jpt.ui.wizard.newMappingFile"
+ name="%newJpaMappingFileWizardName"
+ icon="icons/full/etool16/new_jpa_file_wiz.gif"
+ category="org.eclipse.jpt">
+ <description>%newJpaMappingFileWizardDesc</description>
+ <class class="org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizard">
+ <parameter name="javaeeartifact" value="true"/>
+ <parameter name="menuIndex" value="39" />
+ <parameter name="jptartifact" value="true"/>
+ </class>
+ </wizard>
+
+ </extension>
+
+
+<!-- =================================================================================== -->
+<!-- Extension: Persistence Perspective -->
+<!-- =================================================================================== -->
+
+ <extension
+ point="org.eclipse.ui.perspectives">
+
+ <perspective
+ class="org.eclipse.jpt.ui.internal.perspective.JpaPerspectiveFactory"
+ icon="icons/full/eview16/jpa_perspective.gif"
+ id="org.eclipse.jpt.ui.jpaPerspective"
+ name="%jpaPerspective">
+ <description>%jpaPerspectiveDescription</description>
+ </perspective>
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+
+ <perspectiveExtension
+ targetID="org.eclipse.jpt.ui.jpaPerspective">
+
+ <newWizardShortcut id="org.eclipse.jpt.ui.wizard.newJpaProject"/>
+ <newWizardShortcut id="org.eclipse.jpt.ui.wizard.newEntity"/>
+ <newWizardShortcut id="org.eclipse.jpt.ui.wizard.newMappingFile"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewClassCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"/>
+ <newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard"/>
+ <newWizardShortcut id="org.eclipse.ui.wizards.new.file"/>
+ <newWizardShortcut id="org.eclipse.ui.wizards.new.folder"/>
+ <newWizardShortcut id="org.eclipse.ui.editors.wizards.UntitledTextFileWizard"/>
+
+ <perspectiveShortcut id="org.eclipse.jdt.ui.JavaPerspective"/>
+ <perspectiveShortcut id="org.eclipse.debug.ui.DebugPerspective"/>
+ <perspectiveShortcut id="org.eclipse.jst.j2ee.J2EEPerspective"/>
+ <perspectiveShortcut id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
+
+ <actionSet id="org.eclipse.debug.ui.launchActionSet"/>
+ <actionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
+ <actionSet id="org.eclipse.jdt.ui.JavaElementCreationActionSet"/>
+ <actionSet id="org.eclipse.ui.NavigateActionSet"/>
+ <actionSet id="org.eclipse.jpt.ui.JptCreationActionSet"/>
+
+ <viewShortcut id="org.eclipse.jdt.ui.PackageExplorer"/>
+ <viewShortcut id="org.eclipse.jdt.ui.TypeHierarchy"/>
+ <viewShortcut id="org.eclipse.jdt.ui.SourceView"/>
+ <viewShortcut id="org.eclipse.jdt.ui.JavadocView"/>
+ <viewShortcut id="org.eclipse.ui.navigator.ProjectExplorer"/>
+ <viewShortcut id="org.eclipse.ui.views.ContentOutline"/>
+ <viewShortcut id="org.eclipse.ui.views.ProblemView"/>
+ <viewShortcut id="org.eclipse.ui.views.ResourceNavigator"/>
+ <viewShortcut id="org.eclipse.jpt.ui.jpaStructureView"/>
+ <viewShortcut id="org.eclipse.jpt.ui.jpaDetailsView"/>
+ <viewShortcut id="org.eclipse.datatools.connectivity.DataSourceExplorerNavigator"/>
+
+ </perspectiveExtension>
+
+ <perspectiveExtension
+ targetID="org.eclipse.jst.j2ee.J2EEPerspective">
+ <newWizardShortcut id="org.eclipse.jpt.ui.wizard.newJpaProject"/>
+ <perspectiveShortcut id="org.eclipse.jpt.ui.jpaPerspective"/>
+ </perspectiveExtension>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.popupMenus">
+
+ <objectContribution
+ id="org.eclipse.jpt.ui.project.JPATools"
+ objectClass="org.eclipse.core.resources.IProject"
+ adaptable="true">
+
+ <enablement>
+ <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jpt.jpa"/>
+ </enablement>
+
+ <action
+ id="org.eclipse.jpt.ui.generateEntities"
+ label="%generateEntities"
+ class="org.eclipse.jpt.ui.internal.actions.GenerateEntitiesAction"
+ enablesFor="1"
+ menubarPath="org.eclipse.jpt.ui.menu.JpaTools/content"/>
+
+ <action
+ id="org.eclipse.jpt.ui.generateDDL"
+ label="%generateDDL"
+ class="org.eclipse.jpt.ui.internal.actions.GenerateDDLAction"
+ enablesFor="1"
+ menubarPath="org.eclipse.jpt.ui.menu.JpaTools/content"/>
+
+ </objectContribution>
+
+ <objectContribution
+ id="org.eclipse.jpt.ui.project.configure"
+ objectClass="org.eclipse.core.resources.IProject"
+ adaptable="true">
+ <visibility>
+ <and>
+ <objectState
+ name="projectNature"
+ value="org.eclipse.jdt.core.javanature"/>
+ <not>
+ <objectState
+ name="projectNature"
+ value="org.eclipse.wst.common.project.facet.core.nature"/>
+ </not>
+ </and>
+ </visibility>
+
+ <action
+ id="org.eclipse.jpt.ui.convertToJpaProject"
+ label="%convertToJPAProject"
+ class="org.eclipse.jpt.ui.internal.actions.MigrateJavaProjectAction"
+ enablesFor="1"
+ menubarPath="org.eclipse.ui.projectConfigure/additions"/>
+
+ </objectContribution>
+
+ <objectContribution
+ id="org.eclipse.jpt.ui.persistenceXmlFileActions"
+ objectClass="org.eclipse.core.resources.IFile"
+ nameFilter="persistence.xml">
+
+ <action
+ id="synchClassesAction"
+ label="%synchronizeClasses"
+ menubarPath="org.eclipse.jpt.ui.menu.JpaTools/content"
+ class="org.eclipse.jpt.ui.internal.actions.SynchronizeClassesAction"
+ enablesFor="1"/>
+
+ </objectContribution>
+
+ <objectContribution
+ id="org.eclipse.jpt.ui.persistenceXmlActions"
+ objectClass="org.eclipse.jpt.core.context.persistence.PersistenceXml">
+ <action
+ id="synchClassesAction"
+ label="%synchronizeClasses"
+ menubarPath="content"
+ class="org.eclipse.jpt.ui.internal.actions.SynchronizeClassesAction"
+ enablesFor="1"/>
+ </objectContribution>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+
+ <page
+ id="org.eclipse.jpt.ui.preferences"
+ class="org.eclipse.jpt.ui.internal.preferences.JpaPreferencesPage"
+ name="%jpaPreferencePage">
+ </page>
+
+ <page
+ category="org.eclipse.jpt.ui.preferences"
+ class="org.eclipse.jpt.ui.internal.preferences.JpaProblemSeveritiesPage"
+ id="org.eclipse.jpt.ui.preferences.problemSeverities"
+ name="%jpaProblemSeveritiesPageName">
+ </page>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.propertyPages">
+
+ <page
+ id="org.eclipse.jpt.ui.jpaProjectPropertiesPage"
+ name="%jpaProjectPropertiesPage"
+ class="org.eclipse.jpt.ui.internal.properties.JpaProjectPropertiesPage">
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa"/>
+ </adapt>
+ </enabledWhen>
+ </page>
+ <page
+ id="org.eclipse.jpt.ui.propertyPages.problemSeverities"
+ name="%jpaProblemSeveritiesPageName"
+ category="org.eclipse.jpt.ui.jpaProjectPropertiesPage"
+ class="org.eclipse.jpt.ui.internal.preferences.JpaProblemSeveritiesPage">
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jpt.jpa"/>
+ </adapt>
+ </enabledWhen>
+ </page>
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.views">
+
+ <category
+ id="org.eclipse.jpt.ui"
+ name="%jpaPerspective"/>
+
+ <view
+ id="org.eclipse.jpt.ui.jpaStructureView"
+ category="org.eclipse.jpt.ui"
+ class="org.eclipse.jpt.ui.internal.views.structure.JpaStructureView"
+ icon="icons/full/eview16/jpa_structure.gif"
+ name="%jpaStructure"/>
+
+ <view
+ id="org.eclipse.jpt.ui.jpaDetailsView"
+ category="org.eclipse.jpt.ui"
+ class="org.eclipse.jpt.ui.internal.views.JpaDetailsView"
+ icon="icons/full/eview16/jpa_details.gif"
+ name="%jpaDetails"/>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.ui.images">
+
+ <image facet="jpt.jpa" path="icons/full/etool16/jpa_facet.gif"/>
+
+ </extension>
+
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.ui.wizardPages">
+
+ <wizard-pages action="jpt.jpa.install">
+ <page class="org.eclipse.jpt.ui.internal.wizards.JpaFacetInstallPage"/>
+ </wizard-pages>
+
+ <wizard-pages action="jpt.jpa.version-change">
+ <page class="org.eclipse.jpt.ui.internal.wizards.JpaFacetVersionChangePage"/>
+ </wizard-pages>
+
+ </extension>
+
+</plugin>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties
new file mode 100644
index 0000000000..304aacf4ac
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties
@@ -0,0 +1,140 @@
+################################################################################
+# Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+
+ChooserPane_browseButton=Browse...
+
+AccessTypeComposite_access=Access:
+AccessTypeComposite_field=Field
+AccessTypeComposite_property=Property
+
+AddPersistentAttributeDialog_title=Add Attribute
+AddPersistentAttributeDialog_attributeLabel=Attribute:
+AddPersistentAttributeDialog_mappingLabel=Map as:
+AddPersistentAttributeDialog_noMappingKeyError=You must specify a mapping type
+
+AddPersistentClassDialog_title=Add Class
+AddPersistentClassDialog_classLabel=Class:
+AddPersistentClassDialog_classDialog_title=Persistent Class Selection
+AddPersistentClassDialog_classDialog_message=Choose a class:
+AddPersistentClassDialog_mappingLabel=Map as:
+AddPersistentClassDialog_noClassError=You must specify a class
+AddPersistentClassDialog_duplicateClassWarning=File already contains that persistent class
+AddPersistentClassDialog_classNotFoundWarning=Cannot resolve class
+AddPersistentClassDialog_noMappingKeyError=You must specify a mapping type
+
+AddRemovePane_AddButtonText=Add...
+AddRemovePane_RemoveButtonText=Remove
+
+ClassChooserPane_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case):
+ClassChooserPane_dialogTitle=Class Selection
+
+DatabaseSchemaWizardPage_title=Database Schema
+DatabaseSchemaWizardPage_desc=Select a database schema
+DatabaseSchemaWizardPage_schemaSettings=Schema settings
+DatabaseSchemaWizardPage_addConnectionToProject=<a>Add a connection to JPA project...</a>
+DatabaseSchemaWizardPage_connectLink=<a>Connect</a>
+DatabaseSchemaWizardPage_schema=Schema:
+DatabaseSchemaWizardPage_connectionInfo=(Note: JPA project must have a connection and it must be active to select a schema)
+DatabaseSchemaWizardPage_schemaInfo=(Note: Must have active connection to select schema)
+
+EnumComboViewer_default=Default ()
+EnumComboViewer_defaultWithDefault=Default ({0})
+
+Error_openingEditor=Error Opening Editor
+
+General_browse=Br&owse...
+General_revert=Revert
+General_deselectAll=Deselect All
+General_selectAll=Select All
+
+GenerateDDLWizard_title=DDL Generation
+
+GenerateEntitiesWizard_generateEntities=Generate Entities
+GenerateEntitiesWizardPage_chooseEntityTable=Choose tables to generate entities from.
+GenerateEntitiesWizardPage_generateEntities=Generate Entities from Tables
+GenerateEntitiesWizardPage_synchronizeClasses=Synchronize classes in persistence.xml
+GenerateEntitiesWizardPage_tables=Tables:
+GenerateEntitiesWizardPage_tableColumn=Table
+GenerateEntitiesWizardPage_entityNameColumn=Entity Name
+
+EntitiesGenerator_jobName=Generating Entities
+
+GenericPlatformUiDialog_notSupportedMessageTitle=DDL Generation
+GenericPlatformUiDialog_notSupportedMessageText=DDL Generation is not supported by the Generic Platform.
+
+JpaContent_label=JPA Content
+
+JpaStructureView_structureNotAvailable=JPA structure is not available.
+JpaStructureView_linkWithEditorText=Link with Editor
+JpaStructureView_linkWithEditorDesc=Link with Active Editor
+JpaStructureView_linkWithEditorTooltip=Link with Editor
+JpaStructureView_numItemsSelected={0} items selected
+
+JpaDetailsView_viewNotAvailable=Details are not available for the current selection.
+
+JpaFacetWizardPage_title=JPA Facet
+JpaFacetWizardPage_description=Configure JPA settings.
+JpaFacetWizardPage_platformLabel=&Platform
+JpaFacetWizardPage_connectionLabel=&Connection
+JpaFacetWizardPage_connectionLink=<a>Add connection ...</a>
+JpaFacetWizardPage_connectLink=<a>Connect</a>
+JpaFacetWizardPage_addDriverLibraryLabel=&Add driver library to build path
+JpaFacetWizardPage_driverLibraryLabel=&Driver:
+JpaFacetWizardPage_overrideDefaultCatalogLabel=&Override default catalog from connection
+JpaFacetWizardPage_defaultCatalogLabel=Catalo&g:
+JpaFacetWizardPage_overrideDefaultSchemaLabel=O&verride default schema from connection
+JpaFacetWizardPage_defaultSchemaLabel=&Schema:
+JpaFacetWizardPage_jpaImplementationLabel=JPA implementation
+JpaFacetWizardPage_userServerLibLabel=Implementation provided by server runtime
+JpaFacetWizardPage_specifyLibLabel=Implementation library:
+JpaFacetWizardPage_jpaPrefsLink=<a>Configure default JPA implementation library ...</a>
+JpaFacetWizardPage_userLibsLink=<a>Configure user libraries ...</a>
+JpaFacetWizardPage_persistentClassManagementLabel=Persistent class management
+JpaFacetWizardPage_discoverClassesButton=Discover annotated classes a&utomatically
+JpaFacetWizardPage_listClassesButton=Annotated classes must be &listed in persistence.xml
+JpaFacetWizardPage_createOrmXmlButton=Create &mapping file (orm.xml)
+JpaFacetWizardPage_metamodelLabel=Canonical metamodel (JPA 2.0)
+JpaFacetWizardPage_metamodelSourceFolderLink=<a>Source fol&der:</a>
+JpaFacetWizardPage_none=<None>
+
+JpaPreferencesPage_Description=Expand the tree to edit preferences for a specific feature.
+
+JpaProblemSeveritiesPage_Description=Select the severity level for the following optional Java Persistence validation problems:
+JpaProblemSeveritiesPage_Error=Error
+JpaProblemSeveritiesPage_Ignore=Ignore
+JpaProblemSeveritiesPage_Info=Info
+JpaProblemSeveritiesPage_Warning=Warning
+
+MappingFileWizard_title=New Mapping File
+MappingFileWizardPage_title=Mapping file
+MappingFileWizardPage_desc=Specify mapping file location and properties
+MappingFileWizardPage_projectLabel=&Project:
+MappingFileWizardPage_sourceFolderLabel=Source fol&der:
+MappingFileWizardPage_filePathLabel=File pat&h:
+MappingFileWizardPage_accessLabel=Default a&ccess:
+MappingFileWizardPage_addToPersistenceUnitButton=&Add to persistence unit
+MappingFileWizardPage_persistenceUnitLabel=Persistence &unit:
+MappingFileWizardPage_incorrectSourceFolderError=Selection must be a valid source folder
+MappingFileWizardPage_accessLabel_sourceFolderDialogTitle=Source Folder Selection
+MappingFileWizardPage_accessLabel_sourceFolderDialogDesc=Choose a source folder:
+
+NewJpaProjectWizard_title=New JPA Project
+NewJpaProjectWizard_firstPage_title=JPA Project
+NewJpaProjectWizard_firstPage_description=Configure JPA project settings.
+
+OrmItemLabelProviderFactory_entityMappingsLabel=Entity Mappings
+
+PackageChooserPane_dialogTitle=Package Selection
+PackageChooserPane_dialogMessage=Choose a folder:
+
+PersistenceItemLabelProviderFactory_persistenceLabel=Persistence
+
+OverwriteConfirmerDialog_title=Overwrite Existing Class
+OverwriteConfirmerDialog_text=Overwrite source code for the class ''{0}''?
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details.properties
new file mode 100644
index 0000000000..2313f78572
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details.properties
@@ -0,0 +1,330 @@
+################################################################################
+# Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+
+Boolean_True=True
+Boolean_False=False
+NoneSelected=<None>
+DefaultEmpty=Default
+DefaultWithOneParam=Default ({0})
+ProviderDefault=Default (<Provider-Specific>)
+NoNameSet=<No name set>
+
+MapAsComposite_changeMappingType=here
+MapAsComposite_default=Default
+MapAsComposite_dialogTitle=Mapping Type Selection
+MapAsComposite_labelText=&Enter mapping type or pattern (*, ?, or camel case):
+MapAsComposite_mappedAttributeText=Attribute ''{0}'' is mapped as {1}.
+MapAsComposite_mappedTypeText=Type ''{0}'' is mapped as {1}.
+MapAsComposite_unmappedAttributeText=Attribute ''{0}'' is not mapped, click here to change the mapping type.
+MapAsComposite_unmappedTypeText=Type ''{0}'' is not mapped, click here to change the mapping type.
+MapAsComposite_virtualAttributeText=Attribute ''{0}'' is not mapped.
+
+BasicSection_title=Basic
+EmbeddedSection_title=Embedded
+EmbeddedIdSection_title=Embedded ID
+EmbeddableSection_title=Embeddable
+EntitySection_title=Entity
+IdSection_title=ID
+ManyToManySection_title=Many to Many
+ManyToOneSection_title=Many to One
+MappedSuperclassSection_title=Mapped Superclass
+OneToManySection_title=One to Many
+OneToOneSection_title=One to One
+VersionSection_title=Version
+
+BasicMappingUiProvider_label=Basic
+EmbeddedMappingUiProvider_label=Embedded
+EmbeddedIdMappingUiProvider_label=Embedded ID
+IdMappingUiProvider_label=ID
+OneToManyMappingUiProvider_label=One to Many
+OneToOneMappingUiProvider_label=One to One
+ManyToManyMappingUiProvider_label=Many to Many
+ManyToOneMappingUiProvider_label=Many to One
+TransientMappingUiProvider_label=Transient
+VersionMappingUiProvider_label=Version
+BasicMappingUiProvider_linkLabel=basic
+EmbeddedMappingUiProvider_linkLabel=embedded
+EmbeddedIdMappingUiProvider_linkLabel=embedded ID
+IdMappingUiProvider_linkLabel=ID
+OneToManyMappingUiProvider_linkLabel=one to many
+OneToOneMappingUiProvider_linkLabel=one to one
+ManyToManyMappingUiProvider_linkLabel=many to many
+ManyToOneMappingUiProvider_linkLabel=many to one
+TransientMappingUiProvider_linkLabel=transient
+VersionMappingUiProvider_linkLabel=version
+
+DefaultBasicMappingUiProvider_label=Default (Basic)
+DefaultEmbeddedMappingUiProvider_label=Default (Embedded)
+DefaultBasicMappingUiProvider_linkLabel=default (basic)
+DefaultEmbeddedMappingUiProvider_linkLabel=default (embedded)
+
+EmbeddableUiProvider_label=Embeddable
+EntityUiProvider_label=Entity
+MappedSuperclassUiProvider_label=Mapped Superclass
+NullTypeMappingUiProvider_label=Unmapped
+
+EmbeddableUiProvider_linkLabel=embeddable
+EntityUiProvider_linkLabel=entity
+MappedSuperclassUiProvider_linkLabel=mapped superclass
+
+
+AddQueryDialog_title=Add Query
+AddQueryDialog_descriptionTitle=Create new query
+AddQueryDialog_namedQuery=Named Query
+AddQueryDialog_namedNativeQuery= Named Native Query
+AddQueryDialog_description=Create a new query setting both the 'name' and the 'type'
+QueryStateObject_nameMustBeSpecified=A name must be specified.
+QueryStateObject_typeMustBeSpecified=A query type must be specified
+AddQueryDialog_name=Name:
+AddQueryDialog_queryType=Type:
+NamedQueryComposite_nameTextLabel=Name:
+
+EntityComposite_inheritance=Inheritance
+EntityComposite_queries=Queries
+EntityComposite_tableDefault=Default ({0})
+EntityComposite_tableNoDefaultSpecified=Default ()
+
+EntityGeneralSection_name=Name:
+
+EntityNameComposite_name=Name:
+
+BasicGeneralSection_name=Name:
+BasicGeneralSection_nameDefault=Default ({0})
+BasicGeneralSection_fetchLabel=Fetch:
+BasicGeneralSection_optionalLabel=Optional
+BasicGeneralSection_optionalLabelDefault=Optional ({0})
+BasicGeneralSection_lobLabel=Lob
+BasicGeneralSection_temporalLabel=Temporal:
+BasicGeneralSection_enumeratedLabel=Enumerated:
+TypeSection_type=Type
+TypeSection_default=Default
+TypeSection_lob=Lob
+TypeSection_temporal=Temporal:
+TypeSection_enumerated=Enumerated:
+
+TableChooser_label=Name:
+CatalogChooser_label=Catalog:
+SchemaChooser_label=Schema:
+TableComposite_tableSection=Table
+
+TargetEntityChooser_label=Target entity:
+TargetEntityChooser_browse=Browse...
+TargetEntityChooser_selectTypeTitle=Select Type
+
+IdClassComposite_label=ID class:
+
+Joining_title=Joining Strategy
+Joining_mappedByLabel=Mapped by
+Joining_mappedByAttributeLabel=Attribute:
+Joining_joinColumnJoiningLabel=Join columns
+Joining_primaryKeyJoinColumnJoiningLabel=Primary key join columns
+Joining_joinTableJoiningLabel=Join table
+
+JoinTableComposite_inverseJoinColumn=Inverse join columns
+JoinTableComposite_joinColumn=Join columns
+JoinTableComposite_name=Name:
+JoinTableComposite_schema=Schema:
+JoinTableComposite_catalog=Catalog:
+JoinTableComposite_overrideDefaultJoinColumns=Override default
+JoinTableComposite_overrideDefaultInverseJoinColumns=Override default
+
+MultiRelationshipMappingComposite_general=General
+MultiRelationshipMappingComposite_joinTable=Join Table
+MultiRelationshipMappingComposite_targetEntity=Target entity:
+MultiRelationshipMappingComposite_cascadeType=Cascade type:
+MultiRelationshipMappingComposite_fetchType=Fetch type:
+MultiRelationshipMappingComposite_mappedBy=Mapped by:
+
+ColumnComposite_columnDefinition=Column definition:
+ColumnComposite_columnSection=Column
+ColumnComposite_details=Details
+ColumnComposite_insertable=Insertable
+ColumnComposite_insertableWithDefault=Insertable ({0})
+ColumnComposite_length=Length:
+ColumnComposite_name=Name:
+ColumnComposite_nullable=Nullable
+ColumnComposite_nullableWithDefault=Nullable ({0})
+ColumnComposite_precision=Precision:
+ColumnComposite_scale=Scale:
+ColumnComposite_table=Table:
+ColumnComposite_unique=Unique
+ColumnComposite_uniqueWithDefault=Unique ({0})
+ColumnComposite_updatable=Updatable
+ColumnComposite_updatableWithDefault=Updatable ({0})
+
+JoinColumnsComposite_edit=Edit...
+JoinColumnsComposite_mappingBetweenTwoParams={0} -> {1}
+JoinColumnsComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
+JoinColumnsComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
+JoinColumnsComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
+JoinColumnsComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
+JoiningStrategyJoinColumnsComposite_overrideDefaultJoinColumns=Override default
+
+PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns=Override default
+PrimaryKeyJoinColumnsComposite_edit=Edit...
+PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn=Primary key join columns
+PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams={0} -> {1}
+PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
+PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
+PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
+PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
+
+JoinColumnDialog_addJoinColumnDescriptionTitle=Create New Join Column
+JoinColumnDialog_addJoinColumnTitle=Add Join Column
+JoinColumnDialog_description=Specify a mapped column for joining an entity association.
+JoinColumnDialog_editJoinColumnDescriptionTitle=Edit Join Column
+JoinColumnDialog_editJoinColumnTitle=Edit Join Column
+JoinColumnDialog_name=&Name:
+JoinColumnDialog_referencedColumnName=&Referenced column name:
+
+JoinColumnDialogPane_columnDefinition=&Column definition:
+JoinColumnDialogPane_insertable=&Insertable
+JoinColumnDialogPane_insertableWithDefault=&Insertable ({0})
+JoinColumnDialogPane_nullable=&Nullable
+JoinColumnDialogPane_nullableWithDefault=&Nullable ({0})
+JoinColumnDialogPane_table=&Table:
+JoinColumnDialogPane_unique=&Unique
+JoinColumnDialogPane_uniqueWithDefault=&Unique ({0})
+JoinColumnDialogPane_updatable=&Updatable
+JoinColumnDialogPane_updatableWithDefault=&Updatable ({0})
+
+InverseJoinColumnDialog_editInverseJoinColumnTitle=Edit Inverse Join Column
+
+PrimaryKeyJoinColumnInSecondaryTableDialog_addDescriptionTitle=Create New Primary Key Join Column
+PrimaryKeyJoinColumnInSecondaryTableDialog_addTitle=Add Primary Key Join Column
+PrimaryKeyJoinColumnInSecondaryTableDialog_editDescriptionTitle=Edit Primary Key Join Column
+PrimaryKeyJoinColumnInSecondaryTableDialog_editTitle=Edit Primary Key Join Column
+
+PrimaryKeyJoinColumnDialog_addDescriptionTitle=Create New Primary Key Join Column
+PrimaryKeyJoinColumnDialog_addTitle=Add Primary Key Join Column
+PrimaryKeyJoinColumnDialog_editDescriptionTitle=Edit Primary Key Join Column
+PrimaryKeyJoinColumnDialog_editTitle=Edit Primary Key Join Column
+
+OverridesComposite_attributeOverridesSection=Attribute Overrides
+OverridesComposite_attributeOverridesGroup=Attribute overrides
+OverridesComposite_overrideDefault=Override default
+
+OverridesComposite_association=Association Override
+OverridesComposite_attribute=Attribute Override
+OverridesComposite_noName=<Name not set>
+AssociationOverridesComposite_joinColumn=Join columns
+
+InheritanceComposite_detailsGroupBox=Details
+InheritanceComposite_discriminatorColumnGroupBox=Discriminator column
+InheritanceComposite_discriminatorValue=Discriminator value:
+AbstractInheritanceComposite_joined=Joined
+AbstractInheritanceComposite_single_table=Single Table
+InheritanceComposite_strategy=Strategy:
+AbstractInheritanceComposite_table_per_class=Table per Class
+
+DiscriminatorColumnComposite_discriminatorType=Type:
+DiscriminatorColumnComposite_name=Name:
+DiscriminatorColumnComposite_char=Character
+DiscriminatorColumnComposite_integer=Integer
+DiscriminatorColumnComposite_string=String
+
+GeneratorsComposite_sequenceGeneratorCheckBox=Sequence generator
+GeneratorsComposite_sequenceGeneratorSection=Sequence Generator
+GeneratorsComposite_tableGeneratorCheckBox=Table generator
+GeneratorsComposite_tableGeneratorSection=Table Generator
+
+IdMappingComposite_pk_generation=PK Generation
+IdMappingComposite_primaryKeyGenerationCheckBox=Primary key generation
+IdMappingComposite_primaryKeyGenerationSection=Primary Key Generation
+IdMappingComposite_tableGeneratorCheckBox=Table generator
+IdMappingComposite_tableGeneratorSection=Table Generator
+IdMappingComposite_sequenceGeneratorCheckBox=Sequence generator
+IdMappingComposite_sequenceGeneratorSection=Sequence Generator
+
+GeneratedValueComposite_generatedValue=Generated Value
+GeneratedValueComposite_generatorName=Generator name:
+GeneratedValueComposite_strategy=Strategy:
+GeneratedValueComposite_auto=Auto
+GeneratedValueComposite_identity=Identity
+GeneratedValueComposite_sequence=Sequence
+GeneratedValueComposite_table=Table
+
+SequenceGeneratorComposite_catalog=Catalog:
+SequenceGeneratorComposite_default=Default
+SequenceGeneratorComposite_name=Name:
+SequenceGeneratorComposite_schema=Schema:
+SequenceGeneratorComposite_sequence=Sequence:
+SequenceGeneratorComposite_sequenceGenerator=Sequence Generator
+
+TableGeneratorComposite_catalog=Catalog:
+TableGeneratorComposite_default=Default
+TableGeneratorComposite_name=Name:
+TableGeneratorComposite_pkColumn=Primary key column:
+TableGeneratorComposite_pkColumnValue=Primary key column value:
+TableGeneratorComposite_schema=Schema:
+TableGeneratorComposite_table=Table:
+TableGeneratorComposite_tableGenerator=Table Generator
+TableGeneratorComposite_valueColumn=Value column:
+
+GeneratorComposite_allocationSize=Allocation size:
+GeneratorComposite_initialValue=Initial value:
+
+OrderingComposite_orderingGroup=Ordering
+OrderingComposite_none=None
+OrderingComposite_primaryKey=Primary key
+OrderingComposite_custom=Custom
+
+SecondaryTablesComposite_secondaryTables=Secondary Tables
+SecondaryTablesComposite_edit=Edit...
+
+SecondaryTableDialog_addSecondaryTable=Add Secondary Table
+SecondaryTableDialog_editSecondaryTable=Edit Secondary Table
+SecondaryTableDialog_name=Name:
+SecondaryTableDialog_catalog=Catalog:
+SecondaryTableDialog_schema=Schema:
+SecondaryTableDialog_defaultSchema=Default ({0})
+SecondaryTableDialog_defaultCatalog=Default ({0})
+
+AccessTypeCombo_default=Default
+MetaDataCompleteCombo_Default=Default ({0})
+
+OptionalComposite_false=False
+OptionalComposite_true=True
+
+EnumTypeComposite_ordinal=Ordinal
+EnumTypeComposite_string=String
+
+FetchTypeComposite_eager=Eager
+FetchTypeComposite_lazy=Lazy
+
+TemporalTypeComposite_date=Date
+TemporalTypeComposite_time=Time
+TemporalTypeComposite_timestamp=Timestamp
+
+CascadeComposite_all=All
+CascadeComposite_cascadeTitle=Cascade
+CascadeComposite_merge=Merge
+CascadeComposite_persist=Persist
+CascadeComposite_refresh=Refresh
+CascadeComposite_remove=Remove
+
+QueriesComposite_displayString=<Name not set> {0}
+
+NamedNativeQueryPropertyComposite_query=Query:
+NamedNativeQueryPropertyComposite_queryHintsGroupBox=Query hints
+NamedNativeQueryPropertyComposite_resultClass=Result class:
+
+NamedQueryPropertyComposite_query=Query:
+NamedQueryPropertyComposite_queryHintsGroupBox=Query hints
+
+NewNameStateObject_nameMustBeSpecified=A name must be specified.
+NewNameStateObject_nameAlreadyExists=A query with this name already exists.
+
+QueryHintsComposite_nameColumn=Name
+QueryHintsComposite_valueColumn=Value
+
+OrmSecondaryTablesComposite_defineInXml=Define in XML
+
+NullAttributeMappingUiProvider_label=Unmapped
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties
new file mode 100644
index 0000000000..6114fe4d25
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties
@@ -0,0 +1,52 @@
+################################################################################
+# Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+
+CascadePane2_0_detach=Detach
+
+CollectionTable2_0Composite_title=Collection Table
+CollectionTable2_0Composite_joinColumn=Join columns
+CollectionTable2_0Composite_name=Name:
+CollectionTable2_0Composite_schema=Schema:
+CollectionTable2_0Composite_catalog=Catalog:
+CollectionTable2_0Composite_overrideDefaultJoinColumns=Override default
+
+DerivedIdentity_title=Derived Identity
+DerivedIdentity_nullDerivedIdentity=None
+DerivedIdentity_idDerivedIdentity=Id
+DerivedIdentity_mapsIdDerivedIdentity=Maps id:
+DerivedIdentity_mapsIdUnspecifiedValue=<undetermined value>
+
+ElementCollectionMapping2_0_label=Element Collection
+ElementCollectionMapping2_0_linkLabel=element collection
+ElementCollectionSection_title=Element Collection
+AbstractElementCollectionMapping2_0_Composite_valueSectionTitle=Value
+Entity_cacheableLabel=Cacheable
+Entity_cacheableWithDefaultLabel=Cacheable ({0})
+
+EmbeddedIdMapping2_0MappedByRelationshipPane_label=Embedded ID is mapped by a relationship.
+IdMapping2_0MappedByRelationshipPane_label=ID is mapped by a relationship.
+
+OrderingComposite_orderColumn=Order column
+
+OrphanRemoval2_0Composite_orphanRemovalLabel=Orphan removal
+OrphanRemoval2_0Composite_orphanRemovalLabelDefault=Orphan removal ({0})
+
+LockModeComposite_lockModeLabel = Lock mode:
+
+LockModeComposite_read = Read
+LockModeComposite_write = Write
+LockModeComposite_optimistic = Optimistic
+LockModeComposite_optimistic_force_increment = Optimistic Force Increment
+LockModeComposite_pessimistic_read = Pessimistic Read
+LockModeComposite_pessimistic_write = Pessimistic Write
+LockModeComposite_pessimistic_force_increment = Pessimistic Force Increment
+LockModeComposite_none = None
+
+TargetClassComposite_label=Target class: \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details_orm.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details_orm.properties
new file mode 100644
index 0000000000..28bb243eb8
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details_orm.properties
@@ -0,0 +1,56 @@
+################################################################################
+# Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+
+Boolean_False=False
+Boolean_True=True
+EntityMappingsSection_title=Entity Mappings
+EntityMappingsDetailsPage_access=Access:
+EntityMappingsDetailsPage_catalog=Catalog:
+EntityMappingsDetailsPage_field=Field
+EntityMappingsDetailsPage_package=Package:
+EntityMappingsDetailsPage_property=Property
+EntityMappingsDetailsPage_schema=Schema:
+EntityMappingsPage_catalogDefault=Default ({0}
+EntityMappingsPage_catalogNoDefaultSpecified=Default
+EntityMappingsPage_schemaDefault=Default ({0})
+EntityMappingsPage_schemaNoDefaultSpecified=Default
+MetadataCompleteComposite_metadataComplete=Metadata complete
+MetadataCompleteComposite_metadataCompleteWithDefault=Metadata complete ({0})
+OrmGeneratorsComposite_displayString=<Name not set> {0}
+OrmGeneratorsComposite_groupBox=Generators
+OrmMappingNameChooser_name=Name:
+OrmJavaClassChooser_javaClass=Java class:
+OrmQueriesComposite_groupBox=Queries
+PersistenceUnitMetadataComposite_access=Access:
+PersistenceUnitMetadataComposite_delimitedIdentifiersCheckBox=Delimited identifiers
+PersistenceUnitMetadataComposite_cascadePersistCheckBox=Cascade persist
+PersistenceUnitMetadataComposite_catalog=Catalog:
+PersistenceUnitMetadataComposite_field=Field
+PersistenceUnitMetadataComposite_persistenceUnitSection=Persistence Unit
+PersistenceUnitMetadataComposite_property=Property
+PersistenceUnitMetadataComposite_schema=Schema:
+PersistenceUnitMetadataComposite_xmlMappingMetadataCompleteCheckBox=XML mapping metadata complete
+PersistenceUnitMetadataSection_catalogDefault=Default ({0})
+PersistenceUnitMetadataSection_schemaDefault=Default ({0})
+
+AddGeneratorDialog_name=Name:
+AddGeneratorDialog_generatorType=Type:
+AddGeneratorDialog_title=Add Generator
+AddGeneratorDialog_descriptionTitle=Create new generator
+AddGeneratorDialog_description=Create a new generator setting both the 'name' and the 'type'
+AddGeneratorDialog_tableGenerator=Table Generator
+AddGeneratorDialog_sequenceGenerator=Sequence Generator
+GeneratorStateObject_nameMustBeSpecified=A name must be specified.
+GeneratorStateObject_typeMustBeSpecified=A generator type must be specified.
+
+
+UnsupportedOrmMappingUiProvider_label=Unsupported
+
+UnsupportedOrmMappingUiProvider_linkLabel=unsupported \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties
new file mode 100644
index 0000000000..b5b18ec42a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties
@@ -0,0 +1,111 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+###############################################################################
+
+cardinality=Car&dinality:
+property=P&roperty:
+cascade=&Cascade:
+connection=&Connection:
+schema=&Schema:
+schemaInfo=(Note: You must have an active connection to select schema.)
+addConnectionLink=Add connections...
+connectLink=Connect
+connectingToDatabase=Connecting to database
+manyToOne=&Many to one
+manyToMany=Man&y to many
+oneToMany=&One to many
+oneToOne=&One to one
+manyToOneDesc=Each %s has many %s.
+oneToOneDesc=There is one %s per %s.
+manyToManyDesc=Each %s has many %s, and each %s has many %s.
+
+add=&Add
+remove=&Remove
+
+GenerateEntitiesWizard_generateEntities=Generate Custom Entities
+
+GenerateEntitiesWizard_selectJPAProject=JPA Project Selection
+GenerateEntitiesWizard_selectJPAProject_msg=Select a JPA project.
+
+GenerateEntitiesWizard_tableSelectPage_selectTable=Select Tables
+GenerateEntitiesWizard_tableSelectPage_chooseEntityTable=Select tables to generate entities from.
+GenerateEntitiesWizard_tableSelectPage_updatePersistenceXml=Update class list in persistence.xml
+GenerateEntitiesWizard_tableSelectPage_tables=&Tables:
+GenerateEntitiesWizard_tableSelectPage_tableColumn=Table
+GenerateEntitiesWizard_tableSelectPage_Restore_Defaults=Restore Defaults
+
+GenerateEntitiesWizard_assocPage_title=Table Associations
+GenerateEntitiesWizard_assocPage_label=Table &associations
+GenerateEntitiesWizard_assocPage_desc=Edit a table association by selecting it and modifying the controls in the editing panel.
+GenerateEntitiesWizard_assocPage_newAssoc=New Association
+GenerateEntitiesWizard_assocPage_delAssoc=Delete Selected Association
+
+
+GenerateEntitiesWizard_defaultTablePage_title=Customize Default Entity Generation
+GenerateEntitiesWizard_defaultTablePage_tableMapping=Table mapping
+GenerateEntitiesWizard_defaultTablePage_domainJavaClass=Domain java class
+
+GenerateEntitiesWizard_defaultTablePage_desc=Optionally customize aspects of entities that will be generated by default from database tables. A Java package should be specified.
+GenerateEntitiesWizard_defaultTablePage_access=Entity &access:
+GenerateEntitiesWizard_defaultTablePage_fetch=Associations &fetch:
+GenerateEntitiesWizard_defaultTablePage_collType=Collection properties &type:
+GenerateEntitiesWizard_defaultTablePage_genOptionalAnnotations = Always generate optional JPA annotations and DDL parameters
+GenerateEntitiesWizard_defaultTablePage_genOptionalAnnotations_desc = Generate optional JPA annotations and DDL parameters like 'unique', 'nullable', 'length', 'precision' and 'scale', which are optional and only used by automatic table creation to specify table creation data.
+GenerateEntitiesWizard_defaultTablePage_keyGen=Key &generator:
+GenerateEntitiesWizard_defaultTablePage_sequence=Sequence &name:
+GenerateEntitiesWizard_defaultTablePage_sequenceNote=You can use the patterns %s and/or %s in the sequence name.\n\
+ These patterns will be replaced by the table name and the primary key \n\
+ column name when a table mapping is generated.
+
+
+GenerateEntitiesWizard_tablesAndColumnsPage_title=Customize Individual Entities
+GenerateEntitiesWizard_tablesAndColumnsPage_desc=Customize detail of individual entities by selecting the associated tables or columns and changing values in the editing panel.
+GenerateEntitiesWizard_tablesAndColumnsPage_labelTableAndColumns=&Tables and columns
+
+GenerateEntitiesWizard_tablePanel_className=&Class name:
+GenerateEntitiesWizard_colPanel_genProp=Generate this property
+GenerateEntitiesWizard_colPanel_colMapping=Column mapping
+GenerateEntitiesWizard_colPanel_propName=Property &name:
+GenerateEntitiesWizard_colPanel_propType=Mapping t&ype:
+GenerateEntitiesWizard_colPanel_mapKind=Mapping &kind:
+GenerateEntitiesWizard_colPanel_beanProp=Domain Java Class
+GenerateEntitiesWizard_colPanel_getterScope=Getter scope:
+GenerateEntitiesWizard_colPanel_setterScope=Setter scope:
+GenerateEntitiesWizard_colPanel_colUpdateable=Column is &updatable
+GenerateEntitiesWizard_colPanel_colInsertable=Column is &insertable
+
+GenerateEntitiesWizard_newAssoc_title=Create New Association
+
+GenerateEntitiesWizard_newAssoc_tablesPage_title=Association Tables
+GenerateEntitiesWizard_newAssoc_tablesPage_desc=Specify the association tables.
+GenerateEntitiesWizard_newAssoc_tablesPage_assocKind=Association kind
+GenerateEntitiesWizard_newAssoc_tablesPage_assocTables=Association &tables:
+GenerateEntitiesWizard_newAssoc_tablesPage_table1=Table &1:
+GenerateEntitiesWizard_newAssoc_tablesPage_table2=Table &2:
+GenerateEntitiesWizard_newAssoc_tablesPage_intermediateTable=Join table:
+GenerateEntitiesWizard_newAssoc_tablesPage_simpleAssoc=&Simple association
+GenerateEntitiesWizard_newAssoc_tablesPage_m2mAssoc=&Many to many association
+
+GenerateEntitiesWizard_newAssoc_cardinalityPage_title=Association Cardinality
+GenerateEntitiesWizard_newAssoc_cardinalityPage_desc=Specify the association cardinality.
+
+GenerateEntitiesWizard_newAssoc_colsPage_title=Join Columns
+GenerateEntitiesWizard_newAssoc_colsPage_desc=Specify the join columns.
+GenerateEntitiesWizard_newAssoc_colsPage_label=Specify the join columns between the %s and %s tables:
+
+GenerateEntitiesWizard_assocEditor_entityRef=Generate a reference to %s in %s
+GenerateEntitiesWizard_assocEditor_setRef=Generate a reference to a collection of %s in %s
+GenerateEntitiesWizard_assocEditor_tableJoin=Table &join:
+GenerateEntitiesWizard_assocEditor_joinedWhen=The table rows are joined when:\n%s
+GenerateEntitiesWizard_assocEditor_genAssoc=Generate &this association
+GenerateEntitiesWizard_doNotShowWarning = Don't show me this warning again
+
+selectCascadeDlgTitle=Select Cascade
+selectTableDlgTitle=Table Selection
+selectTableDlgDesc=&Select a table:
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_wizard.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_wizard.properties
new file mode 100644
index 0000000000..064f3847eb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_wizard.properties
@@ -0,0 +1,57 @@
+################################################################################
+# Copyright (c) 2008, 2010 by SAP AG, Walldorf.
+# 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:
+# SAP AG - initial API and implementation
+# Dimiter Dimitrov, d.dimitrov@sap.com - initial API and implementation
+################################################################################
+
+ENTITY_WIZARD_TITLE=New JPA Entity
+ENTITY_WIZARD_PAGE_TITLE=Entity class
+ENTITY_WIZARD_PAGE_DESCRIPTION=Create a new JPA entity. Only JPA enabled projects may be selected.
+DEFAULT_PACKAGE_WARNING=The usage of the default package is not recommended.
+ENTITY_PROPERTIES_TITLE=Entity Properties
+ENTITY_PROPERTIES_DESCRIPTION=Set entity name, table name, fields, and access type.
+ENTITY=Entit&y
+MAPPED_AS_SUPERCLASS=Mapped super&class
+INHERITANCE_GROUP=Inheritance
+INHERITANCE_CHECK_BOX=&Inheritance:
+XML_STORAGE_GROUP=XML entity mappings
+XML_SUPPORT=Add to entity mappings in &XML
+CHOOSE_XML=M&apping file:
+MAPPING_XML_TITLE=Mapping File
+XML_NAME_TITLE=XML name:
+CHOOSE_MAPPING_XML_MESSAGE=Choose mapping XML
+INVALID_XML_NAME=The mapping file does not exist
+TYPE_DIALOG_TITLE=Choose Type
+TYPE_DIALOG_DESCRIPTION=Choose the type of the entity field.
+ENTITY_NAME=Entity na&me:
+TABLE_NAME_GROUP=Table name
+TABLE_NAME=&Table name:
+USE_DEFAULT=&Use default
+ENTITY_FIELDS_GROUP=Entity field&s
+ENTITY_FIELDS_DIALOG_TITLE=Entity Fields
+KEY=Key
+NAME_COLUMN=Name
+TYPE_COLUMN=Type
+NAME_TEXT_FIELD=Na&me:
+TYPE_TEXT_FIELD=&Type:
+BROWSE_BUTTON_LABEL=B&rowse...
+ADD_BUTTON_LABEL=&Add...
+EDIT_BUTTON_LABEL=&Edit...
+REMOVE_BUTTON_LABEL=&Remove
+DUPLICATED_ENTITY_NAMES_MESSAGE=There are duplicate names on created entity fields. Please resolve the duplication.
+ACCESS_TYPE=Access type
+FIELD_BASED=Fiel&d
+PROPERTY_BASED=&Property
+NO_JPA_PROJECTS=No JPA projects in the workspace
+APPLY_CHANGES_TO_PERSISTENCE_XML=Apply changes to persistence XML
+ADD_MAPPED_SUPERCLASS_TO_XML=Add mapped superclass to XML
+ADD_ENTITY_TO_XML=Add entity to XML
+EntityDataModelProvider_typeNotInProjectClasspath=''{0}'' does not exist on the project classpath
+EntityDataModelProvider_invalidPKType=''{0}'' is not a valid simple primary key type
+EntityDataModelProvider_invalidArgument=Invalid argument ''{0}''
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence.properties
new file mode 100644
index 0000000000..ae091e70b9
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence.properties
@@ -0,0 +1,59 @@
+################################################################################
+# Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+################################################################################
+
+Boolean_False=False
+Boolean_True=True
+
+ArchiveFileSelectionDialog_jarPathHelpLabel=The correct path to the JAR file selected will vary on your deployment environment. You may alter it here to correctly reflect your particular environment.
+ArchiveFileSelectionDialog_jarPathLabel=JAR file path:
+
+PersistenceEditor_page_help=Help
+PersistenceEditor_sourceTab=Source
+
+PersistenceUnitClassesComposite_description=Specify the list of classes to be managed in this persistence unit.
+PersistenceUnitClassesComposite_excludeUnlistedMappedClasses=Exclude unlisted classes
+PersistenceUnitClassesComposite_excludeUnlistedMappedClassesWithDefault=Exclude unlisted classes ({0})
+PersistenceUnitClassesComposite_mappedClassesNoName=<name not set>
+PersistenceUnitClassesComposite_open=Open
+
+PersistenceUnitConnectionGeneralComposite_default=Default(JTA)
+PersistenceUnitConnectionGeneralComposite_jta=JTA
+PersistenceUnitConnectionGeneralComposite_resource_local=Resource Local
+
+PersistenceUnitConnectionComposite_connection=Connection
+PersistenceUnitConnectionComposite_database=Database
+PersistenceUnitConnectionComposite_general=General
+
+PersistenceUnitConnectionDatabaseComposite_jtaDatasourceName=JTA data source name:
+PersistenceUnitConnectionDatabaseComposite_nonJtaDatasourceName=Non-JTA data source name:
+
+PersistenceUnitConnectionGeneralComposite_transactionType=Transaction type:
+
+PersistenceUnitGeneralComposite_general=General
+PersistenceUnitGeneralComposite_jarFiles=JAR Files
+PersistenceUnitGeneralComposite_jpaMappingDescriptors=XML Mapping Files
+PersistenceUnitGeneralComposite_jpaMappingDescriptors_description=Specify the XML mapping files for this persistence unit.
+PersistenceUnitGeneralComposite_mappedClasses=Managed Classes
+PersistenceUnitGeneralComposite_name=Name:
+PersistenceUnitGeneralComposite_persistenceProvider=Persistence provider:
+PersistenceUnitGeneralComposite_description=Description:
+
+PersistenceUnitJarFilesComposite_noFileName=<File name not set>
+PersistenceUnitMappingFilesComposite_jarFileDialog_title=JAR File Selection
+PersistenceUnitMappingFilesComposite_jarFileDialog_message=Choose a JAR file to be added to the persistence unit.
+
+PersistenceUnitMappingFilesComposite_mappingFileDialog_message=Choose the XML mapping files to be added to the persistence unit.
+PersistenceUnitMappingFilesComposite_mappingFileDialog_title=JPA XML Mapping File Selection
+PersistenceUnitMappingFilesComposite_ormNoName=<name not set>
+
+PersistenceUnitPropertiesComposite_nameColumn=Name
+PersistenceUnitPropertiesComposite_properties=Properties
+PersistenceUnitPropertiesComposite_properties_description=This table lists all properties that are defined for this persistence unit.
+PersistenceUnitPropertiesComposite_valueColumn=Value \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence2_0.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence2_0.properties
new file mode 100644
index 0000000000..7603cf1293
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_persistence2_0.properties
@@ -0,0 +1,59 @@
+################################################################################
+# Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+
+ConnectionPropertiesComposite_Database_GroupBox = Database
+
+DataSourcePropertiesComposite_jtaDataSourceLabel = JTA data source:
+DataSourcePropertiesComposite_nonJtaDataSourceLabel = Non-JTA data source:
+
+GenericPersistenceUnit2_0ConnectionComposite_sectionTitle = Persistence Unit Connection
+GenericPersistenceUnit2_0ConnectionComposite_sectionDescription = Configure the data source or JDBC connection properties.
+
+JdbcConnectionPropertiesComposite_ConnectionDialog_Message = &Enter connection name or pattern (*, ?, or camel case):
+JdbcConnectionPropertiesComposite_ConnectionDialog_Title = Connection Selection
+GenericPersistenceUnit2_0ConnectionTab_title = Connection
+
+GenericPersistenceUnit2_0OptionsComposite_miscellaneousSectionTitle = Miscellaneous Options
+GenericPersistenceUnit2_0OptionsComposite_miscellaneousSectionDescription = Configure the miscellaneous options.
+GenericPersistenceUnit2_0OptionsTab_title = Options
+
+JdbcConnectionPropertiesComposite_populateFromConnectionHyperLink = Populate from connection...
+JdbcConnectionPropertiesComposite_driverLabel = Driver:
+JdbcConnectionPropertiesComposite_urlLabel = URL:
+JdbcConnectionPropertiesComposite_userLabel = User:
+JdbcConnectionPropertiesComposite_passwordLabel = Password:
+
+JdbcPropertiesComposite_JdbcConnectionProperties_GroupBox = JDBC connection properties
+
+LockingConfigurationComposite_lockTimeoutLabel = Lock timeout:
+QueryConfigurationComposite_queryTimeoutLabel = Query timeout:
+
+TransactionTypeComposite_transactionTypeLabel = Transaction type:
+
+TransactionTypeComposite_jta = JTA
+TransactionTypeComposite_resource_local = Resource Local
+
+SharedCacheModeComposite_sharedCacheModeLabel = Shared cache mode:
+
+SharedCacheModeComposite_all = All
+SharedCacheModeComposite_none = None
+SharedCacheModeComposite_enable_selective = Enable Selective
+SharedCacheModeComposite_disable_selective = Disable Selective
+SharedCacheModeComposite_unspecified = Unspecified
+
+ValidationModeComposite_validationModeLabel = Validation mode:
+
+ValidationModeComposite_auto = Auto
+ValidationModeComposite_callback = Callback
+ValidationModeComposite_none = None
+
+ValidationConfigurationComposite_groupPrePersistLabel = Validate pre-persist group:
+ValidationConfigurationComposite_groupPreUpdateLabel = Validate pre-update group:
+ValidationConfigurationComposite_groupPreRemoveLabel = Validate pre-remove group:
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_validation_preferences.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_validation_preferences.properties
new file mode 100644
index 0000000000..93aa07eb93
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_validation_preferences.properties
@@ -0,0 +1,183 @@
+################################################################################
+# Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+################################################################################
+PROJECT_LEVEL_CATEGORY=Project
+
+NO_JPA_PROJECT=Project has JPA facet, but JPA project couldn't be created:
+PROJECT_NO_CONNECTION=No connection specified for project:
+PROJECT_INVALID_CONNECTION=Connection does not exist:
+PROJECT_INACTIVE_CONNECTION=Connection is not active:
+PROJECT_NO_PERSISTENCE_XML=No persistence.xml file found in project:
+PROJECT_MULTIPLE_PERSISTENCE_XML=Multiple persistence.xml files in project:
+
+XML_VERSION_NOT_LATEST=XML document version not most recent:
+
+PERSISTENCE_NO_PERSISTENCE_UNIT=No persistence unit defined:
+PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS=Multiple persistence units defined:
+PERSISTENCE_XML_INVALID_CONTENT=Invalid content (no root node):
+
+PERSISTENCE_UNIT_LEVEL_CATEGORY=Persistence unit
+
+PERSISTENCE_UNIT_UNSPECIFIED_MAPPING_FILE=Unspecified mapping file:
+PERSISTENCE_UNIT_UNSUPPORTED_MAPPING_FILE_CONTENT=Mapping file does not have supported content:
+PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE=Mapping file cannot be resolved:
+PERSISTENCE_UNIT_INVALID_MAPPING_FILE=Mapping file does not have ORM content:
+PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE=Duplicate mapping file:
+PERSISTENCE_UNIT_UNSPECIFIED_CLASS=Unspecified class:
+PERSISTENCE_UNIT_NONEXISTENT_CLASS=Class cannot be resolved:
+PERSISTENCE_UNIT_INVALID_CLASS=Class is included in a persistence unit but is not mapped:
+PERSISTENCE_UNIT_DUPLICATE_CLASS=Duplicate class:
+PERSISTENCE_UNIT_REDUNDANT_CLASS=Class is already specified in mapping file:
+PERSISTENCE_UNIT_DUPLICATE_JAR_FILE=Duplicate JAR file:
+PERSISTENCE_UNIT_UNSPECIFIED_JAR_FILE=Unspecified JAR file:
+PERSISTENCE_UNIT_JAR_FILE_DEPLOYMENT_PATH_WARNING=The path to the JAR file will vary:
+PERSISTENCE_UNIT_NONEXISTENT_JAR_FILE=JAR file cannot be resolved:
+MAPPING_FILE_EXTRANEOUS_PERSISTENCE_UNIT_DEFAULTS=Extraneous persistence unit defaults found:
+PERSISTENT_TYPE_MAPPED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT=Class is mapped, but is not in a persistence unit:
+PERSISTENT_TYPE_ANNOTATED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT=Class is annotated, but is not in a persistence unit:
+
+TYPE_LEVEL_CATEGORY=Type
+
+PERSISTENT_TYPE_UNSPECIFIED_CLASS=Class is unspecified in orm.xml:
+PERSISTENT_TYPE_UNRESOLVED_CLASS=Class in orm.xml cannot be resolved to a java class:
+ENTITY_NO_PK=Entity has no primary key:
+ENTITY_SINGLE_TABLE_DESCENDANT_DEFINES_TABLE=No table should be defined for non-root entity using single-table inheritance:
+ENTITY_ABSTRACT_TABLE_PER_CLASS_DEFINES_TABLE=No table should be defined for abstract entity using table-per-concrete-class inheritance:
+ENTITY_ABSTRACT_DISCRIMINATOR_VALUE_DEFINED = No discriminator value should be defined for abstract entity:
+ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_VALUE_DEFINED = No discriminator value should be defined for entity using table-per-concrete-class inheritance:
+ENTITY_NON_ROOT_DISCRIMINATOR_COLUMN_DEFINED =No discriminator column should be defined for non-root entity:
+ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_COLUMN_DEFINED = No discriminator column should be defined for entity using table-per-concrete-class inheritance:
+
+ATTRIBUTE_LEVEL_CATEGORY=Attribute
+
+PERSISTENT_ATTRIBUTE_UNSPECIFIED_NAME=Attribute in orm.xml has unspecified name:
+PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME=Attribute in orm.xml cannot be resolved in the java class:
+PERSISTENT_ATTRIBUTE_INHERITED_ATTRIBUTES_NOT_SUPPORTED=In orm.xml referenced inherited attribute may not be supported:
+PERSISTENT_ATTRIBUTE_INVALID_MAPPING=Attribute has invalid mapping type:
+PERSISTENT_ATTRIBUTE_FINAL_FIELD=The java field for attribute is final:
+PERSISTENT_ATTRIBUTE_PUBLIC_FIELD=The java field for attribute is public:
+MAPPING_UNRESOLVED_MAPPED_BY=Cannot resolve attribute name:
+MAPPING_INVALID_MAPPED_BY=Attribute has invalid mapping for this relationship:
+MAPPING_MAPPED_BY_WITH_JOIN_TABLE=Cannot specify join table if attribute is mapped by another attribute:
+MAPPING_MAPPED_BY_ON_BOTH_SIDES=Relationship must have an owner:
+TARGET_ENTITY_NOT_DEFINED=Target entity is not defined:
+TARGET_ENTITY_IS_NOT_AN_ENTITY=Target entity is not an Entity:
+MAPS_ID_VALUE_NOT_SPECIFIED="Maps ID" attribute value not specified:
+MAPS_ID_VALUE_NOT_RESOLVED="Maps ID" attribute value not resolved:
+MAPS_ID_VALUE_INVALID="Maps ID" attribute value invalid:
+ORDER_COLUMN_AND_ORDER_BY_BOTH_SPECIFIED=OrderColumn and OrderBy annotations are both specified:
+ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=Element collection target class not defined:
+ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=Element collection target class is not embeddable or basic type:
+ELEMENT_COLLECTION_MAP_KEY_CLASS_NOT_DEFINED=Element collection map key class not defined:
+
+DATABASE_CATEGORY=Database
+TABLE_CATEGORY=Table
+
+TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for table:
+TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for table:
+TABLE_UNRESOLVED_NAME=Table cannot be resolved:
+SECONDARY_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for secondary table:
+SECONDARY_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for secondary table:
+SECONDARY_TABLE_UNRESOLVED_NAME=Secondary table cannot be resolved:
+JOIN_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for join table:
+JOIN_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for join table:
+JOIN_TABLE_UNRESOLVED_NAME=Join table cannot be resolved:
+VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Implied secondary table primary key join column cannot be resolved:
+VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Implied secondary table primary key join column referenced column name cannot be resolved:
+VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied secondary table primary key join column name must be specified when there are multiples:
+VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied secondary table primary key join column referenced column name must be specified when there are multiples:
+COLLECTION_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for collection table:
+COLLECTION_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for collection table:
+COLLECTION_TABLE_UNRESOLVED_NAME=Collection table cannot be resolved:
+
+COLUMN_CATEGORY=Column
+
+COLUMN_UNRESOLVED_TABLE=Table for column cannot be resolved:
+COLUMN_UNRESOLVED_NAME=Column cannot be resolved:
+COLUMN_TABLE_NOT_VALID=Table for column not valid given the context:
+JOIN_COLUMN_TABLE_NOT_VALID=Table for join column is not valid:
+JOIN_COLUMN_UNRESOLVED_NAME=Join column cannot be resolved:
+JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column name must be specified when there are multiples:
+JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in join column cannot be resolved:
+JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column referenced column name must be specified when there are multiples:
+INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Table for inverse join column is not valid:
+INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Inverse join column cannot be resolved:
+INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column name must be specified when there are multiples:
+INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in inverse join column cannot be resolved:
+INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column referenced column name must be specified when there are multiples:
+PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Primary key join column cannot be resolved:
+PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in primary key join column cannot be resolved:
+PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column name must be specified when there are multiples:
+PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column referenced column name must be specified when there are multiples:
+MAP_KEY_COLUMN_TABLE_NOT_VALID=Table for map key column is not valid:
+ORDER_COLUMN_UNRESOLVED_NAME=Order column cannot be resolved:
+VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Implied primary key join column cannot be resolved:
+VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Implied primary key join column referenced column name cannot be resolved:
+
+OVERRIDES_CATEGORY=Attribute/association overrides
+IMPLIED_ATTRIBUTE_LEVEL_CATEGORY=Implied attributes
+
+VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Implied map key attribute override table for column is not valid:
+VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Implied attribute override column cannot be resolved:
+VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Implied attribute override table for column not valid:
+VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=Implied association override table for join column is not valid:
+VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=Implied association override join column cannot be resolved:
+VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Implied association override referenced column in join column cannot be resolved:
+VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied association override join column name must be specified when there are multiples:
+VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied association override join column referenced column name must be specified when there are multiples:
+
+VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for join table:
+VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for join table:
+VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME=Join table cannot be resolved:
+VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Attribute override table for column not valid:
+VIRTUAL_ATTRIBUTE_COLUMN_TABLE_NOT_VALID=Table for column not valid:
+VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Attribute override column cannot be resolved:
+VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME=Column cannot be resolved:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_TABLE=Table for join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_NAME=Join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column name must be specified when there are multiples:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column referenced column name must be specified when there are multiples:
+VIRTUAL_ATTRIBUTE_TARGET_ENTITY_IS_NOT_AN_ENTITY=Target entity is not an Entity:
+VIRTUAL_ATTRIBUTE_TARGET_ENTITY_NOT_DEFINED=Target entity is not defined:
+VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for collection table:
+VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for collection table:
+VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_NAME=Collection table cannot be resolved:
+VIRTUAL_ATTRIBUTE_ORDER_COLUMN_UNRESOLVED_NAME=Order column cannot be resolved:
+VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=Element collection target class not defined:
+VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=Element collection target class is not embeddable or basic type:
+VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_MAP_KEY_CLASS_NOT_DEFINED=Element collection map key class not defined:
+VIRTUAL_ATTRIBUTE_JOIN_COLUMN_TABLE_NOT_VALID=Table for join column is not valid:
+VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Table for inverse join column is not valid:
+VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Inverse join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column name must be specified when there are multiples:
+VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in inverse join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column referenced column name must be specified when there are multiples:
+VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_TABLE_NOT_VALID=Table for map key column is not valid:
+VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Map key attribute override table for column not valid:
+
+
+VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=Association override table for join column is not valid:
+VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=Association override join column cannot be resolved:
+VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=Association override join column referenced column name cannot be resolved:
+VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Association override join column name must be specified when there are multiples:
+VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Association override join column referenced column name must be specified when there are multiples:
+
+INHERITANCE_CATEGORY=Inheritance
+
+DISCRIMINATOR_COLUMN_UNRESOLVED_NAME=Discriminator column cannot be resolved:
+ENTITY_TABLE_PER_CLASS_NOT_SUPPORTED_ON_PLATFORM=Entity cannot use table-per-concrete-class inheritance:
+ENTITY_TABLE_PER_CLASS_NOT_PORTABLE_ON_PLATFORM=Entity uses table-per-concrete-class inheritance which is not portable:
+
+QUERIES_GENERATORS_CATEGORY=Queries and generators
+
+GENERATOR_DUPLICATE_NAME=Duplicate generator defined:
+ID_MAPPING_UNRESOLVED_GENERATOR_NAME=Unresolved generator name:
+GENERATED_VALUE_UNRESOLVED_GENERATOR=Generator is not defined in the persistence unit:
+QUERY_DUPLICATE_NAME=Duplicate query defined:
diff --git a/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatformUis.exsd b/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatformUis.exsd
new file mode 100644
index 0000000000..ef34ed6a63
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatformUis.exsd
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jpt.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.jpt.ui" id="jpaPlatforms" name="JPA Platform UIs"/>
+ </appinfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="jpaPlatformUi" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="jpaPlatformUi">
+ <annotation>
+ <documentation>
+ Extend this extension point and you must also extend the org.eclipse.jpt.core.jpaPlatforms extension point. The jpaPlatformId must match the id of a core.jpaPlatform extension. One jpaPlatform will be chosen per JpaProject. The possible jpaPlatforms will be displayed to the user as a project property.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="jpaPlatform" type="string" use="required">
+ <annotation>
+ <documentation>
+ The jpaPlatformId must match the corresponding org.eclipse.jpt.core.jpaPlatform extension id.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="factoryClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class that implements &lt;samp&gt;org.eclipse.jpt.ui.JpaPlatformUiFactory&lt;/samp&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.jpt.ui.JpaPlatformUiFactory"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 2.2
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ Provisional API: This interface is part of an interim API that is still
+under development and expected to change significantly before reaching
+stability. It is available at this early stage to solicit feedback from
+pioneering adopters on the understanding that any code that uses this API
+will almost certainly be broken (repeatedly) as the API evolves.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUi.java
new file mode 100644
index 0000000000..6d01e4947c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUi.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import java.util.Iterator;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.JpaFile;
+import org.eclipse.jpt.core.JpaPlatform;
+import org.eclipse.jpt.core.JpaProject;
+import org.eclipse.jpt.core.JpaResourceType;
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.details.DefaultMappingUiDefinition;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.JpaDetailsPage;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
+import org.eclipse.jpt.ui.structure.JpaStructureProvider;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This interface is to be implemented by a JPA vendor to provide extensions to
+ * JPA UI functionality. This is intended to work in conjunction with a core
+ * JPA platform ({@link JpaPlatform}) implementation with the same ID.
+ * <p>
+ * Any implementation should be <i>stateless</i> in nature.
+ * <p>
+ * The "generic" extension supplies UI for the core platform extension with the same
+ * ID.
+ *
+ * See the extension point: org.eclipse.jpt.ui.jpaPlatform
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaPlatformUi
+{
+ // ********** navigator provider **********
+
+ /**
+ * Return the {@link JpaNavigatorProvider} for this platform,
+ * which determines Project Explorer content and look
+ */
+ JpaNavigatorProvider getNavigatorProvider();
+
+
+ // ********** structure providers **********
+
+ /**
+ * Return a structure provider for the specified JPA file.
+ */
+ JpaStructureProvider getStructureProvider(JpaFile jpaFile);
+
+
+ // ********** details providers **********
+
+ JpaDetailsPage<? extends JpaStructureNode> buildJpaDetailsPage(
+ Composite parent,
+ JpaStructureNode structureNode,
+ WidgetFactory widgetFactory);
+
+
+ // ********** file ui definitions **********
+
+ /**
+ * Return a resource ui definition for the specified resource type.
+ */
+ ResourceUiDefinition getResourceUiDefinition(JpaResourceType resourceType);
+
+
+ // ********** type mappings **********
+
+ JpaComposite buildTypeMappingComposite(
+ JpaResourceType resourceType,
+ String mappingKey,
+ Composite parent,
+ PropertyValueModel<TypeMapping> mappingHolder,
+ WidgetFactory widgetFactory);
+
+ DefaultMappingUiDefinition<PersistentType, ? extends TypeMapping>
+ getDefaultTypeMappingUiDefinition(JpaResourceType resourceType);
+
+ Iterator<MappingUiDefinition<PersistentType, ? extends TypeMapping>>
+ typeMappingUiDefinitions(JpaResourceType resourceType);
+
+
+ // ********** attribute mappings **********
+
+ JpaComposite buildAttributeMappingComposite(
+ JpaResourceType resourceType,
+ String mappingKey,
+ Composite parent,
+ PropertyValueModel<AttributeMapping> mappingHolder,
+ WidgetFactory widgetFactory);
+
+ DefaultMappingUiDefinition<PersistentAttribute, ? extends AttributeMapping>
+ getDefaultAttributeMappingUiDefinition(JpaResourceType resourceType, String mappingKey);
+
+ Iterator<MappingUiDefinition<PersistentAttribute, ? extends AttributeMapping>>
+ attributeMappingUiDefinitions(JpaResourceType resourceType);
+
+
+ // ********** entity generation **********
+
+ void generateEntities(JpaProject project, IStructuredSelection selection);
+
+
+ // ********** DDL generation **********
+
+ void generateDDL(JpaProject project, IStructuredSelection selection);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiFactory.java
new file mode 100644
index 0000000000..77c05fe69e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiFactory.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+/**
+ * This interface is to be implemented by a JPA vendor to build a JpaPlatformUi.
+ *
+ * See the extension point: org.eclipse.jpt.ui.jpaPlatform
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaPlatformUiFactory
+{
+ JpaPlatformUi buildJpaPlatformUi();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiProvider.java
new file mode 100644
index 0000000000..a853d88cd6
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiProvider.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import java.util.ListIterator;
+import org.eclipse.jpt.core.JpaPlatform;
+import org.eclipse.jpt.ui.details.JpaDetailsProvider;
+
+/**
+ * This interface is to be implemented by a JPA vendor to provide extensions to
+ * JPA UI functionality. This is intended to work in conjunction with a core
+ * JPA platform ({@link JpaPlatform}) implementation with the same ID.
+ * <p>
+ * Any implementation should be <i>stateless</i> in nature.
+ * <p>
+ * The "generic" extension supplies UI for the core platform extension with the same
+ * ID.
+ *
+ * See the extension point: org.eclipse.jpt.ui.jpaPlatformUis
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaPlatformUiProvider
+{
+ /**
+ * Return the details providers that apply to this platform.
+ */
+ ListIterator<JpaDetailsProvider> detailsProviders();
+
+ /**
+ * Return the resource ui definitions that apply to this platform.
+ */
+ ListIterator<ResourceUiDefinition> resourceUiDefinitions();
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java
new file mode 100644
index 0000000000..24ae9da694
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java
@@ -0,0 +1,236 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jpt.core.JpaPlatform;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.ui.internal.platform.JpaPlatformUiRegistry;
+import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * Dali UI plug-in.
+ * <p>
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+@SuppressWarnings("nls")
+public class JptUiPlugin
+ extends AbstractUIPlugin
+{
+ private final Listener focusListener;
+
+
+ // ********** constants **********
+
+ /**
+ * The plug-in identifier of JPA UI support (value {@value}).
+ */
+ public static final String PLUGIN_ID = "org.eclipse.jpt.ui";
+ public static final String PLUGIN_ID_ = PLUGIN_ID + '.';
+
+ private static final String FOCUS_DATA_KEY = PLUGIN_ID_ + "focus";
+ private static final Object FOCUS_DATA = new Object();
+
+
+ // ********** singleton **********
+
+ private static JptUiPlugin INSTANCE;
+
+ /**
+ * Returns the singleton JPT UI plug-in.
+ */
+ public static JptUiPlugin instance() {
+ return INSTANCE;
+ }
+
+
+ // ********** logging **********
+
+ public static void log(IStatus status) {
+ INSTANCE.getLog().log(status);
+ }
+
+ public static void log(String msg) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null));
+ }
+
+ public static void log(Throwable throwable) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable));
+ }
+
+
+ // ********** images **********
+
+ /**
+ * Return an image descriptor for the specified <code>.gif<code>
+ * file in the icons folder.
+ */
+ public static ImageDescriptor getImageDescriptor(String key) {
+ if ( ! key.startsWith("icons/")) {
+ key = "icons/" + key;
+ }
+ if ( ! key.endsWith(".gif")) {
+ key = key + ".gif";
+ }
+ return imageDescriptorFromPlugin(PLUGIN_ID, key);
+ }
+
+ /**
+ * Return an image for the specified <code>.gif<code>
+ * file in the icons folder.
+ */
+ //TODO we are using the ImageRegistry here and storing all our icons for the life of the plugin,
+ //which means until the workspace is closed. This is better than before where we constantly
+ //created new images. Bug 306437 is about cleaning this up and using Local Resource Managers
+ //on our views so that closing the JPA perspective would mean our icons are disposed.
+ public static Image getImage(String key) {
+ ImageRegistry imageRegistry = instance().getImageRegistry();
+ Image image = imageRegistry.get(key);
+ if (image == null) {
+ imageRegistry.put(key, getImageDescriptor(key));
+ image = imageRegistry.get(key);
+ }
+ return image;
+ }
+
+
+ // ********** construction **********
+
+ public JptUiPlugin() {
+ super();
+ this.focusListener = this.buildFocusListener();
+ if (INSTANCE != null) {
+ throw new IllegalStateException();
+ }
+ INSTANCE = this;
+ }
+
+ /**
+ * We are registered to receive only {@link SWT#FocusIn} events
+ */
+ private Listener buildFocusListener() {
+ return new Listener() {
+ public void handleEvent(Event event) {
+ JptUiPlugin.this.focusIn((Control) event.widget);
+ }
+ };
+ }
+
+
+ // ********** focus handling **********
+
+ /**
+ * This method is called whenever a "focus in" event is generated.
+ * If the control gaining focus is part of one of our composites (typically
+ * a JPA Details View), we stop listening to Java change events
+ * (and assume all changes to the Java model are generated by us).
+ * If the control gaining focus is *not* part of one of our composites,
+ * we start listening to the Java change events again.
+ */
+ void focusIn(Control control) {
+ while (control != null) {
+ if (control.getData(FOCUS_DATA_KEY) == FOCUS_DATA) {
+ this.focusIn();
+ return;
+ }
+ control = control.getParent();
+ }
+ this.focusOut();
+ }
+
+ /**
+ * This method is called whenever a Dali UI control that affects Java
+ * source code gains the UI focus. When this happens we deactivate
+ * the Dali Java change listener so we ignore any changes to the Java
+ * source code that probably originated from Dali. This means we will miss
+ * any changes to the Java source code that is caused by non-UI activity;
+ * but, we hope, these changes are unrelated to JPA annotations etc.
+ * @see #focusOut()
+ */
+ private void focusIn() {
+ JptCorePlugin.setJavaElementChangeListenerIsActive(false);
+ }
+
+ /**
+ * This method is called whenever a non-Dali UI control gains the UI focus.
+ * When this happens we activate the Dali Java change listener so that we
+ * begin to keep the Dali model synchronized with the Java source code.
+ * @see #focusIn()
+ */
+ private void focusOut() {
+ JptCorePlugin.setJavaElementChangeListenerIsActive(true);
+ }
+
+ /**
+ * Tag the specified control so that whenever it (or any of its children,
+ * grandchildren, etc.) has the focus, the Dali model ignores any Java
+ * change events. This method is to be called when the control is first
+ * constructed.
+ */
+ public void controlAffectsJavaSource(Control control) {
+ control.setData(FOCUS_DATA_KEY, FOCUS_DATA);
+ }
+
+
+ // ********** platform **********
+
+ /**
+ * Return the JPA platform UI corresponding to the specified JPA platform.
+ */
+ public JpaPlatformUi getJpaPlatformUi(JpaPlatform jpaPlatform) {
+ return JpaPlatformUiRegistry.instance().getJpaPlatformUi(jpaPlatform.getId());
+ }
+
+ public JpaNavigatorProvider getJpaNavigatorProvider(JpaPlatform jpaPlatform) {
+ JpaPlatformUi platform = this.getJpaPlatformUi(jpaPlatform);
+ return (platform == null) ? null : platform.getNavigatorProvider();
+ }
+
+
+ // ********** plug-in implementation **********
+
+ /**
+ * Register our SWT listener with the display so we receive notification
+ * of every "focus in" event.
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ Display.getDefault().addFilter(SWT.FocusIn, this.focusListener);
+ }
+
+ /**
+ * Unregister our SWT listener with the display.
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ try {
+ Display.getDefault().removeFilter(SWT.FocusIn, this.focusListener);
+ } finally {
+ super.stop(context);
+ }
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/MappingResourceUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/MappingResourceUiDefinition.java
new file mode 100644
index 0000000000..00e6a9dc4f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/MappingResourceUiDefinition.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import java.util.Iterator;
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.details.DefaultMappingUiDefinition;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface MappingResourceUiDefinition extends ResourceUiDefinition
+{
+ /**
+ *
+ */
+ JpaComposite buildAttributeMappingComposite(
+ String key,
+ PropertyValueModel<AttributeMapping> mappingHolder,
+ Composite parent, WidgetFactory widgetFactory);
+
+ /**
+ * Return an iterator of attribute mapping ui definitions appropriate for this file type
+ */
+ Iterator<MappingUiDefinition<PersistentAttribute, ? extends AttributeMapping>>
+ attributeMappingUiDefinitions();
+
+ /**
+ * Return a default attribute mapping ui definition for the given key or null
+ */
+ DefaultMappingUiDefinition<PersistentAttribute, ? extends AttributeMapping>
+ getDefaultAttributeMappingUiDefinition(String key);
+
+ /**
+ *
+ */
+ JpaComposite buildTypeMappingComposite(
+ String key,
+ PropertyValueModel<TypeMapping> mappingHolder,
+ Composite parent, WidgetFactory widgetFactory);
+
+ /**
+ *
+ */
+ Iterator<MappingUiDefinition<PersistentType, ? extends TypeMapping>>
+ typeMappingUiDefinitions();
+
+ /**
+ * Return a default type mapping ui provider or null
+ */
+ DefaultMappingUiDefinition<PersistentType, ? extends TypeMapping>
+ getDefaultTypeMappingUiDefinition();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/PersistenceXmlResourceUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/PersistenceXmlResourceUiDefinition.java
new file mode 100644
index 0000000000..ae0070e975
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/PersistenceXmlResourceUiDefinition.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import java.util.ListIterator;
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
+import org.eclipse.jpt.ui.details.JpaPageComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface PersistenceXmlResourceUiDefinition extends ResourceUiDefinition
+{
+ ListIterator<JpaPageComposite> buildPersistenceUnitComposites(
+ PropertyValueModel<PersistenceUnit> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/ResourceUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/ResourceUiDefinition.java
new file mode 100644
index 0000000000..eee4213601
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/ResourceUiDefinition.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import org.eclipse.jpt.core.JpaResourceType;
+import org.eclipse.jpt.ui.structure.JpaStructureProvider;
+
+/**
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface ResourceUiDefinition
+{
+ /**
+ * Return whether this definition provides UI for resource of the given type
+ */
+ boolean providesUi(JpaResourceType resourceType);
+
+ /**
+ * Return the structure provider association with this mapping file type.
+ */
+ JpaStructureProvider getStructureProvider();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/WidgetFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/WidgetFactory.java
new file mode 100644
index 0000000000..cfee242e5a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/WidgetFactory.java
@@ -0,0 +1,240 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui;
+
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormText;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * A widget factory is responsible for creating an SWT widget based on the right
+ * style. Some style shows the widgets differently, for instance, the flat style
+ * shows the widgets with less borders.
+ * <p>
+ * Provisional API: This interface is part of an interim API that is still under
+ * development and expected to change significantly before reaching stability.
+ * It is available at this early stage to solicit feedback from pioneering
+ * adopters on the understanding that any code that uses this API will almost
+ * certainly be broken (repeatedly) as the API evolves.
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+public interface WidgetFactory {
+
+ /**
+ * Creates a new regular button.
+ *
+ * @param parent The parent container
+ * @param text The button's text
+ * @return A new <code>Button</code>
+ */
+ Button createButton(Composite parent, String text);
+
+ /**
+ * Creates a new non-editable custom <code>Combo</code>.
+ *
+ * @deprecated
+ * @param parent The parent container
+ * @return A new <code>CCombo</code>
+ */
+ @Deprecated
+ CCombo createCCombo(Composite parent);
+
+ /**
+ * Creates a new check box button.
+ *
+ * @param parent The parent container
+ * @param text The button's text
+ * @return A new <code>Button</code>
+ */
+ Button createCheckBox(Composite parent, String text);
+
+ /**
+ * Creates a new non-editable <code>Combo</code>.
+ *
+ * @param parent The parent container
+ * @return A new <code>Combo</code>
+ */
+ Combo createCombo(Composite parent);
+
+ /**
+ * Creates a new container.
+ *
+ * @param parent The parent container
+ * @return A new <code>Composite</code>
+ */
+ Composite createComposite(Composite parent);
+
+ /**
+ * Creates a new DateTime.
+ *
+ * @param container The parent container
+ * @param style The style is to tell the type of widget
+ * (<code>SWT.DATE</code> or <code>SWT.TIME</code> or <code>SWT.CALENDAR</code>)
+ * @return A new <code>DateTime</code>
+ */
+ DateTime createDateTime(Composite parent, int style);
+
+ /**
+ * Creates a new editable custom <code>CCombo</code>.
+ *
+ * @deprecated
+ * @param parent The parent container
+ * @return A new <code>CCombo</code>
+ */
+ @Deprecated
+ CCombo createEditableCCombo(Composite parent);
+
+ /**
+ * Creates a new editable <code>Combo</code>.
+ *
+ * @param parent The parent container
+ * @return A new <code>Combo</code>
+ */
+ Combo createEditableCombo(Composite parent);
+
+ /**
+ * Creates a new titled pane (group box).
+ *
+ * @param parent The parent container
+ * @param title The group pane's title
+ * @return A new <code>Group</code>
+ */
+ Group createGroup(Composite parent, String title);
+
+ /**
+ * Creates a new label that is shown as a hyperlink.
+ *
+ * @param parent The parent container
+ * @param text The label's text
+ * @return A new <code>Hyperlink</code>
+ */
+ Hyperlink createHyperlink(Composite parent, String text);
+
+ /**
+ * Creates a new label.
+ *
+ * @param container The parent container
+ * @param labelText The label's text
+ * @return A new <code>Label</code>
+ */
+ Label createLabel(Composite container, String labelText);
+
+ /**
+ * Creates a new list.
+ *
+ * @param container The parent container
+ * @param style The style is usually to tell what type of selection
+ * (<code>SWT.MULTI</code> or <code>SWT.SINGLE</code>)
+ * @return A new <code>Label</code>
+ */
+ List createList(Composite container, int style);
+
+ /**
+ * Creates a new label that can be wrapped on multiple lines.
+ *
+ * @param container The parent container
+ * @param labelText The label's text
+ * @return A new <code>FormText</code>
+ */
+ FormText createMultiLineLabel(Composite container, String labelText);
+
+ /**
+ * Creates a new editable text area.
+ *
+ * @param parent The parent container
+ * @param parent The number of lines the text area should display
+ * @return A new <code>Text</code>
+ */
+ Text createMultiLineText(Composite parent);
+
+ /**
+ * Creates a new editable text field that handles password.
+ *
+ * @param container The parent container
+ * @return A new <code>Text</code>
+ */
+ Text createPasswordText(Composite container);
+
+ /**
+ * Creates a new push button (toggle between selected and unselected).
+ *
+ * @param parent The parent container
+ * @param text The button's text
+ * @return A new <code>Button</code>
+ */
+ Button createPushButton(Composite parent, String text);
+
+ /**
+ * Creates a new radio button.
+ *
+ * @param parent The parent container
+ * @param text The button's text
+ * @return A new <code>Button</code>
+ */
+ Button createRadioButton(Composite parent, String text);
+
+ /**
+ * Creates a new section, which is a collapsable pane with a title bar.
+ *
+ * @param parent The parent container
+ * @param style The style of the title bar, which can be
+ * <code>ExpandableComposite.TWISTIE</code> and
+ * <code>ExpandableComposite.TITLE_BAR</code>
+ * @return A new <code>Section</code>
+ */
+ Section createSection(Composite parent, int style);
+
+ /**
+ * Creates a new spinner.
+ *
+ * @param parent The parent container
+ * @return A new <code>Spinner</code>
+ */
+ Spinner createSpinner(Composite parent);
+
+ /**
+ * Creates a new table.
+ *
+ * @param container The parent container
+ * @param style The style to apply to the table
+ * @return A new <code>Table</code>
+ */
+ Table createTable(Composite parent, int style);
+
+ /**
+ * Creates a new editable text field.
+ *
+ * @param container The parent container
+ * @return A new <code>Text</code>
+ */
+ Text createText(Composite parent);
+
+ /**
+ * Creates a new tri-state check box.
+ *
+ * @param parent The parent container
+ * @param text The button's text
+ * @return A new <code>Button</code> that has 3 selection states
+ */
+ Button createTriStateCheckBox(Composite parent, String text);
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/DefaultMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/DefaultMappingUiDefinition.java
new file mode 100644
index 0000000000..194b536446
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/DefaultMappingUiDefinition.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface DefaultMappingUiDefinition<M, T>
+ extends MappingUiDefinition<M, T>
+{
+ /**
+ * Returns a unique string that corresponds to the key of the mapping in the
+ * core. For a default mapping the method getKey() will return null since
+ * that is for the specified mapping. This will return the default mapping key, not null
+ */
+ String getDefaultKey();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaComposite.java
new file mode 100644
index 0000000000..207e78501a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaComposite.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * A {@link JpaComposite} defines the common behavior of the JPA related
+ * widgets.
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaComposite {
+
+ /**
+ * Returns the actual <code>Composite</code>.
+ *
+ * @return This composite's actual widget
+ */
+ Control getControl();
+
+ /**
+ * Changes the enablement state of the widgets of this pane.
+ *
+ * @param enabled <code>true</code> to enable the widgets or <code>false</code>
+ * to disable them
+ */
+ void enableWidgets(boolean enabled);
+
+ /**
+ * Notifies this composite it should dispose any resources.
+ */
+ void dispose();
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsPage.java
new file mode 100644
index 0000000000..51f8d77c59
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsPage.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * A details page is used to show the property pane for a given context node. The
+ * {@link JpaDetailsProvider} is responsible for creating the pane.
+ *
+ * @see JpaDetailsProvider
+ *
+ * @version 2.0
+ * @since 2.0
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaDetailsPage<T extends JpaStructureNode>
+{
+ /**
+ * Returns this details' page's widget.
+ *
+ * @return The container of the widgets shown by this details page
+ */
+ Control getControl();
+
+ /**
+ * Sets the subject for this details page.
+ *
+ * @param subject Either the new subject or <code>null</code> if the subject
+ * needs to be removed
+ */
+ void setSubject(T subject);
+
+ /**
+ * Dispose the details page and any resources it holds.
+ */
+ void dispose();
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsProvider.java
new file mode 100644
index 0000000000..10bc880051
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaDetailsProvider.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This provider is responsible to create the {@link JpaDetailsPage}
+ * responsible to show the information for a given content node id.
+ *
+ * @see JpaDetailsPage
+ *
+ * @version 3.0
+ * @since 2.0
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaDetailsProvider
+{
+ /**
+ * Return whether this provider returns a details page for the given structure node
+ */
+ boolean providesDetails(JpaStructureNode structureNode);
+
+ /**
+ * Creates a new details page based on the given content node id.
+ *
+ * @param parent The parent container
+ * @param contentNodeId The unique identifier used to determine which details
+ * page to create
+ * @param widgetFactory The factory used to create various widgets
+ */
+ //TODO Should we pass in JpaUiFactory so these pages can be built using the factory and overriden?
+ JpaDetailsPage<? extends JpaStructureNode> buildDetailsPage(
+ Composite parent,
+ WidgetFactory widgetFactory);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaPageComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaPageComposite.java
new file mode 100644
index 0000000000..3bcb12d4c5
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/JpaPageComposite.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+
+/**
+ * A {@link JpaPageComposite} defines the common behavior of the JPA
+ * related widgets that is shown as a page within an editor.
+ * <p>
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JpaPageComposite extends JpaComposite {
+
+ /**
+ * Returns the help ID. This ID will be used if the help button is invoked.
+ *
+ * @return Either the help ID of this page or <code>null</code> if no help
+ * is required
+ */
+ String getHelpID();
+
+ /**
+ * The image of the tab showing this page.
+ *
+ * @return The page's image
+ */
+ ImageDescriptor getPageImageDescriptor();
+
+ /**
+ * The text of the tab showing this page.
+ *
+ * @return The page's text
+ */
+ String getPageText();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/MappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/MappingUiDefinition.java
new file mode 100644
index 0000000000..011b797b6a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/MappingUiDefinition.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details;
+
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * A UI provider is responsible to provide the support for displaying the
+ * information for a certain mapping type.
+ *
+ * T represents the type of the mapping the definition represents
+ * M represents the type of the object being mapped
+ *
+ * @version 2.3
+ * @since 2.0
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface MappingUiDefinition<M, T>
+{
+ /**
+ * Returns a unique string that corresponds to the key of the mapping in the
+ * core (JavaAttributeMappingDefinition and/or OrmAttributeMappingProvider).
+ *
+ * @return The key representing the mapping
+ */
+ String getKey();
+
+ /**
+ * Returns a human readable text of the mapping type.
+ *
+ * @return A display string for the mapping type
+ */
+ String getLabel();
+
+ /**
+ * Returns a human readable text of the mapping type to be used in the mapping change link label
+ */
+ String getLinkLabel();
+
+ /**
+ * Returns an image that represents the mapping type defined by this provider.
+ *
+ * @return An image representing a mapping or <code>null</code> if no image
+ * is required
+ */
+ Image getImage();
+
+ /**
+ * Return whether the mapping type represented by this definition is enabled for the given
+ * mappable object. This is almost always true.
+ */
+ boolean isEnabledFor(M mappableObject);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaAttributeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaAttributeMappingUiDefinition.java
new file mode 100644
index 0000000000..0380105e21
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaAttributeMappingUiDefinition.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.java;
+
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.ui.details.DefaultMappingUiDefinition;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface DefaultJavaAttributeMappingUiDefinition<T extends AttributeMapping>
+ extends JavaAttributeMappingUiDefinition<T>, DefaultMappingUiDefinition<PersistentAttribute, T>
+{
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaTypeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaTypeMappingUiDefinition.java
new file mode 100644
index 0000000000..d74ffde19a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/DefaultJavaTypeMappingUiDefinition.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.java;
+
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.details.DefaultMappingUiDefinition;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface DefaultJavaTypeMappingUiDefinition<T extends TypeMapping>
+ extends JavaTypeMappingUiDefinition<T>, DefaultMappingUiDefinition<PersistentType, T>
+{
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaAttributeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaAttributeMappingUiDefinition.java
new file mode 100644
index 0000000000..d518be929a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaAttributeMappingUiDefinition.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.java;
+
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JavaAttributeMappingUiDefinition<T extends AttributeMapping>
+ extends MappingUiDefinition<PersistentAttribute, T>
+{
+ /**
+ * Creates <code>JpaComposite</code> that corresponds to this mapping type.
+ * This will be displayed by the <code>PersistentAttributeDetailsPage</code>
+ * when the mapping key matches the key given by this provider. The
+ * composites will be stored in a Map with the mapping key as the key.
+ *
+ * @param factory The UI factory responsible to create the right composite
+ * for any mapping type
+ * @param subjectHolder The holder of the subject being displayed
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the various widgets
+ * @return The composite displaying the information for a certain mapping
+ */
+ JpaComposite buildAttributeMappingComposite(
+ JavaUiFactory factory,
+ PropertyValueModel<T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaTypeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaTypeMappingUiDefinition.java
new file mode 100644
index 0000000000..a5754e01eb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaTypeMappingUiDefinition.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.java;
+
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface JavaTypeMappingUiDefinition<T extends TypeMapping>
+ extends MappingUiDefinition<PersistentType, T>
+{
+ /**
+ * Creates <code>JpaComposite</code> that corresponds to this mapping type.
+ * This will be displayed by the <code>PersistentTypeDetailsPage</code> when
+ * the mapping key matches the key given by this provider. The composites
+ * will be stored in a Map with the mapping key as the key.
+ *
+ * @param factory The UI factory responsible to create the right composite
+ * for any mapping type
+ * @param subjectHolder The holder of the subject being displayed
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the various widgets
+ * @return The composite displaying the information for a certain mapping
+ */
+ JpaComposite buildTypeMappingComposite(
+ JavaUiFactory factory,
+ PropertyValueModel<T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java
new file mode 100644
index 0000000000..18f9bda66d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.java;
+
+import org.eclipse.jpt.core.context.java.JavaBasicMapping;
+import org.eclipse.jpt.core.context.java.JavaEmbeddable;
+import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
+import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
+import org.eclipse.jpt.core.context.java.JavaEntity;
+import org.eclipse.jpt.core.context.java.JavaIdMapping;
+import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
+import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
+import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
+import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
+import org.eclipse.jpt.core.context.java.JavaTransientMapping;
+import org.eclipse.jpt.core.context.java.JavaVersionMapping;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
+import org.eclipse.jpt.core.context.orm.OrmEntity;
+import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Use {@link JavaUiFactory} to create any java JPA composites
+ * <p>
+ * Provisional API: This interface is part of an interim API that is still under
+ * development and expected to change significantly before reaching stability.
+ * It is available at this early stage to solicit feedback from pioneering
+ * adopters on the understanding that any code that uses this API will almost
+ * certainly be broken (repeatedly) as the API evolves.
+ *
+ *
+ * @version 3.0
+ * @since 3.0
+ */
+public interface JavaUiFactory
+{
+
+ // **************** java type mapping composites ***************************
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaMappedSuperclass</code>.
+ *
+ * @param subjectHolder The holder of the mapped superclass
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaMappedSuperclassComposite(
+ PropertyValueModel<JavaMappedSuperclass> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>JavaEntity</code>.
+ *
+ * @param subjectHolder The holder of the java entity
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaEntityComposite(
+ PropertyValueModel<JavaEntity> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaEmbeddable</code>.
+ *
+ * @param subjectHolder The holder of the embeddable
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaEmbeddableComposite(
+ PropertyValueModel<JavaEmbeddable> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+
+ // **************** orm type mapping composites ****************************
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmMappedSuperclass</code>.
+ *
+ * @param subjectHolder The holder of the mapped superclass
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmMappedSuperclassComposite(
+ PropertyValueModel<OrmMappedSuperclass> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEntity</code>.
+ *
+ * @param subjectHolder The holder of the orm entity
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEntityComposite(
+ PropertyValueModel<OrmEntity> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEmbeddable</code>.
+ *
+ * @param subjectHolder The holder of the embeddable
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEmbeddableComposite(
+ PropertyValueModel<OrmEmbeddable> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+
+ // **************** java attribute mapping composites **********************
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaIdMapping</code>.
+ *
+ * @param subjectHolder The holder of the ID mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaIdMappingComposite(
+ PropertyValueModel<JavaIdMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaEmbeddedIdMapping</code>.
+ *
+ * @param subjectHolder The holder of the embedded ID mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaEmbeddedIdMappingComposite(
+ PropertyValueModel<JavaEmbeddedIdMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaBasicMapping</code>.
+ *
+ * @param subjectHolder The holder of the basic mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaBasicMappingComposite(
+ PropertyValueModel<JavaBasicMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaVersionMapping</code>.
+ *
+ * @param subjectHolder The holder of the version mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaVersionMappingComposite(
+ PropertyValueModel<JavaVersionMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaManyToOneMapping</code>.
+ *
+ * @param subjectHolder The holder of the many to one mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaManyToOneMappingComposite(
+ PropertyValueModel<JavaManyToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaOneToManyMapping</code>.
+ *
+ * @param subjectHolder The holder of the one to many mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaOneToManyMappingComposite(
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaOneToOneMapping</code>.
+ *
+ * @param subjectHolder The holder of the one to one mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaOneToOneMappingComposite(
+ PropertyValueModel<JavaOneToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaManyToManyMapping</code>.
+ *
+ * @param subjectHolder The holder of the many to many mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaManyToManyMappingComposite(
+ PropertyValueModel<JavaManyToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaEmbeddedMapping</code>.
+ *
+ * @param subjectHolder The holder of the embedded mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaEmbeddedMappingComposite(
+ PropertyValueModel<JavaEmbeddedMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit a <code>JavaTransientMapping</code>.
+ *
+ * @param subjectHolder The holder of the transient mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createJavaTransientMappingComposite(
+ PropertyValueModel<JavaTransientMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmAttributeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmAttributeMappingUiDefinition.java
new file mode 100644
index 0000000000..897fde2f31
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmAttributeMappingUiDefinition.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.orm;
+
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface OrmAttributeMappingUiDefinition<T extends AttributeMapping>
+ extends MappingUiDefinition<PersistentAttribute, T>
+{
+ /**
+ * Creates <code>JpaComposite</code> that corresponds to this mapping type.
+ * This will be displayed by the <code>PersistentAttributeDetailsPage</code>
+ * when the mapping key matches the key given by this provider. The
+ * composites will be stored in a Map with the mapping key as the key.
+ *
+ * @param factory The UI factory responsible to create the right composite
+ * for any mapping type
+ * @param subjectHolder The holder of the subject being displayed
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the various widgets
+ * @return The composite displaying the information for a certain mapping
+ */
+ JpaComposite buildAttributeMappingComposite(
+ OrmXmlUiFactory factory,
+ PropertyValueModel<T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmTypeMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmTypeMappingUiDefinition.java
new file mode 100644
index 0000000000..b449a77d6e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmTypeMappingUiDefinition.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.orm;
+
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface OrmTypeMappingUiDefinition<T extends TypeMapping>
+ extends MappingUiDefinition<PersistentType, T>
+{
+ /**
+ * Creates <code>JpaComposite</code> that correponds to this mapping type.
+ * This will be displayed by the <code>PersistentTypeDetailsPage</code> when
+ * the mapping key matches the key given by this provider. The composites
+ * will be stored in a Map with the mapping key as the key.
+ *
+ * @param factory The UI factory responsible to create the right composite
+ * for any mapping type
+ * @param subjectHolder The holder of the subject being displayed
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the various widgets
+ * @return The composite displaying the information for a certain mapping
+ */
+ JpaComposite buildTypeMappingComposite(
+ OrmXmlUiFactory factory,
+ PropertyValueModel<T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmXmlUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmXmlUiFactory.java
new file mode 100644
index 0000000000..beeb7c6f09
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/orm/OrmXmlUiFactory.java
@@ -0,0 +1,220 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.details.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
+import org.eclipse.jpt.core.context.orm.OrmEntity;
+import org.eclipse.jpt.core.context.orm.OrmIdMapping;
+import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
+import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
+import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
+import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
+import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
+import org.eclipse.jpt.core.context.orm.OrmTransientMapping;
+import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Use {@link OrmXmlUiFactory} to create any ORM JPA composites
+ * <p>
+ * Provisional API: This interface is part of an interim API that is still under
+ * development and expected to change significantly before reaching stability.
+ * It is available at this early stage to solicit feedback from pioneering
+ * adopters on the understanding that any code that uses this API will almost
+ * certainly be broken (repeatedly) as the API evolves.
+ *
+ * @see org.eclipse.jpt.ui.internal.BaseJpaUiFactory
+ *
+ * @version 2.0
+ * @since 1.0
+ */
+public interface OrmXmlUiFactory
+{
+
+ // **************** orm type mapping composites ****************************
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmMappedSuperclass</code>.
+ *
+ * @param subjectHolder The holder of the mapped superclass
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmMappedSuperclassComposite(
+ PropertyValueModel<OrmMappedSuperclass> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEntity</code>.
+ *
+ * @param subjectHolder The holder of the orm entity
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEntityComposite(
+ PropertyValueModel<OrmEntity> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEmbeddable</code>.
+ *
+ * @param subjectHolder The holder of the embeddable
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEmbeddableComposite(
+ PropertyValueModel<OrmEmbeddable> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+
+ // **************** orm attribute mapping composites ***********************
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmIdMapping</code>.
+ *
+ * @param subjectHolder The holder of the ID mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmIdMappingComposite(
+ PropertyValueModel<OrmIdMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEmbeddedIdMapping</code>.
+ *
+ * @param subjectHolder The holder of the embedded ID mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEmbeddedIdMappingComposite(
+ PropertyValueModel<OrmEmbeddedIdMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmBasicMapping</code>.
+ *
+ * @param subjectHolder The holder of the basic mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmBasicMappingComposite(
+ PropertyValueModel<OrmBasicMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmVersionMapping</code>.
+ *
+ * @param subjectHolder The holder of the version mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmVersionMappingComposite(
+ PropertyValueModel<OrmVersionMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmManyToOneMapping</code>.
+ *
+ * @param subjectHolder The holder of the many to one mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmManyToOneMappingComposite(
+ PropertyValueModel<OrmManyToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmOneToManyMapping</code>.
+ *
+ * @param subjectHolder The holder of the one to many mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmOneToManyMappingComposite(
+ PropertyValueModel<OrmOneToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmOneToOneMapping</code>.
+ *
+ * @param subjectHolder The holder of the one to one mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmOneToOneMappingComposite(
+ PropertyValueModel<OrmOneToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmManyToManyMapping</code>.
+ *
+ * @param subjectHolder The holder of the many to many mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmManyToManyMappingComposite(
+ PropertyValueModel<OrmManyToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmEmbeddedMapping</code>.
+ *
+ * @param subjectHolder The holder of the embedded mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmEmbeddedMappingComposite(
+ PropertyValueModel<OrmEmbeddedMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+
+ /**
+ * Creates a new <code>JpaComposite</code> used to edit an <code>OrmTransientMapping</code>.
+ *
+ * @param subjectHolder The holder of the transient mapping
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create the widgets
+ * @return A new <code>JpaComposite</code>
+ */
+ JpaComposite createOrmTransientMappingComposite(
+ PropertyValueModel<OrmTransientMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory);
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/AbstractJpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/AbstractJpaPlatformUiProvider.java
new file mode 100644
index 0000000000..d2a1f933bf
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/AbstractJpaPlatformUiProvider.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
+import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.ResourceUiDefinition;
+import org.eclipse.jpt.ui.details.JpaDetailsProvider;
+import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator;
+
+/**
+ * All the state in the JPA platform ui provider should be "static" (i.e. unchanging once
+ * it is initialized).
+ */
+public abstract class AbstractJpaPlatformUiProvider implements JpaPlatformUiProvider
+{
+ private JpaDetailsProvider[] detailsProviders;
+
+ private ResourceUiDefinition[] resourceUiDefinitions;
+
+ /**
+ * zero-argument constructor
+ */
+ public AbstractJpaPlatformUiProvider() {
+ super();
+ }
+
+
+ // ********** details providers **********
+
+ public ListIterator<JpaDetailsProvider> detailsProviders() {
+ return new ArrayListIterator<JpaDetailsProvider>(getDetailsProviders());
+ }
+
+ protected synchronized JpaDetailsProvider[] getDetailsProviders() {
+ if (this.detailsProviders == null) {
+ this.detailsProviders = this.buildDetailsProviders();
+ }
+ return this.detailsProviders;
+ }
+
+ protected JpaDetailsProvider[] buildDetailsProviders() {
+ ArrayList<JpaDetailsProvider> providers = new ArrayList<JpaDetailsProvider>();
+ this.addDetailsProvidersTo(providers);
+ return providers.toArray(new JpaDetailsProvider[providers.size()]);
+ }
+
+ /**
+ * Implement this to specify JPA details providers.
+ */
+ protected abstract void addDetailsProvidersTo(List<JpaDetailsProvider> providers);
+
+
+
+ // ********** structure providers **********
+
+ public ListIterator<ResourceUiDefinition> resourceUiDefinitions() {
+ return new ArrayListIterator<ResourceUiDefinition>(getResourceUiDefinitions());
+ }
+
+ protected synchronized ResourceUiDefinition[] getResourceUiDefinitions() {
+ if (this.resourceUiDefinitions == null) {
+ this.resourceUiDefinitions = this.buildResourceUiDefinitions();
+ }
+ return this.resourceUiDefinitions;
+ }
+
+ protected ResourceUiDefinition[] buildResourceUiDefinitions() {
+ ArrayList<ResourceUiDefinition> definitions = new ArrayList<ResourceUiDefinition>();
+ this.addResourceUiDefinitionsTo(definitions);
+ return definitions.toArray(new ResourceUiDefinition[definitions.size()]);
+ }
+
+ /**
+ * Implement this to specify JPA mapping file ui definitions.
+ */
+ protected abstract void addResourceUiDefinitionsTo(List<ResourceUiDefinition> definitions);
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/EditorPartAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/EditorPartAdapterFactory.java
new file mode 100644
index 0000000000..94768587d6
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/EditorPartAdapterFactory.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.jpt.core.JpaFile;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+
+/**
+ * Factory to build adapters for a editor part:
+ * - JPA file (if the editor part is a file editor etc.)
+ *
+ * See org.eclipse.jpt.ui plugin.xml.
+ */
+public class EditorPartAdapterFactory
+ implements IAdapterFactory
+{
+ private static final Class<?>[] ADAPTER_LIST = new Class[] { JpaFile.class };
+
+ public Class<?>[] getAdapterList() {
+ return ADAPTER_LIST;
+ }
+
+ public Object getAdapter(Object adaptableObject, @SuppressWarnings("unchecked") Class adapterType) {
+ if (adaptableObject instanceof IEditorPart) {
+ return this.getAdapter((IEditorPart) adaptableObject, adapterType);
+ }
+ return null;
+ }
+
+ private Object getAdapter(IEditorPart editorPart, Class<?> adapterType) {
+ if (adapterType == JpaFile.class) {
+ return this.getJpaFile(editorPart);
+ }
+ return null;
+ }
+
+ private JpaFile getJpaFile(IEditorPart editorPart) {
+ IEditorInput editorInput = editorPart.getEditorInput();
+ if (editorInput instanceof IFileEditorInput) {
+ return this.getJpaFile((IFileEditorInput) editorInput);
+ }
+ return null;
+ }
+
+ private JpaFile getJpaFile(IFileEditorInput fileEditorInput) {
+ return this.getJpaFile(fileEditorInput.getFile());
+ }
+
+ private JpaFile getJpaFile(IFile file) {
+ return JptCorePlugin.getJpaFile(file);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/GenericJpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/GenericJpaPlatformUiProvider.java
new file mode 100644
index 0000000000..f3b92c1c5f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/GenericJpaPlatformUiProvider.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import java.util.List;
+import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.ResourceUiDefinition;
+import org.eclipse.jpt.ui.details.JpaDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.java.GenericJavaResourceUiDefinition;
+import org.eclipse.jpt.ui.internal.details.java.JavaPersistentAttributeDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.java.JavaPersistentTypeDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.orm.EntityMappingsDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.orm.OrmPersistentAttributeDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.orm.OrmPersistentTypeDetailsProvider;
+import org.eclipse.jpt.ui.internal.details.orm.OrmXmlUiDefinition;
+import org.eclipse.jpt.ui.internal.persistence.details.PersistenceXmlUiDefinition;
+
+/**
+ * All the state in the JPA platform should be "static" (i.e. unchanging once
+ * it is initialized).
+ */
+public class GenericJpaPlatformUiProvider extends AbstractJpaPlatformUiProvider
+{
+
+ // singleton
+ private static final JpaPlatformUiProvider INSTANCE = new GenericJpaPlatformUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static JpaPlatformUiProvider instance() {
+ return INSTANCE;
+ }
+
+ /**
+ * Ensure single instance.
+ */
+ private GenericJpaPlatformUiProvider() {
+ super();
+ }
+
+
+ // ********** details providers **********
+
+ @Override
+ protected void addDetailsProvidersTo(List<JpaDetailsProvider> providers) {
+ providers.add(JavaPersistentTypeDetailsProvider.instance());
+ providers.add(JavaPersistentAttributeDetailsProvider.instance());
+ providers.add(EntityMappingsDetailsProvider.instance());
+ providers.add(OrmPersistentTypeDetailsProvider.instance());
+ providers.add(OrmPersistentAttributeDetailsProvider.instance());
+ }
+
+
+ // ********** resource ui definitions **********
+
+ @Override
+ protected void addResourceUiDefinitionsTo(List<ResourceUiDefinition> defintions) {
+ defintions.add(GenericJavaResourceUiDefinition.instance());
+ defintions.add(OrmXmlUiDefinition.instance());
+ defintions.add(PersistenceXmlUiDefinition.instance());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/ImageRepository.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/ImageRepository.java
new file mode 100644
index 0000000000..97c1ecdc3a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/ImageRepository.java
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ResourceManager;
+import org.eclipse.jpt.ui.JptUiPlugin;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("nls")
+public final class ImageRepository {
+
+ // ***** overlays *****
+ public static Image getErrorOverlayImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, ERROR_OVERLAY_DESCRIPTOR);
+ }
+ private static final ImageDescriptor ERROR_OVERLAY_DESCRIPTOR = buildImageDescriptor("overlays/error.gif");
+
+ public static Image getWarningOverlayImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, WARNING_OVERLAY_DESCRIPTOR);
+ }
+ private static final ImageDescriptor WARNING_OVERLAY_DESCRIPTOR = buildImageDescriptor("overlays/warning.png");
+
+ // ***** buttons *****
+ public static Image getAddButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, ADD_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor ADD_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/add.png");
+
+ public static Image getEditButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, EDIT_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor EDIT_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/edit.png");
+
+ public static Image getDeleteButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, DELETE_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor DELETE_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/delete.png");
+
+ public static Image getMoveUpButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, MOVE_UP_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor MOVE_UP_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/move-up.png");
+
+ public static Image getMoveDownButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, MOVE_DOWN_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor MOVE_DOWN_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/move-down.png");
+
+ public static Image getExpandAllButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, EXPAND_ALL_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor EXPAND_ALL_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/expand-all.png");
+
+ public static Image getCollapseAllButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, COLLAPSE_ALL_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor COLLAPSE_ALL_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/collapse-all.png");
+
+ public static Image getRestoreDefaultsButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, RESTORE_DEFAULTS_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor RESTORE_DEFAULTS_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/restore-defaults.png");
+
+ public static Image getBrowseButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, BROWSE_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor BROWSE_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/browse.png");
+
+ public static Image getMiniBrowseButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, MINI_BROWSE_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor MINI_BROWSE_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/browse-mini.png");
+
+ public static Image getSelectAllButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, SELECT_ALL_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor SELECT_ALL_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/select-all.png");
+
+ public static Image getDeselectAllButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, DESELECT_ALL_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor DESELECT_ALL_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/deselect-all.png");
+
+ public static Image getAddConnectionButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, ADD_CONNECTION_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor ADD_CONNECTION_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/add-connection.gif");
+
+ public static Image getReconnectButtonImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, RECONNECT_BUTTON_DESCRIPTOR);
+ }
+ private static final ImageDescriptor RECONNECT_BUTTON_DESCRIPTOR = buildImageDescriptor("buttons/reconnect.png");
+
+ // ***** objects *****
+ public static Image getFileImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, FILE_DESCRIPTOR);
+ }
+ private static final ImageDescriptor FILE_DESCRIPTOR = buildImageDescriptor("objects/file.png");
+
+ public static Image getFolderImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, FOLDER_DESCRIPTOR);
+ }
+ private static final ImageDescriptor FOLDER_DESCRIPTOR = buildImageDescriptor("objects/folder.png");
+
+ public static Image getPackageImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, PACKAGE_DESCRIPTOR);
+ }
+ private static final ImageDescriptor PACKAGE_DESCRIPTOR = buildImageDescriptor("objects/package.png");
+
+ public static Image getTableImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, TABLE_DESCRIPTOR);
+ }
+ private static final ImageDescriptor TABLE_DESCRIPTOR = buildImageDescriptor("objects/table.gif");
+
+ public static Image getTableObjImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, TABLE_OBJ_DESCRIPTOR);
+ }
+ private static final ImageDescriptor TABLE_OBJ_DESCRIPTOR = buildImageDescriptor("objects/table_obj.gif");
+
+ public static Image getColumnImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, COLUMN_DESCRIPTOR);
+ }
+ private static final ImageDescriptor COLUMN_DESCRIPTOR = buildImageDescriptor("objects/column.gif");
+
+ public static Image getKeyColumnImage(ResourceManager resourceManager) {
+ return getImage(resourceManager, KEY_COLUMN_DESCRIPTOR);
+ }
+ private static final ImageDescriptor KEY_COLUMN_DESCRIPTOR = buildImageDescriptor("objects/columnKey.gif");
+
+
+ private static ImageDescriptor buildImageDescriptor(String fileName) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin(JptUiPlugin.PLUGIN_ID, "images/" + fileName);
+ }
+
+
+ private static Image getImage(ResourceManager resourceManager, ImageDescriptor descriptor) {
+ return resourceManager.createImage(descriptor);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaHelpContextIds.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaHelpContextIds.java
new file mode 100644
index 0000000000..06318dda0f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaHelpContextIds.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.jpt.ui.JptUiPlugin;
+
+/**
+ * Help context ids for the Dali JPA UI.
+ * <p>
+ * This interface contains constants only; it is not intended to be
+ * implemented.
+ * </p>
+ */
+@SuppressWarnings("nls")
+public interface JpaHelpContextIds {
+
+ //ContextID prefix
+ public static final String PREFIX = JptUiPlugin.PLUGIN_ID + ".";
+
+ //Persistent Type composites
+ public static final String ENTITY_ACCESS_TYPE = PREFIX + "entity_accessType";
+ public static final String ENTITY_ATTRIBUTE_OVERRIDES = PREFIX + "entity_attributeOverrides";
+ public static final String ENTITY_ATTRIBUTE_OVERRIDES_COLUMN = PREFIX + "entity_attributeOverridesColumn";
+ public static final String ENTITY_CATALOG = PREFIX + "entity_catalog";
+ public static final String ENTITY_INHERITANCE_STRATEGY = PREFIX + "entity_inheritanceStrategy";
+ public static final String ENTITY_INHERITANCE_DISCRIMINATOR_TYPE = PREFIX + "entity_inheritanceDiscriminatorType";
+ public static final String ENTITY_INHERITANCE_DISCRIMINATOR_COLUMN = PREFIX + "entity_inheritanceDiscriminatorColumn";
+ public static final String ENTITY_INHERITANCE_DISCRIMINATOR_VALUE = PREFIX + "entity_inheritanceDiscriminatorValue";
+ public static final String ENTITY_NAME = PREFIX + "entity_name";
+ public static final String ENTITY_ORM_PACKAGE = PREFIX + "orm_package";
+ public static final String ENTITY_ORM_SCHEMA = PREFIX + "orm_schema";
+ public static final String ENTITY_ORM_CATALOG = PREFIX + "orm_catalog";
+ public static final String ENTITY_ORM_ACCESS = PREFIX + "orm_access";
+ public static final String ENTITY_ORM_DELIMITED_IDENTIFIERS = PREFIX + "orm_delimited_identifiers";
+ public static final String ENTITY_ORM_CASCADE = PREFIX + "orm_cascade";
+ public static final String ENTITY_ORM_XML = PREFIX + "orm_xml";
+ public static final String ENTITY_SCHEMA = PREFIX + "entity_schema";
+ public static final String ENTITY_TABLE = PREFIX + "entity_table";
+ public static final String ENTITY_CACHEABLE = PREFIX + "entity_cacheable";
+
+ //Persistent Attribute composites
+ public static final String MAPPING_CASCADE_TYPE = PREFIX + "mapping_cascadeType";
+ public static final String MAPPING_COLUMN = PREFIX + "mapping_column";
+ public static final String MAPPING_COLUMN_INSERTABLE = PREFIX + "mapping_columnInsertable";
+ public static final String MAPPING_COLUMN_LENGTH = PREFIX + "mapping_columnLength";
+ public static final String MAPPING_COLUMN_NULLABLE = PREFIX + "mapping_columnNullable";
+ public static final String MAPPING_COLUMN_PRECISION = PREFIX + "mapping_columnPrecision";
+ public static final String MAPPING_COLUMN_SCALE = PREFIX + "mapping_columnScale";
+ public static final String MAPPING_COLUMN_TABLE = PREFIX + "mapping_columnTable";
+ public static final String MAPPING_COLUMN_UNIQUE = PREFIX + "mapping_columnUnique";
+ public static final String MAPPING_COLUMN_UPDATABLE= PREFIX + "mapping_columnUpdatable";
+ public static final String MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES = PREFIX + "mapping_embeddedAttributeOverrides";
+ public static final String MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES_COLUMN = PREFIX + "mapping_embeddedAttributeOverridesColumn";
+ public static final String MAPPING_ENUMERATED = PREFIX + "mapping_enumerated";
+ public static final String MAPPING_FETCH_TYPE = PREFIX + "mapping_fetchType";
+ public static final String MAPPING_GENERATED_VALUE_STRATEGY = PREFIX + "mapping_generatedValueStrategy";
+ public static final String MAPPING_GENERATED_VALUE_GENERATOR_NAME = PREFIX + "mapping_generatedValueGeneratorName";
+ public static final String MAPPING_JOIN_COLUMN_NAME = PREFIX + "mapping_joinColumnName";
+ public static final String MAPPING_JOIN_REFERENCED_COLUMN = PREFIX + "mapping_joinReferencedColumn";
+ public static final String MAPPING_JOIN_TABLE_NAME = PREFIX + "mapping_joinTableName";
+ public static final String MAPPING_JOIN_TABLE_SCHEMA = PREFIX + "mapping_joinTableSchema";
+ public static final String MAPPING_JOIN_TABLE_CATALOG = PREFIX + "mapping_joinTableCatalog";
+ public static final String MAPPING_JOIN_TABLE_COLUMNS = PREFIX + "mapping_joinTableJoinColumns";
+ public static final String MAPPING_JOIN_TABLE_INVERSE_JOIN_COLUMNS = PREFIX + "mapping_joinTableInverseJoinColumns";
+ public static final String MAPPING_LOB = PREFIX + "mapping_lob";
+ public static final String MAPPING_MAP_AS = PREFIX + "mapping_mapAs";
+ public static final String MAPPING_MAPPED_BY = PREFIX + "mapping_mappedBy";
+ public static final String MAPPING_NAMED_NATIVE_QUERIES = "named_native_queries";
+ public static final String MAPPING_NAMED_QUERIES = PREFIX + "named_queries";
+ public static final String MAPPING_OPTIONAL = PREFIX + "mapping_optional";
+ public static final String MAPPING_ORDER_BY = PREFIX + "mapping_orderBy";
+ public static final String MAPPING_ORDER_BY_NO_ORDERING = PREFIX + "mapping_orderByNoOrdering";
+ public static final String MAPPING_ORDER_BY_PRIMARY_KEY_ORDERING = PREFIX + "mapping_orderByPrimaryKeyOrdering";
+ public static final String MAPPING_ORDER_BY_CUSTOM_ORDERING = PREFIX + "mapping_orderByCustomOrdering";
+ public static final String MAPPING_ORDER_COLUMN_ORDERING = PREFIX + "mapping_orderColumnOrdering";
+ public static final String MAPPING_ORDER_COLUMN_ORDERING_COLUMN = PREFIX + "mapping_orderColumnOrderingColumn";
+ public static final String MAPPING_PRIMARY_KEY_GENERATION = PREFIX + "mapping_primaryKeyGeneration";
+ public static final String MAPPING_SEQUENCE_GENERATOR = PREFIX + "mapping_sequenceGenerator";
+ public static final String MAPPING_SEQUENCE_GENERATOR_NAME = PREFIX + "mapping_sequenceGeneratorName";
+ public static final String MAPPING_SEQUENCE_GENERATOR_SEQUENCE = PREFIX + "mapping_sequenceGeneratorSequence";
+ public static final String MAPPING_TABLE_GENERATOR = PREFIX + "mapping_tableGenerator";
+ public static final String MAPPING_TABLE_GENERATOR_CATALOG = PREFIX + "mapping_tableGeneratorCatalog";
+ public static final String MAPPING_TABLE_GENERATOR_NAME = PREFIX + "mapping_tableGeneratorName";
+ public static final String MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN = PREFIX + "mapping_tableGeneratorPrimaryKeyColumn";
+ public static final String MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN_VALUE = PREFIX + "mapping_tableGeneratorPrimaryKeyColumnValue";
+ public static final String MAPPING_TABLE_GENERATOR_SCHEMA = PREFIX + "mapping_tableGeneratorSchema";
+ public static final String MAPPING_TABLE_GENERATOR_TABLE= PREFIX + "mapping_tableGeneratorTable";
+ public static final String MAPPING_TABLE_GENERATOR_VALUE_COLUMN = PREFIX + "mapping_tableGeneratorValueColumn";
+ public static final String MAPPING_TARGET_ENTITY = PREFIX + "mapping_targetEntity";
+ public static final String MAPPING_TEMPORAL = PREFIX + "mapping_temporal";
+
+ //Project properties
+ public static final String PROPERTIES_JAVA_PERSISTENCE = PREFIX + "properties_javaPersistence";
+ public static final String PROPERTIES_JAVA_PERSISTENCE_CONNECTION = PREFIX + "properties_javaPersistenceConnection";
+ public static final String PROPERTIES_JAVA_PERSISTENCE_SCHEMA = PREFIX + "properties_javaPersistenceSchema";
+ public static final String PROPERTIES_JAVA_PERSISTENCE_METAMODEL = PREFIX + "properties_canonicalMetamodel";
+
+ //Dialogs, Wizards
+ public static final String DIALOG_CREATE_ORM = PREFIX + "dialog_createORM";
+ public static final String DIALOG_EDIT_INVERSE_JOIN_COLUNN = PREFIX + "dialog_editInverseJoinColumn";
+ public static final String DIALOG_GENERATE_ENTITIES = PREFIX + "dialog_generateEntities";
+ public static final String DIALOG_GENERATE_ENTITIES_SOURCE = PREFIX + "dialog_generateEntities_source";
+ public static final String DIALOG_GENERATE_ENTITIES_PACKAGE = PREFIX + "dialog_generateEntities_package";
+ public static final String DIALOG_GENERATE_ENTITIES_TABLES = PREFIX + "dialog_generateEntities_tables";
+ public static final String DIALOG_JPA_FACET = PREFIX + "dialog_JPAFacet";
+ public static final String DIALOG_JPA_PLATFORM = PREFIX + "dialog_JPAPlatform";
+
+ //New JPA Project wizard:
+ public static final String NEW_JPA_PROJECT = PREFIX + "dialog_newJPAProject";
+ public static final String NEW_JPA_PROJECT_CONTENT_PAGE_CLASSPATH = PREFIX + "dialog_addJavaPersistence_classpath";
+ public static final String NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE = PREFIX + "dialog_addJavaPersistence_database";
+ public static final String NEW_JPA_PROJECT_CONTENT_PAGE_PACKAGING = PREFIX + "dialog_addJavaPersistence_packaging";
+ public static final String NEW_JPA_PROJECT_CREATION_PAGE = PREFIX + "dialog_addJavaPersistence";
+ public static final String NEW_JPA_PROJECT_JPA_FACET = PREFIX + "dialog_newJPAProjectFacet";
+
+ //Other
+ public static final String PERSISTENCE_OUTLINE = PREFIX + "persistenceOutline";
+
+ //Persistence Xml Editor
+ public static final String PERSISTENCE_XML_CONNECTION = PREFIX + "persistence_connection";
+ public static final String PERSISTENCE_XML_GENERAL = PREFIX + "persistence_general";
+ public static final String PERSISTENCE_XML_PROPERTIES = PREFIX + "persistence_properties";
+ public static final String PERSISTENCE_XML_SOURCE = PREFIX + "persistence_source";
+
+ //New JPA Entity wizard
+ public static final String NEW_JPA_ENTITY_ENTITY_CLASS = PREFIX + "dialog_entityClassPage";
+ public static final String NEW_JPA_ENTITY_ENTITY_PROPERTIES = PREFIX + "dialog_entityPropertiesPage";
+
+ //Generate Entities Wizard
+ public static final String GENERATE_ENTITIES_WIZARD_ASSOCIATION_CARDINALITY = PREFIX + "dialog_associationCardinalityPage";
+ public static final String GENERATE_ENTITIES_WIZARD_ASSOCIATION_TABLES = PREFIX + "dialog_associationTablesPage";
+ public static final String GENERATE_ENTITIES_WIZARD_CUSTOMIZE_DEFAULT_ENTITY_GENERATION = PREFIX + "dialog_customizeDefaultEntityGeneration";
+ public static final String GENERATE_ENTITIES_WIZARD_CUSTOMIZE_INDIVIDUAL_ENTITIES = PREFIX + "dialog_customizeIndividualEntities";
+ public static final String GENERATE_ENTITIES_WIZARD_JOIN_COLUMNS = PREFIX + "dialog_joinColumnsPage";
+ public static final String GENERATE_ENTITIES_WIZARD_SELECT_CASCADE = PREFIX + "dialog_selectCascade";
+ public static final String GENERATE_ENTITIES_WIZARD_SELECT_TABLES = PREFIX + "dialog_selectTablesPage";
+ public static final String GENERATE_ENTITIES_WIZARD_TABLE_ASSOCIATIONS = PREFIX + "dialog_tableAssociationsPage";
+
+ public static final String MAPPING_COLLECTION_TABLE_NAME = PREFIX + "mapping_collectionTableName";
+ public static final String MAPPING_COLLECTION_TABLE_SCHEMA = PREFIX + "mapping_collectionTableSchema";
+ public static final String MAPPING_COLLECTION_TABLE_CATALOG = PREFIX + "mapping_collectionTableCatalog";
+
+ public static final String MAPPING_ELEMENT_COLLECTION_TARGET_CLASS = PREFIX + "mapping_elementCollectionTargetClass";
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaJavaCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaJavaCompletionProposalComputer.java
new file mode 100644
index 0000000000..70357675df
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaJavaCompletionProposalComputer.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.CompletionContext;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext;
+import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer;
+import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext;
+import org.eclipse.jface.text.contentassist.CompletionProposal;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jpt.core.JpaFile;
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.core.context.java.JavaPersistentType;
+import org.eclipse.jpt.core.internal.utility.jdt.ASTTools;
+import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.jpt.utility.internal.StringTools;
+
+/**
+ * JPA Java code-completion proposal computer
+ */
+public class JpaJavaCompletionProposalComputer implements IJavaCompletionProposalComputer {
+
+ public JpaJavaCompletionProposalComputer() {
+ super();
+ }
+
+ public void sessionStarted() {
+ // do nothing
+ }
+
+ @SuppressWarnings("unchecked")
+ public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
+ return (context instanceof JavaContentAssistInvocationContext) ?
+ this.computeCompletionProposals((JavaContentAssistInvocationContext) context)
+ :
+ Collections.emptyList();
+ }
+
+ /**
+ * We fail silently here because (it seems) <em>expected</em> exceptions occur
+ * more frequently than intermittent <em>unexpected</em> exceptions that might
+ * merit investigation (and a logged stacktrace might be the only hint as
+ * to what happened).
+ * <p>
+ * We will get an <em>expected</em> exception (typically a {@link NullPointerException NPE})
+ * here if the user:<ol>
+ * <li>modifies the Java source file in a way that puts it drastically out
+ * of sync with the Dali context model (e.g. deleting a field or
+ * annotation)
+ * <li>immediately invokes Content Assist (typically <code>Ctrl+Space</code>)
+ * </ol>
+ * The AST we build here will be based on the just-modified Java source; but,
+ * since the user moved quickly and we will not have yet received any Java
+ * change notification (since we only get a Java change notification when
+ * the user has paused typing for at least 0.5 seconds), the context model
+ * will still be based on the unmodified Java source. As the new AST is
+ * passed down through the context model to the resource model all the code
+ * expects to find the AST in sync with the model. When this is not the
+ * case (e.g. a field in the resource model is no longer present in the AST
+ * because the user has deleted it or modified the code in such a way that
+ * the parser can no longer detect the field) the model will probably choke
+ * when it cannot find the corresponding AST node.
+ * <p>
+ * It seems reasonable, in these situations, to simply return no completion
+ * proposals. If the user simply waits a moment and tries again, we will be
+ * able to successfully calculate some proposals.
+ * <p>
+ * ~bjv
+ */
+ private List<ICompletionProposal> computeCompletionProposals(JavaContentAssistInvocationContext context) {
+ try {
+ return this.computeCompletionProposals_(context);
+ } catch (Exception ex) {
+ // JptCorePlugin.log(ex); // don't log "expected" exceptions (?)
+ return Collections.emptyList();
+ }
+ }
+
+ private List<ICompletionProposal> computeCompletionProposals_(JavaContentAssistInvocationContext context) {
+ ICompilationUnit cu = context.getCompilationUnit();
+ if (cu == null) {
+ return Collections.emptyList();
+ }
+
+ IFile file = this.getCorrespondingResource(cu);
+ if (file == null) {
+ return Collections.emptyList();
+ }
+
+ JpaFile jpaFile = JptCorePlugin.getJpaFile(file);
+ if (jpaFile == null) {
+ return Collections.emptyList();
+ }
+
+ Collection<JpaStructureNode> rootStructureNodes = CollectionTools.collection(jpaFile.rootStructureNodes());
+ if (rootStructureNodes.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ CompletionContext cc = context.getCoreContext();
+
+ // the context's "token" is really a sort of "prefix" - it does NOT
+ // correspond to the "start" and "end" we get below...
+ char[] prefix = cc.getToken();
+ Filter<String> filter = ((prefix == null) ? Filter.Null.<String>instance() : new IgnoreCasePrefixFilter(prefix));
+ // the token "start" is the offset of the token's first character
+ int tokenStart = cc.getTokenStart();
+ // the token "end" is the offset of the token's last character (yuk)
+ int tokenEnd = cc.getTokenEnd();
+ if (tokenStart == -1) { // not sure why this happens - see bug 242286
+ return Collections.emptyList();
+ }
+
+// System.out.println("prefix: " + ((prefix == null) ? "[null]" : new String(prefix)));
+// System.out.println("token start: " + tokenStart);
+// System.out.println("token end: " + tokenEnd);
+// String source = cu.getSource();
+// String token = source.substring(Math.max(0, tokenStart), Math.min(source.length(), tokenEnd + 1));
+// System.out.println("token: =>" + token + "<=");
+// String snippet = source.substring(Math.max(0, tokenStart - 20), Math.min(source.length(), tokenEnd + 21));
+// System.out.println("surrounding snippet: =>" + snippet + "<=");
+
+ // TODO move this parser call into the model...
+ CompilationUnit astRoot = ASTTools.buildASTRoot(cu);
+ List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
+ for (JpaStructureNode structureNode : rootStructureNodes) {
+ for (Iterator<String> stream = ((JavaPersistentType) structureNode).javaCompletionProposals(context.getInvocationOffset(), filter, astRoot); stream.hasNext(); ) {
+ String s = stream.next();
+ proposals.add(new CompletionProposal(s, tokenStart, tokenEnd - tokenStart + 1, s.length()));
+ }
+ }
+ return proposals;
+ }
+
+ private IFile getCorrespondingResource(ICompilationUnit cu) {
+ try {
+ return (IFile) cu.getCorrespondingResource();
+ } catch (JavaModelException ex) {
+ JptCorePlugin.log(ex);
+ return null;
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
+ return Collections.emptyList();
+ }
+
+ public String getErrorMessage() {
+ return null;
+ }
+
+ public void sessionEnded() {
+ // do nothing
+ }
+
+ private static class IgnoreCasePrefixFilter implements Filter<String> {
+ private final char[] prefix;
+ IgnoreCasePrefixFilter(char[] prefix) {
+ super();
+ this.prefix = prefix;
+ }
+ public boolean accept(String s) {
+ return StringTools.stringStartsWithIgnoreCase(s.toCharArray(), this.prefix);
+ }
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaMappingImageHelper.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaMappingImageHelper.java
new file mode 100644
index 0000000000..e96c6dba41
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaMappingImageHelper.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.jpa2.MappingKeys2_0;
+import org.eclipse.jpt.ui.JptUiPlugin;
+import org.eclipse.swt.graphics.Image;
+
+public class JpaMappingImageHelper
+{
+
+ public static Image imageForTypeMapping(String mappingKey) {
+ return JptUiPlugin.getImage(iconKeyForTypeMapping(mappingKey));
+ }
+
+ public static String iconKeyForTypeMapping(String mappingKey) {
+ if (MappingKeys.NULL_TYPE_MAPPING_KEY == mappingKey) {
+ return JptUiIcons.NULL_TYPE_MAPPING;
+ }
+ else if (MappingKeys.ENTITY_TYPE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.ENTITY;
+ }
+ else if (MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.EMBEDDABLE;
+ }
+ else if (MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.MAPPED_SUPERCLASS;
+ }
+ return null;
+ }
+
+ public static Image imageForAttributeMapping(String mappingKey) {
+ return JptUiPlugin.getImage(iconKeyForAttributeMapping(mappingKey));
+ }
+
+ public static String iconKeyForAttributeMapping(String mappingKey) {
+ if (MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY == mappingKey) {
+ return JptUiIcons.NULL_ATTRIBUTE_MAPPING;
+ }
+ else if (MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.BASIC;
+ }
+ else if (MappingKeys.ID_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.ID;
+ }
+ else if (MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.VERSION;
+ }
+ else if (MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.EMBEDDED_ID;
+ }
+ else if (MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.EMBEDDED;
+ }
+ else if (MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.ONE_TO_ONE;
+ }
+ else if (MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.ONE_TO_MANY;
+ }
+ else if (MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.MANY_TO_ONE;
+ }
+ else if (MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.MANY_TO_MANY;
+ }
+ else if (MappingKeys2_0.ELEMENT_COLLECTION_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.ELEMENT_COLLECTION;
+ }
+ else if (MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY.equals(mappingKey)) {
+ return JptUiIcons.TRANSIENT;
+ }
+ //return the JPA_CONTENT icon instead of null, might as well have an icon if one is not defined
+ return JptUiIcons.JPA_CONTENT;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java
new file mode 100644
index 0000000000..4cbea01c12
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.draw2d.ImageUtilities;
+import org.eclipse.jpt.ui.JptUiPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+
+@SuppressWarnings("nls")
+public class JptUiIcons
+{
+ /**
+ * Creates and returns a new SWT image that is a grayed out version of the image
+ * corresponding to the passed in key. Stores this gray image in the JptUiPlugin
+ * ImageRegistry with -gray appended to the key.
+ * Clients of this method should not dispose of the image.
+ *
+ * @return a new grayed out image
+ */
+ public static Image ghost(String key) {
+ Image existingImage = JptUiPlugin.instance().getImageRegistry().get(key + "-gray");
+ if (existingImage != null) {
+ return existingImage;
+ }
+
+ Image grayImage = buildGhostImage(key);
+ JptUiPlugin.instance().getImageRegistry().put(key + "-gray", grayImage);
+ return grayImage;
+ }
+
+ private static Image buildGhostImage(String key) {
+ Image originalImage = JptUiPlugin.getImage(key);
+ Color lightGray = new Color(originalImage.getDevice(), 223, 223, 223);
+ ImageData imageData = ImageUtilities.createShadedImage(originalImage, lightGray);
+
+ Image shadedImage = new Image(originalImage.getDevice(), imageData);
+ Image grayImage = new Image(originalImage.getDevice(), shadedImage, SWT.IMAGE_GRAY);
+
+ lightGray.dispose();
+ shadedImage.dispose();
+ return grayImage;
+ }
+
+
+ // **************** General JPA icons **************************************
+
+ public static final String JPA_CONTENT = "full/obj16/jpa-content";
+
+ public static final String JPA_FILE = "full/obj16/jpa-file";
+
+ public static final String JAR_FILE = "full/obj16/jpa-jar-file";
+
+ public static final String WARNING = "full/obj16/warning";
+
+
+ // **************** Wizard icons *******************************************
+
+ public static final String JPA_WIZ_BANNER = "full/wizban/jpa_facet_wizban";
+
+ public static final String ENTITY_WIZ_BANNER = "full/wizban/new_entity_wizban";
+
+ public static final String JPA_FILE_WIZ_BANNER = "full/wizban/new_jpa_file_wizban";
+
+
+ // **************** Persistence icons **************************************
+
+ public static final String PERSISTENCE = "full/obj16/persistence";
+
+ public static final String PERSISTENCE_UNIT = "full/obj16/persistence-unit";
+
+ public static final String MAPPING_FILE_REF = "full/obj16/jpa-file";
+
+ public static final String CLASS_REF = "full/obj16/null-type-mapping";
+
+ public static final String JAR_FILE_REF = "full/obj16/jpa-jar-file";
+
+
+ // **************** Orm icons **********************************************
+
+ public static final String ENTITY_MAPPINGS = "full/obj16/entity-mappings";
+
+
+ // **************** Orm/Java common icons **********************************
+
+ public static final String ENTITY = "full/obj16/entity";
+
+ public static final String EMBEDDABLE = "full/obj16/embeddable";
+
+ public static final String MAPPED_SUPERCLASS = "full/obj16/mapped-superclass";
+
+ public static final String NULL_TYPE_MAPPING = "full/obj16/null-type-mapping";
+
+ public static final String ID = "full/obj16/id";
+
+ public static final String EMBEDDED_ID = "full/obj16/embedded-id";
+
+ public static final String BASIC = "full/obj16/basic";
+
+ public static final String VERSION = "full/obj16/version";
+
+ public static final String MANY_TO_ONE = "full/obj16/many-to-one";
+
+ public static final String ONE_TO_MANY = "full/obj16/one-to-many";
+
+ public static final String ONE_TO_ONE = "full/obj16/one-to-one";
+
+ public static final String MANY_TO_MANY = "full/obj16/many-to-many";
+
+ public static final String ELEMENT_COLLECTION = "full/obj16/element-collection";
+
+ public static final String EMBEDDED = "full/obj16/embedded";
+
+ public static final String TRANSIENT = "full/obj16/transient";
+
+ public static final String NULL_ATTRIBUTE_MAPPING = "full/obj16/null-attribute-mapping";
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java
new file mode 100644
index 0000000000..2d7c45f46a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Localized messages used by Dali UI.
+ *
+ * @version 2.3
+ * @since 1.0
+ */
+public class JptUiMessages {
+
+ public static String ChooserPane_browseButton;
+ public static String AccessTypeComposite_access;
+ public static String AccessTypeComposite_field;
+ public static String AccessTypeComposite_property;
+ public static String AddPersistentAttributeDialog_attributeLabel;
+ public static String AddPersistentAttributeDialog_mappingLabel;
+ public static String AddPersistentAttributeDialog_noMappingKeyError;
+ public static String AddPersistentAttributeDialog_title;
+ public static String AddPersistentClassDialog_classDialog_message;
+ public static String AddPersistentClassDialog_classDialog_title;
+ public static String AddPersistentClassDialog_classLabel;
+ public static String AddPersistentClassDialog_classNotFoundWarning;
+ public static String AddPersistentClassDialog_duplicateClassWarning;
+ public static String AddPersistentClassDialog_mappingLabel;
+ public static String AddPersistentClassDialog_noClassError;
+ public static String AddPersistentClassDialog_noMappingKeyError;
+ public static String AddPersistentClassDialog_title;
+ public static String AddRemovePane_AddButtonText;
+ public static String AddRemovePane_RemoveButtonText;
+ public static String ClassChooserPane_dialogMessage;
+ public static String ClassChooserPane_dialogTitle;
+ public static String DatabaseSchemaWizardPage_title;
+ public static String DatabaseSchemaWizardPage_desc;
+ public static String DatabaseSchemaWizardPage_schemaSettings;
+ public static String DatabaseSchemaWizardPage_addConnectionToProject;
+ public static String DatabaseSchemaWizardPage_connectLink;
+ public static String DatabaseSchemaWizardPage_schema;
+ public static String DatabaseSchemaWizardPage_connectionInfo;
+ public static String DatabaseSchemaWizardPage_schemaInfo;
+ public static String EnumComboViewer_default;
+ public static String EnumComboViewer_defaultWithDefault;
+ public static String Error_openingEditor;
+ public static String General_browse;
+ public static String General_revert;
+ public static String General_deselectAll;
+ public static String General_selectAll;
+ public static String GenerateDDLWizard_title;
+ public static String GenerateEntitiesWizard_generateEntities;
+ public static String GenerateEntitiesWizardPage_chooseEntityTable;
+ public static String GenerateEntitiesWizardPage_entityNameColumn;
+ public static String GenerateEntitiesWizardPage_generateEntities;
+ public static String GenerateEntitiesWizardPage_synchronizeClasses;
+ public static String GenerateEntitiesWizardPage_tableColumn;
+ public static String GenerateEntitiesWizardPage_tables;
+ public static String GenericPlatformUiDialog_notSupportedMessageText;
+ public static String GenericPlatformUiDialog_notSupportedMessageTitle;
+ public static String JpaContent_label;
+ public static String JpaDetailsView_viewNotAvailable;
+ public static String JpaFacetWizardPage_addDriverLibraryLabel;
+ public static String JpaFacetWizardPage_connectionLabel;
+ public static String JpaFacetWizardPage_connectionLink;
+ public static String JpaFacetWizardPage_connectLink;
+ public static String JpaFacetWizardPage_createOrmXmlButton;
+ public static String JpaFacetWizardPage_defaultCatalogLabel;
+ public static String JpaFacetWizardPage_defaultSchemaLabel;
+ public static String JpaFacetWizardPage_description;
+ public static String JpaFacetWizardPage_discoverClassesButton;
+ public static String JpaFacetWizardPage_driverLibraryLabel;
+ public static String JpaFacetWizardPage_metamodelSourceFolderLink;
+ public static String JpaFacetWizardPage_jpaImplementationLabel;
+ public static String JpaFacetWizardPage_jpaPrefsLink;
+ public static String JpaFacetWizardPage_listClassesButton;
+ public static String JpaFacetWizardPage_metamodelLabel;
+ public static String JpaFacetWizardPage_none;
+ public static String JpaFacetWizardPage_overrideDefaultCatalogLabel;
+ public static String JpaFacetWizardPage_overrideDefaultSchemaLabel;
+ public static String JpaFacetWizardPage_persistentClassManagementLabel;
+ public static String JpaFacetWizardPage_platformLabel;
+ public static String JpaFacetWizardPage_specifyLibLabel;
+ public static String JpaFacetWizardPage_title;
+ public static String JpaFacetWizardPage_userLibsLink;
+ public static String JpaFacetWizardPage_userServerLibLabel;
+ public static String JpaStructureView_linkWithEditorDesc;
+ public static String JpaStructureView_linkWithEditorText;
+ public static String JpaStructureView_linkWithEditorTooltip;
+ public static String JpaStructureView_structureNotAvailable;
+ public static String JpaStructureView_numItemsSelected;
+ public static String MappingFileWizard_title;
+ public static String MappingFileWizardPage_title;
+ public static String MappingFileWizardPage_desc;
+ public static String MappingFileWizardPage_projectLabel;
+ public static String MappingFileWizardPage_sourceFolderLabel;
+ public static String MappingFileWizardPage_filePathLabel;
+ public static String MappingFileWizardPage_accessLabel;
+ public static String MappingFileWizardPage_addToPersistenceUnitButton;
+ public static String MappingFileWizardPage_persistenceUnitLabel;
+ public static String MappingFileWizardPage_incorrectSourceFolderError;
+ public static String MappingFileWizardPage_accessLabel_sourceFolderDialogTitle;
+ public static String MappingFileWizardPage_accessLabel_sourceFolderDialogDesc;
+ public static String NewJpaProjectWizard_firstPage_description;
+ public static String NewJpaProjectWizard_firstPage_title;
+ public static String NewJpaProjectWizard_title;
+ public static String OrmItemLabelProviderFactory_entityMappingsLabel;
+ public static String OverwriteConfirmerDialog_text;
+ public static String OverwriteConfirmerDialog_title;
+ public static String PackageChooserPane_dialogMessage;
+ public static String PackageChooserPane_dialogTitle;
+ public static String PersistenceItemLabelProviderFactory_persistenceLabel;
+ public static String EntitiesGenerator_jobName;
+ public static String JpaPreferencesPage_Description;
+ public static String JpaProblemSeveritiesPage_Description;
+ public static String JpaProblemSeveritiesPage_Error;
+ public static String JpaProblemSeveritiesPage_Ignore;
+ public static String JpaProblemSeveritiesPage_Info;
+ public static String JpaProblemSeveritiesPage_Warning;
+
+ private static final String BUNDLE_NAME = "jpt_ui"; //$NON-NLS-1$
+ private static final Class<?> BUNDLE_CLASS = JptUiMessages.class;
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS);
+ }
+
+ private JptUiMessages() {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiValidationPreferenceMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiValidationPreferenceMessages.java
new file mode 100644
index 0000000000..4a3fb3bad4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiValidationPreferenceMessages.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.osgi.util.NLS;
+
+public class JptUiValidationPreferenceMessages {
+
+ public static String PROJECT_LEVEL_CATEGORY;
+ public static String NO_JPA_PROJECT;
+ public static String PROJECT_NO_CONNECTION;
+ public static String PROJECT_INVALID_CONNECTION;
+ public static String PROJECT_INACTIVE_CONNECTION;
+ public static String PROJECT_NO_PERSISTENCE_XML;
+
+ public static String XML_VERSION_NOT_LATEST;
+
+ public static String PROJECT_MULTIPLE_PERSISTENCE_XML;
+ public static String PERSISTENCE_NO_PERSISTENCE_UNIT;
+ public static String PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS;
+ public static String PERSISTENCE_XML_INVALID_CONTENT;
+
+ public static String PERSISTENCE_UNIT_LEVEL_CATEGORY;
+ public static String PERSISTENCE_UNIT_UNSPECIFIED_MAPPING_FILE;
+ public static String PERSISTENCE_UNIT_UNSUPPORTED_MAPPING_FILE_CONTENT;
+ public static String PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE;
+ public static String PERSISTENCE_UNIT_INVALID_MAPPING_FILE;
+ public static String PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE;
+ public static String PERSISTENCE_UNIT_UNSPECIFIED_CLASS;
+ public static String PERSISTENCE_UNIT_NONEXISTENT_CLASS;
+ public static String PERSISTENCE_UNIT_INVALID_CLASS;
+ public static String PERSISTENCE_UNIT_DUPLICATE_CLASS;
+ public static String PERSISTENCE_UNIT_REDUNDANT_CLASS;
+ public static String PERSISTENCE_UNIT_DUPLICATE_JAR_FILE;
+ public static String PERSISTENCE_UNIT_UNSPECIFIED_JAR_FILE;
+ public static String PERSISTENCE_UNIT_JAR_FILE_DEPLOYMENT_PATH_WARNING;
+ public static String PERSISTENCE_UNIT_NONEXISTENT_JAR_FILE;
+ public static String MAPPING_FILE_EXTRANEOUS_PERSISTENCE_UNIT_DEFAULTS;
+ public static String PERSISTENT_TYPE_MAPPED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT;
+ public static String PERSISTENT_TYPE_ANNOTATED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT;
+ public static String PERSISTENT_TYPE_UNSPECIFIED_CLASS;
+ public static String PERSISTENT_TYPE_UNRESOLVED_CLASS;
+
+ public static String TYPE_LEVEL_CATEGORY;
+ public static String ENTITY_NO_PK;
+ public static String ENTITY_SINGLE_TABLE_DESCENDANT_DEFINES_TABLE;
+ public static String ENTITY_ABSTRACT_TABLE_PER_CLASS_DEFINES_TABLE;
+ public static String ENTITY_ABSTRACT_DISCRIMINATOR_VALUE_DEFINED;
+ public static String ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_VALUE_DEFINED;
+ public static String ENTITY_NON_ROOT_DISCRIMINATOR_COLUMN_DEFINED;
+ public static String ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_COLUMN_DEFINED;
+ public static String PERSISTENT_ATTRIBUTE_UNSPECIFIED_NAME;
+ public static String PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME;
+ public static String PERSISTENT_ATTRIBUTE_INHERITED_ATTRIBUTES_NOT_SUPPORTED;
+ public static String PERSISTENT_ATTRIBUTE_INVALID_MAPPING;
+ public static String PERSISTENT_ATTRIBUTE_FINAL_FIELD;
+ public static String PERSISTENT_ATTRIBUTE_PUBLIC_FIELD;
+
+ public static String ATTRIBUTE_LEVEL_CATEGORY;
+ public static String MAPPING_UNRESOLVED_MAPPED_BY;
+ public static String MAPPING_INVALID_MAPPED_BY;
+ public static String MAPPING_MAPPED_BY_WITH_JOIN_TABLE;
+ public static String MAPPING_MAPPED_BY_ON_BOTH_SIDES;
+ public static String TARGET_ENTITY_NOT_DEFINED;
+ public static String TARGET_ENTITY_IS_NOT_AN_ENTITY;
+ public static String MAPS_ID_VALUE_NOT_SPECIFIED;
+ public static String MAPS_ID_VALUE_NOT_RESOLVED;
+ public static String MAPS_ID_VALUE_INVALID;
+ public static String ORDER_COLUMN_AND_ORDER_BY_BOTH_SPECIFIED;
+ public static String ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED;
+ public static String ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE;
+ public static String ELEMENT_COLLECTION_MAP_KEY_CLASS_NOT_DEFINED;
+
+ public static String DATABASE_CATEGORY;
+ public static String TABLE_CATEGORY;
+ public static String COLUMN_CATEGORY;
+ public static String OVERRIDES_CATEGORY;
+ public static String IMPLIED_ATTRIBUTE_LEVEL_CATEGORY;
+
+ public static String TABLE_UNRESOLVED_CATALOG;
+ public static String TABLE_UNRESOLVED_SCHEMA;
+ public static String TABLE_UNRESOLVED_NAME;
+ public static String SECONDARY_TABLE_UNRESOLVED_CATALOG;
+ public static String SECONDARY_TABLE_UNRESOLVED_SCHEMA;
+ public static String SECONDARY_TABLE_UNRESOLVED_NAME;
+ public static String JOIN_TABLE_UNRESOLVED_CATALOG;
+ public static String JOIN_TABLE_UNRESOLVED_SCHEMA;
+ public static String JOIN_TABLE_UNRESOLVED_NAME;
+ public static String COLUMN_TABLE_NOT_VALID;
+ public static String COLUMN_UNRESOLVED_TABLE;
+ public static String COLUMN_UNRESOLVED_NAME;
+ public static String JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String INVERSE_JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String INVERSE_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String MAP_KEY_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID;
+
+ public static String COLLECTION_TABLE_UNRESOLVED_CATALOG;
+ public static String COLLECTION_TABLE_UNRESOLVED_SCHEMA;
+ public static String COLLECTION_TABLE_UNRESOLVED_NAME;
+ public static String ORDER_COLUMN_UNRESOLVED_NAME;
+
+ public static String VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_CATALOG;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_TABLE;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_TARGET_ENTITY_IS_NOT_AN_ENTITY;
+ public static String VIRTUAL_ATTRIBUTE_TARGET_ENTITY_NOT_DEFINED;
+ public static String VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_CATALOG;
+ public static String VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_SCHEMA;
+ public static String VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_ORDER_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED;
+ public static String VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE;
+ public static String VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_MAP_KEY_CLASS_NOT_DEFINED;
+ public static String VIRTUAL_ATTRIBUTE_JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID;
+
+ public static String VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME;
+ public static String VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID;
+ public static String VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME;
+ public static String VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+ public static String VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS;
+
+ public static String INHERITANCE_CATEGORY;
+ public static String DISCRIMINATOR_COLUMN_UNRESOLVED_NAME;
+ public static String ENTITY_TABLE_PER_CLASS_NOT_SUPPORTED_ON_PLATFORM;
+ public static String ENTITY_TABLE_PER_CLASS_NOT_PORTABLE_ON_PLATFORM;
+
+ public static String QUERIES_GENERATORS_CATEGORY;
+ public static String GENERATOR_DUPLICATE_NAME;
+ public static String ID_MAPPING_UNRESOLVED_GENERATOR_NAME;
+ public static String GENERATED_VALUE_UNRESOLVED_GENERATOR;
+ public static String QUERY_DUPLICATE_NAME;
+
+ private static final String BUNDLE_NAME = "jpt_ui_validation_preferences"; //$NON-NLS-1$
+ private static final Class<?> BUNDLE_CLASS = JptUiValidationPreferenceMessages.class;
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS);
+ }
+
+ private JptUiValidationPreferenceMessages() {
+ throw new UnsupportedOperationException();
+ }
+
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/Tracing.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/Tracing.java
new file mode 100644
index 0000000000..d2620857f5
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/Tracing.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jpt.ui.JptUiPlugin;
+
+/**
+ * This tracing class manages to convert the string value into boolean values or
+ * integer values that are associated with the tracing debug flags. Those flags
+ * are specified in the .options file. The supported keys are defined here as
+ * constants for quick reference.
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+@SuppressWarnings("nls")
+public final class Tracing
+{
+ /**
+ * A constant used to retrieve the value associated with "/debug".
+ */
+ public static final String DEBUG = "/debug";
+
+ /**
+ * A constant used to retrieve the value associated with "/debug/ui/db".
+ */
+ public static final String UI_DB = "/debug/ui/db";
+
+ /**
+ * A constant used to retrieve the value associated with "/debug/ui/detailsView".
+ */
+ public static final String UI_DETAILS_VIEW = "/debug/ui/detailsView";
+
+ /**
+ * A constant used to retrieve the value associated with "/debug/ui/layout".
+ */
+ public static final String UI_LAYOUT = "/debug/ui/layout";
+
+ /**
+ * A constant used to retrieve the value associated with "/unit-tests".
+ */
+ public static final String UNIT_TESTS = "/unit-tests";
+
+ /**
+ * Can't instantiate this <code>Tracing</code> class.
+ */
+ private Tracing()
+ {
+ super();
+ throw new UnsupportedOperationException("Tracing cannot be instantiated");
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag. The default
+ * value is <code>false</code>.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @return <code>true</code> if the given flag is active; <code>false</code>
+ * otherwise
+ */
+ public static boolean booleanDebugOption(String flag)
+ {
+ return booleanDebugOption(flag, false);
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @param defaultValue The default value if the value associated with the
+ * given flag could not be found
+ * @return <code>true</code> if the given flag is active; <code>false</code>
+ * otherwise
+ */
+ public static boolean booleanDebugOption(String flag, boolean defaultValue)
+ {
+ String string = Platform.getDebugOption(JptUiPlugin.PLUGIN_ID + flag);
+ return (string == null) ? defaultValue : Boolean.parseBoolean(string.trim());
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag. The default value
+ * is 0.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @return The value associated with the given flag, or the given default
+ * value
+ */
+ public static int intDebugOption(String flag)
+ {
+ return intDebugOption(flag, 0);
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @param defaultValue The default value if the value associated with the
+ * given flag could not be found
+ * @return The value associated with the given flag, or the given default
+ * value
+ */
+ public static int intDebugOption(String flag, int defaultValue)
+ {
+ String string = Platform.getDebugOption(JptUiPlugin.PLUGIN_ID + flag);
+ return (string == null) ? defaultValue : Integer.parseInt(string);
+ }
+
+ /**
+ * Logs the given messages, appends it with this plug-in id.
+ *
+ * @param message The message to be logged
+ */
+ public static void log(String message)
+ {
+ System.out.print("[" + JptUiPlugin.PLUGIN_ID + "] ");
+ System.out.println(message);
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag. The default value
+ * is an empty string.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @return The value associated with the given flag, or the given default
+ * value
+ */
+ public static String stringDebugOption(String flag)
+ {
+ return stringDebugOption(flag, "");
+ }
+
+ /**
+ * Retrieves the debug value associated with the given flag.
+ *
+ * @param flag The flag to retrieve the debug value, which should be
+ * contained in the .options file, the flag should start with "/"
+ * @param defaultValue The default value if the value associated with the
+ * given flag could not be found
+ * @return The value associated with the given flag, or the given default
+ * value
+ */
+ public static String stringDebugOption(String flag, String defaultValue)
+ {
+ String string = Platform.getDebugOption(JptUiPlugin.PLUGIN_ID + flag);
+ return (string != null) ? string : defaultValue;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java
new file mode 100644
index 0000000000..b2e675fd52
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import org.eclipse.jpt.core.JpaProject;
+
+/**
+ * GenerateDDLAction
+ */
+public class GenerateDDLAction extends ProjectAction {
+
+ public GenerateDDLAction() {
+ super();
+ }
+
+ @Override
+ protected void execute(JpaProject project) {
+ this.getJpaPlatformUi(project).generateDDL(project, this.getCurrentSelection());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java
new file mode 100644
index 0000000000..30d2de5787
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+* Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import org.eclipse.jpt.core.JpaProject;
+
+/**
+ * GenerateEntitiesAction
+ */
+public class GenerateEntitiesAction extends ProjectAction {
+ public GenerateEntitiesAction() {
+ super();
+ }
+
+ @Override
+ protected void execute(JpaProject project) {
+ this.getJpaPlatformUi(project).generateEntities(project, this.getCurrentSelection());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/MigrateJavaProjectAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/MigrateJavaProjectAction.java
new file mode 100644
index 0000000000..88c7ef401f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/MigrateJavaProjectAction.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.ui.JptUiPlugin;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
+import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationOperation;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.common.project.facet.ui.ModifyFacetedProjectWizard;
+
+public class MigrateJavaProjectAction implements IObjectActionDelegate
+{
+ private ISelection currentSelection;
+
+
+ public MigrateJavaProjectAction() {
+ super();
+ }
+
+
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // do nothing
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ this.currentSelection = selection;
+ }
+
+ public void run(IAction action) {
+ // This action is currently enabled only for a singly selected, java,
+ // non-faceted IProject
+ IProject project = (IProject) ((IStructuredSelection) currentSelection).getFirstElement();
+ execute(project);
+ }
+
+ private void execute(IProject project) {
+ // add facets nature, java facet, and utility facet to project
+ JavaProjectMigrationOperation operation =
+ J2EEProjectUtilities.createFlexJavaProjectForProjectOperation(project, false);
+ operation.execute(null, null);
+
+ IFacetedProject facetedProject;
+ try {
+ // get the faceted project
+ facetedProject = ProjectFacetsManager.create(project);
+ }
+ catch (CoreException ce) {
+ JptUiPlugin.log(ce);
+ return;
+ }
+
+ // launch the UI with JPA facet preselected
+ final ModifyFacetedProjectWizard wizard = new ModifyFacetedProjectWizard(facetedProject);
+ IFacetedProjectWorkingCopy facetedProjectWorkingCopy = wizard.getFacetedProjectWorkingCopy();
+ IProjectFacetVersion jpa1_0 = ProjectFacetsManager.getProjectFacet(JptCorePlugin.FACET_ID).getDefaultVersion();
+ facetedProjectWorkingCopy.addProjectFacet(jpa1_0);
+
+ final WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+ dialog.open();
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/OpenJpaResourceAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/OpenJpaResourceAction.java
new file mode 100644
index 0000000000..bba8a40a8d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/OpenJpaResourceAction.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.core.context.JpaContextNode;
+import org.eclipse.jpt.core.context.JpaRootContextNode;
+import org.eclipse.jpt.ui.internal.JptUiMessages;
+import org.eclipse.jpt.ui.internal.selection.DefaultJpaSelection;
+import org.eclipse.jpt.ui.internal.selection.JpaSelectionManager;
+import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.IEditorRegistry;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.BaseSelectionListenerAction;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.part.FileEditorInput;
+
+public class OpenJpaResourceAction extends BaseSelectionListenerAction
+{
+ private JpaContextNode selectedNode;
+
+
+ public OpenJpaResourceAction() {
+ super("Open"); //$NON-NLS-1$
+ }
+
+
+ @Override
+ public boolean updateSelection(IStructuredSelection s) {
+ selectedNode = null;
+
+ if (! super.updateSelection(s)) {
+ return false;
+ }
+
+ if (s.size() != 1) {
+ return false;
+ }
+
+ if (s.getFirstElement() instanceof JpaRootContextNode) {
+ return false;
+ }
+
+ selectedNode = (JpaContextNode) s.getFirstElement();
+
+ return true;
+ }
+
+ @Override
+ public void run() {
+ if (! isEnabled()) {
+ return;
+ }
+
+ IResource resource = selectedNode.getResource();
+
+ if (resource != null && resource.exists() && resource.getType() == IResource.FILE) {
+ openEditor((IFile) resource);
+
+
+ if (selectedNode instanceof JpaStructureNode) {
+ JpaSelectionManager selectionManager =
+ SelectionManagerFactory.getSelectionManager(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
+ selectionManager.select(new DefaultJpaSelection((JpaStructureNode) selectedNode), null);
+ }
+ }
+ }
+
+ protected void openEditor(IFile file) {
+ IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry();
+ IContentType contentType = IDE.getContentType(file);
+ IEditorDescriptor editorDescriptor = registry.getDefaultEditor(file.getName(), contentType);
+ if (editorDescriptor == null) {
+ return; // no editor associated...
+ }
+
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ try {
+ page.openEditor(new FileEditorInput(file), editorDescriptor.getId());
+ }
+ catch (Exception e) {
+ MessageDialog.openError(page.getWorkbenchWindow().getShell(), JptUiMessages.Error_openingEditor, e.getMessage());
+ }
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java
new file mode 100644
index 0000000000..115c7e1dd4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import java.util.Iterator;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.JpaProject;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.ui.JpaPlatformUi;
+import org.eclipse.jpt.ui.internal.platform.JpaPlatformUiRegistry;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Override any of the #execute() methods.
+ */
+public abstract class ProjectAction implements IObjectActionDelegate {
+
+ private ISelection currentSelection;
+
+
+ public ProjectAction() {
+ super();
+ }
+
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // do nothing
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ this.currentSelection = selection;
+ }
+
+ protected IStructuredSelection getCurrentSelection() {
+ if (this.currentSelection instanceof IStructuredSelection) {
+ return (IStructuredSelection) this.currentSelection;
+ }
+ return null;
+ }
+
+ public void run(IAction action) {
+ if (this.currentSelection instanceof IStructuredSelection) {
+ for (Iterator stream = ((IStructuredSelection) this.currentSelection).iterator(); stream.hasNext(); ) {
+ this.execute(stream.next());
+ }
+ }
+ }
+
+ protected void execute(Object selection) {
+ IProject project = this.projectFromSelection(selection);
+ if (project != null) {
+ this.execute(project);
+ }
+ }
+
+ protected IProject projectFromSelection(Object selection) {
+ if (selection instanceof IProject) {
+ return (IProject) selection;
+ }
+ if (selection instanceof IJavaProject) {
+ return ((IJavaProject) selection).getProject();
+ }
+ return null;
+ }
+
+ protected JpaPlatformUi getJpaPlatformUi(JpaProject project) {
+ String coreJpaPlatformId = project.getJpaPlatform().getId();
+ return JpaPlatformUiRegistry.instance().getJpaPlatformUi(coreJpaPlatformId);
+ }
+
+ protected void execute(IProject project) {
+ JpaProject jpaProject = JptCorePlugin.getJpaProject(project);
+ if (jpaProject == null) {
+ return;
+ }
+ this.execute(jpaProject);
+ }
+
+ protected void execute(JpaProject project) {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java
new file mode 100644
index 0000000000..6e0a10ea3c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jpt.core.context.persistence.PersistenceXml;
+import org.eclipse.jpt.core.internal.synch.SynchronizeClassesJob;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+public class SynchronizeClassesAction
+ implements IObjectActionDelegate
+{
+ private IFile file;
+
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // no-op for now
+ }
+
+ public void run(IAction action) {
+ SynchronizeClassesJob job = new SynchronizeClassesJob(file);
+ job.schedule();
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Action is contributed for IFile's named "persistence.xml" and
+ // for PeristenceXml objects.
+ // There is always only one element in actual selection.
+ Object selectedObject = ((StructuredSelection) selection).getFirstElement();
+
+ if (selectedObject instanceof IFile) {
+ file = (IFile) selectedObject;
+ }
+ else if (selectedObject instanceof PersistenceXml) {
+ file = (IFile) ((PersistenceXml) selectedObject).getResource();
+ }
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlAndMapHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlAndMapHandler.java
new file mode 100644
index 0000000000..3f944e970b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlAndMapHandler.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.ui.internal.dialogs.AddPersistentAttributeToXmlAndMapDialog;
+import org.eclipse.jpt.ui.internal.selection.DefaultJpaSelection;
+import org.eclipse.jpt.ui.internal.selection.JpaSelectionManager;
+import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class AddPersistentAttributeToXmlAndMapHandler extends AbstractHandler
+{
+ @SuppressWarnings("unchecked")
+ public Object execute(ExecutionEvent executionEvent) throws ExecutionException {
+ final IWorkbenchWindow window =
+ HandlerUtil.getActiveWorkbenchWindowChecked(executionEvent);
+
+ final List<OrmPersistentAttribute> newAttributes = new ArrayList<OrmPersistentAttribute>();
+
+ IStructuredSelection selection
+ = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(executionEvent);
+
+
+ // only applies for multiply selected OrmPersistentAttribute objects in a tree
+ for (OrmPersistentAttribute attribute : (Iterable<OrmPersistentAttribute>) CollectionTools.iterable(selection.iterator())) {
+ OrmPersistentType type = attribute.getOwningPersistentType();
+ String attributeName = attribute.getName();
+
+ AddPersistentAttributeToXmlAndMapDialog dialog = new AddPersistentAttributeToXmlAndMapDialog(window.getShell(), attribute);
+ dialog.create();
+ dialog.setBlockOnOpen(true);
+ dialog.open();
+
+ OrmPersistentAttribute newAttribute = type.getAttributeNamed(attributeName);
+ if (newAttribute != null) {
+ newAttributes.add(newAttribute);
+ }
+ }
+
+ if (newAttributes.size() == 1) {
+ window.getShell().getDisplay().asyncExec(
+ new Runnable() {
+ public void run() {
+ JpaSelectionManager selectionManager = SelectionManagerFactory.getSelectionManager(window);
+ selectionManager.select(new DefaultJpaSelection(newAttributes.get(0)), null);
+ }
+ });
+ }
+
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlHandler.java
new file mode 100644
index 0000000000..0b54dba963
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentAttributeToXmlHandler.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.ui.internal.selection.DefaultJpaSelection;
+import org.eclipse.jpt.ui.internal.selection.JpaSelectionManager;
+import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class AddPersistentAttributeToXmlHandler extends AbstractHandler
+{
+ @SuppressWarnings("unchecked")
+ public Object execute(ExecutionEvent executionEvent) throws ExecutionException {
+ final IWorkbenchWindow window =
+ HandlerUtil.getActiveWorkbenchWindowChecked(executionEvent);
+
+ final List<OrmPersistentAttribute> newAttributes = new ArrayList<OrmPersistentAttribute>();
+
+ IStructuredSelection selection =
+ (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(executionEvent);
+
+ // only applies for multiply selected OrmPersistentAttribute objects in a tree
+ for (OrmPersistentAttribute attribute : (Iterable<OrmPersistentAttribute>) CollectionTools.iterable(selection.iterator())) {
+ OrmPersistentType type = attribute.getOwningPersistentType();
+ String attributeName = attribute.getName();
+ attribute.makeSpecified();
+ OrmPersistentAttribute newAttribute = type.getAttributeNamed(attributeName);
+ if (newAttribute != null) {
+ newAttributes.add(newAttribute);
+ }
+ }
+
+ if (newAttributes.size() == 1) {
+ window.getShell().getDisplay().asyncExec(
+ new Runnable() {
+ public void run() {
+ JpaSelectionManager selectionManager = SelectionManagerFactory.getSelectionManager(window);
+ selectionManager.select(new DefaultJpaSelection(newAttributes.get(0)), null);
+ }
+ });
+ }
+
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentClassHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentClassHandler.java
new file mode 100644
index 0000000000..d91ba4bd87
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/AddPersistentClassHandler.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.orm.EntityMappings;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.ui.internal.dialogs.AddPersistentClassDialog;
+import org.eclipse.jpt.ui.internal.selection.DefaultJpaSelection;
+import org.eclipse.jpt.ui.internal.selection.JpaSelectionManager;
+import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class AddPersistentClassHandler extends AbstractHandler
+{
+ public Object execute(ExecutionEvent executionEvent) throws ExecutionException {
+ final IWorkbenchWindow window =
+ HandlerUtil.getActiveWorkbenchWindowChecked(executionEvent);
+
+ IStructuredSelection selection
+ = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(executionEvent);
+
+ // only applies for a singly selected EntityMappings object in a tree
+ EntityMappings entityMappings =
+ (EntityMappings) selection.getFirstElement();
+
+ AddPersistentClassDialog dialog =
+ new AddPersistentClassDialog(window.getShell(), entityMappings);
+ dialog.create();
+ dialog.setBlockOnOpen(true);
+ final OrmPersistentType type = dialog.openAndReturnType();
+
+ if (type != null) {
+ window.getShell().getDisplay().asyncExec(
+ new Runnable() {
+ public void run() {
+ JpaSelectionManager selectionManager = SelectionManagerFactory.getSelectionManager(window);
+ selectionManager.select(new DefaultJpaSelection(type), null);
+ }
+ });
+ }
+
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentAttributeMapAsHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentAttributeMapAsHandler.java
new file mode 100644
index 0000000000..0b829e7ac8
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentAttributeMapAsHandler.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.Map;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.ui.ISources;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.commands.IElementUpdater;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.menus.UIElement;
+import org.eclipse.ui.services.IEvaluationService;
+
+/**
+ * This handler is responsible to change the mapping type of the selected
+ * <code>PersistentAttribute</code>.
+ * <p>
+ * This handler is defined in the JPT plugin.xml. It will be invoked by the
+ * mapping action dynamically created by the <code>PersistentAttributeMapAsContribution</code>.
+ *
+ * @see PersistentAttribute
+ * @see PersistentAttributeMapAsContribution
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+@SuppressWarnings("nls")
+public class PersistentAttributeMapAsHandler extends AbstractHandler
+ implements IElementUpdater
+{
+ /**
+ * The unique identifier of the Map As command used for <code>PersistentAttribute</code>
+ * defined in the <code>JptUiPlugin</code> plugin.xml.
+ */
+ public static final String COMMAND_ID = "org.eclipse.jpt.ui.persistentAttributeMapAs";
+
+ /**
+ * The unique identifier of the Map As command parameter used for <code>PersistentAttribute</code>
+ * defined in the <code>JptUiPlugin</code> plugin.xml.
+ */
+ public static final String SPECIFIED_MAPPING_COMMAND_PARAMETER_ID = "specifiedPersistentAttributeMappingKey";
+
+ public static final String DEFAULT_MAPPING_COMMAND_PARAMETER_ID = "defaultPersistentAttributeMappingKey";
+
+ /**
+ * Creates a new <code>PersistentAttributeMapAsHandler</code>.
+ */
+ public PersistentAttributeMapAsHandler() {
+ super();
+ }
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ // Retrieve the selection from the ExecutionEvent
+ IStructuredSelection selection = (IStructuredSelection)
+ HandlerUtil.getCurrentSelectionChecked(event);
+
+ // Retrieve the value of the unique parameter passed to the command
+ String mappingKey = event.getParameter(SPECIFIED_MAPPING_COMMAND_PARAMETER_ID);
+
+ // Change the mapping key for all the selected items
+ for (Object item : selection.toArray()) {
+ PersistentAttribute attribute = (PersistentAttribute) item;
+ attribute.setSpecifiedMappingKey(mappingKey);
+ }
+
+ return null;
+ }
+
+ public void updateElement(UIElement element, @SuppressWarnings("unchecked") Map parameters) {
+ // Retrieve the selection for the UIElement
+
+ // Due to Bug 226746, we have to use API workaround to retrieve current
+ // selection
+ IEvaluationService es
+ = (IEvaluationService) element.getServiceLocator().getService(IEvaluationService.class);
+ IViewPart part =
+ (IViewPart) es.getCurrentState().getVariable(ISources.ACTIVE_PART_NAME);
+ IStructuredSelection selection
+ = (IStructuredSelection) part.getSite().getSelectionProvider().getSelection();
+
+ element.setChecked(selectedElementsMappingKeysMatch(selection, parameters));
+ }
+
+ //Check all the selected persistent attribute and verify that they have the same mapping type.
+ //They must all be either default mappings or specified mappings as well.
+ protected boolean selectedElementsMappingKeysMatch(IStructuredSelection selection, @SuppressWarnings("unchecked") Map parameters) {
+ String handlerSpecifiedMappingKey = (String) parameters.get(SPECIFIED_MAPPING_COMMAND_PARAMETER_ID);
+ String handlerDefaultMappingKey = (String) parameters.get(DEFAULT_MAPPING_COMMAND_PARAMETER_ID);
+
+ String commonDefaultKey = null;
+ String commonSpecifiedKey = null;
+ for (Object obj : selection.toArray()) {
+ if (! (obj instanceof PersistentAttribute)) {
+ //oddly enough, you have to check instanceof here, seems like a bug in the framework
+ return false;
+ }
+
+ PersistentAttribute persistentAttribute = (PersistentAttribute) obj;
+ if (persistentAttribute.getSpecifiedMapping() == null) {
+ if (commonSpecifiedKey != null) {
+ return false;
+ }
+ if (commonDefaultKey == null) {
+ commonDefaultKey = persistentAttribute.getMappingKey();
+ }
+ else if (!commonDefaultKey.equals(persistentAttribute.getMappingKey())) {
+ return false;
+ }
+ }
+ else {
+ if (commonDefaultKey != null) {
+ return false;
+ }
+ if (commonSpecifiedKey == null) {
+ commonSpecifiedKey = persistentAttribute.getMappingKey();
+ }
+ else if (!commonSpecifiedKey.equals(persistentAttribute.getMappingKey())) {
+ return false;
+ }
+ }
+ }
+ if (handlerSpecifiedMappingKey != null) {
+ return handlerSpecifiedMappingKey.equals(commonSpecifiedKey);
+ }
+ else if (handlerDefaultMappingKey != null) {
+ return handlerDefaultMappingKey.equals(commonDefaultKey);
+ }
+ return false;
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentTypeMapAsHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentTypeMapAsHandler.java
new file mode 100644
index 0000000000..b1a9030fde
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentTypeMapAsHandler.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.Iterator;
+import java.util.Map;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.ui.internal.menus.PersistentTypeMapAsContribution;
+import org.eclipse.ui.ISources;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.commands.IElementUpdater;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.menus.UIElement;
+import org.eclipse.ui.services.IEvaluationService;
+
+/**
+ * This handler is responsible to change the mapping type of the selected
+ * <code>PersistentType</code>.
+ * <p>
+ * This handler is defined in the JPT plugin.xml. It will be invoked by the
+ * mapping action dynamically created by the <code>PersistentTypeMapAsContribution</code>.
+ *
+ * @see PersistentType
+ * @see PersistentTypeMapAsContribution
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+@SuppressWarnings("nls")
+public class PersistentTypeMapAsHandler extends AbstractHandler
+ implements IElementUpdater
+{
+ /**
+ * The unique identifier of the Map As command used for {@link PersistentType}
+ * defined in the <code>JptUiPlugin</code> plugin.xml.
+ */
+ public static final String COMMAND_ID = "org.eclipse.jpt.ui.persistentTypeMapAs";
+
+ /**
+ * The unique identifier of the Map As command parameter used for {@link PersistentType}
+ * defined in the <code>JptUiPlugin</code> plugin.xml.
+ */
+ public static final String COMMAND_PARAMETER_ID = "persistentTypeMappingKey";
+
+
+ /**
+ * Creates a new <code>PersistentTypeMapAsHandler</code>.
+ */
+ public PersistentTypeMapAsHandler() {
+ super();
+ }
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ // Retrieve the selection from the ExecutionEvent
+ IStructuredSelection selection = (IStructuredSelection)
+ HandlerUtil.getCurrentSelectionChecked(event);
+
+ // Retrieve the value of the unique parameter passed to the command
+ String mappingKey = event.getParameter(COMMAND_PARAMETER_ID);
+
+ // Change the mapping key for all the selected items
+ for (Object item : selection.toArray()) {
+ PersistentType type = (PersistentType) item;
+ type.setMappingKey(mappingKey);
+ }
+
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void updateElement(UIElement element, Map parameters) {
+ // Retrieve the selection for the UIElement
+
+ // Due to Bug 226746, we have to use API workaround to retrieve current
+ // selection
+ IEvaluationService es
+ = (IEvaluationService) element.getServiceLocator().getService(IEvaluationService.class);
+ IViewPart part =
+ (IViewPart) es.getCurrentState().getVariable(ISources.ACTIVE_PART_NAME);
+ IStructuredSelection selection
+ = (IStructuredSelection) part.getSite().getSelectionProvider().getSelection();
+
+ String commonMappingKey = commonMappingKey(selection);
+
+ String handlerMappingKey = (String) parameters.get(COMMAND_PARAMETER_ID);
+ if (handlerMappingKey != null) {
+ element.setChecked(handlerMappingKey.equals(commonMappingKey));
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ protected String commonMappingKey(IStructuredSelection selection) {
+ String commonKey = null;
+ for (Iterator stream = selection.iterator(); stream.hasNext(); ) {
+ Object obj = stream.next();
+
+ if (! (obj instanceof PersistentType)) {
+ return null;
+ }
+
+ PersistentType persistentType = (PersistentType) obj;
+
+ if (commonKey == null) {
+ commonKey = persistentType.getMappingKey();
+ }
+ else if (! commonKey.equals(persistentType.getMappingKey())) {
+ return null;
+ }
+ }
+ return commonKey;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentAttributeFromXmlHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentAttributeFromXmlHandler.java
new file mode 100644
index 0000000000..5a3dbb7a84
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentAttributeFromXmlHandler.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.ui.internal.selection.DefaultJpaSelection;
+import org.eclipse.jpt.ui.internal.selection.JpaSelectionManager;
+import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class RemovePersistentAttributeFromXmlHandler extends AbstractHandler
+{
+ @SuppressWarnings("unchecked")
+ public Object execute(ExecutionEvent executionEvent) throws ExecutionException {
+ final IWorkbenchWindow window =
+ HandlerUtil.getActiveWorkbenchWindowChecked(executionEvent);
+
+ final List<OrmPersistentAttribute> newAttributes = new ArrayList<OrmPersistentAttribute>();
+
+ IStructuredSelection selection =
+ (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(executionEvent);
+
+ // only applies for multiply selected OrmPersistentAttribute objects in a tree
+ for (OrmPersistentAttribute attribute : (Iterable<OrmPersistentAttribute>) CollectionTools.iterable(selection.iterator())) {
+ OrmPersistentType type = attribute.getOwningPersistentType();
+ String attributeName = attribute.getName();
+ attribute.makeVirtual();
+ OrmPersistentAttribute newAttribute = type.getAttributeNamed(attributeName);
+ if (newAttribute != null) {
+ newAttributes.add(newAttribute);
+ }
+ }
+
+ if (newAttributes.size() == 1) {
+ window.getShell().getDisplay().asyncExec(
+ new Runnable() {
+ public void run() {
+ JpaSelectionManager selectionManager = SelectionManagerFactory.getSelectionManager(window);
+ selectionManager.select(new DefaultJpaSelection(newAttributes.get(0)), null);
+ }
+ });
+ }
+
+ return null;
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentClassHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentClassHandler.java
new file mode 100644
index 0000000000..8b6a3c8f4d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/RemovePersistentClassHandler.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import java.util.Iterator;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.context.orm.EntityMappings;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class RemovePersistentClassHandler extends AbstractHandler
+{
+ @SuppressWarnings("unchecked")
+ public Object execute(ExecutionEvent executionEvent) throws ExecutionException {
+ IStructuredSelection selection =
+ (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(executionEvent);
+
+ // only applies for multiply selected OrmPersistentType objects in a tree
+ for (Iterator<OrmPersistentType> stream = selection.iterator(); stream.hasNext(); ) {
+ OrmPersistentType persistentType = stream.next();
+ ((EntityMappings) persistentType.getMappingFileRoot()).removePersistentType(persistentType);
+ }
+
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/UpgradeXmlFileVersionHandler.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/UpgradeXmlFileVersionHandler.java
new file mode 100644
index 0000000000..7ca61cc604
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/UpgradeXmlFileVersionHandler.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jpt.core.JpaProject;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.core.context.XmlFile;
+import org.eclipse.jpt.core.resource.xml.JpaRootEObject;
+import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class UpgradeXmlFileVersionHandler extends AbstractHandler
+{
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IStructuredSelection selection
+ = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
+
+ for (Object selectedObject : selection.toArray()) {
+ upgradeXmlFileVersion(selectedObject);
+ }
+ return null;
+ }
+
+ protected void upgradeXmlFileVersion(Object selectedObject) {
+ JpaXmlResource xmlResource =
+ (JpaXmlResource) Platform.getAdapterManager().getAdapter(selectedObject, JpaXmlResource.class);
+ if (xmlResource == null) {
+ XmlFile xmlFile =
+ (XmlFile) Platform.getAdapterManager().getAdapter(selectedObject, XmlFile.class);
+ if (xmlFile != null) {
+ xmlResource = xmlFile.getXmlResource();
+ }
+ }
+ if (xmlResource == null) {
+ return;
+ }
+
+ final JpaRootEObject root = xmlResource.getRootObject();
+ IContentType contentType = xmlResource.getContentType();
+ JpaProject jpaProject = JptCorePlugin.getJpaProject(xmlResource.getProject());
+ final String newVersion = jpaProject.getJpaPlatform().getMostRecentSupportedResourceType(contentType).getVersion();
+
+ xmlResource.modify(
+ new Runnable() {
+ public void run() {
+ root.setVersion(newVersion);
+ }
+ });
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingComposite.java
new file mode 100644
index 0000000000..639350b79f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingComposite.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.BasicMapping;
+import org.eclipse.jpt.core.context.Column;
+import org.eclipse.jpt.core.context.Converter;
+import org.eclipse.jpt.core.context.ConvertibleMapping;
+import org.eclipse.jpt.core.context.EnumeratedConverter;
+import org.eclipse.jpt.core.context.TemporalConverter;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | ColumnComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | FetchTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TemporalTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EnumTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OptionalComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | LobComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see BasicMapping
+ * @see ColumnComposite
+ * @see EnumTypeComposite
+ * @see FetchTypeComposite
+ * @see LobComposite
+ * @see OptionalComposite
+ * @see TemporalTypeComposite
+ *
+ * @version 2.3
+ * @since 1.0
+ */
+public abstract class AbstractBasicMappingComposite<T extends BasicMapping>
+ extends Pane<T>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>BasicMappingComposite</code>.
+ *
+ * @param subjectHolder The holder of the subject <code>IBasicMapping</code>
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractBasicMappingComposite(PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeBasicCollapsibleSection(container);
+ initializeTypeCollapsibleSection(container);
+ }
+
+ protected void initializeBasicCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.BasicSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeBasicSection(container);
+ }
+
+ protected void initializeBasicSection(Composite container) {
+ new ColumnComposite(this, buildColumnHolder(), container);
+ new FetchTypeComposite(this, container);
+ new OptionalComposite(this, addSubPane(container, 4));
+ }
+
+ protected void initializeTypeCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.TypeSection_type
+ );
+ this.initializeTypeSection(container);
+ }
+
+ protected void initializeTypeSection(Composite container) {
+ ((GridLayout) container.getLayout()).numColumns = 2;
+
+ // No converter
+ Button noConverterButton = addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_default,
+ buildConverterBooleanHolder(Converter.NO_CONVERTER),
+ null);
+ ((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2;
+
+ // Lob
+ Button lobButton = addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_lob,
+ buildConverterBooleanHolder(Converter.LOB_CONVERTER),
+ null);
+ ((GridData) lobButton.getLayoutData()).horizontalSpan = 2;
+
+ PropertyValueModel<Converter> converterHolder = buildConverterHolder();
+ // Temporal
+ addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_temporal,
+ buildConverterBooleanHolder(Converter.TEMPORAL_CONVERTER),
+ null);
+ registerSubPane(new TemporalTypeComposite(buildTemporalConverterHolder(converterHolder), container, getWidgetFactory()));
+
+
+ // Enumerated
+ addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_enumerated,
+ buildConverterBooleanHolder(Converter.ENUMERATED_CONVERTER),
+ null);
+ registerSubPane(new EnumTypeComposite(buildEnumeratedConverterHolder(converterHolder), container, getWidgetFactory()));
+ }
+
+ protected PropertyValueModel<Column> buildColumnHolder() {
+ return new TransformationPropertyValueModel<T, Column>(getSubjectHolder()) {
+ @Override
+ protected Column transform_(T value) {
+ return value.getColumn();
+ }
+ };
+ }
+
+ protected PropertyValueModel<Converter> buildConverterHolder() {
+ return new PropertyAspectAdapter<T, Converter>(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) {
+ @Override
+ protected Converter buildValue_() {
+ return this.subject.getConverter();
+ }
+ };
+ }
+
+ protected PropertyValueModel<TemporalConverter> buildTemporalConverterHolder(PropertyValueModel<Converter> converterHolder) {
+ return new TransformationPropertyValueModel<Converter, TemporalConverter>(converterHolder) {
+ @Override
+ protected TemporalConverter transform_(Converter converter) {
+ return converter.getType() == Converter.TEMPORAL_CONVERTER ? (TemporalConverter) converter : null;
+ }
+ };
+ }
+
+ protected PropertyValueModel<EnumeratedConverter> buildEnumeratedConverterHolder(PropertyValueModel<Converter> converterHolder) {
+ return new TransformationPropertyValueModel<Converter, EnumeratedConverter>(converterHolder) {
+ @Override
+ protected EnumeratedConverter transform_(Converter converter) {
+ return converter.getType() == Converter.ENUMERATED_CONVERTER ? (EnumeratedConverter) converter : null;
+ }
+ };
+ }
+
+ protected WritablePropertyValueModel<Boolean> buildConverterBooleanHolder(final String converterType) {
+ return new PropertyAspectAdapter<BasicMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) {
+ @Override
+ protected Boolean buildValue_() {
+ Converter converter = this.subject.getConverter();
+ return Boolean.valueOf(converter.getType() == converterType);
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ if (value.booleanValue()) {
+ this.subject.setConverter(converterType);
+ }
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingUiDefinition.java
new file mode 100644
index 0000000000..319b09edbc
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractBasicMappingUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.BasicMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractBasicMappingUiDefinition<M, T extends BasicMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractBasicMappingUiDefinition() {
+ super();
+ }
+
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.BasicMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.BasicMappingUiProvider_linkLabel;
+ }
+
+ public String getKey() {
+ return MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableComposite.java
new file mode 100644
index 0000000000..adbabca281
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableComposite.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.Embeddable;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.details.JptUiDetailsMessages;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This pane does not have any widgets.
+ *
+ * @see Embeddable
+ * @see JavaUiFactory - The factory creating this pane
+ * @see EmbeddableUiProvider
+ *
+ * @version 2.3
+ * @since 2.1
+ */
+public abstract class AbstractEmbeddableComposite<T extends Embeddable>
+ extends Pane<T>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>EmbeddableComposite</code>.
+ *
+ * @param subjectHolder The holder of this pane's subject
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractEmbeddableComposite(PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ }
+
+ protected void initializeEmbeddableCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EmbeddableSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeEmbeddableSection(container);
+ }
+
+ protected void initializeEmbeddableSection(Composite container) {
+
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableUiDefinition.java
new file mode 100644
index 0000000000..d6198ef404
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddableUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.Embeddable;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractEmbeddableUiDefinition<M, T extends Embeddable>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractEmbeddableUiDefinition() {
+ super();
+ }
+
+
+ public String getKey() {
+ return MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.EmbeddableUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.EmbeddableUiProvider_linkLabel;
+ }
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForTypeMapping(getKey());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingComposite.java
new file mode 100644
index 0000000000..089c21e131
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingComposite.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.EmbeddedIdMapping;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractEmbeddedIdMappingComposite<T extends EmbeddedIdMapping>
+ extends Pane<T>
+ implements JpaComposite
+{
+ protected AbstractEmbeddedIdMappingComposite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeEmbeddedIdCollapsibleSection(container);
+ }
+
+ protected void initializeEmbeddedIdCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EmbeddedIdSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE));
+
+ this.initializeEmbeddedIdSection(container);
+ }
+
+ protected abstract void initializeEmbeddedIdSection(Composite container);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingUiDefinition.java
new file mode 100644
index 0000000000..6b36bad880
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedIdMappingUiDefinition.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.EmbeddedIdMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+
+public abstract class AbstractEmbeddedIdMappingUiDefinition<M, T extends EmbeddedIdMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractEmbeddedIdMappingUiDefinition() {
+ super();
+ }
+
+
+ public String getKey() {
+ return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.EmbeddedIdMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.EmbeddedIdMappingUiProvider_linkLabel;
+ }
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java
new file mode 100644
index 0000000000..e5622ff54d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.EmbeddedMapping;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EmbeddedAttributeOverridesComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see EmbeddedMapping
+ *
+ * @version 2.3
+ * @since 1.0
+ */
+public abstract class AbstractEmbeddedMappingComposite<T extends EmbeddedMapping>
+ extends Pane<T>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>EmbeddedMappingComposite</code>.
+ *
+ * @param subjectHolder The holder of the subject <code>EmbeddedMapping</code>
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractEmbeddedMappingComposite(PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeEmbeddedCollapsibleSection(container);
+ }
+
+ protected void initializeEmbeddedCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EmbeddedSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeEmbeddedSection(container);
+ }
+
+ protected void initializeEmbeddedSection(Composite container) {
+ new EmbeddedMappingOverridesComposite(
+ this,
+ container
+ );
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingOverridesComposite.java
new file mode 100644
index 0000000000..80a548b621
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingOverridesComposite.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.AttributeOverrideContainer;
+import org.eclipse.jpt.core.context.BaseEmbeddedMapping;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractEmbeddedMappingOverridesComposite<T extends BaseEmbeddedMapping>
+ extends AbstractOverridesComposite<T>
+{
+ protected AbstractEmbeddedMappingOverridesComposite(
+ Pane<? extends T> parentPane,
+ Composite parent) {
+
+ super(parentPane, parent);
+ }
+
+
+ @Override
+ protected PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder() {
+ return new PropertyAspectAdapter<T, AttributeOverrideContainer>(getSubjectHolder()) {
+ @Override
+ protected AttributeOverrideContainer buildValue_() {
+ return this.subject.getAttributeOverrideContainer();
+ }
+ };
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingUiDefinition.java
new file mode 100644
index 0000000000..00d3494249
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.EmbeddedMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractEmbeddedMappingUiDefinition<M, T extends EmbeddedMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractEmbeddedMappingUiDefinition() {
+ super();
+ }
+
+
+ public String getKey() {
+ return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.EmbeddedMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.EmbeddedMappingUiProvider_linkLabel;
+ }
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java
new file mode 100644
index 0000000000..60b18ff812
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.GeneratorContainer;
+import org.eclipse.jpt.core.context.IdClassReference;
+import org.eclipse.jpt.core.context.QueryContainer;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EntityNameComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TableComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | IdClassComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | - v Attribute Overrides ------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OverridesComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | - v Secondary Tables ---------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | Pane | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | - v Inheritance --------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | InheritanceComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | - v Queries ------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | QueriesComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | - v Generators ---------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | GeneratorsComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see Entity
+ * @see EntityNameComposite
+ * @see InheritanceComposite
+ * @see IdClassComposite
+ * @see EntityOverridesComposite
+ * @see TableComposite
+ * @see GenerationComposite
+ *
+ * TODO talk to JavaEditor people about what we can do to hook in TabbedProperties for the JavaEditor
+ *
+ * @version 2.3
+ * @since 1.0
+ */
+public abstract class AbstractEntityComposite<T extends Entity>
+ extends Pane<T>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>AbstractEntityComposite</code>.
+ *
+ * @param subjectHolder The holder of the subject <code>IEntity</code>
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractEntityComposite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+
+ protected abstract void initializeSecondaryTablesSection(Composite container);
+
+ protected abstract void initializeInheritanceSection(Composite container);
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ this.initializeEntityCollapsibleSection(container);
+ this.initializeQueriesCollapsibleSection(container);
+ this.initializeInheritanceCollapsibleSection(container);
+ this.initializeAttributeOverridesCollapsibleSection(container);
+ this.initializeGeneratorsCollapsibleSection(container);
+ this.initializeSecondaryTablesCollapsibleSection(container);
+ }
+
+ protected void initializeEntityCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EntitySection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeEntitySection(container);
+ }
+
+ protected void initializeEntitySection(Composite container) {
+ new TableComposite(this, container);
+ new EntityNameComposite(this, container);
+ new IdClassComposite(this, buildIdClassReferenceHolder(), container);
+ }
+
+ protected PropertyValueModel<IdClassReference> buildIdClassReferenceHolder() {
+ return new PropertyAspectAdapter<Entity, IdClassReference>(getSubjectHolder()) {
+ @Override
+ protected IdClassReference buildValue_() {
+ return this.subject.getIdClassReference();
+ }
+ };
+ }
+
+ protected void initializeQueriesCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EntityComposite_queries);
+ this.initializeQueriesSection(container, buildQueryContainerHolder());
+ }
+
+ protected void initializeQueriesSection(Composite container, PropertyValueModel<QueryContainer> queryContainerHolder) {
+ new QueriesComposite(this, queryContainerHolder, container);
+ }
+
+ private PropertyValueModel<QueryContainer> buildQueryContainerHolder() {
+ return new PropertyAspectAdapter<Entity, QueryContainer>(getSubjectHolder()) {
+ @Override
+ protected QueryContainer buildValue_() {
+ return this.subject.getQueryContainer();
+ }
+ };
+ }
+
+ protected void initializeAttributeOverridesCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.OverridesComposite_attributeOverridesSection);
+ initializeAttributeOverridesSection(container);
+ }
+
+ protected void initializeAttributeOverridesSection(Composite container) {
+ new EntityOverridesComposite(this, container);
+ }
+
+ protected void initializeInheritanceCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.EntityComposite_inheritance);
+ initializeInheritanceSection(container);
+ }
+
+ protected void initializeGeneratorsCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.IdMappingComposite_primaryKeyGenerationSection);
+ initializeGeneratorsSection(container, buildGeneratorContainer());
+ }
+
+ protected void initializeGeneratorsSection(Composite container, PropertyValueModel<GeneratorContainer> generatorContainerHolder) {
+ new GenerationComposite(this, generatorContainerHolder, container);
+ }
+
+ private PropertyValueModel<GeneratorContainer> buildGeneratorContainer() {
+ return new PropertyAspectAdapter<Entity, GeneratorContainer>(getSubjectHolder()) {
+ @Override
+ protected GeneratorContainer buildValue_() {
+ return this.subject.getGeneratorContainer();
+ }
+ };
+ }
+
+ protected void initializeSecondaryTablesCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.SecondaryTablesComposite_secondaryTables);
+ initializeSecondaryTablesSection(container);
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityMappingsDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityMappingsDetailsProvider.java
new file mode 100644
index 0000000000..9325433331
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityMappingsDetailsProvider.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. 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 - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.JpaResourceType;
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.core.context.orm.OrmStructureNodes;
+import org.eclipse.jpt.ui.details.JpaDetailsProvider;
+import org.eclipse.jpt.utility.internal.StringTools;
+
+public abstract class AbstractEntityMappingsDetailsProvider
+ implements JpaDetailsProvider
+{
+ protected AbstractEntityMappingsDetailsProvider() {
+ super();
+ }
+
+
+ public final boolean providesDetails(JpaStructureNode structureNode) {
+ return StringTools.stringsAreEqual(structureNode.getId(), OrmStructureNodes.ENTITY_MAPPINGS_ID)
+ && providesDetails(structureNode.getResourceType());
+ }
+
+ protected abstract boolean providesDetails(JpaResourceType resourceType);
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java
new file mode 100644
index 0000000000..9e1dd9327b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.AssociationOverrideContainer;
+import org.eclipse.jpt.core.context.AttributeOverrideContainer;
+import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractEntityOverridesComposite
+ extends AbstractOverridesComposite<Entity>
+{
+ protected AbstractEntityOverridesComposite(
+ Pane<? extends Entity> parentPane,
+ Composite parent) {
+
+ super(parentPane, parent);
+ }
+
+
+ @Override
+ protected boolean supportsAssociationOverrides() {
+ return true;
+ }
+
+ @Override
+ protected PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder() {
+ return new PropertyAspectAdapter<Entity, AttributeOverrideContainer>(getSubjectHolder()) {
+ @Override
+ protected AttributeOverrideContainer buildValue_() {
+ return this.subject.getAttributeOverrideContainer();
+ }
+ };
+ }
+
+ @Override
+ protected PropertyValueModel<AssociationOverrideContainer> buildAssociationOverrideContainerHolder() {
+ return new PropertyAspectAdapter<Entity, AssociationOverrideContainer>(getSubjectHolder()) {
+ @Override
+ protected AssociationOverrideContainer buildValue_() {
+ return this.subject.getAssociationOverrideContainer();
+ }
+ };
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityUiDefinition.java
new file mode 100644
index 0000000000..1023e3612c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractEntityUiDefinition<M, T extends Entity>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractEntityUiDefinition() {
+ super();
+ }
+
+
+ public String getKey() {
+ return MappingKeys.ENTITY_TYPE_MAPPING_KEY;
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.EntityUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.EntityUiProvider_linkLabel;
+ }
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForTypeMapping(getKey());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingComposite.java
new file mode 100644
index 0000000000..70a8605e91
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingComposite.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.Column;
+import org.eclipse.jpt.core.context.Converter;
+import org.eclipse.jpt.core.context.ConvertibleMapping;
+import org.eclipse.jpt.core.context.IdMapping;
+import org.eclipse.jpt.core.context.TemporalConverter;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractIdMappingComposite<T extends IdMapping>
+ extends Pane<T>
+ implements JpaComposite
+{
+ public AbstractIdMappingComposite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeIdCollapsibleSection(container);
+ initializeTypeCollapsibleSection(container);
+ initializeGenerationCollapsibleSection(container);
+ }
+
+ protected void initializeIdCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.IdSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE));
+
+ this.initializeIdSection(container);
+ }
+
+ protected abstract void initializeIdSection(Composite container);
+
+ protected void initializeTypeCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.TypeSection_type);
+ this.initializeTypeSection(container);
+ }
+
+ protected void initializeTypeSection(Composite container) {
+ ((GridLayout) container.getLayout()).numColumns = 2;
+
+ // No converter
+ Button noConverterButton = addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_default,
+ buildConverterBooleanHolder(Converter.NO_CONVERTER),
+ null);
+ ((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2;
+
+ PropertyValueModel<Converter> converterHolder = buildConverterHolder();
+ // Temporal
+ addRadioButton(
+ container,
+ JptUiDetailsMessages.TypeSection_temporal,
+ buildConverterBooleanHolder(Converter.TEMPORAL_CONVERTER),
+ null);
+ registerSubPane(new TemporalTypeComposite(buildTemporalConverterHolder(converterHolder), container, getWidgetFactory()));
+ }
+
+ protected void initializeGenerationCollapsibleSection(Composite container) {
+ new IdMappingGenerationComposite(this, container);
+ }
+
+ protected PropertyValueModel<? extends Column> buildColumnHolder() {
+ return new TransformationPropertyValueModel<T, Column>(getSubjectHolder()) {
+ @Override
+ protected Column transform_(T value) {
+ return value.getColumn();
+ }
+ };
+ }
+
+ protected WritablePropertyValueModel<Boolean> buildConverterBooleanHolder(final String converterType) {
+ return new PropertyAspectAdapter<T, Boolean>(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) {
+ @Override
+ protected Boolean buildValue_() {
+ Converter converter = this.subject.getConverter();
+ return Boolean.valueOf(converter.getType() == converterType);
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ if (value.booleanValue()) {
+ this.subject.setConverter(converterType);
+ }
+ }
+ };
+ }
+
+ protected PropertyValueModel<Converter> buildConverterHolder() {
+ return new PropertyAspectAdapter<T, Converter>(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) {
+ @Override
+ protected Converter buildValue_() {
+ return this.subject.getConverter();
+ }
+ };
+ }
+
+ protected PropertyValueModel<TemporalConverter> buildTemporalConverterHolder(PropertyValueModel<Converter> converterHolder) {
+ return new TransformationPropertyValueModel<Converter, TemporalConverter>(converterHolder) {
+ @Override
+ protected TemporalConverter transform_(Converter converter) {
+ return converter.getType() == Converter.TEMPORAL_CONVERTER ? (TemporalConverter) converter : null;
+ }
+ };
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingUiDefinition.java
new file mode 100644
index 0000000000..f532c84b95
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractIdMappingUiDefinition.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.IdMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+
+public abstract class AbstractIdMappingUiDefinition<M, T extends IdMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractIdMappingUiDefinition() {
+ super();
+ }
+
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.IdMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.IdMappingUiProvider_linkLabel;
+ }
+
+ public String getKey() {
+ return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractInheritanceComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractInheritanceComposite.java
new file mode 100644
index 0000000000..254cfca706
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractInheritanceComposite.java
@@ -0,0 +1,290 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import java.util.Collection;
+
+import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.InheritanceType;
+import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
+import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.StringConverter;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
+import org.eclipse.jpt.utility.model.value.ListValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ---------------------------------------------------- |
+ * | Strategy: | EnumComboViewer |v| |
+ * | ---------------------------------------------------- |
+ * | ---------------------------------------------------- |
+ * | Value: | I |v| |
+ * | ---------------------------------------------------- |
+ * | |
+ * | > Discriminator Column |
+ * | |
+ * | ---------------------------------------------------- |
+ * | Name: | ColumnCombo |v| |
+ * | ---------------------------------------------------- |
+ * | ---------------------------------------------------- |
+ * | Type: | EnumComboViewer |v| |
+ * | ---------------------------------------------------- |
+ * | ---------------------------------------------------- |
+ * | Column Definition: | I | |
+ * | ---------------------------------------------------- |
+ * | ------------- |
+ * | Length: | I |I| |
+ * | ------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | PrimaryKeyJoinColumnsComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see Entity
+ * @see AbstractEntityComposite - The parent container
+ * @see ColumnCombo
+ * @see EnumComboViewer
+ * @see PrimaryKeyJoinColumnsComposite
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+@SuppressWarnings("nls")
+public abstract class AbstractInheritanceComposite<T extends Entity> extends Pane<T> {
+
+ /**
+ * A key used to represent the default value, this is required to convert
+ * the selected item from a combo to <code>null</code>. This key is most
+ * likely never typed the user and it will help to convert the value to
+ * <code>null</code> when it's time to set the new selected value into the
+ * model.
+ */
+ protected static String DEFAULT_KEY = "?!#!?#?#?default?#?!#?!#?";
+
+ protected static String NONE_KEY = "?!#!?#?#?none?#?!#?!#?";
+
+ /**
+ * Creates a new <code>InheritanceComposite</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param parent The parent container
+ */
+ public AbstractInheritanceComposite(Pane<? extends T> parentPane,
+ Composite parent) {
+
+ super(parentPane, parent, false);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+
+ int groupBoxMargin = getGroupBoxMargin();
+
+ Composite subPane = addSubPane(
+ container, 0, groupBoxMargin, 0, groupBoxMargin
+ );
+
+ // Strategy widgets
+ addLabeledComposite(
+ subPane,
+ JptUiDetailsMessages.InheritanceComposite_strategy,
+ addStrategyCombo(subPane),
+ JpaHelpContextIds.ENTITY_INHERITANCE_STRATEGY
+ );
+
+ // Discrinator Value widgets
+ PropertyValueModel<Boolean> dvEnabled = this.buildDiscriminatorValueEnabledHolder();
+ Combo discriminatorValueCombo = addEditableCombo(
+ subPane,
+ buildDiscriminatorValueListHolder(),
+ buildDiscriminatorValueHolder(),
+ buildDiscriminatorValueConverter(),
+ dvEnabled
+ );
+ Label discriminatorValueLabel = addLabel(
+ subPane,
+ JptUiDetailsMessages.InheritanceComposite_discriminatorValue,
+ dvEnabled
+ );
+ addLabeledComposite(
+ subPane,
+ discriminatorValueLabel,
+ discriminatorValueCombo,
+ null,
+ JpaHelpContextIds.ENTITY_INHERITANCE_DISCRIMINATOR_VALUE
+ );
+
+ new DiscriminatorColumnComposite<Entity>(this, container);
+
+ // Primary Key Join Columns widgets
+ addPrimaryKeyJoinColumnsComposite(addSubPane(container, 5));
+ }
+
+ protected WritablePropertyValueModel<Boolean> buildDiscriminatorValueEnabledHolder() {
+ return new PropertyAspectAdapter<Entity, Boolean>(getSubjectHolder(), Entity.SPECIFIED_DISCRIMINATOR_VALUE_IS_ALLOWED_PROPERTY) {
+ @Override
+ protected Boolean buildValue_() {
+ return Boolean.valueOf(this.subject.specifiedDiscriminatorValueIsAllowed());
+ }
+ };
+ }
+
+ private ListValueModel<String> buildDefaultDiscriminatorListValueHolder() {
+ return new PropertyListValueModelAdapter<String>(
+ buildDefaultDiscriminatorValueHolder()
+ );
+ }
+
+ private WritablePropertyValueModel<String> buildDefaultDiscriminatorValueHolder() {
+ return new PropertyAspectAdapter<Entity, String>(getSubjectHolder(), Entity.DEFAULT_DISCRIMINATOR_VALUE_PROPERTY, Entity.DISCRIMINATOR_VALUE_IS_UNDEFINED_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ String value = this.subject.getDefaultDiscriminatorValue();
+ if (value == null && this.subject.discriminatorValueIsUndefined()) {
+ return NONE_KEY;
+ }
+
+ if (value == null) {
+ value = DEFAULT_KEY;
+ }
+ else {
+ value = DEFAULT_KEY + value;
+ }
+
+ return value;
+ }
+ };
+ }
+
+ private StringConverter<String> buildDiscriminatorValueConverter() {
+ return new StringConverter<String>() {
+ public String convertToString(String value) {
+
+ if (getSubject() == null) {
+ //this is part of a list given to a combo, combos don't take kindly to null
+ return JptUiDetailsMessages.NoneSelected;
+ }
+
+ if (value == null) {
+ value = getSubject().getDefaultDiscriminatorValue();
+ if (value == null && getSubject().discriminatorValueIsUndefined()) {
+ value = NONE_KEY;
+ }
+ else {
+ value = (value != null) ?
+ DEFAULT_KEY + value
+ :
+ DEFAULT_KEY;
+ }
+ }
+ if (value.startsWith(DEFAULT_KEY)) {
+ String defaultName = value.substring(DEFAULT_KEY.length());
+
+ if (defaultName.length() > 0) {
+ value = NLS.bind(
+ JptUiDetailsMessages.DefaultWithOneParam,
+ defaultName
+ );
+ }
+ else {
+ value = JptUiDetailsMessages.ProviderDefault;
+ }
+ }
+ if (value.startsWith(NONE_KEY)) {
+ value = JptUiDetailsMessages.NoneSelected;
+ }
+ return value;
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildDiscriminatorValueHolder() {
+ return new PropertyAspectAdapter<Entity, String>(getSubjectHolder(), Entity.SPECIFIED_DISCRIMINATOR_VALUE_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return this.subject.getSpecifiedDiscriminatorValue();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+
+ // Convert the default value or an empty string to null
+ if ((value != null) &&
+ ((value.length() == 0) || value.startsWith(DEFAULT_KEY) || value.startsWith(NONE_KEY))) {
+
+ value = null;
+ }
+
+ this.subject.setSpecifiedDiscriminatorValue(value);
+ }
+ };
+ }
+
+ private ListValueModel<String> buildDiscriminatorValueListHolder() {
+ return buildDefaultDiscriminatorListValueHolder();
+ }
+
+ private EnumFormComboViewer<Entity, InheritanceType> addStrategyCombo(Composite container) {
+
+ return new EnumFormComboViewer<Entity, InheritanceType>(this, container) {
+
+ @Override
+ protected void addPropertyNames(Collection<String> propertyNames) {
+ super.addPropertyNames(propertyNames);
+ propertyNames.add(Entity.DEFAULT_INHERITANCE_STRATEGY_PROPERTY);
+ propertyNames.add(Entity.SPECIFIED_INHERITANCE_STRATEGY_PROPERTY);
+ }
+
+ @Override
+ protected InheritanceType[] getChoices() {
+ return InheritanceType.values();
+ }
+
+ @Override
+ protected InheritanceType getDefaultValue() {
+ return getSubject().getDefaultInheritanceStrategy();
+ }
+
+ @Override
+ protected String displayString(InheritanceType value) {
+ return buildDisplayString(
+ JptUiDetailsMessages.class,
+ AbstractInheritanceComposite.class,
+ value
+ );
+ }
+
+ @Override
+ protected InheritanceType getValue() {
+ return getSubject().getSpecifiedInheritanceStrategy();
+ }
+
+ @Override
+ protected void setValue(InheritanceType value) {
+ getSubject().setSpecifiedInheritanceStrategy(value);
+ }
+ };
+ }
+
+ protected abstract void addPrimaryKeyJoinColumnsComposite(Composite container);
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJoiningStrategyPane.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJoiningStrategyPane.java
new file mode 100644
index 0000000000..ccf2175367
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJoiningStrategyPane.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.JoiningStrategy;
+import org.eclipse.jpt.core.context.RelationshipReference;
+import org.eclipse.jpt.ui.internal.util.ControlSwitcher;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.Transformer;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.PageBook;
+
+/**
+ * Abstract superclass for joining strategy form panes
+ *
+ * Here is the basic layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | o <label> _______________________________________________________________ |
+ * | | | |
+ * | | (joining strategy details composite) | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see {@link OwnableRelationshipReference}
+ * @see {@link MappedByJoiningStrategy}
+ * @see {@link OneToOneJoiningStrategyPane}
+ *
+ * @version 2.3
+ * @since 2.1
+ */
+public abstract class AbstractJoiningStrategyPane
+ <R extends RelationshipReference, S extends JoiningStrategy>
+ extends Pane<R>
+{
+ protected Composite strategyDetailsComposite;
+
+
+ /**
+ * Creates a new <code>AbstractJoiningStrategyPane</code>.
+ *
+ * @param parentPane The parent form pane
+ * @param parent The parent container
+ */
+ protected AbstractJoiningStrategyPane(
+ Pane<? extends R> parentPane,
+ Composite parent) {
+ super(parentPane, parent);
+ }
+
+ protected AbstractJoiningStrategyPane(Pane<?> parentPane,
+ PropertyValueModel<? extends R> subjectHolder,
+ Composite parent) {
+
+ super(parentPane, subjectHolder, parent);
+ }
+
+ protected abstract WritablePropertyValueModel<Boolean> buildUsesStrategyHolder();
+
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ PageBook pageBook = new PageBook(container, SWT.NULL);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalIndent = 5;
+ pageBook.setLayoutData(gd);
+
+ this.strategyDetailsComposite = buildStrategyDetailsComposite(pageBook);
+
+ new ControlSwitcher(this.buildUsesStrategyHolder(), buildPageBookTransformer(), pageBook);
+ }
+
+ protected abstract Composite buildStrategyDetailsComposite(Composite parent);
+
+ protected Transformer<Boolean, Control> buildPageBookTransformer() {
+ return new Transformer<Boolean, Control>() {
+ public Control transform(Boolean usesStrategy) {
+ return (usesStrategy.booleanValue()) ?
+ AbstractJoiningStrategyPane.this.strategyDetailsComposite :
+ null;
+ }
+ };
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJpaDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJpaDetailsPage.java
new file mode 100644
index 0000000000..ee3e5201e4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractJpaDetailsPage.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.JpaStructureNode;
+import org.eclipse.jpt.ui.JpaPlatformUi;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaDetailsPage;
+import org.eclipse.jpt.ui.internal.platform.JpaPlatformUiRegistry;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * The base class for the details view.
+ *
+ * @see JpaStructureNode
+ *
+ * @version 3.0
+ * @since 1.0
+ */
+public abstract class AbstractJpaDetailsPage<T extends JpaStructureNode>
+ extends Pane<T>
+ implements JpaDetailsPage<T>
+{
+ /**
+ * Creates a new <code>BaseJpaDetailsPage</code>.
+ *
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractJpaDetailsPage(Composite parent, WidgetFactory widgetFactory) {
+ super(new SimplePropertyValueModel<T>(), parent, widgetFactory);
+ }
+
+ protected JpaPlatformUi getJpaPlatformUi() {
+ String platformId = getSubject().getJpaProject().getJpaPlatform().getId();
+ return JpaPlatformUiRegistry.instance().getJpaPlatformUi(platformId);
+ }
+
+ public final void setSubject(T subject) {
+ WritablePropertyValueModel<T> subjectHolder = (WritablePropertyValueModel<T>) getSubjectHolder();
+ subjectHolder.setValue(subject);
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingComposite.java
new file mode 100644
index 0000000000..655c6b2ff6
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingComposite.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.AccessHolder;
+import org.eclipse.jpt.core.context.Cascade;
+import org.eclipse.jpt.core.context.ManyToManyMapping;
+import org.eclipse.jpt.core.context.ManyToManyRelationshipReference;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TargetEntityComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | JoiningStrategyComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | FetchTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | CascadeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrderingComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see {@link ManyToManyMapping}
+ * @see {@link TargetEntityComposite}
+ * @see {@link ManyToManyJoiningStrategyPane}
+ * @see {@link FetchTypeComposite}
+ * @see {@link CascadeComposite}
+ * @see {@link OrderingComposite}
+ *
+ * @version 2.3
+ * @since 1.0
+ */
+public abstract class AbstractManyToManyMappingComposite<T extends ManyToManyMapping, R extends ManyToManyRelationshipReference>
+ extends Pane<T>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>ManyToManyMappingComposite</code>.
+ *
+ * @param subjectHolder The holder of the subject <code>IManyToManyMapping</code>
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ protected AbstractManyToManyMappingComposite(PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeManyToManyCollapsibleSection(container);
+ initializeJoiningStrategyCollapsibleSection(container);
+ initializeOrderingCollapsibleSection(container);
+ }
+
+ protected void initializeManyToManyCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.ManyToManySection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeManyToManySection(container);
+ }
+
+ protected abstract void initializeManyToManySection(Composite container);
+
+ protected void initializeJoiningStrategyCollapsibleSection(Composite container) {
+ new ManyToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
+ }
+
+ protected void initializeOrderingCollapsibleSection(Composite container) {
+ new OrderingComposite(this, container);
+ }
+
+
+ protected PropertyValueModel<R> buildJoiningHolder() {
+ return new TransformationPropertyValueModel<T, R>(
+ getSubjectHolder()) {
+ @SuppressWarnings("unchecked")
+ @Override
+ protected R transform_(T value) {
+ return (R) value.getRelationshipReference();
+ }
+ };
+ }
+
+ protected PropertyValueModel<Cascade> buildCascadeHolder() {
+ return new TransformationPropertyValueModel<T, Cascade>(getSubjectHolder()) {
+ @Override
+ protected Cascade transform_(T value) {
+ return value.getCascade();
+ }
+ };
+ }
+
+ protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
+ return new PropertyAspectAdapter<T, AccessHolder>(getSubjectHolder()) {
+ @Override
+ protected AccessHolder buildValue_() {
+ return this.subject.getPersistentAttribute();
+ }
+ };
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingUiDefinition.java
new file mode 100644
index 0000000000..dae50f0a2c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToManyMappingUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.ManyToManyMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractManyToManyMappingUiDefinition<M, T extends ManyToManyMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractManyToManyMappingUiDefinition() {
+ super();
+ }
+
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.ManyToManyMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.ManyToManyMappingUiProvider_linkLabel;
+ }
+
+ public String getKey() {
+ return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingComposite.java
new file mode 100644
index 0000000000..3df3d1bac7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingComposite.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.Cascade;
+import org.eclipse.jpt.core.context.ManyToOneMapping;
+import org.eclipse.jpt.core.context.ManyToOneRelationshipReference;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractManyToOneMappingComposite<T extends ManyToOneMapping, R extends ManyToOneRelationshipReference>
+ extends Pane<T>
+ implements JpaComposite
+{
+ protected AbstractManyToOneMappingComposite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ initializeManyToOneCollapsibleSection(container);
+ initializeJoiningStrategyCollapsibleSection(container);
+ }
+
+ protected void initializeManyToOneCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.ManyToOneSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeManyToOneSection(container);
+ }
+
+ protected abstract void initializeManyToOneSection(Composite container);
+
+ protected void initializeJoiningStrategyCollapsibleSection(Composite container) {
+ new ManyToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
+ }
+
+ protected PropertyValueModel<Cascade> buildCascadeHolder() {
+ return new TransformationPropertyValueModel<T, Cascade>(getSubjectHolder()) {
+ @Override
+ protected Cascade transform_(T value) {
+ return value.getCascade();
+ }
+ };
+ }
+
+ protected PropertyValueModel<R> buildJoiningHolder() {
+ return new TransformationPropertyValueModel<T, R>(
+ getSubjectHolder()) {
+ @SuppressWarnings("unchecked")
+ @Override
+ protected R transform_(T value) {
+ return (R) value.getRelationshipReference();
+ }
+ };
+ }
+
+ protected Composite addPane(Composite container, int groupBoxMargin) {
+ return addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingUiDefinition.java
new file mode 100644
index 0000000000..075980b7a3
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractManyToOneMappingUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.ManyToOneMapping;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractManyToOneMappingUiDefinition<M, T extends ManyToOneMapping>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractManyToOneMappingUiDefinition() {
+ super();
+ }
+
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForAttributeMapping(getKey());
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.ManyToOneMappingUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.ManyToOneMappingUiProvider_linkLabel;
+ }
+
+ public String getKey() {
+ return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassComposite.java
new file mode 100644
index 0000000000..d110bf2ecb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassComposite.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Oracle. 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 - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.context.IdClassReference;
+import org.eclipse.jpt.core.context.MappedSuperclass;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.Pane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+
+public abstract class AbstractMappedSuperclassComposite<T extends MappedSuperclass>
+ extends Pane<T>
+ implements JpaComposite
+{
+ protected AbstractMappedSuperclassComposite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ this.initializeMappedSuperclassCollapsibleSection(container);
+ }
+
+ protected void initializeMappedSuperclassCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ JptUiDetailsMessages.MappedSuperclassSection_title,
+ new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
+ );
+
+ this.initializeMappedSuperclassSection(container);
+ }
+
+ protected void initializeMappedSuperclassSection(Composite container) {
+ new IdClassComposite(this, buildIdClassReferenceHolder(), container);
+ }
+
+ protected PropertyValueModel<IdClassReference> buildIdClassReferenceHolder() {
+ return new PropertyAspectAdapter<T, IdClassReference>(getSubjectHolder()) {
+ @Override
+ protected IdClassReference buildValue_() {
+ return this.subject.getIdClassReference();
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassUiDefinition.java
new file mode 100644
index 0000000000..e309a2b1c0
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappedSuperclassUiDefinition.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Oracle.
+ * 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.MappedSuperclass;
+import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
+import org.eclipse.swt.graphics.Image;
+
+public abstract class AbstractMappedSuperclassUiDefinition<M, T extends MappedSuperclass>
+ extends AbstractMappingUiDefinition<M, T>
+{
+ protected AbstractMappedSuperclassUiDefinition() {
+ super();
+ }
+
+
+ public String getKey() {
+ return MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY;
+ }
+
+ public String getLabel() {
+ return JptUiDetailsMessages.MappedSuperclassUiProvider_label;
+ }
+
+ public String getLinkLabel() {
+ return JptUiDetailsMessages.MappedSuperclassUiProvider_linkLabel;
+ }
+
+ public Image getImage() {
+ return JpaMappingImageHelper.imageForTypeMapping(getKey());
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappingUiDefinition.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappingUiDefinition.java
new file mode 100644
index 0000000000..60c037cd50
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractMappingUiDefinition.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Oracle. 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 - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jpt.ui.internal.details;
+
+import org.eclipse.jpt.ui.details.MappingUiDefinition;
+
+public abstract class AbstractMappingUiDefinition<M, T>
+ implements MappingUiDefinition<M, T>
+{
+ protected AbstractMappingUiDefinition() {
+ super();
+ }
+
+
+ public boolean isEnabledFor(M mappableObject) {
+ return true;
+ }
+}
diff --git a/jpa/plugi