/******************************************************************************* * Copyright (c) 2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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 * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.hibernate.jpt.ui.internal.mapping.details.orm; import java.util.List; import org.eclipse.jpt.common.core.JptResourceType; import org.eclipse.jpt.common.core.internal.utility.ContentTypeTools; import org.eclipse.jpt.common.ui.internal.jface.SimpleItemTreeStateProviderFactoryProvider; import org.eclipse.jpt.common.ui.jface.ItemTreeStateProviderFactoryProvider; import org.eclipse.jpt.jpa.core.resource.orm.JPA; import org.eclipse.jpt.jpa.core.resource.orm.XmlEntityMappings; import org.eclipse.jpt.jpa.ui.ResourceUiDefinition; import org.eclipse.jpt.jpa.ui.details.JpaUiFactory; import org.eclipse.jpt.jpa.ui.details.MappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.BasicMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.EmbeddableUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.EmbeddedIdMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.EmbeddedMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.EntityUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.IdMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.ManyToManyMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.ManyToOneMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.MappedSuperclassUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.OneToManyMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.OneToOneMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.TransientMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.VersionMappingUiDefinition; import org.eclipse.jpt.jpa.ui.internal.details.orm.AbstractOrmXmlResourceUiDefinition; import org.eclipse.jpt.jpa.ui.internal.structure.JpaFileStructureItemContentProviderFactory; import org.eclipse.jpt.jpa.ui.internal.structure.OrmStructureItemLabelProviderFactory; /** * @author Dmitry Geraskov * */ public class HibernateOrmXmlUiDefinition extends AbstractOrmXmlResourceUiDefinition { // singleton private static final ResourceUiDefinition INSTANCE = new HibernateOrmXmlUiDefinition(); /** * Return the singleton */ public static ResourceUiDefinition instance() { return INSTANCE; } /** * Enforce singleton usage */ private HibernateOrmXmlUiDefinition() { super(); } @Override protected JpaUiFactory buildUiFactory() { return new HibernateOrmXmlUiFactory(); } public boolean providesUi(JptResourceType resourceType) { return resourceType.equals(ContentTypeTools.getResourceType(XmlEntityMappings.CONTENT_TYPE, JPA.SCHEMA_VERSION)); } public ItemTreeStateProviderFactoryProvider getStructureViewFactoryProvider() { return STRUCTURE_VIEW_FACTORY_PROVIDER; } public static final ItemTreeStateProviderFactoryProvider STRUCTURE_VIEW_FACTORY_PROVIDER = new SimpleItemTreeStateProviderFactoryProvider( JpaFileStructureItemContentProviderFactory.instance(), OrmStructureItemLabelProviderFactory.instance() ); @Override protected void addSpecifiedAttributeMappingUiDefinitionsTo(List<MappingUiDefinition> definitions) { definitions.add(IdMappingUiDefinition.instance()); definitions.add(EmbeddedIdMappingUiDefinition.instance()); definitions.add(BasicMappingUiDefinition.instance()); definitions.add(VersionMappingUiDefinition.instance()); definitions.add(ManyToOneMappingUiDefinition.instance()); definitions.add(OneToManyMappingUiDefinition.instance()); definitions.add(OneToOneMappingUiDefinition.instance()); definitions.add(ManyToManyMappingUiDefinition.instance()); definitions.add(EmbeddedMappingUiDefinition.instance()); definitions.add(TransientMappingUiDefinition.instance()); } @Override protected void addTypeMappingUiDefinitionsTo(List<MappingUiDefinition> definitions) { definitions.add(EntityUiDefinition.instance()); definitions.add(MappedSuperclassUiDefinition.instance()); definitions.add(EmbeddableUiDefinition.instance()); } }