diff options
author | kmoore | 2010-03-31 17:00:14 +0000 |
---|---|---|
committer | kmoore | 2010-03-31 17:00:14 +0000 |
commit | ffa21d362700471abe4fdab6ea7870cfb2eb06b7 (patch) | |
tree | 87a2a0d4f45acaec0224d419da1d8e5951844df1 /jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org | |
parent | 949557ac3916a58b7f2211b5b0cbefb2f1d9a501 (diff) | |
download | webtools.dali-ffa21d362700471abe4fdab6ea7870cfb2eb06b7.tar.gz webtools.dali-ffa21d362700471abe4fdab6ea7870cfb2eb06b7.tar.xz webtools.dali-ffa21d362700471abe4fdab6ea7870cfb2eb06b7.zip |
307113 - incorrect default class names in virtual orm.xml attribute mappings
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java | 135 |
1 files changed, 82 insertions, 53 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java index c843eb76f1..d755bc71eb 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java @@ -11,18 +11,22 @@ package org.eclipse.jpt.eclipselink.ui.internal.details; import org.eclipse.jpt.core.JpaProject; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkCustomizer; -import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane; +import org.eclipse.jpt.ui.internal.details.JptUiDetailsMessages; +import org.eclipse.jpt.ui.internal.widgets.ClassChooserComboPane; import org.eclipse.jpt.ui.internal.widgets.Pane; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; +import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter; +import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel; +import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Composite; /** * * @see EclipseLinkCustomizer * - * @version 2.1 + * @version 2.3 * @since 2.1 */ public class EclipseLinkCustomizerComposite extends Pane<EclipseLinkCustomizer> @@ -42,63 +46,88 @@ public class EclipseLinkCustomizerComposite extends Pane<EclipseLinkCustomizer> @Override protected void initializeLayout(Composite container) { - addCustomizerClassChooser(container); + new CustomizerClassChooserComboPane(this, container); } - - private ClassChooserPane<EclipseLinkCustomizer> addCustomizerClassChooser(Composite container) { - return new ClassChooserPane<EclipseLinkCustomizer>(this, container) { + private class CustomizerClassChooserComboPane + extends ClassChooserComboPane<EclipseLinkCustomizer> + { + public CustomizerClassChooserComboPane(Pane<EclipseLinkCustomizer> parentPane, Composite parent) { + super(parentPane, parent); + } - @Override - protected WritablePropertyValueModel<String> buildTextHolder() { - return new PropertyAspectAdapter<EclipseLinkCustomizer, String>(getSubjectHolder(), EclipseLinkCustomizer.SPECIFIED_CUSTOMIZER_CLASS_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getSpecifiedCustomizerClass(); - } + @Override + protected String getClassName() { + return getSubject().getSpecifiedCustomizerClass(); + } - @Override - protected void setValue_(String value) { + @Override + protected void setClassName(String className) { + getSubject().setSpecifiedCustomizerClass(className); + } + + @Override + protected String getLabelText() { + return EclipseLinkUiDetailsMessages.EclipseLinkCustomizerComposite_classLabel; + } + + @Override + protected JpaProject getJpaProject() { + return getSubject().getJpaProject(); + } + + @Override + protected String getSuperInterfaceName() { + return EclipseLinkCustomizer.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME; + } + + @Override + protected char getEnclosingTypeSeparator() { + return getSubject().getCustomizerClassEnclosingTypeSeparator(); + } - if (value.length() == 0) { - value = null; - } + @Override + protected WritablePropertyValueModel<String> buildTextHolder() { + return new PropertyAspectAdapter<EclipseLinkCustomizer, String>( + getSubjectHolder(), + EclipseLinkCustomizer.SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, + EclipseLinkCustomizer.DEFAULT_CUSTOMIZER_CLASS_PROPERTY) { - this.subject.setSpecifiedCustomizerClass(value); + @Override + protected String buildValue_() { + String value = this.subject.getSpecifiedCustomizerClass(); + return (value == null) ? defaultText(this.subject) : value; + } + + @Override + protected void setValue_(String value) { + if (value == null + || value.length() == 0 + || value.equals(defaultText(this.subject))) { + value = null; } - }; - } - - @Override - protected String getClassName() { - return getSubject().getSpecifiedCustomizerClass(); - } - - @Override - protected String getLabelText() { - return EclipseLinkUiDetailsMessages.EclipseLinkCustomizerComposite_classLabel; - } - - @Override - protected JpaProject getJpaProject() { - return getSubject().getJpaProject(); - } - - @Override - protected void setClassName(String className) { - getSubject().setSpecifiedCustomizerClass(className); - } - - @Override - protected String getSuperInterfaceName() { - return EclipseLinkCustomizer.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME; - } - - @Override - protected char getEnclosingTypeSeparator() { - return getSubject().getCustomizerClassEnclosingTypeSeparator(); - } - }; - } + this.subject.setSpecifiedCustomizerClass(value); + } + }; + } + protected String defaultText(EclipseLinkCustomizer customizer) { + String defaultClassName = customizer.getDefaultCustomizerClass(); + return (defaultClassName == null) ? + JptUiDetailsMessages.NoneSelected + : NLS.bind(JptUiDetailsMessages.DefaultWithOneParam, defaultClassName); + } + + @Override + protected ListValueModel<String> buildClassListHolder() { + return new PropertyListValueModelAdapter<String>( + new PropertyAspectAdapter<EclipseLinkCustomizer, String>( + getSubjectHolder(), EclipseLinkCustomizer.DEFAULT_CUSTOMIZER_CLASS_PROPERTY) { + @Override + protected String buildValue_() { + return defaultText(this.subject); + } + }); + } + } } |