diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclass2_5Composite.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclass2_5Composite.java | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclass2_5Composite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclass2_5Composite.java new file mode 100644 index 0000000000..fb6c84643c --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclass2_5Composite.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * Copyright (c) 2013 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.jpa.eclipselink.ui.internal.details.orm; + +import org.eclipse.jface.resource.ResourceManager; +import org.eclipse.jpt.common.ui.WidgetFactory; +import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; +import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; +import org.eclipse.jpt.jpa.core.context.QueryContainer; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmEclipseLinkMappedSuperclass; +import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmEclipseLinkMultitenancy2_3; +import org.eclipse.jpt.jpa.eclipselink.ui.details.JptJpaEclipseLinkUiDetailsMessages; +import org.eclipse.jpt.jpa.eclipselink.ui.internal.details.EclipseLinkMultitenancyComposite; +import org.eclipse.jpt.jpa.ui.details.JptJpaUiDetailsMessages; +import org.eclipse.jpt.jpa.ui.internal.jpa2_1.details.Queries2_1Composite; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.forms.events.ExpansionAdapter; +import org.eclipse.ui.forms.events.ExpansionEvent; +import org.eclipse.ui.forms.widgets.ExpandableComposite; +import org.eclipse.ui.forms.widgets.Section; + +public class OrmEclipseLinkMappedSuperclass2_5Composite + extends AbstractOrmEclipseLinkMappedSuperclassComposite<OrmEclipseLinkMappedSuperclass> +{ + + public OrmEclipseLinkMappedSuperclass2_5Composite( + PropertyValueModel<? extends OrmEclipseLinkMappedSuperclass> mappedSuperclassModel, + Composite parentComposite, + WidgetFactory widgetFactory, + ResourceManager resourceManager) { + super(mappedSuperclassModel, parentComposite, widgetFactory, resourceManager); + } + + @Override + protected void initializeLayout(Composite container) { + this.initializeMappedSuperclassCollapsibleSection(container); + this.initializeCachingCollapsibleSection(container); + this.initializeQueriesCollapsibleSection(container); + this.initializeMultitenancyCollapsibleSection(container); + this.initializeGeneratorsCollapsibleSection(container); + this.initializeConvertersCollapsibleSection(container); + this.initializeAdvancedCollapsibleSection(container); + } + + @Override + protected Control initializeCachingSection(Composite container) { + return new OrmEclipseLinkCaching2_0Composite(this, this.buildCachingModel(), container).getControl(); + } + + protected void initializeQueriesCollapsibleSection(Composite container) { + final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaUiDetailsMessages.EntityComposite_queries); + + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + if (e.getState() && section.getClient() == null) { + section.setClient(initializeQueriesSection(section)); + } + } + }); + } + + protected Control initializeQueriesSection(Composite container) { + return new Queries2_1Composite(this, this.buildQueryContainerModel(), container).getControl(); + } + + private PropertyValueModel<QueryContainer> buildQueryContainerModel() { + return new PropertyAspectAdapter<OrmEclipseLinkMappedSuperclass, QueryContainer>( + getSubjectHolder()) { + @Override + protected QueryContainer buildValue_() { + return this.subject.getQueryContainer(); + } + }; + } + + protected void initializeMultitenancyCollapsibleSection(Composite container) { + final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaEclipseLinkUiDetailsMessages.ECLIPSELINK_TYPE_MAPPING_COMPOSITE_MULTITENANCY); + + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + if (e.getState() && section.getClient() == null) { + section.setClient(initializeMultitenancySection(section)); + } + } + }); + } + + protected Control initializeMultitenancySection(Composite container) { + return new EclipseLinkMultitenancyComposite(this, this.buildMultitenancyModel(), container).getControl(); + } + + private PropertyAspectAdapter<OrmEclipseLinkMappedSuperclass, OrmEclipseLinkMultitenancy2_3> buildMultitenancyModel() { + return new PropertyAspectAdapter<OrmEclipseLinkMappedSuperclass, OrmEclipseLinkMultitenancy2_3>(getSubjectHolder()) { + @Override + protected OrmEclipseLinkMultitenancy2_3 buildValue_() { + return this.subject.getMultitenancy(); + } + }; + } + +} |