From 3e8dd95926f4ff410651f340f7b9cd19e9aabb60 Mon Sep 17 00:00:00 2001 From: Brian Vosburgh Date: Tue, 28 Jun 2016 17:40:24 -0400 Subject: rework EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite: remove ValueListAdapter --- ...appingsTenantDiscriminatorColumnsComposite.java | 84 +++++++--------------- 1 file changed, 25 insertions(+), 59 deletions(-) diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite.java index e09f683051..c53fbebc29 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite.java @@ -11,17 +11,13 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details.orm; import org.eclipse.jpt.common.ui.internal.widgets.Pane; import org.eclipse.jpt.common.utility.internal.closure.BooleanClosure; -import org.eclipse.jpt.common.utility.internal.iterable.SuperListIterableWrapper; +import org.eclipse.jpt.common.utility.internal.iterable.IterableTools; import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; import org.eclipse.jpt.common.utility.internal.model.value.ListValueModelTools; -import org.eclipse.jpt.common.utility.internal.model.value.ReadOnlyModifiablePropertyValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ValueListAdapter; import org.eclipse.jpt.common.utility.iterable.ListIterable; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; import org.eclipse.jpt.common.utility.model.value.ListValueModel; import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel; +import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; import org.eclipse.jpt.jpa.core.context.orm.EntityMappings; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkSpecifiedTenantDiscriminatorColumn2_3; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkTenantDiscriminatorColumn2_3; @@ -61,10 +57,10 @@ public class EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite extend } protected EclipseLinkTenantDiscriminatorColumnsComposite buildTenantDiscriminatorColumnsComposite(Composite container) { - return new EclipseLinkTenantDiscriminatorColumnsComposite( + return new EclipseLinkTenantDiscriminatorColumnsComposite<>( this, this.getSubjectHolder(), - new TenantDiscriminatorColumnPaneEnablerHolder(), + this.buildSpecifiedTenantDiscriminatorColumnsPaneEnabledModel(), container, this.buildTenantDiscriminatorColumnsEditor() ); @@ -84,7 +80,7 @@ public class EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite extend } public ListIterable getDefaultTenantDiscriminatorColumns(EntityMappings subject) { - return new SuperListIterableWrapper(((EclipseLinkEntityMappings) subject).getDefaultTenantDiscriminatorColumns()); + return IterableTools.upCast(((EclipseLinkEntityMappings) subject).getDefaultTenantDiscriminatorColumns()); } public int getDefaultTenantDiscriminatorColumnsSize(EntityMappings subject) { @@ -96,7 +92,7 @@ public class EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite extend } public ListIterable getSpecifiedTenantDiscriminatorColumns(EntityMappings subject) { - return new SuperListIterableWrapper(((EclipseLinkEntityMappings) subject).getSpecifiedTenantDiscriminatorColumns()); + return IterableTools.upCast(((EclipseLinkEntityMappings) subject).getSpecifiedTenantDiscriminatorColumns()); } public int getSpecifiedTenantDiscriminatorColumnsSize(EntityMappings subject) { @@ -125,7 +121,7 @@ public class EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite extend getSubjectHolder(), EclipseLinkEntityMappings.SPECIFIED_TENANT_DISCRIMINATOR_COLUMNS_LIST) { @Override protected ListIterable getListIterable() { - return new SuperListIterableWrapper(((EclipseLinkEntityMappings) this.subject).getSpecifiedTenantDiscriminatorColumns()); + return IterableTools.upCast(((EclipseLinkEntityMappings) this.subject).getSpecifiedTenantDiscriminatorColumns()); } @Override @@ -169,55 +165,25 @@ public class EclipseLinkEntityMappingsTenantDiscriminatorColumnsComposite extend } } - /* CU private */ class TenantDiscriminatorColumnPaneEnablerHolder - extends TransformationPropertyValueModel - { - private StateChangeListener stateChangeListener; - - TenantDiscriminatorColumnPaneEnablerHolder() { - super( - new ValueListAdapter( - new ReadOnlyModifiablePropertyValueModelWrapper(getSubjectHolder()), - EclipseLinkEntityMappings.SPECIFIED_TENANT_DISCRIMINATOR_COLUMNS_LIST - ) - ); - this.stateChangeListener = this.buildStateChangeListener(); - } - - private StateChangeListener buildStateChangeListener() { - return new StateChangeListener() { - public void stateChanged(StateChangeEvent event) { - TenantDiscriminatorColumnPaneEnablerHolder.this.valueStateChanged(); - } - }; - } - - void valueStateChanged() { - Object old = this.value; - this.value = this.transform(this.valueModel.getValue()); - firePropertyChanged(VALUE, old, this.value); - } - - @Override - protected Boolean transform(EntityMappings v) { - return (v == null) ? Boolean.FALSE : super.transform(v); - } - - @Override - protected Boolean transform_(EntityMappings v) { - return Boolean.valueOf(((EclipseLinkEntityMappings) v).getSpecifiedTenantDiscriminatorColumnsSize() > 0); - } + protected PropertyValueModel buildSpecifiedTenantDiscriminatorColumnsPaneEnabledModel() { + return this.buildSpecifiedTenantDiscriminatorColumnsIsNotEmptyModel(); + } - @Override - protected void engageModel() { - super.engageModel(); - this.valueModel.addStateChangeListener(this.stateChangeListener); - } + protected PropertyValueModel buildSpecifiedTenantDiscriminatorColumnsIsNotEmptyModel() { + return ListValueModelTools.isNotEmptyPropertyValueModel(this.buildSpecifiedTenantDiscriminatorColumnsModel()); + } - @Override - protected void disengageModel() { - this.valueModel.removeStateChangeListener(this.stateChangeListener); - super.disengageModel(); - } + @SuppressWarnings("unchecked") + protected ListValueModel buildSpecifiedTenantDiscriminatorColumnsModel() { + return new ListAspectAdapter((PropertyValueModel) this.getSubjectHolder(), EclipseLinkEntityMappings.SPECIFIED_TENANT_DISCRIMINATOR_COLUMNS_LIST) { + @Override + protected ListIterable getListIterable() { + return IterableTools.upCast(this.subject.getSpecifiedTenantDiscriminatorColumns()); + } + @Override + protected int size_() { + return this.subject.getSpecifiedTenantDiscriminatorColumnsSize(); + } + }; } } -- cgit v1.2.3