diff options
author | kmoore | 2009-02-06 18:48:35 +0000 |
---|---|---|
committer | kmoore | 2009-02-06 18:48:35 +0000 |
commit | b1427db962ae3b03f1cd925e49dcd5f9d9fa5c10 (patch) | |
tree | 89b7467539c636587056fbf19ef65e35934b806c /jpa/plugins/org.eclipse.jpt.eclipselink.ui/src | |
parent | e692423dcdcce613dce7164d6441ef8eaa4cd0ca (diff) | |
download | webtools.dali-b1427db962ae3b03f1cd925e49dcd5f9d9fa5c10.tar.gz webtools.dali-b1427db962ae3b03f1cd925e49dcd5f9d9fa5c10.tar.xz webtools.dali-b1427db962ae3b03f1cd925e49dcd5f9d9fa5c10.zip |
eclipselink1.1 orm resource and context model support. a mapping file creation wizard is included
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.eclipselink.ui/src')
6 files changed, 136 insertions, 6 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java index 76a9e56fca..76ba93a513 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java @@ -19,6 +19,10 @@ public class EclipseLinkUiMessages { public static String MappingFileWizard_title; public static String MappingFileWizardPage_title; public static String MappingFileWizardPage_desc; + + public static String EclipseLink1_1MappingFileWizard_title; + public static String EclipseLink1_1MappingFileWizardPage_title; + public static String EclipseLink1_1MappingFileWizardPage_desc; public static String Boolean_True; public static String Boolean_False; diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUi.java index bd6e257357..8536965ee2 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUi.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUi.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. + * 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. @@ -9,7 +9,14 @@ *******************************************************************************/ package org.eclipse.jpt.eclipselink.ui.internal.platform; +import java.util.List; +import org.eclipse.jpt.core.JpaStructureNode; +import org.eclipse.jpt.core.context.orm.OrmStructureNode; +import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin; import org.eclipse.jpt.eclipselink.ui.internal.EclipseLink1_1JpaUiFactory; +import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLink1_1OrmResourceModelStructureProvider; +import org.eclipse.jpt.ui.details.JpaDetailsProvider; +import org.eclipse.jpt.ui.structure.JpaStructureProvider; public class EclipseLink1_1JpaPlatformUi extends EclipseLinkJpaPlatformUi //TODO just extend for now, but we need to change this to match the JpaPlatform @@ -22,4 +29,26 @@ public class EclipseLink1_1JpaPlatformUi protected EclipseLink1_1JpaUiFactory buildJpaUiFactory() { return new EclipseLink1_1JpaUiFactory(); } + + @Override + protected void addJpaStructureProvidersTo(List<JpaStructureProvider> providers) { + super.addJpaStructureProvidersTo(providers); + providers.add(EclipseLink1_1OrmResourceModelStructureProvider.instance()); + } + + @Override + //EclipseLink has to be able to build UI for both the orm.xml and the eclipselink-orm.xml so we can't + //just override the ormDetailsProviders and replace them with EclipseLink, we have to instead determine + //which details providers we need based on the selected structurenode. Need to find a better way to do this + protected synchronized JpaDetailsProvider[] getDetailsProviders(JpaStructureNode structureNode) { + // TODO - overhaul this class hierarchy! + //it's getting better, but still an instanceof here - KFB + if (structureNode instanceof OrmStructureNode) { + if (((OrmStructureNode) structureNode).getContentType().equals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE)) { + return getEclipseLinkDetailsProviders(); + } + } + return super.getDetailsProviders(structureNode); + } + } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java new file mode 100644 index 0000000000..c6723461f6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * 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.structure; + +import org.eclipse.core.runtime.content.IContentType; +import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin; +import org.eclipse.jpt.ui.internal.structure.OrmItemContentProviderFactory; +import org.eclipse.jpt.ui.internal.structure.OrmItemLabelProviderFactory; +import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory; +import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory; +import org.eclipse.jpt.ui.structure.JpaStructureProvider; + +public class EclipseLink1_1OrmResourceModelStructureProvider + implements JpaStructureProvider +{ + // singleton + private static final JpaStructureProvider INSTANCE = new EclipseLink1_1OrmResourceModelStructureProvider(); + + /** + * Return the singleton. + */ + public static JpaStructureProvider instance() { + return INSTANCE; + } + + /** + * Ensure single instance. + */ + private EclipseLink1_1OrmResourceModelStructureProvider() { + super(); + } + + public IContentType getContentType() { + return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE; + } + + public TreeItemContentProviderFactory getTreeItemContentProviderFactory() { + return new OrmItemContentProviderFactory(); + } + + public ItemLabelProviderFactory getItemLabelProviderFactory() { + return new OrmItemLabelProviderFactory(); + } + +} diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java new file mode 100644 index 0000000000..63b515ea72 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * 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.wizards; + +import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLink1_1OrmFileCreationDataModelProvider; +import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages; +import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizard; +import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizardPage; +import org.eclipse.ui.INewWizard; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; +import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider; + +/** + * This is referenced in the plugin.xml as an org.eclipse.ui.newWizards extension + */ +public class EclipseLink1_1MappingFileWizard extends MappingFileWizard + implements INewWizard +{ + public EclipseLink1_1MappingFileWizard() { + this(null); + } + + public EclipseLink1_1MappingFileWizard(IDataModel dataModel) { + super(dataModel); + setWindowTitle(EclipseLinkUiMessages.EclipseLink1_1MappingFileWizard_title); + } + + + @Override + protected MappingFileWizardPage buildMappingFileWizardPage() { + return new EclipseLinkMappingFileWizardPage(getDataModel(), "Page_1", EclipseLinkUiMessages.EclipseLink1_1MappingFileWizardPage_title, EclipseLinkUiMessages.EclipseLink1_1MappingFileWizardPage_desc); + } + + @Override + protected IDataModelProvider getDefaultProvider() { + return new EclipseLink1_1OrmFileCreationDataModelProvider(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java index 27946daf55..ce9e1172fa 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java @@ -36,7 +36,7 @@ public class EclipseLinkMappingFileWizard extends MappingFileWizard @Override protected MappingFileWizardPage buildMappingFileWizardPage() { - return new EclipseLinkMappingFileWizardPage(getDataModel(), "Page_1"); + return new EclipseLinkMappingFileWizardPage(getDataModel(), "Page_1", EclipseLinkUiMessages.MappingFileWizardPage_title, EclipseLinkUiMessages.MappingFileWizardPage_desc); } @Override diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java index 04fd13761e..5f168cd5ed 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java @@ -10,16 +10,15 @@ *******************************************************************************/ package org.eclipse.jpt.eclipselink.ui.internal.wizards; -import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages; import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizardPage; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; public class EclipseLinkMappingFileWizardPage extends MappingFileWizardPage { - public EclipseLinkMappingFileWizardPage(IDataModel dataModel, String pageName) { + public EclipseLinkMappingFileWizardPage(IDataModel dataModel, String pageName, String title, String desc) { super(dataModel, pageName); - setTitle(EclipseLinkUiMessages.MappingFileWizardPage_title); - setDescription(EclipseLinkUiMessages.MappingFileWizardPage_desc); + setTitle(title); + setDescription(desc); setPageComplete(false); } } |