From: n.hoffmann Date: Thu, 26 May 2011 11:13:36 +0000 (+0000) Subject: Generalizing DetailElement for IdentifiableEntities X-Git-Tag: rcp.ss-first-working-version~56 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/e2eae0392d12d55df245477d137ce0c5e508acac Generalizing DetailElement for IdentifiableEntities --- diff --git a/.gitattributes b/.gitattributes index a4b106ed5..b3fca1895 100644 --- a/.gitattributes +++ b/.gitattributes @@ -948,6 +948,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/Abs eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java -text +eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/EmptyElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ITaxonBaseDetailSection.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailElement.java -text diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/TextWithLabelElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/TextWithLabelElement.java index d50920b87..b68dfc53e 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/TextWithLabelElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/TextWithLabelElement.java @@ -72,7 +72,7 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements int scrollStyle = textHeight == null ? SWT.NULL : (SWT.V_SCROLL | SWT.MULTI); text = formFactory.createText(getLayoutComposite(), "", SWT.BORDER - | SWT.WRAP | scrollStyle); + | SWT.WRAP | scrollStyle | style); addControl(text); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java new file mode 100644 index 000000000..776d68350 --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java @@ -0,0 +1,38 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.ui.section; + +import java.util.Arrays; + +import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; +import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement; + +/** + * @author n.hoffmann + * + */ +public abstract class AbstractIdentifiableEntityDetailElement extends + AbstractCdmDetailElement { + + protected ToggleableTextElement toggleable_cache; + + public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, + ICdmFormElement formElement) { + super(formFactory, formElement); + } + + protected void handleToggleableCacheField(){ + boolean pushedState = toggleable_cache.getState(); + + getEntity().setTitleCache(toggleable_cache.getText(), + pushedState); + setIrrelevant(pushedState, + Arrays.asList(new Object[] { toggleable_cache })); + if(! pushedState){ + toggleable_cache.setText(getEntity().generateTitle()); + } + } +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java index bf0a49388..e1a4360c1 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java @@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent; import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; /** *

@@ -32,9 +32,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; * @created Mar 8, 2010 * @version 1.0 */ -public class PersonDetailElement extends AbstractCdmDetailElement { +public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement { - private ToggleableTextElement toggleable_cache; private TextWithLabelElement text_nomenclaturalTitle; private TextWithLabelElement text_firstname; private TextWithLabelElement text_lastname; @@ -71,7 +70,7 @@ public class PersonDetailElement extends AbstractCdmDetailElement { entity.isProtectedTitleCache(), SWT.NULL); text_nomenclaturalTitle = formFactory.createTextWithLabelElement( - formElement, "Nom. Title", entity.getNomenclaturalTitle(), + formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), SWT.NULL); text_firstname = formFactory.createTextWithLabelElement(formElement, @@ -101,11 +100,8 @@ public class PersonDetailElement extends AbstractCdmDetailElement { /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { - if (eventSource == toggleable_cache) { - getEntity().setTitleCache(toggleable_cache.getText(), - toggleable_cache.getState()); - setIrrelevant(toggleable_cache.getState(), - excludeFromIrrelevantToggleableObjects); + if (eventSource == toggleable_cache) { + handleToggleableCacheField(); } else if (eventSource == text_nomenclaturalTitle) { getEntity() .setNomenclaturalTitle(text_nomenclaturalTitle.getText()); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java index 3edb63963..976339182 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java @@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EntityDetailType; import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent; import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; /** *

@@ -31,9 +31,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; * @created Apr 26, 2010 * @version 1.0 */ -public class TeamDetailElement extends AbstractCdmDetailElement { - - private ToggleableTextElement toggleable_cache; +public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement { private ToggleableTextElement toggleable_nomenclaturalTitleCache; @@ -67,7 +65,7 @@ public class TeamDetailElement extends AbstractCdmDetailElement { "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style); toggleable_nomenclaturalTitleCache = formFactory - .createToggleableTextField(formElement, "Nom. Title", + .createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style); section_teamMembers = (TeamMemberSection) formFactory @@ -98,18 +96,11 @@ public class TeamDetailElement extends AbstractCdmDetailElement { @Override public void handleEvent(Object eventSource) { if (eventSource == toggleable_cache) { - getEntity().setTitleCache(toggleable_cache.getText(), - toggleable_cache.getState()); - // setEnabled(! toggleable_cache.getState(), Arrays.asList(new - // Object[]{toggleable_cache})); - setIrrelevant(toggleable_cache.getState(), - Arrays.asList(new Object[] { toggleable_cache })); + handleToggleableCacheField(); } else if (eventSource == toggleable_nomenclaturalTitleCache) { getEntity().setNomenclaturalTitle( toggleable_nomenclaturalTitleCache.getText(), toggleable_nomenclaturalTitleCache.getState()); - // setEnabled(! toggleable_nomenclaturalTitleCache.getState(), - // Arrays.asList(new Object[]{toggleable_nomenclaturalTitleCache})); setIrrelevant( toggleable_nomenclaturalTitleCache.getState(), Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache })); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java index d66086f08..1e22c013d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java @@ -34,7 +34,7 @@ import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.forms.TimePeriodElement; import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement; import eu.etaxonomy.taxeditor.ui.forms.UriWithLabelElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; import eu.etaxonomy.taxeditor.ui.selection.AgentSelectionElement; import eu.etaxonomy.taxeditor.ui.selection.InstitutionSelectionElement; import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement; @@ -49,11 +49,9 @@ import eu.etaxonomy.taxeditor.ui.term.ReferenceTypeComboElement; * @created Mar 2, 2010 * @version 1.0 */ -public class ReferenceDetailElement extends AbstractCdmDetailElement +public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement implements IErrorIntolerableElement, IExceptionHandler { - - // property holder - private ToggleableTextElement toggleable_cache; + private TextWithLabelElement text_edition; private TextWithLabelElement text_editor; private TextWithLabelElement text_isbn; @@ -404,12 +402,7 @@ public class ReferenceDetailElement extends AbstractCdmDetailElement // textfields else if (eventSource == toggleable_cache) { - getEntity().setTitleCache(toggleable_cache.getText(), - toggleable_cache.getState()); - // setEnabled(! text_cache.getState(), Arrays.asList(new - // Object[]{text_cache})); - setIrrelevant(toggleable_cache.getState(), - Arrays.asList(new Object[] { toggleable_cache })); + handleToggleableCacheField(); } else if (eventSource == text_edition) { getEntity().setEdition(text_edition.getText()); } else if (eventSource == text_editor) {