diff options
author | kmoore | 2007-07-18 21:29:15 +0000 |
---|---|---|
committer | kmoore | 2007-07-18 21:29:15 +0000 |
commit | cde37ae68ea4e9cc97c059aaff47c092e95b1702 (patch) | |
tree | a270364c1895fd72111357f2b811fc976244b7be /jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt | |
parent | f79dbb1114807fb075cf4645c02d31cd202accee (diff) | |
download | webtools.dali-cde37ae68ea4e9cc97c059aaff47c092e95b1702.tar.gz webtools.dali-cde37ae68ea4e9cc97c059aaff47c092e95b1702.tar.xz webtools.dali-cde37ae68ea4e9cc97c059aaff47c092e95b1702.zip |
moving typeMappingUiProviders to IJpaPlatformUi
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt')
12 files changed, 124 insertions, 65 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java index c53e5d88da..ec679d6217 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java @@ -11,12 +11,18 @@ package org.eclipse.jpt.ui.internal; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider; import org.eclipse.jpt.ui.internal.generic.EntitiesGenerator; +import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider; import org.eclipse.jpt.ui.internal.java.details.JavaDetailsProvider; +import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddableUiProvider; +import org.eclipse.jpt.ui.internal.java.mappings.properties.EntityUiProvider; +import org.eclipse.jpt.ui.internal.java.mappings.properties.MappedSuperclassUiProvider; +import org.eclipse.jpt.ui.internal.java.mappings.properties.NullTypeMappingUiProvider; import org.eclipse.jpt.ui.internal.java.structure.JavaStructureProvider; import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider; import org.eclipse.jpt.ui.internal.xml.details.XmlDetailsProvider; @@ -27,6 +33,8 @@ public abstract class BaseJpaPlatformUi implements IJpaPlatformUi private Collection<IJpaDetailsProvider> detailsProviders; private Collection<IJpaStructureProvider> structureProviders; + private List<ITypeMappingUiProvider> javaTypeMappingUiProviders; + protected BaseJpaPlatformUi() { super(); } @@ -35,35 +43,59 @@ public abstract class BaseJpaPlatformUi implements IJpaPlatformUi public Collection<IJpaDetailsProvider> detailsProviders() { if (this.detailsProviders == null) { - this.detailsProviders = this.buildJpaDetailsProvider(); + this.detailsProviders = new ArrayList<IJpaDetailsProvider>(); + this.addDetailsProvidersTo(this.detailsProviders); } return this.detailsProviders; } - - protected Collection<IJpaDetailsProvider> buildJpaDetailsProvider() { - Collection<IJpaDetailsProvider> detailsProviders = new ArrayList<IJpaDetailsProvider>(); - detailsProviders.add(new JavaDetailsProvider()); - detailsProviders.add(new XmlDetailsProvider()); - return detailsProviders; + + /** + * Override this to specify more or different details providers. + * The default includes the JPA spec-defined java and orm.xml + */ + protected void addDetailsProvidersTo(Collection<IJpaDetailsProvider> providers) { + providers.add(new JavaDetailsProvider()); + providers.add(new XmlDetailsProvider()); } public Collection<IJpaStructureProvider> structureProviders() { if (this.structureProviders == null) { - this.structureProviders = this.buildJpaStructureProvider(); + this.structureProviders = new ArrayList<IJpaStructureProvider>(); + this.addStructureProvidersTo(this.structureProviders); } return this.structureProviders; } - protected Collection<IJpaStructureProvider> buildJpaStructureProvider() { - Collection<IJpaStructureProvider> structureProviders = new ArrayList<IJpaStructureProvider>(); - structureProviders.add(new JavaStructureProvider()); - structureProviders.add(new XmlStructureProvider()); - return structureProviders; + /** + * Override this to specify more or different structure providers. + * The default includes the JPA spec-defined java and orm.xml + */ + protected void addStructureProvidersTo(Collection<IJpaStructureProvider> providers) { + providers.add(new JavaStructureProvider()); + providers.add(new XmlStructureProvider()); } + public List<ITypeMappingUiProvider> javaTypeMappingUiProviders() { + if (this.javaTypeMappingUiProviders == null) { + this.javaTypeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>(); + this.addJavaTypeMappingUiProvidersTo(this.javaTypeMappingUiProviders); + } + return this.javaTypeMappingUiProviders; + } + + /** + * Override this to specify more or different structure providers. + * The default includes the JPA spec-defined entity, mapped superclass, embeddable, + * and null (when the others don't apply) + */ + protected void addJavaTypeMappingUiProvidersTo(Collection<ITypeMappingUiProvider> providers) { + providers.add(NullTypeMappingUiProvider.instance()); + providers.add(EntityUiProvider.instance()); + providers.add(MappedSuperclassUiProvider.instance()); + providers.add(EmbeddableUiProvider.instance()); + } + public void generateEntities(IJpaProject project, IStructuredSelection selection) { - EntitiesGenerator.generate(project, selection); } - } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java index b7fcb1823e..e0a39cebc0 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java @@ -10,18 +10,31 @@ package org.eclipse.jpt.ui.internal; import java.util.Collection; +import java.util.List; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider; +import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider; import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider; + public interface IJpaPlatformUi { + //TODO make these Collections IterableIterators(?) once Brian checks in + //changes to our utility Iterators to make them Iterable + Collection<IJpaStructureProvider> structureProviders(); Collection<IJpaDetailsProvider> detailsProviders(); + /** + * Return the type mapping UI providers for java. This will populate + * the type mapping combo box in order and displaying ITypeMappingUiProvider.label(). + * It will also be used to create the appropriate composite given a type mapping. + */ + List<ITypeMappingUiProvider> javaTypeMappingUiProviders(); + void generateDDL(IJpaProject project, IStructuredSelection selection); void generateEntities(IJpaProject project, IStructuredSelection selection); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java index e4401eba8a..84ac1dca1b 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java @@ -16,6 +16,8 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; public abstract class BaseJpaController { + //****** we are using this commandStack in 0 places ******** + //do we plan to use it in the future? *should* we be using it? are we removing emf? protected CommandStack commandStack; protected TabbedPropertySheetWidgetFactory widgetFactory; 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 84d0735e7c..373463bea5 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 @@ -8,10 +8,10 @@ ******************************************************************************/ package org.eclipse.jpt.ui.internal.details; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; import org.eclipse.emf.common.command.BasicCommandStack; import org.eclipse.emf.common.notify.Adapter; @@ -28,13 +28,10 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jpt.core.internal.IJpaContentNode; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.core.internal.IPersistentType; +import org.eclipse.jpt.core.internal.ITypeMapping; import org.eclipse.jpt.core.internal.JpaCorePackage; import org.eclipse.jpt.ui.internal.JptUiMessages; import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider; -import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddableUiProvider; -import org.eclipse.jpt.ui.internal.java.mappings.properties.EntityUiProvider; -import org.eclipse.jpt.ui.internal.java.mappings.properties.MappedSuperclassUiProvider; -import org.eclipse.jpt.ui.internal.java.mappings.properties.NullTypeMappingUiProvider; import org.eclipse.jpt.ui.internal.widgets.CComboViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; @@ -53,32 +50,19 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage private CComboViewer typeMappingCombo; - /** - * A Map of mapping Composites of type IPersistenceComposite that is keyed on IConfigurationElement - */ - private Map composites; + private Map<String, IJpaComposite<ITypeMapping>> composites; protected PageBook typeMappingPageBook; - private IJpaComposite visibleMappingComposite; - - private Collection<ITypeMappingUiProvider> typeMappingUiProviders; + private IJpaComposite<ITypeMapping> visibleMappingComposite; public PersistentTypeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) { super(parent, SWT.NONE, new BasicCommandStack(), widgetFactory); this.persistentTypeListener = buildPersistentTypeListener(); - this.composites = new HashMap(); - this.typeMappingUiProviders = buildTypeMappingUiProviders(); + this.composites = new HashMap<String, IJpaComposite<ITypeMapping>>(); } - protected Collection<ITypeMappingUiProvider> buildTypeMappingUiProviders() { - Collection<ITypeMappingUiProvider> typeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>(); - typeMappingUiProviders.add(NullTypeMappingUiProvider.instance()); - typeMappingUiProviders.add(EntityUiProvider.instance()); - typeMappingUiProviders.add(MappedSuperclassUiProvider.instance()); - typeMappingUiProviders.add(EmbeddableUiProvider.instance()); - return typeMappingUiProviders; - } + protected abstract List<ITypeMappingUiProvider> typeMappingUiProviders(); private Adapter buildPersistentTypeListener() { return new AdapterImpl() { @@ -127,7 +111,7 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage public Object[] getElements(Object inputElement) { return (persistentType == null) ? new String[] {}: - PersistentTypeDetailsPage.this.typeMappingUiProviders.toArray(); + PersistentTypeDetailsPage.this.typeMappingUiProviders().toArray(); } public void inputChanged( @@ -149,14 +133,10 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage typeMappingPageBook = new PageBook(parent, SWT.NONE); return typeMappingPageBook; } - - private IJpaProject getJpaProject() { - return getPersistentType().getJpaProject(); - } - + private ITypeMappingUiProvider typeMappingUiProvider(String key) { - for (ITypeMappingUiProvider provider : this.typeMappingUiProviders) { - if (provider.key() == key) { + for (ITypeMappingUiProvider provider : this.typeMappingUiProviders()) { + if (provider.mappingKey() == key) { return provider; } } @@ -169,7 +149,7 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage } if (event.getSelection() instanceof StructuredSelection) { ITypeMappingUiProvider provider = (ITypeMappingUiProvider) ((StructuredSelection) event.getSelection()).getFirstElement(); - persistentType.setMappingKey(provider.key()); + persistentType.setMappingKey(provider.mappingKey()); } } @@ -211,7 +191,7 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage } String mappingKey = persistentType.getMapping().getKey(); - setComboData(mappingKey, persistentType.candidateMappingKeys()); + setComboData(mappingKey); populateMappingPage(mappingKey); } @@ -239,7 +219,7 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage visibleMappingComposite.populate(persistentType.getMapping()); } - private void setComboData(String mappingKey, Iterator availableMappingKeys) { + private void setComboData(String mappingKey) { if (persistentType != typeMappingCombo.getInput()) { typeMappingCombo.setInput(persistentType); } @@ -250,25 +230,23 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage } } - private IJpaComposite mappingCompositeFor(String key) { - IJpaComposite mappingComposite = (IJpaComposite) composites.get(key); + private IJpaComposite<ITypeMapping> mappingCompositeFor(String key) { + IJpaComposite<ITypeMapping> mappingComposite = this.composites.get(key); if (mappingComposite != null) { return mappingComposite; } - mappingComposite = buildMappingComposite(typeMappingPageBook, key); + mappingComposite = buildMappingComposite(this.typeMappingPageBook, key); if (mappingComposite != null) { - composites.put(key, mappingComposite); + this.composites.put(key, mappingComposite); } return mappingComposite; } - protected IJpaComposite buildMappingComposite(PageBook pageBook, String key) { - //TODO what about null composite? + protected IJpaComposite<ITypeMapping> buildMappingComposite(PageBook pageBook, String key) { return typeMappingUiProvider(key).buildPersistentTypeMappingComposite(pageBook, this.commandStack, getWidgetFactory()); -// return new NullComposite(pageBook, commandStack); } //TODO focus?? @@ -279,14 +257,14 @@ public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage public void dispose() { disengageListeners(); - for (Iterator i = composites.values().iterator(); i.hasNext(); ) { - ((IJpaComposite) i.next()).dispose(); + for (Iterator<IJpaComposite<ITypeMapping>> i = this.composites.values().iterator(); i.hasNext(); ) { + i.next().dispose(); } super.dispose(); } public IPersistentType getPersistentType() { - return persistentType; + return this.persistentType; } } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java index c247233085..836f0d3ec9 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java @@ -195,7 +195,7 @@ public class AddPersistentClassDialog extends StatusDialog public String getMappingKey() { StructuredSelection selection = (StructuredSelection) mappingCombo.getSelection(); - return (selection.isEmpty()) ? null : ((ITypeMappingUiProvider) selection.getFirstElement()).key(); + return (selection.isEmpty()) ? null : ((ITypeMappingUiProvider) selection.getFirstElement()).mappingKey(); } protected IType chooseType() { diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java index d614a57bf6..51318e9568 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.ui.internal.java.details; import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.jpt.core.internal.ITypeMapping; import org.eclipse.jpt.ui.internal.details.IJpaComposite; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; @@ -19,7 +20,7 @@ public interface ITypeMappingUiProvider /** * A unique string that corresponds to the key of a MappingProvider in the core */ - String key(); + String mappingKey(); /** * A label to be displayed to the label as an option in the mapping type combo box @@ -37,7 +38,7 @@ public interface ITypeMappingUiProvider * @param widgetFactory * @return */ - IJpaComposite buildPersistentTypeMappingComposite( + IJpaComposite<ITypeMapping> buildPersistentTypeMappingComposite( Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory); } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java index 9b2d2735d9..ef732fa5e5 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java @@ -9,6 +9,10 @@ ******************************************************************************/ package org.eclipse.jpt.ui.internal.java.details; +import java.util.Collection; +import java.util.List; +import org.eclipse.jpt.ui.internal.IJpaPlatformUi; +import org.eclipse.jpt.ui.internal.PlatformRegistry; import org.eclipse.jpt.ui.internal.details.PersistentTypeDetailsPage; import org.eclipse.jpt.ui.internal.widgets.CComboViewer; import org.eclipse.swt.SWT; @@ -26,6 +30,16 @@ public class JavaPersistentTypeDetailsPage extends super(parent, widgetFactory); } + protected IJpaPlatformUi getJpaPlatformUi() { + String platformId = getPersistentType().getJpaProject().getPlatform().getId(); + return PlatformRegistry.instance().getJpaPlatform(platformId); + } + + @Override + protected List<ITypeMappingUiProvider> typeMappingUiProviders() { + return getJpaPlatformUi().javaTypeMappingUiProviders(); + } + @Override protected void initializeLayout(Composite composite) { GridLayout gridLayout = new GridLayout(); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java index f07402e6a1..b15444d07a 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java @@ -37,7 +37,7 @@ public class EmbeddableUiProvider implements ITypeMappingUiProvider super(); } - public String key() { + public String mappingKey() { return IMappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY; } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java index 093cf4e71f..64c4c2a55e 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java @@ -37,7 +37,7 @@ public class EntityUiProvider implements ITypeMappingUiProvider super(); } - public String key() { + public String mappingKey() { return IMappingKeys.ENTITY_TYPE_MAPPING_KEY; } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java index 02e3a1be1e..e15397c483 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java @@ -37,7 +37,7 @@ public class MappedSuperclassUiProvider implements ITypeMappingUiProvider super(); } - public String key() { + public String mappingKey() { return IMappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY; } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java index 8574140cf6..1b44936878 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java @@ -37,7 +37,7 @@ public class NullTypeMappingUiProvider implements ITypeMappingUiProvider super(); } - public String key() { + public String mappingKey() { return null; } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java index 4654bd7240..164fbfcee6 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.ui.internal.xml.details; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.jpt.core.internal.AccessType; import org.eclipse.jpt.core.internal.IJpaContentNode; @@ -41,10 +42,28 @@ public class XmlPersistentTypeDetailsPage extends PersistentTypeDetailsPage private AccessTypeComboViewer accessComboViewer; + //Storing these here instead of querying IJpaPlatformUI, because the orm.xml schema + //is not extensible. We only need to support extensibility for java + private List<ITypeMappingUiProvider> xmlTypeMappingUiProviders; + public XmlPersistentTypeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) { super(parent, widgetFactory); } + + public List<ITypeMappingUiProvider> typeMappingUiProviders() { + if (this.xmlTypeMappingUiProviders == null) { + this.xmlTypeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>(); + this.addXmlTypeMappingUiProvidersTo(this.xmlTypeMappingUiProviders); + } + return this.xmlTypeMappingUiProviders; + } + protected void addXmlTypeMappingUiProvidersTo(Collection<ITypeMappingUiProvider> providers) { + providers.add(EntityUiProvider.instance()); + providers.add(MappedSuperclassUiProvider.instance()); + providers.add(EmbeddableUiProvider.instance()); + } + protected Collection<ITypeMappingUiProvider> buildTypeMappingUiProviders() { Collection<ITypeMappingUiProvider> typeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>(); typeMappingUiProviders.add(EntityUiProvider.instance()); |