Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsPage.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsProvider.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeMapAsComposite.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java15
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java122
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java59
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/plugin.properties3
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/plugin.xml9
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUi.java40
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JpaPlatformUiProvider.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/AbstractJpaPlatformUiProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/GenericJpaPlatformUiProvider.java61
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/commands/PersistentAttributeMapAsHandler.java71
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java220
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java72
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeMapAsComposite.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/NullAttributeMappingUiProvider.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MapAsComposite.java16
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrmPersistentAttributeMapAsComposite.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentAttributeMapAsComposite.java32
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentTypeMapAsComposite.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java65
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java19
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/orm/details/OrmPersistentAttributeDetailsPage.java92
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java215
46 files changed, 1286 insertions, 1109 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java
index e9f5219965..db5b89b56b 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java
@@ -23,6 +23,7 @@ import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
+import org.eclipse.jpt.core.context.java.JavaTransientMapping;
import org.eclipse.jpt.core.context.java.JavaVersionMapping;
import org.eclipse.jpt.core.context.orm.EntityMappings;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
@@ -66,6 +67,7 @@ import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1Virtu
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlOneToMany;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlOneToOne;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlTransformation;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlTransient;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlVariableOneToOne;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlVersion;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
@@ -88,6 +90,7 @@ import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping;
import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings;
+import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient;
public class EclipseLink1_1JpaFactory
extends EclipseLinkJpaFactory
@@ -174,6 +177,10 @@ public class EclipseLink1_1JpaFactory
return new EclipseLink1_1VirtualXmlTransformation(ormTypeMapping, javaTransformationMapping);
}
+ public XmlTransient buildEclipseLink1_1VirtualXmlTransient(OrmTypeMapping ormTypeMapping, JavaTransientMapping javaTransientMapping) {
+ return new EclipseLink1_1VirtualXmlTransient(ormTypeMapping, javaTransientMapping);
+ }
+
public XmlVariableOneToOne buildEclipseLink1_1VirtualXmlVariableOneToOne(OrmTypeMapping ormTypeMapping, JavaVariableOneToOneMapping javaVariableOneToOneMapping) {
return new EclipseLink1_1VirtualXmlVariableOneToOne(ormTypeMapping, javaVariableOneToOneMapping);
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java
index 1b4dc792af..ace4443de5 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java
@@ -20,6 +20,7 @@ import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
import org.eclipse.jpt.core.resource.orm.XmlTransient;
+import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
@@ -60,7 +61,7 @@ public class EclipseLink1_1OrmTransientMappingProvider
}
public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
- return factory.buildVirtualXmlTransient(ormTypeMapping, (JavaTransientMapping) javaAttributeMapping);
+ return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlTransient(ormTypeMapping, (JavaTransientMapping) javaAttributeMapping);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java
new file mode 100644
index 0000000000..c08b8c4a01
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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.eclipselink.core.internal.context.orm;
+
+import org.eclipse.jpt.core.context.java.JavaTransientMapping;
+import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
+import org.eclipse.jpt.core.internal.context.orm.VirtualXmlTransient;
+import org.eclipse.jpt.core.resource.orm.AccessType;
+import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient;
+
+/**
+ * VirtualBasic is an implementation of Basic used when there is
+ * no tag in the orm.xml and an underlying javaBasicMapping exists.
+ */
+public class EclipseLink1_1VirtualXmlTransient extends VirtualXmlTransient implements XmlTransient
+{
+
+ public EclipseLink1_1VirtualXmlTransient(OrmTypeMapping ormTypeMapping, JavaTransientMapping javaTransientMapping) {
+ super(ormTypeMapping, javaTransientMapping);
+ }
+
+ public AccessType getAccess() {
+ return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
+ }
+
+ public void setAccess(AccessType value) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java
new file mode 100644
index 0000000000..4952321b4f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.java.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicCollectionMappingComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkJavaBasicCollectionMappingUiProvider extends EclipseLinkBasicCollectionMappingUiProvider<BasicCollectionMapping>
+{
+ // singleton
+ private static final EclipseLinkJavaBasicCollectionMappingUiProvider INSTANCE =
+ new EclipseLinkJavaBasicCollectionMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkJavaBasicCollectionMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<BasicCollectionMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new BasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java
new file mode 100644
index 0000000000..3c3c004900
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.java.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicMapMappingComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkJavaBasicMapMappingUiProvider extends EclipseLinkBasicMapMappingUiProvider<BasicMapMapping>
+{
+ // singleton
+ private static final EclipseLinkJavaBasicMapMappingUiProvider INSTANCE =
+ new EclipseLinkJavaBasicMapMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<BasicMapMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkJavaBasicMapMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<BasicMapMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new BasicMapMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java
new file mode 100644
index 0000000000..6fa7ad013c
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.java.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TransformationMappingComposite;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkJavaTransformationMappingUiProvider extends EclipseLinkTransformationMappingUiProvider<TransformationMapping>
+{
+ // singleton
+ private static final EclipseLinkJavaTransformationMappingUiProvider INSTANCE =
+ new EclipseLinkJavaTransformationMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<TransformationMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkJavaTransformationMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<TransformationMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java
new file mode 100644
index 0000000000..32de38ec64
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.java.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkJavaVariableOneToOneMappingUiProvider extends EclipseLinkVariableOneToOneMappingUiProvider<VariableOneToOneMapping>
+{
+ // singleton
+ private static final EclipseLinkJavaVariableOneToOneMappingUiProvider INSTANCE =
+ new EclipseLinkJavaVariableOneToOneMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkJavaVariableOneToOneMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<VariableOneToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java
index 3c27d81161..4bf9f9f487 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
+ * 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.
@@ -9,47 +9,20 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-public class EclipseLinkBasicCollectionMappingUiProvider
- implements AttributeMappingUiProvider<BasicCollectionMapping>
+public abstract class EclipseLinkBasicCollectionMappingUiProvider<T extends BasicCollectionMapping>
+ implements AttributeMappingUiProvider<T>
{
- // singleton
- private static final EclipseLinkBasicCollectionMappingUiProvider INSTANCE =
- new EclipseLinkBasicCollectionMappingUiProvider();
-
- /**
- * Return the singleton.
- */
- public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
- return INSTANCE;
- }
-
-
- /**
- * Ensure single instance.
- */
- private EclipseLinkBasicCollectionMappingUiProvider() {
- super();
- }
-
- public IContentType getContentType() {
- return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
- }
-
+
+ protected EclipseLinkBasicCollectionMappingUiProvider() {}
+
public Image getImage() {
return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
}
@@ -65,12 +38,5 @@ public class EclipseLinkBasicCollectionMappingUiProvider
public String getKey() {
return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
}
-
- public JpaComposite buildAttributeMappingComposite(
- JpaUiFactory factory,
- PropertyValueModel<BasicCollectionMapping> subjectHolder,
- Composite parent,
- WidgetFactory widgetFactory) {
- return new BasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
- }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java
index d2e068ddcf..e0890f7a03 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
+ * 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.
@@ -9,47 +9,22 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-public class EclipseLinkBasicMapMappingUiProvider
- implements AttributeMappingUiProvider<BasicMapMapping>
+public abstract class EclipseLinkBasicMapMappingUiProvider<T extends BasicMapMapping>
+ implements AttributeMappingUiProvider<T>
{
- // singleton
- private static final EclipseLinkBasicMapMappingUiProvider INSTANCE =
- new EclipseLinkBasicMapMappingUiProvider();
- /**
- * Return the singleton.
- */
- public static AttributeMappingUiProvider<BasicMapMapping> instance() {
- return INSTANCE;
- }
-
-
- /**
- * Ensure single instance.
- */
- private EclipseLinkBasicMapMappingUiProvider() {
+ protected EclipseLinkBasicMapMappingUiProvider() {
super();
}
- public IContentType getContentType() {
- return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
- }
-
public Image getImage() {
return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
}
@@ -65,12 +40,5 @@ public class EclipseLinkBasicMapMappingUiProvider
public String getKey() {
return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
}
-
- public JpaComposite buildAttributeMappingComposite(
- JpaUiFactory factory,
- PropertyValueModel<BasicMapMapping> subjectHolder,
- Composite parent,
- WidgetFactory widgetFactory) {
- return new BasicMapMappingComposite(subjectHolder, parent, widgetFactory);
- }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java
index 302725714f..0d768daabe 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
+ * 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.
@@ -9,47 +9,22 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-public class EclipseLinkTransformationMappingUiProvider
- implements AttributeMappingUiProvider<TransformationMapping>
+public abstract class EclipseLinkTransformationMappingUiProvider<T extends TransformationMapping>
+ implements AttributeMappingUiProvider<T>
{
- // singleton
- private static final EclipseLinkTransformationMappingUiProvider INSTANCE =
- new EclipseLinkTransformationMappingUiProvider();
- /**
- * Return the singleton.
- */
- public static AttributeMappingUiProvider<TransformationMapping> instance() {
- return INSTANCE;
- }
-
-
- /**
- * Ensure single instance.
- */
- private EclipseLinkTransformationMappingUiProvider() {
+ protected EclipseLinkTransformationMappingUiProvider() {
super();
}
- public IContentType getContentType() {
- return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
- }
-
public Image getImage() {
return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
}
@@ -65,13 +40,4 @@ public class EclipseLinkTransformationMappingUiProvider
public String getKey() {
return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
}
-
- public JpaComposite buildAttributeMappingComposite(
- JpaUiFactory factory,
- PropertyValueModel<TransformationMapping> subjectHolder,
- Composite parent,
- WidgetFactory widgetFactory) {
-
- return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java
index 57fa2396af..58ce196648 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java
@@ -9,47 +9,21 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-public class EclipseLinkVariableOneToOneMappingUiProvider
- implements AttributeMappingUiProvider<VariableOneToOneMapping>
-{
- // singleton
- private static final EclipseLinkVariableOneToOneMappingUiProvider INSTANCE =
- new EclipseLinkVariableOneToOneMappingUiProvider();
-
- /**
- * Return the singleton.
- */
- public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
- return INSTANCE;
- }
-
-
- /**
- * Ensure single instance.
- */
- private EclipseLinkVariableOneToOneMappingUiProvider() {
+public abstract class EclipseLinkVariableOneToOneMappingUiProvider<T extends VariableOneToOneMapping>
+ implements AttributeMappingUiProvider<T>
+{
+ protected EclipseLinkVariableOneToOneMappingUiProvider() {
super();
}
-
- public IContentType getContentType() {
- return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
- }
-
+
public Image getImage() {
return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
}
@@ -65,12 +39,4 @@ public class EclipseLinkVariableOneToOneMappingUiProvider
public String getKey() {
return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
}
-
- public JpaComposite buildAttributeMappingComposite(
- JpaUiFactory factory,
- PropertyValueModel<VariableOneToOneMapping> subjectHolder,
- Composite parent,
- WidgetFactory widgetFactory) {
- return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java
new file mode 100644
index 0000000000..da586ead21
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicCollectionMappingComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmBasicCollectionMappingUiProvider extends EclipseLinkBasicCollectionMappingUiProvider<BasicCollectionMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmBasicCollectionMappingUiProvider INSTANCE =
+ new EclipseLinkOrmBasicCollectionMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmBasicCollectionMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<BasicCollectionMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new BasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java
new file mode 100644
index 0000000000..7a74315372
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicMapMappingComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmBasicMapMappingUiProvider extends EclipseLinkBasicMapMappingUiProvider<BasicMapMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmBasicMapMappingUiProvider INSTANCE =
+ new EclipseLinkOrmBasicMapMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<BasicMapMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmBasicMapMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<BasicMapMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new BasicMapMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java
new file mode 100644
index 0000000000..c395af16e5
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedIdMappingUiProvider;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmEmbeddedIdMappingUiProvider
+ extends AbstractEmbeddedIdMappingUiProvider<OrmEmbeddedIdMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmEmbeddedIdMappingUiProvider INSTANCE =
+ new EclipseLinkOrmEmbeddedIdMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<OrmEmbeddedIdMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmEmbeddedIdMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<OrmEmbeddedIdMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return factory.createOrmEmbeddedIdMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java
new file mode 100644
index 0000000000..a1eeea0b32
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingUiProvider;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmEmbeddedMappingUiProvider
+ extends AbstractEmbeddedMappingUiProvider<OrmEmbeddedMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmEmbeddedMappingUiProvider INSTANCE =
+ new EclipseLinkOrmEmbeddedMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<OrmEmbeddedMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmEmbeddedMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<OrmEmbeddedMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return factory.createOrmEmbeddedMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsPage.java
deleted file mode 100644
index 00924c509c..0000000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsPage.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * 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.eclipselink.ui.internal.orm.details;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.platform.EclipseLinkJpaPlatformUi;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmPersistentAttributeDetailsPage;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmPersistentAttributeDetailsPage
- extends OrmPersistentAttributeDetailsPage
-{
- /**
- * Creates a new <code>EclipseLinkOrmPersistentAttributeDetailsPage</code>.
- *
- * @param parent The parent container
- * @param widgetFactory The factory used to create various common widgets
- */
- public EclipseLinkOrmPersistentAttributeDetailsPage(
- Composite parent,
- WidgetFactory widgetFactory) {
- super(parent, widgetFactory);
- }
-
-
- @Override
- protected EclipseLinkJpaPlatformUi getJpaPlatformUi() {
- return (EclipseLinkJpaPlatformUi) super.getJpaPlatformUi();
- }
-
- @Override
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return getJpaPlatformUi().eclipseLinkOrmAttributeMappingUiProviders();
- }
-
- @Override
- protected Pane buildMapAsPane(Composite parent) {
- return new EclipseLinkOrmPersistentAttributeMapAsComposite(this, parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsProvider.java
deleted file mode 100644
index b739193f86..0000000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeDetailsProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * 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.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.context.orm.OrmStructureNodes;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaDetailsPage;
-import org.eclipse.jpt.ui.details.JpaDetailsProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This provider is responsible for creating the {@link JpaDetailsPage}
- * when the information comes from the XML file (either from the persistence
- * configuration or from the Mappings Descriptor).
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLinkOrmPersistentAttributeDetailsProvider
- implements JpaDetailsProvider
-{
- // singleton
- private static final JpaDetailsProvider INSTANCE = new EclipseLinkOrmPersistentAttributeDetailsProvider();
-
- /**
- * Return the singleton.
- */
- public static JpaDetailsProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure single instance.
- */
- private EclipseLinkOrmPersistentAttributeDetailsProvider() {
- super();
- }
-
- public String getId() {
- return OrmStructureNodes.PERSISTENT_ATTRIBUTE_ID;
- }
-
- public IContentType getContentType() {
- return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
- }
-
- public JpaDetailsPage<? extends JpaStructureNode> buildDetailsPage(
- Composite parent,
- WidgetFactory widgetFactory) {
-
- return new EclipseLinkOrmPersistentAttributeDetailsPage(parent, widgetFactory);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeMapAsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeMapAsComposite.java
deleted file mode 100644
index 044ca7fa6d..0000000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmPersistentAttributeMapAsComposite.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * 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.eclipselink.ui.internal.orm.details;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.eclipselink.ui.internal.platform.EclipseLinkJpaPlatformUi;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.details.OrmPersistentAttributeMapAsComposite;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmPersistentAttributeMapAsComposite
- extends OrmPersistentAttributeMapAsComposite
-{
- /**
- * Creates a new <code>EclipseLinkOrmPersistentAttributeMapAsComposite</code>.
- *
- * @param parentPane The parent pane of this one
- * @param parent The parent container
- */
- public EclipseLinkOrmPersistentAttributeMapAsComposite(
- Pane<? extends OrmPersistentAttribute> parentPane, Composite parent) {
- super(parentPane, parent);
- }
-
-
- @Override
- protected Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return ((EclipseLinkJpaPlatformUi) getJpaPlatformUi()).eclipseLinkOrmAttributeMappingUiProviders();
- }
-
- @Override
- protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
- return ((EclipseLinkJpaPlatformUi) getJpaPlatformUi()).defaultEclipseLinkOrmAttributeMappingUiProviders();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java
new file mode 100644
index 0000000000..854c7b6b63
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TransformationMappingComposite;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmTransformationMappingUiProvider extends EclipseLinkTransformationMappingUiProvider<TransformationMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmTransformationMappingUiProvider INSTANCE =
+ new EclipseLinkOrmTransformationMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<TransformationMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmTransformationMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<TransformationMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java
new file mode 100644
index 0000000000..47dd82a524
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.context.orm.OrmTransientMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.details.AbstractTransientMappingUiProvider;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmTransientMappingUiProvider
+ extends AbstractTransientMappingUiProvider<OrmTransientMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmTransientMappingUiProvider INSTANCE =
+ new EclipseLinkOrmTransientMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<OrmTransientMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmTransientMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<OrmTransientMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return factory.createOrmTransientMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java
new file mode 100644
index 0000000000..7e0f297074
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
+import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
+import org.eclipse.jpt.ui.JpaUiFactory;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+public class EclipseLinkOrmVariableOneToOneMappingUiProvider extends EclipseLinkVariableOneToOneMappingUiProvider<VariableOneToOneMapping>
+{
+ // singleton
+ private static final EclipseLinkOrmVariableOneToOneMappingUiProvider INSTANCE =
+ new EclipseLinkOrmVariableOneToOneMappingUiProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
+ return INSTANCE;
+ }
+
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkOrmVariableOneToOneMappingUiProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
+ }
+
+ public JpaComposite buildAttributeMappingComposite(
+ JpaUiFactory factory,
+ PropertyValueModel<VariableOneToOneMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java
index c57615ee3e..be053b0c02 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java
@@ -10,8 +10,11 @@
package org.eclipse.jpt.eclipselink.ui.internal.platform;
import java.util.List;
+import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLink1_1OrmResourceModelStructureProvider;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
@@ -66,4 +69,16 @@ public class EclipseLink1_1JpaPlatformUiProvider extends AbstractJpaPlatformUiPr
//none specific to EclipseLink 1.1
}
+
+ // ********** attribute mapping ui providers **********
+
+ @Override
+ protected void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ //none specific to EclipseLink 1.1
+ }
+
+ @Override
+ protected void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ //none specific to EclipseLink 1.1
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java
index fc40017b7e..5ceaa9e93e 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java
@@ -9,59 +9,18 @@
*******************************************************************************/
package org.eclipse.jpt.eclipselink.ui.internal.platform;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.ui.internal.ddlgen.EclipseLinkDDLGeneratorUi;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmIdMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmVersionMappingUiProvider;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaBasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaManyToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaManyToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaOneToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaOneToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaTransientMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaVersionMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.NullAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmTransientMappingUiProvider;
import org.eclipse.jpt.ui.internal.platform.base.BaseJpaPlatformUi;
import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
public class EclipseLinkJpaPlatformUi
extends BaseJpaPlatformUi
{
- private AttributeMappingUiProvider<? extends AttributeMapping>[] eclipseLinkOrmAttributeMappingUiProviders;
-
public EclipseLinkJpaPlatformUi(
JpaUiFactory jpaUiFactory,
JpaNavigatorProvider navigatorProvider,
@@ -72,91 +31,10 @@ public class EclipseLinkJpaPlatformUi
super(jpaUiFactory, navigatorProvider, persistenceStructureProvider, javaStructureProvider, platformUiProviders);
}
-
- // ********** Java attribute mapping UI providers **********
-
- @Override
- protected void addJavaAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- providers.add(JavaIdMappingUiProvider.instance());
- providers.add(JavaEmbeddedIdMappingUiProvider.instance());
- providers.add(JavaBasicMappingUiProvider.instance());
- providers.add(EclipseLinkBasicCollectionMappingUiProvider.instance());
- providers.add(EclipseLinkBasicMapMappingUiProvider.instance());
- providers.add(JavaVersionMappingUiProvider.instance());
- providers.add(JavaManyToOneMappingUiProvider.instance());
- providers.add(JavaOneToManyMappingUiProvider.instance());
- providers.add(JavaOneToOneMappingUiProvider.instance());
- providers.add(EclipseLinkVariableOneToOneMappingUiProvider.instance());
- providers.add(JavaManyToManyMappingUiProvider.instance());
- providers.add(JavaEmbeddedMappingUiProvider.instance());
- providers.add(EclipseLinkTransformationMappingUiProvider.instance());
- providers.add(JavaTransientMappingUiProvider.instance());
- providers.add(NullAttributeMappingUiProvider.instance());
- }
-
-
- // ********** default Java attribute mapping UI providers **********
-
- @Override
- protected void addDefaultJavaAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- super.addDefaultJavaAttributeMappingUiProvidersTo(providers);
- providers.add(DefaultOneToOneMappingUiProvider.instance());
- providers.add(DefaultOneToManyMappingUiProvider.instance());
- providers.add(DefaultVariableOneToOneMappingUiProvider.instance());
- }
-
-
// ********** DDL generation **********
public void generateDDL(JpaProject project, IStructuredSelection selection) {
EclipseLinkDDLGeneratorUi.generate(project);
}
-
- // ********** ORM attribute mapping UI providers **********
-
- @Override
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders(PersistentAttribute attribute) {
- if (attribute.getContentType().equals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE)) {
- return eclipseLinkOrmAttributeMappingUiProviders();
- }
- return super.attributeMappingUiProviders(attribute);
- }
-
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> eclipseLinkOrmAttributeMappingUiProviders() {
- if (this.eclipseLinkOrmAttributeMappingUiProviders == null) {
- this.eclipseLinkOrmAttributeMappingUiProviders = this.buildEclipseLinkOrmAttributeMappingUiProviders();
- }
- return new ArrayListIterator<AttributeMappingUiProvider<? extends AttributeMapping>>(this.eclipseLinkOrmAttributeMappingUiProviders);
- }
-
- protected AttributeMappingUiProvider<? extends AttributeMapping>[] buildEclipseLinkOrmAttributeMappingUiProviders() {
- ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>>();
- this.addEclipseLinkOrmAttributeMappingUiProvidersTo(providers);
- @SuppressWarnings("unchecked")
- AttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new AttributeMappingUiProvider[providers.size()]);
- return providerArray;
- }
-
- protected void addEclipseLinkOrmAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- providers.add(EclipseLinkOrmIdMappingUiProvider.instance());
- providers.add(OrmEmbeddedIdMappingUiProvider.instance());
- providers.add(EclipseLinkOrmBasicMappingUiProvider.instance());
- providers.add(EclipseLinkBasicCollectionMappingUiProvider.instance());
- providers.add(EclipseLinkBasicMapMappingUiProvider.instance());
- providers.add(EclipseLinkOrmVersionMappingUiProvider.instance());
- providers.add(EclipseLinkOrmManyToOneMappingUiProvider.instance());
- providers.add(EclipseLinkOrmOneToManyMappingUiProvider.instance());
- providers.add(EclipseLinkOrmOneToOneMappingUiProvider.instance());
- providers.add(EclipseLinkVariableOneToOneMappingUiProvider.instance());
- providers.add(EclipseLinkOrmManyToManyMappingUiProvider.instance());
- providers.add(OrmEmbeddedMappingUiProvider.instance());
- providers.add(EclipseLinkTransformationMappingUiProvider.instance());
- providers.add(OrmTransientMappingUiProvider.instance());
- }
-
- public Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultEclipseLinkOrmAttributeMappingUiProviders() {
- return EmptyIterator.instance();
- }
-
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java
index 7a821a7e88..0bae1c3443 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java
@@ -10,13 +10,36 @@
package org.eclipse.jpt.eclipselink.ui.internal.platform;
import java.util.List;
+import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToManyMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultVariableOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaBasicCollectionMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaBasicMapMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaTransformationMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaVariableOneToOneMappingUiProvider;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkEntityMappingsDetailsProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicCollectionMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicMapMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicMappingUiProvider;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddableUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddedIdMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddedMappingUiProvider;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEntityUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmIdMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToManyMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToOneMappingUiProvider;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmMappedSuperclassUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmPersistentAttributeDetailsProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToManyMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmTransformationMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmTransientMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmVariableOneToOneMappingUiProvider;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmVersionMappingUiProvider;
import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLinkOrmResourceModelStructureProvider;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
@@ -49,7 +72,6 @@ public class EclipseLinkJpaPlatformUiProvider extends AbstractJpaPlatformUiProvi
@Override
protected void addDetailsProvidersTo(List<JpaDetailsProvider> providers) {
providers.add(EclipseLinkEntityMappingsDetailsProvider.instance());
- providers.add(EclipseLinkOrmPersistentAttributeDetailsProvider.instance());
}
@@ -74,4 +96,37 @@ public class EclipseLinkJpaPlatformUiProvider extends AbstractJpaPlatformUiProvi
protected void addDefaultTypeMappingUiProvidersTo(List<DefaultTypeMappingUiProvider<?>> providers) {
//none specific to EclipseLink
}
+
+
+ // ********** attribute mapping ui providers **********
+
+ @Override
+ protected void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ providers.add(EclipseLinkJavaBasicCollectionMappingUiProvider.instance());
+ providers.add(EclipseLinkJavaBasicMapMappingUiProvider.instance());
+ providers.add(EclipseLinkJavaVariableOneToOneMappingUiProvider.instance());
+ providers.add(EclipseLinkJavaTransformationMappingUiProvider.instance());
+
+ providers.add(EclipseLinkOrmIdMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmEmbeddedIdMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmBasicMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmBasicCollectionMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmBasicMapMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmVersionMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmManyToOneMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmOneToManyMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmEmbeddedMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmOneToOneMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmVariableOneToOneMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmManyToManyMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmTransformationMappingUiProvider.instance());
+ providers.add(EclipseLinkOrmTransientMappingUiProvider.instance());
+ }
+
+ @Override
+ protected void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ providers.add(DefaultOneToOneMappingUiProvider.instance());
+ providers.add(DefaultOneToManyMappingUiProvider.instance());
+ providers.add(DefaultVariableOneToOneMappingUiProvider.instance());
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
index 1d667717e9..9f6eb213dd 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
+++ b/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
@@ -42,7 +42,8 @@ addPersistentAttributeToXmlAndMap = Add Attribute to XML and Map ...
removePersistentAttributeFromXml = Remove Attribute from XML
mapAs=Map As
mapAsMnemonic=M
-mapAsParameterName=mapping key
+mapAsSpecifiedMappingParameterName=specified mapping key
+mapAsDefaultMappingParameterName=default mapping key
jpaMenuName = JPA Tools
generateEntities = Generate Entities from Tables...
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.xml b/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
index 22e754e07e..d56dd0bea8 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
+++ b/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
@@ -158,10 +158,15 @@
name="%mapAs"
categoryId="org.eclipse.jpt.ui.jpaStructureViewCommands">
<commandParameter
- id="persistentAttributeMappingKey"
- name="%mapAsParameterName"
+ id="specifiedPersistentAttributeMappingKey"
+ name="%mapAsSpecifiedMappingParameterName"
optional="false">
</commandParameter>
+ <commandParameter
+ id="defaultPersistentAttributeMappingKey"
+ name="%mapAsDefaultMappingParameterName"
+ optional="false">
+ </commandParameter>
</command>
</extension>
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
index 33d32eeb0e..db898291c0 100644
--- 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
@@ -16,7 +16,6 @@ import org.eclipse.jpt.core.JpaFile;
import org.eclipse.jpt.core.JpaProject;
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.TypeMapping;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
@@ -68,36 +67,35 @@ public interface JpaPlatformUi
/**
* Return a default type mapping ui provider for the given content type or null
*/
- DefaultTypeMappingUiProvider<? extends TypeMapping> getDefaultTypeMappingProvider(IContentType contentType);
-
-
+ DefaultTypeMappingUiProvider<? extends TypeMapping> getDefaultTypeMappingUiProvider(IContentType contentType);
+
/**
- * Return an iterator of mapping ui providers appropriate for the given persistent attribute
+ * Return an type mapping ui provider for the given content type
*/
- Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders(PersistentAttribute attribute);
-
-
+ TypeMappingUiProvider<? extends TypeMapping> getTypeMappingUiProvider(String key, IContentType contentType);
- // ********** Java attribute mapping UI providers **********
+ /**
+ * Return an iterator of mapping ui providers appropriate for the given persistent attribute
+ */
+ Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders(IContentType contentType);
- Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> javaAttributeMappingUiProviders();
// ********** default Java attribute mapping UI providers **********
- Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultJavaAttributeMappingUiProviders();
-
-
- // ********** ORM attribute mapping UI providers **********
-
- Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> ormAttributeMappingUiProviders();
-
-
- // ********** default ORM attribute mapping UI providers **********
-
- Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultOrmAttributeMappingUiProviders();
+ Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders(IContentType contentType);
+ /**
+ * Return a default attribute mapping ui provider for the given content type or null
+ */
+ DefaultAttributeMappingUiProvider<? extends AttributeMapping> getDefaultAttributeMappingUiProvider(String key, IContentType contentType);
+ /**
+ * Return an attribute mapping ui provider for the given content type
+ */
+ AttributeMappingUiProvider<? extends AttributeMapping> getAttributeMappingUiProvider(String key, IContentType contentType);
+
+
// ********** structure providers **********
/**
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
index d3b1d3f985..a16e07f8bb 100644
--- 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
@@ -10,7 +10,10 @@
package org.eclipse.jpt.ui;
import java.util.ListIterator;
+import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
@@ -59,4 +62,9 @@ public interface JpaPlatformUiProvider
*/
ListIterator<DefaultTypeMappingUiProvider<? extends TypeMapping>> defaultTypeMappingUiProviders();
+
+ ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders();
+
+ ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders();
+
}
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
index e5a614cc69..8d82fc247b 100644
--- 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
@@ -13,7 +13,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
+import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
@@ -33,6 +36,10 @@ public abstract class AbstractJpaPlatformUiProvider implements JpaPlatformUiProv
private TypeMappingUiProvider<?>[] typeMappingUiProviders;
private DefaultTypeMappingUiProvider<?>[] defaultTypeMappingUiProviders;
+
+ private AttributeMappingUiProvider<? extends AttributeMapping>[] attributeMappingUiProviders;
+
+ private DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] defaultAttributeMappingUiProviders;
/**
* zero-argument constructor
@@ -142,4 +149,48 @@ public abstract class AbstractJpaPlatformUiProvider implements JpaPlatformUiProv
*/
protected abstract void addDefaultTypeMappingUiProvidersTo(List<DefaultTypeMappingUiProvider<?>> providers);
+
+
+ // ********** attribute mapping ui providers **********
+
+
+ public ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
+ if (this.attributeMappingUiProviders == null) {
+ this.attributeMappingUiProviders = this.buildAttributeMappingUiProviders();
+ }
+ return new ArrayListIterator<AttributeMappingUiProvider<? extends AttributeMapping>>(this.attributeMappingUiProviders);
+ }
+
+ protected AttributeMappingUiProvider<? extends AttributeMapping>[] buildAttributeMappingUiProviders() {
+ ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>>();
+ this.addAttributeMappingUiProvidersTo(providers);
+ @SuppressWarnings("unchecked")
+ AttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new AttributeMappingUiProvider[providers.size()]);
+ return providerArray;
+ }
+
+
+ protected abstract void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers);
+
+
+ // ********** default Java attribute mapping UI providers **********
+
+ public ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
+ if (this.defaultAttributeMappingUiProviders == null) {
+ this.defaultAttributeMappingUiProviders = this.buildDefaultAttributeMappingUiProviders();
+ }
+ return new ArrayListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>(this.defaultAttributeMappingUiProviders);
+ }
+
+ protected DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] buildDefaultAttributeMappingUiProviders() {
+ ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>();
+ this.addDefaultAttributeMappingUiProvidersTo(providers);
+ @SuppressWarnings("unchecked")
+ DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new DefaultAttributeMappingUiProvider[providers.size()]);
+ return providerArray;
+ }
+
+
+ protected abstract void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers);
+
}
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
index fe89fcdf7c..87b12db3f9 100644
--- 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
@@ -10,22 +10,48 @@
package org.eclipse.jpt.ui.internal;
import java.util.List;
+import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.DefaultBasicMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.DefaultEmbeddedMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaBasicMappingUiProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaDefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddableUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedIdMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedMappingUiProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaEntityUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaIdMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaManyToManyMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaManyToOneMappingUiProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaMappedSuperclassUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaOneToManyMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaOneToOneMappingUiProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaPersistentAttributeDetailsProvider;
import org.eclipse.jpt.ui.internal.java.details.JavaPersistentTypeDetailsProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaTransientMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.JavaVersionMappingUiProvider;
+import org.eclipse.jpt.ui.internal.java.details.NullAttributeMappingUiProvider;
import org.eclipse.jpt.ui.internal.orm.details.EntityMappingsDetailsProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmBasicMappingUiProvider;
import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddableUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedIdMappingUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedMappingUiProvider;
import org.eclipse.jpt.ui.internal.orm.details.OrmEntityUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmIdMappingUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmManyToManyMappingUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmManyToOneMappingUiProvider;
import org.eclipse.jpt.ui.internal.orm.details.OrmMappedSuperclassUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmOneToManyMappingUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmOneToOneMappingUiProvider;
import org.eclipse.jpt.ui.internal.orm.details.OrmPersistentAttributeDetailsProvider;
import org.eclipse.jpt.ui.internal.orm.details.OrmPersistentTypeDetailsProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmTransientMappingUiProvider;
+import org.eclipse.jpt.ui.internal.orm.details.OrmVersionMappingUiProvider;
import org.eclipse.jpt.ui.internal.structure.OrmResourceModelStructureProvider;
import org.eclipse.jpt.ui.structure.JpaStructureProvider;
@@ -90,4 +116,39 @@ public class GenericJpaPlatformUiProvider extends AbstractJpaPlatformUiProvider
protected void addDefaultTypeMappingUiProvidersTo(List<DefaultTypeMappingUiProvider<?>> providers) {
providers.add(JavaDefaultTypeMappingUiProvider.instance());
}
+
+
+ // ********** attribute mapping ui providers **********
+
+ @Override
+ protected void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ providers.add(JavaIdMappingUiProvider.instance());
+ providers.add(JavaEmbeddedIdMappingUiProvider.instance());
+ providers.add(JavaBasicMappingUiProvider.instance());
+ providers.add(JavaVersionMappingUiProvider.instance());
+ providers.add(JavaManyToOneMappingUiProvider.instance());
+ providers.add(JavaOneToManyMappingUiProvider.instance());
+ providers.add(JavaOneToOneMappingUiProvider.instance());
+ providers.add(JavaManyToManyMappingUiProvider.instance());
+ providers.add(JavaEmbeddedMappingUiProvider.instance());
+ providers.add(JavaTransientMappingUiProvider.instance());
+
+ providers.add(OrmIdMappingUiProvider.instance());
+ providers.add(OrmEmbeddedIdMappingUiProvider.instance());
+ providers.add(OrmBasicMappingUiProvider.instance());
+ providers.add(OrmVersionMappingUiProvider.instance());
+ providers.add(OrmManyToOneMappingUiProvider.instance());
+ providers.add(OrmOneToManyMappingUiProvider.instance());
+ providers.add(OrmOneToOneMappingUiProvider.instance());
+ providers.add(OrmManyToManyMappingUiProvider.instance());
+ providers.add(OrmEmbeddedMappingUiProvider.instance());
+ providers.add(OrmTransientMappingUiProvider.instance());
+ }
+
+ @Override
+ protected void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
+ providers.add(DefaultBasicMappingUiProvider.instance());
+ providers.add(DefaultEmbeddedMappingUiProvider.instance());
+ providers.add(NullAttributeMappingUiProvider.instance());
+ }
}
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
index cefbbcd031..0b829e7ac8 100644
--- 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
+ * 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.
@@ -9,14 +9,12 @@
******************************************************************************/
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.PersistentAttribute;
-import org.eclipse.jpt.ui.internal.menus.PersistentAttributeMapAsContribution;
import org.eclipse.ui.ISources;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.commands.IElementUpdater;
@@ -51,8 +49,9 @@ public class PersistentAttributeMapAsHandler extends AbstractHandler
* 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 COMMAND_PARAMETER_ID = "persistentAttributeMappingKey";
+ 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>.
@@ -68,7 +67,7 @@ public class PersistentAttributeMapAsHandler extends AbstractHandler
HandlerUtil.getCurrentSelectionChecked(event);
// Retrieve the value of the unique parameter passed to the command
- String mappingKey = event.getParameter(COMMAND_PARAMETER_ID);
+ String mappingKey = event.getParameter(SPECIFIED_MAPPING_COMMAND_PARAMETER_ID);
// Change the mapping key for all the selected items
for (Object item : selection.toArray()) {
@@ -79,8 +78,7 @@ public class PersistentAttributeMapAsHandler extends AbstractHandler
return null;
}
- @SuppressWarnings("unchecked")
- public void updateElement(UIElement element, Map parameters) {
+ 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
@@ -92,33 +90,54 @@ public class PersistentAttributeMapAsHandler extends AbstractHandler
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));
- }
+ element.setChecked(selectedElementsMappingKeysMatch(selection, parameters));
}
- @SuppressWarnings("unchecked")
- protected String commonMappingKey(IStructuredSelection selection) {
- String commonKey = null;
- for (Iterator stream = selection.iterator(); stream.hasNext(); ) {
- Object obj = stream.next();
-
+ //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)) {
- return null;
+ //oddly enough, you have to check instanceof here, seems like a bug in the framework
+ return false;
}
PersistentAttribute persistentAttribute = (PersistentAttribute) obj;
-
- if (commonKey == null) {
- commonKey = persistentAttribute.getMappingKey();
+ 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 (! commonKey.equals(persistentAttribute.getMappingKey())) {
- return null;
+ else {
+ if (commonDefaultKey != null) {
+ return false;
+ }
+ if (commonSpecifiedKey == null) {
+ commonSpecifiedKey = persistentAttribute.getMappingKey();
+ }
+ else if (!commonSpecifiedKey.equals(persistentAttribute.getMappingKey())) {
+ return false;
+ }
}
}
- return commonKey;
+ 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/details/PersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java
index eb19d6920d..d352f95edc 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
+ * 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.
@@ -11,8 +11,8 @@ package org.eclipse.jpt.ui.internal.details;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
+import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.ui.JptUiPlugin;
@@ -27,6 +27,7 @@ import org.eclipse.jpt.utility.internal.model.value.FilteringPropertyValueModel;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.PageBook;
@@ -37,10 +38,9 @@ import org.eclipse.ui.part.PageBook;
*
* @see PersistentAttribute
*
- * @version 2.0
+ * @version 2.2
* @since 1.0
*/
-@SuppressWarnings("nls")
public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribute> extends AbstractJpaDetailsPage<T>
{
private JpaComposite currentMappingComposite;
@@ -61,47 +61,69 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
}
@Override
+ protected void initialize() {
+ super.initialize();
+ this.mappingComposites = new HashMap<String, JpaComposite>();
+ }
+
+ @Override
protected void addPropertyNames(Collection<String> propertyNames) {
super.addPropertyNames(propertyNames);
propertyNames.add(PersistentAttribute.DEFAULT_MAPPING_PROPERTY);
propertyNames.add(PersistentAttribute.SPECIFIED_MAPPING_PROPERTY);
}
- protected AttributeMappingUiProvider<? extends AttributeMapping> getAttributeMappingUiProvider(String key) {
- for (Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> i = attributeMappingUiProviders(); i.hasNext(); ) {
- AttributeMappingUiProvider<? extends AttributeMapping> provider = i.next();
- if (provider.getKey() == key) {
- return provider;
- }
+ @Override
+ protected void propertyChanged(String propertyName) {
+ super.propertyChanged(propertyName);
+
+ if (propertyName == PersistentAttribute.DEFAULT_MAPPING_PROPERTY ||
+ propertyName == PersistentAttribute.SPECIFIED_MAPPING_PROPERTY) {
+
+ updateMappingPage();
}
- throw new IllegalArgumentException("Unsupported attribute mapping UI provider key: ");
}
- protected abstract Iterator<AttributeMappingUiProvider<? extends AttributeMapping>>
- attributeMappingUiProviders();
+ protected Label buildMappingLabel(Composite parent) {
+ return addLabel(parent, JptUiMessages.PersistentAttributePage_mapAs);
+ }
- protected abstract AttributeMappingUiProvider<? extends AttributeMapping>[]
- attributeMappingUiProvidersFor(PersistentAttribute persistentAttribute);
+ protected PageBook buildMappingPageBook(Composite parent) {
+ this.mappingPageBook = new PageBook(parent, SWT.NONE);
+ this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, "")); //$NON-NLS-1$
- private PropertyAspectAdapter<PersistentAttribute, AttributeMapping> buildGenericMappingHolder() {
- return new PropertyAspectAdapter<PersistentAttribute, AttributeMapping>(
- getSubjectHolder(),
- PersistentAttribute.DEFAULT_MAPPING_PROPERTY,
- PersistentAttribute.SPECIFIED_MAPPING_PROPERTY)
- {
- @Override
- protected AttributeMapping buildValue_() {
- return subject.getMapping();
- }
- };
+ GridData gridData = new GridData();
+ gridData.horizontalAlignment = SWT.FILL;
+ gridData.verticalAlignment = SWT.TOP;
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.grabExcessVerticalSpace = true;
+
+ this.mappingPageBook.setLayoutData(gridData);
+
+ return this.mappingPageBook;
}
+ private JpaComposite getMappingComposite(String key) {
+ JpaComposite composite = this.mappingComposites.get(key);
+ if (composite != null) {
+ return composite;
+ }
+
+ composite = buildMappingComposite(this.mappingPageBook, key, getSubject().getContentType());
+
+ if (composite != null) {
+ this.mappingComposites.put(key, composite);
+ }
+
+ return composite;
+ }
+
@SuppressWarnings("unchecked")
protected JpaComposite buildMappingComposite(PageBook pageBook,
- String mappingKey) {
+ String mappingKey, IContentType contentType) {
AttributeMappingUiProvider<AttributeMapping> uiProvider =
- (AttributeMappingUiProvider<AttributeMapping>) getMappingUIProvider(mappingKey);
+ (AttributeMappingUiProvider<AttributeMapping>) getMappingUIProvider(mappingKey, contentType);
return uiProvider.buildAttributeMappingComposite(
getJpaUiFactory(),
@@ -110,11 +132,7 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
getWidgetFactory()
);
}
-
- private Filter<AttributeMapping> buildMappingFilter(String mappingKey) {
- return new MappingFilter(mappingKey);
- }
-
+
private PropertyValueModel<AttributeMapping> buildMappingHolder(final String key) {
return new FilteringPropertyValueModel<AttributeMapping>(
buildGenericMappingHolder(),
@@ -122,83 +140,51 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
);
}
- protected Label buildMappingLabel(Composite parent) {
- return addLabel(parent, JptUiMessages.PersistentAttributePage_mapAs);
+ private PropertyAspectAdapter<PersistentAttribute, AttributeMapping> buildGenericMappingHolder() {
+ return new PropertyAspectAdapter<PersistentAttribute, AttributeMapping>(
+ getSubjectHolder(),
+ PersistentAttribute.DEFAULT_MAPPING_PROPERTY,
+ PersistentAttribute.SPECIFIED_MAPPING_PROPERTY)
+ {
+ @Override
+ protected AttributeMapping buildValue_() {
+ return this.subject.getMapping();
+ }
+ };
}
- protected PageBook buildMappingPageBook(Composite parent) {
- this.mappingPageBook = new PageBook(parent, SWT.NONE);
- this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, ""));
- return this.mappingPageBook;
+ private Filter<AttributeMapping> buildMappingFilter(String mappingKey) {
+ return new MappingFilter(mappingKey);
}
- protected abstract DefaultAttributeMappingUiProvider<? extends AttributeMapping> getDefaultAttributeMappingUiProvider(String key);
-
- protected abstract Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders();
+ private AttributeMappingUiProvider<? extends AttributeMapping> getMappingUIProvider(String key, IContentType contentType) {
- @Override
- protected void doDispose() {
- log(Tracing.UI_DETAILS_VIEW, "PersistentAttributeDetailsPage.doDispose()");
+ if (this.getSubject().getMapping() == null ||
+ this.getSubject().getMapping().isDefault()) {
- if (this.currentMappingComposite != null) {
- this.currentMappingComposite.dispose();
- this.currentMappingComposite = null;
+ return getDefaultAttributeMappingUiProvider(key, contentType);
}
- this.mappingComposites.clear();
- super.doDispose();
+ return getAttributeMappingUiProvider(key, contentType);
}
- @Override
- protected void doPopulate() {
- super.doPopulate();
- updateMappingPage();
+ protected AttributeMappingUiProvider<? extends AttributeMapping> getAttributeMappingUiProvider(String key, IContentType contentType) {
+ return getJpaPlatformUi().getAttributeMappingUiProvider(key, contentType);
}
- @Override
- protected void initialize() {
- super.initialize();
- this.mappingComposites = new HashMap<String, JpaComposite>();
+ protected DefaultAttributeMappingUiProvider<? extends AttributeMapping> getDefaultAttributeMappingUiProvider(String key, IContentType contentType) {
+ return getJpaPlatformUi().getDefaultAttributeMappingUiProvider(key, contentType);
}
@Override
- protected void log(String flag, String message) {
- super.log(flag, message);
-
- if (Tracing.UI_DETAILS_VIEW.equals(flag) &&
- Tracing.booleanDebugOption(Tracing.UI_DETAILS_VIEW))
- {
- Tracing.log(message);
- }
- }
-
- private JpaComposite getMappingComposite(String key) {
- JpaComposite composite = this.mappingComposites.get(key);
- if (composite != null) {
- return composite;
- }
-
- composite = buildMappingComposite(this.mappingPageBook, key);
-
- if (composite != null) {
- this.mappingComposites.put(key, composite);
- }
-
- return composite;
- }
-
- protected void mappingPageChanged(JpaComposite mappingComposite) {
+ protected void doPopulate() {
+ super.doPopulate();
+ updateMappingPage();
}
- private AttributeMappingUiProvider<? extends AttributeMapping> getMappingUIProvider(String key) {
-
- if (this.getSubject().getMapping() == null ||
- this.getSubject().getMapping().isDefault()) {
-
- return getDefaultAttributeMappingUiProvider(key);
- }
-
- return getAttributeMappingUiProvider(key);
+ private void updateMappingPage() {
+ AttributeMapping mapping = (this.getSubject() != null) ? this.getSubject().getMapping() : null;
+ populateMappingPage(mapping == null ? null : mapping.getKey());
}
private void populateMappingPage(String mappingKey) {
@@ -212,7 +198,7 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
else if (this.currentMappingComposite != null) {
this.log(
Tracing.UI_DETAILS_VIEW,
- "PersistentAttributeDetailsPage.populateMappingPage() disposing of current page: " + this.currentMappingKey
+ "PersistentAttributeDetailsPage.populateMappingPage() disposing of current page: " + this.currentMappingKey //$NON-NLS-1$
);
try {
@@ -233,7 +219,7 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
try {
this.log(
Tracing.UI_DETAILS_VIEW,
- "PersistentAttributeDetailsPage.populateMappingPage() populating new page: " + this.currentMappingKey
+ "PersistentAttributeDetailsPage.populateMappingPage() populating new page: " + this.currentMappingKey //$NON-NLS-1$
);
this.currentMappingComposite.populate();
@@ -245,7 +231,7 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
this.log(
Tracing.UI_DETAILS_VIEW,
- "PersistentAttributeDetailsPage.populateMappingPage() error encountered"
+ "PersistentAttributeDetailsPage.populateMappingPage() error encountered" //$NON-NLS-1$
);
// An error was encountered either during the population, dispose it
@@ -261,42 +247,50 @@ public abstract class PersistentAttributeDetailsPage<T extends PersistentAttribu
// Show an error message
// TODO: Replace the blank label with the error page
- this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, ""));
+ this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, "")); //$NON-NLS-1$
}
}
else {
this.log(
Tracing.UI_DETAILS_VIEW,
- "PersistentAttributeDetailsPage.populateMappingPage() no page to show"
+ "PersistentAttributeDetailsPage.populateMappingPage() no page to show" //$NON-NLS-1$
);
- this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, ""));
+ this.mappingPageBook.showPage(this.addLabel(this.mappingPageBook, "")); //$NON-NLS-1$
}
this.repaintDetailsView(this.mappingPageBook);
}
- /*
- * (non-Javadoc)
- */
+ protected void mappingPageChanged(JpaComposite mappingComposite) {
+ }
+
@Override
- protected void propertyChanged(String propertyName) {
- super.propertyChanged(propertyName);
+ protected boolean repopulateWithNullSubject() {
+ return false;
+ }
- if (propertyName == PersistentAttribute.DEFAULT_MAPPING_PROPERTY ||
- propertyName == PersistentAttribute.SPECIFIED_MAPPING_PROPERTY) {
+ @Override
+ protected void doDispose() {
+ log(Tracing.UI_DETAILS_VIEW, "PersistentAttributeDetailsPage.doDispose()"); //$NON-NLS-1$
- updateMappingPage();
+ if (this.currentMappingComposite != null) {
+ this.currentMappingComposite.dispose();
+ this.currentMappingComposite = null;
}
+
+ this.mappingComposites.clear();
+ super.doDispose();
}
@Override
- protected boolean repopulateWithNullSubject() {
- return false;
- }
+ protected void log(String flag, String message) {
+ super.log(flag, message);
- private void updateMappingPage() {
- AttributeMapping mapping = (this.getSubject() != null) ? this.getSubject().getMapping() : null;
- populateMappingPage(mapping == null ? null : mapping.getKey());
+ if (Tracing.UI_DETAILS_VIEW.equals(flag) &&
+ Tracing.booleanDebugOption(Tracing.UI_DETAILS_VIEW))
+ {
+ Tracing.log(message);
+ }
}
private class MappingFilter implements Filter<AttributeMapping> {
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java
index 539d5e4ce9..d66db1979c 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java
@@ -11,7 +11,6 @@ package org.eclipse.jpt.ui.internal.details;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.eclipse.jpt.core.context.PersistentType;
import org.eclipse.jpt.core.context.TypeMapping;
@@ -94,18 +93,8 @@ public class PersistentTypeDetailsPage extends AbstractJpaDetailsPage<Persistent
return this.typeMappingPageBook;
}
- private TypeMappingUiProvider<? extends TypeMapping> typeMappingUiProvider(String key) {
- for (Iterator<TypeMappingUiProvider<? extends TypeMapping>> iter = this.typeMappingUiProviders(); iter.hasNext();) {
- TypeMappingUiProvider<? extends TypeMapping> provider = iter.next();
- if (provider.getKey() == key) {
- return provider;
- }
- }
- throw new IllegalArgumentException("Unsupported type mapping UI provider key: " + key);
- }
-
- protected Iterator<TypeMappingUiProvider<? extends TypeMapping>> typeMappingUiProviders() {
- return getJpaPlatformUi().typeMappingUiProviders(getSubject().getContentType());
+ private TypeMappingUiProvider<? extends TypeMapping> getTypeMappingUiProvider(String key) {
+ return getJpaPlatformUi().getTypeMappingUiProvider(key, getSubject().getContentType());
}
private PropertyValueModel<TypeMapping> buildMappingHolder(String key) {
@@ -230,12 +219,8 @@ public class PersistentTypeDetailsPage extends AbstractJpaDetailsPage<Persistent
@SuppressWarnings("unchecked")
protected JpaComposite buildMappingComposite(PageBook pageBook,
String key) {
-// return getJpaPlatformUi().buildPersistentTypeMappingComposite(
-// buildMappingHolder(key),
-// pageBook,
-// getWidgetFactory());
TypeMappingUiProvider<TypeMapping> uiProvider =
- (TypeMappingUiProvider<TypeMapping>) typeMappingUiProvider(key);
+ (TypeMappingUiProvider<TypeMapping>) getTypeMappingUiProvider(key);
return uiProvider.buildPersistentTypeMappingComposite(
getJpaUiFactory(),
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java
index 7a181585e7..9609512ded 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java
@@ -9,6 +9,8 @@
******************************************************************************/
package org.eclipse.jpt.ui.internal.dialogs;
+import java.text.Collator;
+import java.util.Comparator;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.StatusDialog;
@@ -23,6 +25,7 @@ import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.ui.JpaPlatformUi;
import org.eclipse.jpt.ui.JptUiPlugin;
import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.MappingUiProvider;
import org.eclipse.jpt.ui.internal.JptUiMessages;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.swt.SWT;
@@ -77,7 +80,10 @@ public class AddPersistentAttributeToXmlAndMapDialog extends StatusDialog
public void dispose() {}
public Object[] getElements(Object inputElement) {
- return CollectionTools.array(((JpaPlatformUi) inputElement).attributeMappingUiProviders(unmappedPersistentAttribute));
+ return CollectionTools.array(
+ CollectionTools.sort(
+ ((JpaPlatformUi) inputElement).attributeMappingUiProviders(unmappedPersistentAttribute.getContentType()),
+ getProvidersComparator()));
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
@@ -108,6 +114,16 @@ public class AddPersistentAttributeToXmlAndMapDialog extends StatusDialog
return dialogArea;
}
+
+ protected Comparator<MappingUiProvider<?>> getProvidersComparator() {
+ return new Comparator<MappingUiProvider<?>>() {
+ public int compare(MappingUiProvider<?> item1, MappingUiProvider<?> item2) {
+ String displayString1 = item1.getLabel();
+ String displayString2 = item2.getLabel();
+ return Collator.getInstance().compare(displayString1, displayString2);
+ }
+ };
+ }
private Label createLabel(Composite container, int span, String text) {
Label label = new Label(container, SWT.NONE);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java
index a7ff6dfe03..a0de016858 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
+ * 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.
@@ -9,19 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.ui.internal.java.details;
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.internal.details.PersistentAttributeDetailsPage;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
+import org.eclipse.jpt.ui.internal.mappings.details.PersistentAttributeMapAsComposite;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.PageBook;
/**
* The default implementation of the details page used for the Java persistent
@@ -45,7 +37,7 @@ import org.eclipse.ui.part.PageBook;
* @see JavaPersistentAttribute
* @see JavaPersistentTypeMapAsComposite
*
- * @version 2.0
+ * @version 2.2
* @since 2.0
*/
public class JavaPersistentAttributeDetailsPage extends PersistentAttributeDetailsPage<JavaPersistentAttribute>
@@ -63,68 +55,14 @@ public class JavaPersistentAttributeDetailsPage extends PersistentAttributeDetai
}
@Override
- protected Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return getJpaPlatformUi().javaAttributeMappingUiProviders();
- }
-
- /**
- * These AtttributeMappingUiProviders will be used as elements in the attributeMapping combo
- * The first element in the combo will be one of the defaultAttributeMappingUiProviders or
- * if none of those apply the nullAttributeMappingUiProvider will be used. The rest of the elements
- * will be the attributeMappingUiProviders. The defaultAttributeMappingUiProvider is
- * determined by matching its key with the key of the current attributeMapping.
- */
- @Override
- protected AttributeMappingUiProvider<? extends AttributeMapping>[] attributeMappingUiProvidersFor(PersistentAttribute persistentAttribute) {
- AttributeMappingUiProvider<? extends AttributeMapping>[] providers = new AttributeMappingUiProvider<?>[CollectionTools.size(attributeMappingUiProviders()) + 1];
- providers[0] = getDefaultAttributeMappingUiProvider(persistentAttribute.getDefaultMappingKey());
- int i = 1;
- for (Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> iterator = attributeMappingUiProviders(); iterator.hasNext(); ) {
- providers[i++] = iterator.next();
- }
- return providers;
- }
-
- @Override
- protected DefaultAttributeMappingUiProvider<? extends AttributeMapping> getDefaultAttributeMappingUiProvider(String key) {
- for (Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> i = defaultAttributeMappingUiProviders(); i.hasNext(); ) {
- DefaultAttributeMappingUiProvider<? extends AttributeMapping> provider = i.next();
-
- if (provider.getDefaultKey() == key) {
- return provider;
- }
- }
-
- return this.nullAttributeMappingUiProvider();
- }
-
- @Override
- protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
- return getJpaPlatformUi().defaultJavaAttributeMappingUiProviders();
- }
-
- @Override
protected void initializeLayout(Composite container) {
// Map as composite
- new JavaPersistentAttributeMapAsComposite(
+ new PersistentAttributeMapAsComposite(
this,
addSubPane(container, 0, 0, 5, 0)
);
- // Mapping properties page
- PageBook mappingPane = buildMappingPageBook(container);
-
- GridData gridData = new GridData();
- gridData.horizontalAlignment = SWT.FILL;
- gridData.verticalAlignment = SWT.TOP;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
-
- mappingPane.setLayoutData(gridData);
- }
-
- protected DefaultAttributeMappingUiProvider<AttributeMapping> nullAttributeMappingUiProvider() {
- return NullAttributeMappingUiProvider.instance();
+ buildMappingPageBook(container);
}
} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeMapAsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeMapAsComposite.java
deleted file mode 100644
index 3607b9826e..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeMapAsComposite.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * 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.java.details;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.details.PersistentAttributeMapAsComposite;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This "Map As" composite is responsible for showing the mapping name and
- * mapping type for an attribute declared in a Java type.
- *
- * @see JavaPersistentAttribute
- * @see JavaPersistentAttributeDetailsPage - The parent container
- *
- * @version 2.0
- * @since 2.0
- */
-public class JavaPersistentAttributeMapAsComposite extends PersistentAttributeMapAsComposite<JavaPersistentAttribute> {
-
- /**
- * Creates a new <code>JavaPersistentAttributeMapAsComposite</code>.
- *
- * @param parentPane The parent pane of this one
- * @param parent The parent container
- */
- public JavaPersistentAttributeMapAsComposite(Pane<? extends JavaPersistentAttribute> parentPane,
- Composite parent) {
-
- super(parentPane, parent);
- }
-
- @Override
- protected Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return getJpaPlatformUi().javaAttributeMappingUiProviders();
- }
-
- @Override
- protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
- return getJpaPlatformUi().defaultJavaAttributeMappingUiProviders();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/NullAttributeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/NullAttributeMappingUiProvider.java
index dfcfedf2d5..47ad4ca506 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/NullAttributeMappingUiProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/NullAttributeMappingUiProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
+ * 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.
@@ -10,8 +10,9 @@
package org.eclipse.jpt.ui.internal.java.details;
import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
@@ -24,7 +25,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
public class NullAttributeMappingUiProvider
- implements DefaultAttributeMappingUiProvider<AttributeMapping>
+ implements DefaultAttributeMappingUiProvider<JavaAttributeMapping>
{
// singleton
private static final NullAttributeMappingUiProvider INSTANCE =
@@ -33,7 +34,7 @@ public class NullAttributeMappingUiProvider
/**
* Return the singleton.
*/
- public static DefaultAttributeMappingUiProvider<AttributeMapping> instance() {
+ public static DefaultAttributeMappingUiProvider<JavaAttributeMapping> instance() {
return INSTANCE;
}
@@ -46,7 +47,7 @@ public class NullAttributeMappingUiProvider
}
public IContentType getContentType() {
- throw new UnsupportedOperationException();
+ return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
}
public Image getImage() {
@@ -71,18 +72,18 @@ public class NullAttributeMappingUiProvider
public JpaComposite buildAttributeMappingComposite(
JpaUiFactory factory,
- PropertyValueModel<AttributeMapping> subjectHolder,
+ PropertyValueModel<JavaAttributeMapping> subjectHolder,
Composite parent,
WidgetFactory widgetFactory) {
return new NullComposite(subjectHolder, parent, widgetFactory);
}
- public static class NullComposite extends FormPane<AttributeMapping>
+ public static class NullComposite extends FormPane<JavaAttributeMapping>
implements JpaComposite
{
NullComposite(
- PropertyValueModel<AttributeMapping> subjectHolder,
+ PropertyValueModel<JavaAttributeMapping> subjectHolder,
Composite parent,
WidgetFactory widgetFactory) {
super(subjectHolder, parent, widgetFactory);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MapAsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MapAsComposite.java
index c10dda56f8..d35ec1af1a 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MapAsComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MapAsComposite.java
@@ -114,14 +114,7 @@ public abstract class MapAsComposite<T extends JpaNode> extends Pane<T> {
*/
protected abstract DefaultMappingUiProvider<?> getDefaultProvider();
- protected DefaultMappingUiProvider<?> getDefaultProvider(String mappingKey) {
- for (DefaultMappingUiProvider<?> provider : CollectionTools.iterable(this.mappingChangeHandler.defaultProviders())) {
- if (provider.getDefaultKey() == mappingKey) {
- return provider;
- }
- }
- return null;
- }
+ protected abstract DefaultMappingUiProvider<?> getDefaultProvider(String mappingKey);
protected MappingUiProvider<?> getProvider(String mappingKey) {
for (MappingUiProvider<?> provider : CollectionTools.iterable(this.mappingChangeHandler.providers())) {
@@ -467,13 +460,6 @@ public abstract class MapAsComposite<T extends JpaNode> extends Pane<T> {
* @return The supported types of mapping
*/
Iterator<? extends MappingUiProvider<?>> providers();
-
- /**
- * Returns the list of default providers that are registered with the JPT plugin.
- *
- * @return The supported types of mapping
- */
- Iterator<? extends DefaultMappingUiProvider<?>> defaultProviders();
}
/**
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrmPersistentAttributeMapAsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrmPersistentAttributeMapAsComposite.java
deleted file mode 100644
index fb130aaacf..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrmPersistentAttributeMapAsComposite.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * 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.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This "Map As" composite is responsible for showing the mapping name and
- * mapping type for an attribute declared within a JPA mapping descriptor file.
- *
- * @see OrmPersistentAttribute
- * @see OrmPersistentAttributeDetailsPage - The parent container
- *
- * @version 2.0
- * @since 2.0
- */
-public class OrmPersistentAttributeMapAsComposite extends PersistentAttributeMapAsComposite<OrmPersistentAttribute>
-{
- /**
- * Creates a new <code>OrmPersistentAttributeMapAsComposite</code>.
- *
- * @param parentPane The parent pane of this one
- * @param parent The parent container
- */
- public OrmPersistentAttributeMapAsComposite(Pane<? extends OrmPersistentAttribute> parentPane,
- Composite parent) {
-
- super(parentPane, parent);
- }
-
- @Override
- protected Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return getJpaPlatformUi().ormAttributeMappingUiProviders();
- }
-
- @Override
- protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
- return getJpaPlatformUi().defaultOrmAttributeMappingUiProviders();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentAttributeMapAsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentAttributeMapAsComposite.java
index 403dca019d..6702dd2739 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentAttributeMapAsComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentAttributeMapAsComposite.java
@@ -32,7 +32,7 @@ import org.eclipse.swt.widgets.Composite;
* @version 2.2
* @since 2.0
*/
-public abstract class PersistentAttributeMapAsComposite<T extends PersistentAttribute> extends MapAsComposite<T> {
+public class PersistentAttributeMapAsComposite extends MapAsComposite<PersistentAttribute> {
/**
* Creates a new <code>PersistentAttributeMapAsComposite</code>.
@@ -40,7 +40,7 @@ public abstract class PersistentAttributeMapAsComposite<T extends PersistentAttr
* @param parentPane The parent pane of this one
* @param parent The parent container
*/
- public PersistentAttributeMapAsComposite(Pane<? extends T> parentPane,
+ public PersistentAttributeMapAsComposite(Pane<? extends PersistentAttribute> parentPane,
Composite parent) {
super(parentPane, parent);
@@ -93,11 +93,6 @@ public abstract class PersistentAttributeMapAsComposite<T extends PersistentAttr
public Iterator<? extends MappingUiProvider<?>> providers() {
return attributeMappingUiProviders();
}
-
- public Iterator<? extends DefaultMappingUiProvider<?>> defaultProviders() {
- return defaultAttributeMappingUiProviders();
- }
-
};
}
@@ -106,26 +101,29 @@ public abstract class PersistentAttributeMapAsComposite<T extends PersistentAttr
*
* @return The supported types of mapping
*/
- protected abstract Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders();
+ protected Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
+ return getJpaPlatformUi().attributeMappingUiProviders(getSubject().getContentType());
+ }
@Override
protected DefaultMappingUiProvider<?> getDefaultProvider() {
- String mappingKey = getSubject().getDefaultMappingKey();
+ return getDefaultProvider(getSubject().getDefaultMappingKey());
- if (mappingKey == null) {
- return null;
- }
-
- return getDefaultProvider(mappingKey);
}
-
+
+ @Override
+ protected DefaultMappingUiProvider<?> getDefaultProvider(String mappingKey) {
+ return getJpaPlatformUi().getDefaultAttributeMappingUiProvider(mappingKey, getSubject().getContentType());
+ }
+
/**
* Returns the list of providers that are registered with the JPT plugin.
*
* @return The supported default types of mapping
*/
- protected abstract Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>
- defaultAttributeMappingUiProviders();
+ protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
+ return getJpaPlatformUi().defaultAttributeMappingUiProviders(getSubject().getContentType());
+ }
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentTypeMapAsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentTypeMapAsComposite.java
index bd0f9ca7ee..1ce3b86fcb 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentTypeMapAsComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PersistentTypeMapAsComposite.java
@@ -19,7 +19,6 @@ import org.eclipse.jpt.ui.details.MappingUiProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.swt.widgets.Composite;
/**
@@ -86,10 +85,6 @@ public class PersistentTypeMapAsComposite extends MapAsComposite<PersistentType>
public Iterator<? extends MappingUiProvider<?>> providers() {
return typeMappingUiProviders(getSubject().getContentType());
}
-
- public Iterator<? extends DefaultMappingUiProvider<?>> defaultProviders() {
- return EmptyIterator.instance();
- }
};
}
@@ -104,7 +99,12 @@ public class PersistentTypeMapAsComposite extends MapAsComposite<PersistentType>
@Override
protected DefaultMappingUiProvider<?> getDefaultProvider() {
- return getJpaPlatformUi().getDefaultTypeMappingProvider(getSubject().getContentType());
+ return getJpaPlatformUi().getDefaultTypeMappingUiProvider(getSubject().getContentType());
+ }
+
+ @Override
+ protected DefaultMappingUiProvider<?> getDefaultProvider(String mappingKey) {
+ return getDefaultProvider();
}
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java
index 235d8977bc..a8052c0f8a 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java
@@ -9,9 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.ui.internal.menus;
+import java.text.Collator;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jpt.core.JpaPlatform;
@@ -70,7 +73,7 @@ public abstract class MapAsContribution extends CompoundContributionItem
// Retrieve the selection from the handler service
// which should be an IStructuredSelection of JpaStructureNodes
IHandlerService handlerService =
- (IHandlerService) serviceLocator.getService(IHandlerService.class);
+ (IHandlerService) this.serviceLocator.getService(IHandlerService.class);
IStructuredSelection currentSelection =
(IStructuredSelection) handlerService.getCurrentState().getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
@@ -78,16 +81,28 @@ public abstract class MapAsContribution extends CompoundContributionItem
// and retrieve the mapping UI providers just from the first item
JpaStructureNode node = (JpaStructureNode) currentSelection.getFirstElement();
- return CollectionTools.array(
- new TransformationIterator<MappingUiProvider<?>, IContributionItem>(mappingUiProviders(node)) {
- @Override
- protected IContributionItem transform(MappingUiProvider<?> next) {
- return contributionItem(next);
- }
- },
- new IContributionItem[0]);
+ return
+ CollectionTools.array(
+ new TransformationIterator<MappingUiProvider<?>, IContributionItem>(mappingUiProviders(node)) {
+ @Override
+ protected IContributionItem transform(MappingUiProvider<?> next) {
+ return createContributionItem(next);
+ }
+ },
+ new IContributionItem[0]);
}
+
+ protected Comparator<MappingUiProvider<?>> getProvidersComparator() {
+ return new Comparator<MappingUiProvider<?>>() {
+ public int compare(MappingUiProvider<?> item1, MappingUiProvider<?> item2) {
+ String displayString1 = item1.getLabel();
+ String displayString2 = item2.getLabel();
+ return Collator.getInstance().compare(displayString1, displayString2);
+ }
+ };
+ }
+
/**
* Retrieves the registered {@link MappingUiProvider}s from the given node,
* using its {@link JpaPlatformUi}.
@@ -100,13 +115,18 @@ public abstract class MapAsContribution extends CompoundContributionItem
JpaPlatform jpaPlatform = node.getJpaProject().getJpaPlatform();
JpaPlatformUi jpaPlatformUi = JptUiPlugin.instance().getJpaPlatformUi(jpaPlatform);
+ Iterator<? extends MappingUiProvider<?>> sortedMappingUiProviders =
+ CollectionTools.sort(
+ mappingUiProviders(jpaPlatformUi, node.getContentType()),
+ getProvidersComparator());
+
DefaultMappingUiProvider<?> defaultProvider = getDefaultProvider(jpaPlatformUi, node);
if (defaultProvider != null) {
- return new CompositeIterator<MappingUiProvider<?>>(defaultProvider, mappingUiProviders(jpaPlatformUi, node));
+ return new CompositeIterator<MappingUiProvider<?>>(defaultProvider, sortedMappingUiProviders);
}
- return mappingUiProviders(jpaPlatformUi, node);
+ return sortedMappingUiProviders;
}
-
+
/**
* Retrieves the registered {@link MappingUiProvider}s from the given
* {@link JpaPlatformUi} and {@link JpaStructureNode} (to determine type of
@@ -118,7 +138,7 @@ public abstract class MapAsContribution extends CompoundContributionItem
* @return The list of registered {@link MappingUiProvider}s
*/
protected abstract Iterator<? extends MappingUiProvider<?>>
- mappingUiProviders(JpaPlatformUi platformUi, JpaStructureNode node);
+ mappingUiProviders(JpaPlatformUi platformUi, IContentType contentType);
/**
* Creates the default provider responsible for clearing the mapping type.
@@ -126,25 +146,22 @@ public abstract class MapAsContribution extends CompoundContributionItem
*
* @return A provider that acts as a default mapping provider
*/
- //TODO change to IContentType instead of JpaStructureNode
protected abstract DefaultMappingUiProvider<?> getDefaultProvider(JpaPlatformUi platformUi, JpaStructureNode node);
- protected IContributionItem contributionItem(MappingUiProvider<?> mappingUiProvider) {
- CommandContributionItem item =
- new CommandContributionItem(parameter(mappingUiProvider));
- return item;
+ protected IContributionItem createContributionItem(MappingUiProvider<?> mappingUiProvider) {
+ return new CommandContributionItem(createParameter(mappingUiProvider));
}
- protected CommandContributionItemParameter parameter(MappingUiProvider<?> mappingUiProvider) {
+ protected CommandContributionItemParameter createParameter(MappingUiProvider<?> mappingUiProvider) {
CommandContributionItemParameter parameter =
new CommandContributionItemParameter(
serviceLocator,
createCommandContributionItemId(mappingUiProvider),
- commandId(),
+ getCommandId(),
CommandContributionItem.STYLE_CHECK);
parameter.label = mappingUiProvider.getLabel();
Map<String, String> parameters = new HashMap<String, String>();
- parameters.put(commandParameterId(), mappingUiProvider.getKey());
+ parameters.put(getCommandParameterId(), mappingUiProvider.getKey());
parameter.parameters = parameters;
parameter.icon = new ImageImageDescriptor(mappingUiProvider.getImage());
parameter.visibleEnabled = true;
@@ -157,7 +174,7 @@ public abstract class MapAsContribution extends CompoundContributionItem
*
* @return The unique identifier of the "map as" command
*/
- protected abstract String commandId();
+ protected abstract String getCommandId();
/**
* Retrieves the unique identifier of the mapping key command parameter that
@@ -165,7 +182,7 @@ public abstract class MapAsContribution extends CompoundContributionItem
*
* @return The unique identifier of the "map as" command parameter
*/
- protected abstract String commandParameterId();
+ protected abstract String getCommandParameterId();
/**
* Returns an id for a {@link CommandContributionItem} in the form of
@@ -173,6 +190,6 @@ public abstract class MapAsContribution extends CompoundContributionItem
* (for example "org.eclipse.jpt.core.ui.persistentTypeMapAs.entity")
*/
protected String createCommandContributionItemId(MappingUiProvider<?> mappingUiProvider) {
- return commandId() + "." + mappingUiProvider.getKey();
+ return getCommandId() + "." + mappingUiProvider.getKey();
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java
index 0c73058e46..fcc608a220 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentAttributeMapAsContribution.java
@@ -10,21 +10,26 @@
package org.eclipse.jpt.ui.internal.menus;
import java.util.Iterator;
+import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.ui.JpaPlatformUi;
+import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultMappingUiProvider;
import org.eclipse.jpt.ui.details.MappingUiProvider;
import org.eclipse.jpt.ui.internal.commands.PersistentAttributeMapAsHandler;
+import org.eclipse.ui.menus.CommandContributionItemParameter;
/**
* This menu contribution is responsible to populate the Map As menu with the
* registered attribute mapping types defined in the <code>JptPlatformUi</code>
* for <code>PersistentAttribute</code> objects.
*
+ * @see PersistentAttributeMapAsHandler
* @see PersistentAttribute
*
- * @version 2.0
+ * @version 2.2
* @since 2.0
*/
public class PersistentAttributeMapAsContribution extends MapAsContribution
@@ -36,27 +41,39 @@ public class PersistentAttributeMapAsContribution extends MapAsContribution
super();
}
- /*
- * (non-Javadoc)
- */
@Override
- protected String commandId() {
+ protected String getCommandId() {
return PersistentAttributeMapAsHandler.COMMAND_ID;
}
@Override
- protected String commandParameterId() {
- return PersistentAttributeMapAsHandler.COMMAND_PARAMETER_ID;
+ protected String getCommandParameterId() {
+ return PersistentAttributeMapAsHandler.SPECIFIED_MAPPING_COMMAND_PARAMETER_ID;
}
-
+
+ @Override
+ protected CommandContributionItemParameter createParameter(MappingUiProvider<?> mappingUiProvider) {
+ CommandContributionItemParameter parameter = super.createParameter(mappingUiProvider);
+ String defaultKey = null;
+ if (mappingUiProvider instanceof DefaultMappingUiProvider<?>) {
+ defaultKey = ((DefaultMappingUiProvider<?>) mappingUiProvider).getDefaultKey();
+ }
+ parameter.parameters.put(PersistentAttributeMapAsHandler.DEFAULT_MAPPING_COMMAND_PARAMETER_ID, defaultKey);
+ return parameter;
+ }
+
@Override
- protected Iterator<? extends MappingUiProvider<?>>
- mappingUiProviders(JpaPlatformUi jpaPlatformUi, JpaStructureNode node) {
- return jpaPlatformUi.attributeMappingUiProviders((PersistentAttribute) node);
+ protected Iterator<? extends AttributeMappingUiProvider<?>>
+ mappingUiProviders(JpaPlatformUi jpaPlatformUi, IContentType contentType) {
+ return jpaPlatformUi.attributeMappingUiProviders(contentType);
}
@Override
- protected DefaultMappingUiProvider<?> getDefaultProvider(JpaPlatformUi platformUi, JpaStructureNode node) {
- return null; //TODO
+ protected DefaultAttributeMappingUiProvider<?> getDefaultProvider(JpaPlatformUi jpaPlatformUi, JpaStructureNode node) {
+ return getDefaultProvider(jpaPlatformUi, ((PersistentAttribute) node).getDefaultMappingKey(), node.getContentType());
+ }
+
+ protected DefaultAttributeMappingUiProvider<?> getDefaultProvider(JpaPlatformUi jpaPlatformUi, String defaultKey, IContentType contentType) {
+ return jpaPlatformUi.getDefaultAttributeMappingUiProvider(defaultKey, contentType);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java
index 693f7f810e..fff536aa97 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/PersistentTypeMapAsContribution.java
@@ -10,10 +10,11 @@
package org.eclipse.jpt.ui.internal.menus;
import java.util.Iterator;
+import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.ui.JpaPlatformUi;
-import org.eclipse.jpt.ui.details.DefaultMappingUiProvider;
-import org.eclipse.jpt.ui.details.MappingUiProvider;
+import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
+import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
import org.eclipse.jpt.ui.internal.commands.PersistentTypeMapAsHandler;
/**
@@ -38,24 +39,24 @@ public class PersistentTypeMapAsContribution extends MapAsContribution
}
@Override
- protected String commandId() {
+ protected String getCommandId() {
return PersistentTypeMapAsHandler.COMMAND_ID;
}
@Override
- protected String commandParameterId() {
+ protected String getCommandParameterId() {
return PersistentTypeMapAsHandler.COMMAND_PARAMETER_ID;
}
@Override
- protected Iterator<? extends MappingUiProvider<?>>
- mappingUiProviders(JpaPlatformUi jpaPlatformUi, JpaStructureNode node) {
- return jpaPlatformUi.typeMappingUiProviders(node.getContentType());
+ protected Iterator<? extends TypeMappingUiProvider<?>>
+ mappingUiProviders(JpaPlatformUi jpaPlatformUi, IContentType contentType) {
+ return jpaPlatformUi.typeMappingUiProviders(contentType);
}
@Override
- protected DefaultMappingUiProvider<?> getDefaultProvider(JpaPlatformUi platformUi, JpaStructureNode node) {
- return platformUi.getDefaultTypeMappingProvider(node.getContentType());
+ protected DefaultTypeMappingUiProvider<?> getDefaultProvider(JpaPlatformUi platformUi, JpaStructureNode node) {
+ return platformUi.getDefaultTypeMappingUiProvider(node.getContentType());
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/orm/details/OrmPersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/orm/details/OrmPersistentAttributeDetailsPage.java
index 9563169a78..122d59b18a 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/orm/details/OrmPersistentAttributeDetailsPage.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/orm/details/OrmPersistentAttributeDetailsPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
+ * 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.
@@ -10,26 +10,21 @@
package org.eclipse.jpt.ui.internal.orm.details;
import java.util.ArrayList;
-import java.util.Iterator;
+import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.details.PersistentAttributeDetailsPage;
-import org.eclipse.jpt.ui.internal.mappings.details.OrmPersistentAttributeMapAsComposite;
+import org.eclipse.jpt.ui.internal.mappings.details.PersistentAttributeMapAsComposite;
import org.eclipse.jpt.ui.internal.util.PaneEnabler;
import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.PageBook;
/**
* The default implementation of the details page used for the XML persistent
@@ -56,7 +51,6 @@ import org.eclipse.ui.part.PageBook;
* @version 2.0
* @since 2.0
*/
-@SuppressWarnings("nls")
public class OrmPersistentAttributeDetailsPage extends PersistentAttributeDetailsPage<OrmPersistentAttribute>
{
/**
@@ -70,54 +64,14 @@ public class OrmPersistentAttributeDetailsPage extends PersistentAttributeDetail
super(parent, widgetFactory);
}
-
- @Override
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
- return getJpaPlatformUi().ormAttributeMappingUiProviders();
- }
-
- @Override
- @SuppressWarnings("unchecked")
- protected AttributeMappingUiProvider<? extends AttributeMapping>[] attributeMappingUiProvidersFor(PersistentAttribute persistentAttribute) {
- //bug 192035 - no default mapping option in xml
- return CollectionTools.array(attributeMappingUiProviders(), new AttributeMappingUiProvider[CollectionTools.size(attributeMappingUiProviders())]);
- }
- private PropertyValueModel<Boolean> buildPaneEnablerHolder() {
- return new TransformationPropertyValueModel<OrmPersistentAttribute, Boolean>(getSubjectHolder()) {
- @Override
- protected Boolean transform_(OrmPersistentAttribute value) {
- return !value.isVirtual();
- }
- };
- }
-
- @Override
- protected DefaultAttributeMappingUiProvider<AttributeMapping> getDefaultAttributeMappingUiProvider(String key) {
- throw new UnsupportedOperationException("Xml attributeMappings should not be default");
- }
-
- @Override
- protected Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
- return getJpaPlatformUi().defaultOrmAttributeMappingUiProviders();
- }
-
- private PropertyValueModel<OrmAttributeMapping> getMappingHolder() {
- return new TransformationPropertyValueModel<PersistentAttribute, OrmAttributeMapping>(getSubjectHolder()) {
- @Override
- protected OrmAttributeMapping transform_(PersistentAttribute value) {
- return (OrmAttributeMapping) value.getMapping();
- }
- };
- }
-
@Override
protected void initializeLayout(Composite container) {
ArrayList<Pane<?>> panes = new ArrayList<Pane<?>>(2);
// Map As composite
- Pane mapAsPane = buildMapAsPane(addSubPane(container, 0, 0, 5, 0));
+ Pane<?> mapAsPane = buildMapAsPane(addSubPane(container, 0, 0, 5, 0));
panes.add(mapAsPane);
// Entity type widgets
@@ -126,27 +80,41 @@ public class OrmPersistentAttributeDetailsPage extends PersistentAttributeDetail
panes.add(javaAttributePane);
- // Mapping properties pane
- PageBook attributePane = buildMappingPageBook(container);
-
- GridData gridData = new GridData();
- gridData.horizontalAlignment = SWT.FILL;
- gridData.verticalAlignment = SWT.TOP;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
-
- attributePane.setLayoutData(gridData);
+ buildMappingPageBook(container);
installPaneEnabler(panes);
}
- protected Pane buildMapAsPane(Composite parent) {
- return new OrmPersistentAttributeMapAsComposite(this, parent);
+ protected Pane<PersistentAttribute> buildMapAsPane(Composite parent) {
+ return new PersistentAttributeMapAsComposite(this, parent);
}
private void installPaneEnabler(ArrayList<Pane<?>> panes) {
new PaneEnabler(buildPaneEnablerHolder(), panes);
}
+
+ private PropertyValueModel<Boolean> buildPaneEnablerHolder() {
+ return new TransformationPropertyValueModel<OrmPersistentAttribute, Boolean>(getSubjectHolder()) {
+ @Override
+ protected Boolean transform_(OrmPersistentAttribute value) {
+ return Boolean.valueOf(!value.isVirtual());
+ }
+ };
+ }
+
+ @Override
+ protected DefaultAttributeMappingUiProvider<AttributeMapping> getDefaultAttributeMappingUiProvider(String key, IContentType contentType) {
+ throw new UnsupportedOperationException("Xml attributeMappings should not be default"); //$NON-NLS-1$
+ }
+
+ private PropertyValueModel<OrmAttributeMapping> getMappingHolder() {
+ return new TransformationPropertyValueModel<PersistentAttribute, OrmAttributeMapping>(getSubjectHolder()) {
+ @Override
+ protected OrmAttributeMapping transform_(PersistentAttribute value) {
+ return (OrmAttributeMapping) value.getMapping();
+ }
+ };
+ }
@Override
protected void mappingPageChanged(JpaComposite mappingComposite) {
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java
index 348f160612..c3660a1368 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/BaseJpaPlatformUi.java
@@ -9,9 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.ui.internal.platform.base;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
import java.util.ListIterator;
import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -20,10 +18,7 @@ import org.eclipse.jpt.core.JpaFile;
import org.eclipse.jpt.core.JpaProject;
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.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.ui.JpaPlatformUi;
import org.eclipse.jpt.ui.JpaPlatformUiProvider;
import org.eclipse.jpt.ui.JpaUiFactory;
@@ -34,35 +29,11 @@ import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
import org.eclipse.jpt.ui.details.JpaDetailsPage;
import org.eclipse.jpt.ui.details.JpaDetailsProvider;
import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.DefaultBasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.DefaultEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaBasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaManyToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaManyToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaOneToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaOneToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaTransientMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.JavaVersionMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.details.NullAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmBasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmManyToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmManyToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmOneToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmOneToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmTransientMappingUiProvider;
-import org.eclipse.jpt.ui.internal.orm.details.OrmVersionMappingUiProvider;
import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
import org.eclipse.jpt.ui.structure.JpaStructureProvider;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator;
import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator;
import org.eclipse.swt.widgets.Composite;
@@ -82,12 +53,6 @@ public abstract class BaseJpaPlatformUi
private JpaStructureProvider javaStructureProvider;
- private AttributeMappingUiProvider<? extends AttributeMapping>[] javaAttributeMappingUiProviders;
- private DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] defaultJavaAttributeMappingUiProviders;
-
- private AttributeMappingUiProvider<? extends AttributeMapping>[] ormAttributeMappingUiProviders;
- private DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] defaultOrmAttributeMappingUiProviders;
-
protected BaseJpaPlatformUi(
JpaUiFactory jpaUiFactory,
JpaNavigatorProvider navigatorProvider,
@@ -170,7 +135,7 @@ public abstract class BaseJpaPlatformUi
return new FilteringIterator<TypeMappingUiProvider<? extends TypeMapping>, TypeMappingUiProvider<? extends TypeMapping>>(typeMappingUiProviders()) {
@Override
protected boolean accept(TypeMappingUiProvider<? extends TypeMapping> provider) {
- return provider.getContentType().equals(contentType);
+ return contentType.isKindOf(provider.getContentType());
}
};
}
@@ -186,7 +151,7 @@ public abstract class BaseJpaPlatformUi
);
}
- public DefaultTypeMappingUiProvider<? extends TypeMapping> getDefaultTypeMappingProvider(IContentType contentType) {
+ public DefaultTypeMappingUiProvider<? extends TypeMapping> getDefaultTypeMappingUiProvider(IContentType contentType) {
for (DefaultTypeMappingUiProvider<? extends TypeMapping> provider : CollectionTools.iterable(defaultTypeMappingUiProviders())) {
if (provider.getContentType().equals(contentType)) {
return provider;
@@ -196,6 +161,17 @@ public abstract class BaseJpaPlatformUi
}
+ public TypeMappingUiProvider<? extends TypeMapping> getTypeMappingUiProvider(String key, IContentType contentType) {
+ for (TypeMappingUiProvider<? extends TypeMapping> provider : CollectionTools.iterable(typeMappingUiProviders(contentType))) {
+ if (key == provider.getKey()) {
+ return provider;
+ }
+ }
+ throw new IllegalArgumentException("Unsupported type mapping UI provider key: " + key); //$NON-NLS-1$
+ }
+
+
+
protected ListIterator<DefaultTypeMappingUiProvider<? extends TypeMapping>> defaultTypeMappingUiProviders() {
return new CompositeListIterator<DefaultTypeMappingUiProvider<? extends TypeMapping>> (
new TransformationListIterator<JpaPlatformUiProvider, ListIterator<DefaultTypeMappingUiProvider<? extends TypeMapping>>>(this.platformUiProviders()) {
@@ -209,127 +185,64 @@ public abstract class BaseJpaPlatformUi
// ********** Java attribute mapping UI providers **********
- public ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> javaAttributeMappingUiProviders() {
- if (this.javaAttributeMappingUiProviders == null) {
- this.javaAttributeMappingUiProviders = this.buildJavaAttributeMappingUiProviders();
- }
- return new ArrayListIterator<AttributeMappingUiProvider<? extends AttributeMapping>>(this.javaAttributeMappingUiProviders);
- }
-
- protected AttributeMappingUiProvider<? extends AttributeMapping>[] buildJavaAttributeMappingUiProviders() {
- ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>>();
- this.addJavaAttributeMappingUiProvidersTo(providers);
- @SuppressWarnings("unchecked")
- AttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new AttributeMappingUiProvider[providers.size()]);
- return providerArray;
+ public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders(final IContentType contentType) {
+ return new FilteringIterator<AttributeMappingUiProvider<? extends AttributeMapping>, AttributeMappingUiProvider<? extends AttributeMapping>>(attributeMappingUiProviders()) {
+ @Override
+ protected boolean accept(AttributeMappingUiProvider<? extends AttributeMapping> provider) {
+ return contentType.isKindOf(provider.getContentType());
+ }
+ };
}
- /**
- * Override this to specify more or different java attribute mapping ui providers.
- * The default includes the JPA spec-defined basic, embedded, embeddedId, id,
- * manyToMany, manyToOne, oneToMany, oneToOne, transient, and version
- */
- protected void addJavaAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- providers.add(JavaIdMappingUiProvider.instance());
- providers.add(JavaEmbeddedIdMappingUiProvider.instance());
- providers.add(JavaBasicMappingUiProvider.instance());
- providers.add(JavaVersionMappingUiProvider.instance());
- providers.add(JavaManyToOneMappingUiProvider.instance());
- providers.add(JavaOneToManyMappingUiProvider.instance());
- providers.add(JavaOneToOneMappingUiProvider.instance());
- providers.add(JavaManyToManyMappingUiProvider.instance());
- providers.add(JavaEmbeddedMappingUiProvider.instance());
- providers.add(JavaTransientMappingUiProvider.instance());
- providers.add(NullAttributeMappingUiProvider.instance());
+ protected ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders() {
+ return new CompositeListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> (
+ new TransformationListIterator<JpaPlatformUiProvider, ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>>>(this.platformUiProviders()) {
+ @Override
+ protected ListIterator<AttributeMappingUiProvider<? extends AttributeMapping>> transform(JpaPlatformUiProvider platformProvider) {
+ return platformProvider.attributeMappingUiProviders();
+ }
+ }
+ );
}
-
// ********** default Java attribute mapping UI providers **********
- public ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultJavaAttributeMappingUiProviders() {
- if (this.defaultJavaAttributeMappingUiProviders == null) {
- this.defaultJavaAttributeMappingUiProviders = this.buildDefaultJavaAttributeMappingUiProviders();
- }
- return new ArrayListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>(this.defaultJavaAttributeMappingUiProviders);
- }
-
- protected DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] buildDefaultJavaAttributeMappingUiProviders() {
- ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>();
- this.addDefaultJavaAttributeMappingUiProvidersTo(providers);
- @SuppressWarnings("unchecked")
- DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new DefaultAttributeMappingUiProvider[providers.size()]);
- return providerArray;
- }
-
- /**
- * Override this to specify more or different default java attribute mapping ui providers.
- * The default includes the JPA spec-defined basic, embedded
- */
- protected void addDefaultJavaAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- providers.add(DefaultBasicMappingUiProvider.instance());
- providers.add(DefaultEmbeddedMappingUiProvider.instance());
+ public Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders(final IContentType contentType) {
+ return new FilteringIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>, DefaultAttributeMappingUiProvider<? extends AttributeMapping>>(defaultAttributeMappingUiProviders()) {
+ @Override
+ protected boolean accept(DefaultAttributeMappingUiProvider<? extends AttributeMapping> provider) {
+ return provider.getContentType().equals(contentType);
+ }
+ };
}
-
- // ********** ORM attribute mapping UI providers **********
-
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> ormAttributeMappingUiProviders() {
- if (this.ormAttributeMappingUiProviders == null) {
- this.ormAttributeMappingUiProviders = this.buildOrmAttributeMappingUiProviders();
+
+ public DefaultAttributeMappingUiProvider<? extends AttributeMapping> getDefaultAttributeMappingUiProvider(String key, IContentType contentType) {
+ for (DefaultAttributeMappingUiProvider<?> provider : CollectionTools.iterable(defaultAttributeMappingUiProviders(contentType))) {
+ if (key == provider.getDefaultKey()) {
+ return provider;
+ }
}
- return new ArrayListIterator<AttributeMappingUiProvider<? extends AttributeMapping>>(this.ormAttributeMappingUiProviders);
- }
-
- protected AttributeMappingUiProvider<? extends AttributeMapping>[] buildOrmAttributeMappingUiProviders() {
- ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<AttributeMappingUiProvider<? extends AttributeMapping>>();
- this.addOrmAttributeMappingUiProvidersTo(providers);
- @SuppressWarnings("unchecked")
- AttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new AttributeMappingUiProvider[providers.size()]);
- return providerArray;
- }
-
- /**
- * Override this to specify more or different ORM attribute mapping ui
- * providers. The default includes the JPA spec-defined basic, embedded,
- * embeddedId, id, manyToMany, manyToOne, oneToMany, oneToOne, transient,
- * and version.
- */
- protected void addOrmAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- providers.add(OrmBasicMappingUiProvider.instance());
- providers.add(OrmEmbeddedMappingUiProvider.instance());
- providers.add(OrmEmbeddedIdMappingUiProvider.instance());
- providers.add(OrmIdMappingUiProvider.instance());
- providers.add(OrmManyToManyMappingUiProvider.instance());
- providers.add(OrmManyToOneMappingUiProvider.instance());
- providers.add(OrmOneToManyMappingUiProvider.instance());
- providers.add(OrmOneToOneMappingUiProvider.instance());
- providers.add(OrmTransientMappingUiProvider.instance());
- providers.add(OrmVersionMappingUiProvider.instance());
+ return null;
}
-
-
- // ********** default ORM attribute mapping UI providers **********
-
- public Iterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultOrmAttributeMappingUiProviders() {
- if (this.defaultOrmAttributeMappingUiProviders == null) {
- this.defaultOrmAttributeMappingUiProviders = this.buildDefaultOrmAttributeMappingUiProviders();
+
+ public AttributeMappingUiProvider<? extends AttributeMapping> getAttributeMappingUiProvider(String key, IContentType contentType) {
+ for (AttributeMappingUiProvider<?> provider : CollectionTools.iterable(attributeMappingUiProviders(contentType))) {
+ if (key == provider.getKey()) {
+ return provider;
+ }
}
- return new ArrayListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>(this.defaultOrmAttributeMappingUiProviders);
+ throw new IllegalArgumentException("Unsupported attribute mapping UI provider key: "); //$NON-NLS-1$
}
- protected DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] buildDefaultOrmAttributeMappingUiProviders() {
- ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers = new ArrayList<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>();
- this.addDefaultOrmAttributeMappingUiProvidersTo(providers);
- @SuppressWarnings("unchecked")
- DefaultAttributeMappingUiProvider<? extends AttributeMapping>[] providerArray = providers.toArray(new DefaultAttributeMappingUiProvider[providers.size()]);
- return providerArray;
- }
-
- /**
- * Override this to specify more or different default ORM attribute mapping
- * ui providers. The default has no specific mappings.
- */
- protected void addDefaultOrmAttributeMappingUiProvidersTo(@SuppressWarnings("unused") List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
- // nothing by default
+ protected ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> defaultAttributeMappingUiProviders() {
+ return new CompositeListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> (
+ new TransformationListIterator<JpaPlatformUiProvider, ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>>>(this.platformUiProviders()) {
+ @Override
+ protected ListIterator<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> transform(JpaPlatformUiProvider platformProvider) {
+ return platformProvider.defaultAttributeMappingUiProviders();
+ }
+ }
+ );
}
@@ -381,15 +294,5 @@ public abstract class BaseJpaPlatformUi
Shell currentShell = Display.getCurrent().getActiveShell();
MessageDialog.openInformation(currentShell, title, message);
}
-
- public Iterator<AttributeMappingUiProvider<? extends AttributeMapping>> attributeMappingUiProviders(PersistentAttribute attribute) {
- if (attribute instanceof JavaPersistentAttribute) {
- return javaAttributeMappingUiProviders();
- }
- if (attribute instanceof OrmPersistentAttribute) {
- return ormAttributeMappingUiProviders();
- }
- return EmptyIterator.instance();
- }
}

Back to the top