From 9cb0589e5ad5d12a86dcc1e59f71c5a2f8843b5a Mon Sep 17 00:00:00 2001 From: Brian Vosburgh Date: Thu, 28 Mar 2013 17:53:55 -0400 Subject: rename AbstractElementCollectionMapping2_0Composite to AbstractElementCollectionMappingComposite2_0 --- ...seLinkElementCollectionMapping2_0Composite.java | 4 +- ...stractElementCollectionMapping2_0Composite.java | 411 --------------------- ...stractElementCollectionMappingComposite2_0.java | 411 +++++++++++++++++++++ .../ElementCollectionMappingComposite2_0.java | 2 +- .../OrmElementCollectionMapping2_0Composite.java | 4 +- 5 files changed, 416 insertions(+), 416 deletions(-) delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java create mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMappingComposite2_0.java diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkElementCollectionMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkElementCollectionMapping2_0Composite.java index 18d4dbcd86..ed0441848f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkElementCollectionMapping2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkElementCollectionMapping2_0Composite.java @@ -22,7 +22,7 @@ import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConvert; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverterContainer; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkElementCollectionMapping2_0; import org.eclipse.jpt.jpa.eclipselink.ui.details.JptJpaEclipseLinkUiDetailsMessages; -import org.eclipse.jpt.jpa.ui.internal.jpa2.details.AbstractElementCollectionMapping2_0Composite; +import org.eclipse.jpt.jpa.ui.internal.jpa2.details.AbstractElementCollectionMappingComposite2_0; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; @@ -34,7 +34,7 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.Section; public abstract class EclipseLinkElementCollectionMapping2_0Composite - extends AbstractElementCollectionMapping2_0Composite + extends AbstractElementCollectionMappingComposite2_0 { protected EclipseLinkElementCollectionMapping2_0Composite( PropertyValueModel mappingModel, diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java deleted file mode 100644 index 11ba20f377..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java +++ /dev/null @@ -1,411 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 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.ui.internal.jpa2.details; - -import org.eclipse.jface.resource.ResourceManager; -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher; -import org.eclipse.jpt.common.ui.internal.widgets.Pane; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.transformer.TransformerAdapter; -import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.transformer.Transformer; -import org.eclipse.jpt.jpa.core.context.BaseEnumeratedConverter; -import org.eclipse.jpt.jpa.core.context.BaseTemporalConverter; -import org.eclipse.jpt.jpa.core.context.CollectionMapping; -import org.eclipse.jpt.jpa.core.context.Converter; -import org.eclipse.jpt.jpa.core.context.ConvertibleMapping; -import org.eclipse.jpt.jpa.core.context.LobConverter; -import org.eclipse.jpt.jpa.core.context.SpecifiedAccessReference; -import org.eclipse.jpt.jpa.core.context.SpecifiedColumn; -import org.eclipse.jpt.jpa.core.jpa2.context.CollectionTable2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.ElementCollectionMapping2_0; -import org.eclipse.jpt.jpa.ui.details.JpaComposite; -import org.eclipse.jpt.jpa.ui.details.JptJpaUiDetailsMessages; -import org.eclipse.jpt.jpa.ui.internal.details.ColumnComposite; -import org.eclipse.jpt.jpa.ui.internal.details.EnumTypeComboViewer; -import org.eclipse.jpt.jpa.ui.internal.details.FetchTypeComboViewer; -import org.eclipse.jpt.jpa.ui.internal.details.TemporalTypeCombo; -import org.eclipse.jpt.jpa.ui.jpa2.details.JptJpaUiDetailsMessages2_0; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -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.Hyperlink; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.part.PageBook; - -public abstract class AbstractElementCollectionMapping2_0Composite - extends Pane - implements JpaComposite -{ - private Control basicValueComposite; - - private Control embeddableValueComposite; - - protected AbstractElementCollectionMapping2_0Composite( - PropertyValueModel mappingModel, - PropertyValueModel enabledModel, - Composite parentComposite, - WidgetFactory widgetFactory, - ResourceManager resourceManager) { - super(mappingModel, enabledModel, parentComposite, widgetFactory, resourceManager); - } - - @Override - protected void initializeLayout(Composite container) { - initializeElementCollectionCollapsibleSection(container); - initializeValueCollapsibleSection(container); - initializeKeyCollapsibleSection(container); - initializeOrderingCollapsibleSection(container); - } - - protected void initializeElementCollectionCollapsibleSection(Composite container) { - final Section section = this.getWidgetFactory().createSection(container, - ExpandableComposite.TITLE_BAR | - ExpandableComposite.TWISTIE | - ExpandableComposite.EXPANDED); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - section.setText(JptJpaUiDetailsMessages2_0.ELEMENT_COLLECTION_SECTION_TITLE); - section.setClient(this.buildElementCollectionSectionClient(section)); - } - - protected Control buildElementCollectionSectionClient(Composite container) { - container = this.addSubPane(container, 2, 0, 0, 0, 0); - - // Target class widgets - Hyperlink hyperlink = this.addHyperlink(container, JptJpaUiDetailsMessages2_0.TARGET_CLASS_COMPOSITE_LABEL); - new TargetClassChooser2_0(this, container, hyperlink); - - // Fetch type widgets - this.addLabel(container, JptJpaUiDetailsMessages.BasicGeneralSection_fetchLabel); - new FetchTypeComboViewer(this, container); - - // Collection table widgets - CollectionTableComposite2_0 collectionTableComposite = new CollectionTableComposite2_0(this, buildCollectionTableModel(), container); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL); - gridData.horizontalSpan = 2; - collectionTableComposite.getControl().setLayoutData(gridData); - - return container; - } - - protected void initializeOrderingCollapsibleSection(Composite container) { - final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - section.setText(JptJpaUiDetailsMessages.OrderingComposite_orderingGroup); - section.addExpansionListener(new ExpansionAdapter() { - @Override - public void expansionStateChanging(ExpansionEvent e) { - if (e.getState() && section.getClient() == null) { - section.setClient(AbstractElementCollectionMapping2_0Composite.this.initializeOrderingSection(section)); - } - } - }); - } - - protected Control initializeOrderingSection(Composite container) { - return new OrderingComposite2_0(this, container).getControl(); - } - - protected void initializeValueCollapsibleSection(Composite container) { - final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - section.setText(JptJpaUiDetailsMessages2_0.ABSTRACT_ELEMENT_COLLECTION_MAPPING_COMPOSITE_VALUE_SECTION_TITLE); - section.addExpansionListener(new ExpansionAdapter() { - @Override - public void expansionStateChanging(ExpansionEvent e) { - if (e.getState() && section.getClient() == null) { - section.setClient(AbstractElementCollectionMapping2_0Composite.this.initializeValueSection(section)); - } - } - }); - } - - protected void initializeKeyCollapsibleSection(Composite container) { - //nothing yet - } - - protected Control initializeValueSection(Composite container) { - PageBook pageBook = new PageBook(container, SWT.NULL); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalIndent = 5; - pageBook.setLayoutData(gd); - - installValueControlSwitcher(pageBook); - return pageBook; - } - - protected Control getBasicValueComposite(Composite container) { - if (this.basicValueComposite == null) { - this.basicValueComposite = buildBasicValueSection(container); - } - return this.basicValueComposite; - } - - protected Control buildBasicValueSection(Composite container) { - Composite basicComposite = addSubPane(container); - - new ColumnComposite(this, buildValueColumnModel(), basicComposite); - - // type section - final Section section = this.getWidgetFactory().createSection(basicComposite, ExpandableComposite.TWISTIE); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - section.setText(JptJpaUiDetailsMessages.TypeSection_type); - section.addExpansionListener(new ExpansionAdapter() { - @Override - public void expansionStateChanging(ExpansionEvent e) { - if (e.getState() && section.getClient() == null) { - Composite converterClient = buildBasicValueTypeSectionClient(section); - converterClient.setLayoutData(new GridData(GridData.FILL_BOTH)); - section.setClient(converterClient); - } - } - }); - - return basicComposite; - } - - protected Composite buildBasicValueTypeSectionClient(Section section) { - Composite container = this.getWidgetFactory().createComposite(section); - GridLayout layout = new GridLayout(2, false); - container.setLayout(layout); - // No converter - Button noConverterButton = addRadioButton( - container, - JptJpaUiDetailsMessages.TypeSection_default, - buildNoConverterHolder(), - null); - ((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2; - - // Lob - Button lobButton = addRadioButton( - container, - JptJpaUiDetailsMessages.TypeSection_lob, - buildLobConverterHolder(), - null); - ((GridData) lobButton.getLayoutData()).horizontalSpan = 2; - - - PropertyValueModel converterHolder = buildConverterHolder(); - // Temporal - addRadioButton( - container, - JptJpaUiDetailsMessages.TypeSection_temporal, - buildTemporalBooleanHolder(), - null); - new TemporalTypeCombo(this, this.buildTemporalConverterHolder(converterHolder), container); - - - // Enumerated - addRadioButton( - container, - JptJpaUiDetailsMessages.TypeSection_enumerated, - buildEnumeratedBooleanHolder(), - null); - new EnumTypeComboViewer(this, this.buildEnumeratedConverterHolder(converterHolder), container); - - return container; - } - - protected Control getEmbeddableValueComposite(Composite container) { - if (this.embeddableValueComposite == null) { - this.embeddableValueComposite = buildEmbeddableValueSection(container); - } - return this.embeddableValueComposite; - } - - protected Control buildEmbeddableValueSection(Composite container) { - return new ElementCollectionValueOverridesComposite2_0(this, container).getControl(); - } - - private void installValueControlSwitcher(PageBook pageBook) { - - new ControlSwitcher( - buildValueHolder(), - buildPaneTransformer(pageBook), - pageBook - ); - } - - protected PropertyValueModel buildValueHolder() { - return new PropertyAspectAdapter( - this.getSubjectHolder(), CollectionMapping.VALUE_TYPE_PROPERTY) { - @Override - protected ElementCollectionMapping2_0.Type buildValue_() { - return this.subject.getValueType(); - } - }; - } - - private Transformer buildPaneTransformer(Composite container) { - return new PaneTransformer(container); - } - - protected class PaneTransformer - extends TransformerAdapter - { - private final Composite container; - - protected PaneTransformer(Composite container) { - this.container = container; - } - - @Override - public Control transform(T.Type type) { - return AbstractElementCollectionMapping2_0Composite.this.transformValueType(type, this.container); - } - } - - /** - * Given the selected override, return the control that will be displayed - */ - protected Control transformValueType(T.Type type, Composite container) { - if (type == null) { - return null; - } - switch (type) { - case BASIC_TYPE : - return this.getBasicValueComposite(container); - case EMBEDDABLE_TYPE : - return this.getEmbeddableValueComposite(container); - default : - return null; - } - } - - protected PropertyValueModel buildCollectionTableModel() { - return new PropertyAspectAdapter(getSubjectHolder()) { - @Override - protected CollectionTable2_0 buildValue_() { - return this.subject.getCollectionTable(); - } - }; - } - - protected PropertyValueModel buildValueColumnModel() { - return new PropertyAspectAdapter(getSubjectHolder()) { - @Override - protected SpecifiedColumn buildValue_() { - return this.subject.getValueColumn(); - } - }; - } - - private ModifiablePropertyValueModel buildNoConverterHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.getConverter().getType() == null); - } - - @Override - protected void setValue_(Boolean value) { - if (value.booleanValue()) { - this.subject.setConverter(null); - } - } - }; - } - - private ModifiablePropertyValueModel buildLobConverterHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { - @Override - protected Boolean buildValue_() { - Converter converter = this.subject.getConverter(); - return Boolean.valueOf(converter.getType() == LobConverter.class); - } - - @Override - protected void setValue_(Boolean value) { - if (value.booleanValue()) { - this.subject.setConverter(LobConverter.class); - } - } - }; - } - - private PropertyValueModel buildConverterHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { - @Override - protected Converter buildValue_() { - return this.subject.getConverter(); - } - }; - } - - private PropertyValueModel buildTemporalConverterHolder(PropertyValueModel converterHolder) { - return new TransformationPropertyValueModel(converterHolder) { - @Override - protected BaseTemporalConverter transform_(Converter converter) { - return converter.getType() == BaseTemporalConverter.class ? (BaseTemporalConverter) converter : null; - } - }; - } - - private PropertyValueModel buildEnumeratedConverterHolder(PropertyValueModel converterHolder) { - return new TransformationPropertyValueModel(converterHolder) { - @Override - protected BaseEnumeratedConverter transform_(Converter converter) { - return converter.getType() == BaseEnumeratedConverter.class ? (BaseEnumeratedConverter) converter : null; - } - }; - } - - private ModifiablePropertyValueModel buildTemporalBooleanHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { - @Override - protected Boolean buildValue_() { - Converter converter = this.subject.getConverter(); - return Boolean.valueOf(converter.getType() == BaseTemporalConverter.class); - } - - @Override - protected void setValue_(Boolean value) { - if (value.booleanValue()) { - this.subject.setConverter(BaseTemporalConverter.class); - } - } - }; - } - - private ModifiablePropertyValueModel buildEnumeratedBooleanHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { - @Override - protected Boolean buildValue_() { - Converter converter = this.subject.getConverter(); - return Boolean.valueOf(converter.getType() == BaseEnumeratedConverter.class); - } - - @Override - protected void setValue_(Boolean value) { - if (value.booleanValue()) { - this.subject.setConverter(BaseEnumeratedConverter.class); - } - } - }; - } - - protected PropertyValueModel buildAccessReferenceModel() { - return new PropertyAspectAdapter(getSubjectHolder()) { - @Override - protected SpecifiedAccessReference buildValue_() { - return this.subject.getPersistentAttribute(); - } - }; - } -} \ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMappingComposite2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMappingComposite2_0.java new file mode 100644 index 0000000000..4ad2bc43e1 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMappingComposite2_0.java @@ -0,0 +1,411 @@ +/******************************************************************************* + * Copyright (c) 2009, 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.ui.internal.jpa2.details; + +import org.eclipse.jface.resource.ResourceManager; +import org.eclipse.jpt.common.ui.WidgetFactory; +import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher; +import org.eclipse.jpt.common.ui.internal.widgets.Pane; +import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; +import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel; +import org.eclipse.jpt.common.utility.internal.transformer.TransformerAdapter; +import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel; +import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; +import org.eclipse.jpt.common.utility.transformer.Transformer; +import org.eclipse.jpt.jpa.core.context.BaseEnumeratedConverter; +import org.eclipse.jpt.jpa.core.context.BaseTemporalConverter; +import org.eclipse.jpt.jpa.core.context.CollectionMapping; +import org.eclipse.jpt.jpa.core.context.Converter; +import org.eclipse.jpt.jpa.core.context.ConvertibleMapping; +import org.eclipse.jpt.jpa.core.context.LobConverter; +import org.eclipse.jpt.jpa.core.context.SpecifiedAccessReference; +import org.eclipse.jpt.jpa.core.context.SpecifiedColumn; +import org.eclipse.jpt.jpa.core.jpa2.context.CollectionTable2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.ElementCollectionMapping2_0; +import org.eclipse.jpt.jpa.ui.details.JpaComposite; +import org.eclipse.jpt.jpa.ui.details.JptJpaUiDetailsMessages; +import org.eclipse.jpt.jpa.ui.internal.details.ColumnComposite; +import org.eclipse.jpt.jpa.ui.internal.details.EnumTypeComboViewer; +import org.eclipse.jpt.jpa.ui.internal.details.FetchTypeComboViewer; +import org.eclipse.jpt.jpa.ui.internal.details.TemporalTypeCombo; +import org.eclipse.jpt.jpa.ui.jpa2.details.JptJpaUiDetailsMessages2_0; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +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.Hyperlink; +import org.eclipse.ui.forms.widgets.Section; +import org.eclipse.ui.part.PageBook; + +public abstract class AbstractElementCollectionMappingComposite2_0 + extends Pane + implements JpaComposite +{ + private Control basicValueComposite; + + private Control embeddableValueComposite; + + protected AbstractElementCollectionMappingComposite2_0( + PropertyValueModel mappingModel, + PropertyValueModel enabledModel, + Composite parentComposite, + WidgetFactory widgetFactory, + ResourceManager resourceManager) { + super(mappingModel, enabledModel, parentComposite, widgetFactory, resourceManager); + } + + @Override + protected void initializeLayout(Composite container) { + initializeElementCollectionCollapsibleSection(container); + initializeValueCollapsibleSection(container); + initializeKeyCollapsibleSection(container); + initializeOrderingCollapsibleSection(container); + } + + protected void initializeElementCollectionCollapsibleSection(Composite container) { + final Section section = this.getWidgetFactory().createSection(container, + ExpandableComposite.TITLE_BAR | + ExpandableComposite.TWISTIE | + ExpandableComposite.EXPANDED); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaUiDetailsMessages2_0.ELEMENT_COLLECTION_SECTION_TITLE); + section.setClient(this.buildElementCollectionSectionClient(section)); + } + + protected Control buildElementCollectionSectionClient(Composite container) { + container = this.addSubPane(container, 2, 0, 0, 0, 0); + + // Target class widgets + Hyperlink hyperlink = this.addHyperlink(container, JptJpaUiDetailsMessages2_0.TARGET_CLASS_COMPOSITE_LABEL); + new TargetClassChooser2_0(this, container, hyperlink); + + // Fetch type widgets + this.addLabel(container, JptJpaUiDetailsMessages.BasicGeneralSection_fetchLabel); + new FetchTypeComboViewer(this, container); + + // Collection table widgets + CollectionTableComposite2_0 collectionTableComposite = new CollectionTableComposite2_0(this, buildCollectionTableModel(), container); + GridData gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 2; + collectionTableComposite.getControl().setLayoutData(gridData); + + return container; + } + + protected void initializeOrderingCollapsibleSection(Composite container) { + final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaUiDetailsMessages.OrderingComposite_orderingGroup); + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + if (e.getState() && section.getClient() == null) { + section.setClient(AbstractElementCollectionMappingComposite2_0.this.initializeOrderingSection(section)); + } + } + }); + } + + protected Control initializeOrderingSection(Composite container) { + return new OrderingComposite2_0(this, container).getControl(); + } + + protected void initializeValueCollapsibleSection(Composite container) { + final Section section = this.getWidgetFactory().createSection(container, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaUiDetailsMessages2_0.ABSTRACT_ELEMENT_COLLECTION_MAPPING_COMPOSITE_VALUE_SECTION_TITLE); + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + if (e.getState() && section.getClient() == null) { + section.setClient(AbstractElementCollectionMappingComposite2_0.this.initializeValueSection(section)); + } + } + }); + } + + protected void initializeKeyCollapsibleSection(Composite container) { + //nothing yet + } + + protected Control initializeValueSection(Composite container) { + PageBook pageBook = new PageBook(container, SWT.NULL); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + gd.horizontalIndent = 5; + pageBook.setLayoutData(gd); + + installValueControlSwitcher(pageBook); + return pageBook; + } + + protected Control getBasicValueComposite(Composite container) { + if (this.basicValueComposite == null) { + this.basicValueComposite = buildBasicValueSection(container); + } + return this.basicValueComposite; + } + + protected Control buildBasicValueSection(Composite container) { + Composite basicComposite = addSubPane(container); + + new ColumnComposite(this, buildValueColumnModel(), basicComposite); + + // type section + final Section section = this.getWidgetFactory().createSection(basicComposite, ExpandableComposite.TWISTIE); + section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + section.setText(JptJpaUiDetailsMessages.TypeSection_type); + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + if (e.getState() && section.getClient() == null) { + Composite converterClient = buildBasicValueTypeSectionClient(section); + converterClient.setLayoutData(new GridData(GridData.FILL_BOTH)); + section.setClient(converterClient); + } + } + }); + + return basicComposite; + } + + protected Composite buildBasicValueTypeSectionClient(Section section) { + Composite container = this.getWidgetFactory().createComposite(section); + GridLayout layout = new GridLayout(2, false); + container.setLayout(layout); + // No converter + Button noConverterButton = addRadioButton( + container, + JptJpaUiDetailsMessages.TypeSection_default, + buildNoConverterHolder(), + null); + ((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2; + + // Lob + Button lobButton = addRadioButton( + container, + JptJpaUiDetailsMessages.TypeSection_lob, + buildLobConverterHolder(), + null); + ((GridData) lobButton.getLayoutData()).horizontalSpan = 2; + + + PropertyValueModel converterHolder = buildConverterHolder(); + // Temporal + addRadioButton( + container, + JptJpaUiDetailsMessages.TypeSection_temporal, + buildTemporalBooleanHolder(), + null); + new TemporalTypeCombo(this, this.buildTemporalConverterHolder(converterHolder), container); + + + // Enumerated + addRadioButton( + container, + JptJpaUiDetailsMessages.TypeSection_enumerated, + buildEnumeratedBooleanHolder(), + null); + new EnumTypeComboViewer(this, this.buildEnumeratedConverterHolder(converterHolder), container); + + return container; + } + + protected Control getEmbeddableValueComposite(Composite container) { + if (this.embeddableValueComposite == null) { + this.embeddableValueComposite = buildEmbeddableValueSection(container); + } + return this.embeddableValueComposite; + } + + protected Control buildEmbeddableValueSection(Composite container) { + return new ElementCollectionValueOverridesComposite2_0(this, container).getControl(); + } + + private void installValueControlSwitcher(PageBook pageBook) { + + new ControlSwitcher( + buildValueHolder(), + buildPaneTransformer(pageBook), + pageBook + ); + } + + protected PropertyValueModel buildValueHolder() { + return new PropertyAspectAdapter( + this.getSubjectHolder(), CollectionMapping.VALUE_TYPE_PROPERTY) { + @Override + protected ElementCollectionMapping2_0.Type buildValue_() { + return this.subject.getValueType(); + } + }; + } + + private Transformer buildPaneTransformer(Composite container) { + return new PaneTransformer(container); + } + + protected class PaneTransformer + extends TransformerAdapter + { + private final Composite container; + + protected PaneTransformer(Composite container) { + this.container = container; + } + + @Override + public Control transform(T.Type type) { + return AbstractElementCollectionMappingComposite2_0.this.transformValueType(type, this.container); + } + } + + /** + * Given the selected override, return the control that will be displayed + */ + protected Control transformValueType(T.Type type, Composite container) { + if (type == null) { + return null; + } + switch (type) { + case BASIC_TYPE : + return this.getBasicValueComposite(container); + case EMBEDDABLE_TYPE : + return this.getEmbeddableValueComposite(container); + default : + return null; + } + } + + protected PropertyValueModel buildCollectionTableModel() { + return new PropertyAspectAdapter(getSubjectHolder()) { + @Override + protected CollectionTable2_0 buildValue_() { + return this.subject.getCollectionTable(); + } + }; + } + + protected PropertyValueModel buildValueColumnModel() { + return new PropertyAspectAdapter(getSubjectHolder()) { + @Override + protected SpecifiedColumn buildValue_() { + return this.subject.getValueColumn(); + } + }; + } + + private ModifiablePropertyValueModel buildNoConverterHolder() { + return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { + @Override + protected Boolean buildValue_() { + return Boolean.valueOf(this.subject.getConverter().getType() == null); + } + + @Override + protected void setValue_(Boolean value) { + if (value.booleanValue()) { + this.subject.setConverter(null); + } + } + }; + } + + private ModifiablePropertyValueModel buildLobConverterHolder() { + return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { + @Override + protected Boolean buildValue_() { + Converter converter = this.subject.getConverter(); + return Boolean.valueOf(converter.getType() == LobConverter.class); + } + + @Override + protected void setValue_(Boolean value) { + if (value.booleanValue()) { + this.subject.setConverter(LobConverter.class); + } + } + }; + } + + private PropertyValueModel buildConverterHolder() { + return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { + @Override + protected Converter buildValue_() { + return this.subject.getConverter(); + } + }; + } + + private PropertyValueModel buildTemporalConverterHolder(PropertyValueModel converterHolder) { + return new TransformationPropertyValueModel(converterHolder) { + @Override + protected BaseTemporalConverter transform_(Converter converter) { + return converter.getType() == BaseTemporalConverter.class ? (BaseTemporalConverter) converter : null; + } + }; + } + + private PropertyValueModel buildEnumeratedConverterHolder(PropertyValueModel converterHolder) { + return new TransformationPropertyValueModel(converterHolder) { + @Override + protected BaseEnumeratedConverter transform_(Converter converter) { + return converter.getType() == BaseEnumeratedConverter.class ? (BaseEnumeratedConverter) converter : null; + } + }; + } + + private ModifiablePropertyValueModel buildTemporalBooleanHolder() { + return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { + @Override + protected Boolean buildValue_() { + Converter converter = this.subject.getConverter(); + return Boolean.valueOf(converter.getType() == BaseTemporalConverter.class); + } + + @Override + protected void setValue_(Boolean value) { + if (value.booleanValue()) { + this.subject.setConverter(BaseTemporalConverter.class); + } + } + }; + } + + private ModifiablePropertyValueModel buildEnumeratedBooleanHolder() { + return new PropertyAspectAdapter(getSubjectHolder(), ConvertibleMapping.CONVERTER_PROPERTY) { + @Override + protected Boolean buildValue_() { + Converter converter = this.subject.getConverter(); + return Boolean.valueOf(converter.getType() == BaseEnumeratedConverter.class); + } + + @Override + protected void setValue_(Boolean value) { + if (value.booleanValue()) { + this.subject.setConverter(BaseEnumeratedConverter.class); + } + } + }; + } + + protected PropertyValueModel buildAccessReferenceModel() { + return new PropertyAspectAdapter(getSubjectHolder()) { + @Override + protected SpecifiedAccessReference buildValue_() { + return this.subject.getPersistentAttribute(); + } + }; + } +} diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionMappingComposite2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionMappingComposite2_0.java index eb35200906..9276170efb 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionMappingComposite2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionMappingComposite2_0.java @@ -16,7 +16,7 @@ import org.eclipse.jpt.jpa.core.jpa2.context.ElementCollectionMapping2_0; import org.eclipse.swt.widgets.Composite; public class ElementCollectionMappingComposite2_0 - extends AbstractElementCollectionMapping2_0Composite + extends AbstractElementCollectionMappingComposite2_0 { public ElementCollectionMappingComposite2_0( PropertyValueModel mappingModel, diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java index fcb3c1a482..5d1cfa661d 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java @@ -19,7 +19,7 @@ import org.eclipse.jpt.jpa.ui.details.orm.JptJpaUiDetailsOrmMessages; import org.eclipse.jpt.jpa.ui.internal.details.AccessTypeComboViewer; import org.eclipse.jpt.jpa.ui.internal.details.FetchTypeComboViewer; import org.eclipse.jpt.jpa.ui.internal.details.orm.OrmMappingNameText; -import org.eclipse.jpt.jpa.ui.internal.jpa2.details.AbstractElementCollectionMapping2_0Composite; +import org.eclipse.jpt.jpa.ui.internal.jpa2.details.AbstractElementCollectionMappingComposite2_0; import org.eclipse.jpt.jpa.ui.internal.jpa2.details.CollectionTableComposite2_0; import org.eclipse.jpt.jpa.ui.internal.jpa2.details.TargetClassChooser2_0; import org.eclipse.jpt.jpa.ui.jpa2.details.JptJpaUiDetailsMessages2_0; @@ -29,7 +29,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.ui.forms.widgets.Hyperlink; public class OrmElementCollectionMapping2_0Composite - extends AbstractElementCollectionMapping2_0Composite + extends AbstractElementCollectionMappingComposite2_0 { public OrmElementCollectionMapping2_0Composite( PropertyValueModel mappingModel, -- cgit v1.2.3