From: n.hoffmann Date: Mon, 30 May 2011 14:21:55 +0000 (+0000) Subject: Fixes #2422 X-Git-Tag: rcp.ss-first-working-version~50 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/89f8393917bbdf36a8ba08fa21cda65800a261b6 Fixes #2422 --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java index 252402155..dac11ef17 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java @@ -18,6 +18,8 @@ import org.eclipse.swt.widgets.Composite; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; +import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.store.StoreUtil; import eu.etaxonomy.taxeditor.ui.forms.AbstractCdmFormElement; @@ -169,6 +171,8 @@ public abstract class AbstractCdmDetailElement extends return; } + handleTitleCacheRelevantChange(event); + Object eventSource = event.getSource(); if(eventSource instanceof ICdmFormElement){ @@ -183,12 +187,28 @@ public abstract class AbstractCdmDetailElement extends } handleEvent(eventSource); - if(getParentElement() instanceof AbstractCdmDetailSection) - ((AbstractCdmDetailSection)getParentElement()).updateTitle(); + + updateParentSection(); } } } + protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) { + boolean isRelevant = getEntity() instanceof TaxonNameBase || getEntity() instanceof TaxonBase; + isRelevant &= this instanceof AbstractIdentifiableEntityDetailElement; + + if(isRelevant){ + ((AbstractIdentifiableEntityDetailElement) this).updateToggleableCacheField(); + updateParentSection(); + } + } + + private void updateParentSection(){ + if(getParentElement() instanceof AbstractCdmDetailSection){ + ((AbstractCdmDetailSection) getParentElement()).updateTitle(); + } + } + /** *

handleEvent

* diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java index 859c892c2..5e6516ff6 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java @@ -138,7 +138,7 @@ public abstract class AbstractCdmDetailSection extends AbstractFormSecti if(getEntity() != null && (getEntity() instanceof IdentifiableEntity)){ title = ": " + ((IdentifiableEntity) getEntity()).getTitleCache(); } - this.setText(getHeading() + title); + this.setText(String.format("%s%s", getHeading(), title)); setTextClient(createToolbar()); } 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 index 776d68350..4cd5efe01 100644 --- 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 @@ -23,7 +23,13 @@ public abstract class AbstractIdentifiableEntityDetailElement implements + AbstractIdentifiableEntityDetailElement implements IEnableableFormElement { - private ToggleableTextElement toggleable_cache; - private AbstractSelectionElement selection_exBasionymAuthorTeam; private AbstractSelectionElement selection_basionymAuthorTeam; private AbstractSelectionElement selection_exCombinationAuthorTeam; @@ -145,15 +142,22 @@ public class AuthorshipDetailElement extends .getSelection()); } - if (eventSource != toggleable_cache) { - toggleable_cache.setText(getEntity().getAuthorshipCache()); - } +// if (eventSource != toggleable_cache) { +// toggleable_cache.setText(getEntity().getAuthorshipCache()); +// } - // we have to notify the parent if this is embedded in the nonviral name - // section - // maybe we can handle this a little bit more elegant - if (getParentElement() instanceof AbstractCdmDetailSection) +// we have to notify the parent if this is embedded in the nonviral name +// section +// maybe we can handle this a little bit more elegant +// if (getParentElement() instanceof AbstractCdmDetailSection) firePropertyChangeEvent(new CdmPropertyChangeEvent( getParentElement(), null)); } + + @Override + public void updateToggleableCacheField() { + if(! getEntity().isProtectedAuthorshipCache()){ + toggleable_cache.setText(getEntity().getAuthorshipCache()); + } + } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java index b55c3f5a1..2b8e6b33a 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java @@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.ui.section.name; import eu.etaxonomy.cdm.model.name.NonViralName; import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent; import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement; import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; @@ -55,12 +56,13 @@ public class HybridDetailElement extends AbstractCdmDetailElement if(eventSource == checkbox_monomHybrid){ getEntity().setMonomHybrid(checkbox_monomHybrid.getSelection()); } - else if(eventSource == checkbox_monomHybrid){ + else if(eventSource == checkbox_binomHybrid){ getEntity().setBinomHybrid(checkbox_binomHybrid.getSelection()); } - else if(eventSource == checkbox_monomHybrid){ + else if(eventSource == checkbox_trinomHybrid){ getEntity().setTrinomHybrid(checkbox_trinomHybrid.getSelection()); } + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null)); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java index 127445c69..6ae1fa914 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java @@ -20,6 +20,7 @@ import eu.etaxonomy.cdm.model.name.Rank; import eu.etaxonomy.cdm.model.name.ZoologicalName; import eu.etaxonomy.cdm.strategy.parser.ParserProblem; import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.TermComboType; import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent; import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement; import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; @@ -28,10 +29,8 @@ import eu.etaxonomy.taxeditor.ui.forms.ISelectableElement; import eu.etaxonomy.taxeditor.ui.forms.NumberWithLabelElement; import eu.etaxonomy.taxeditor.ui.forms.SelectionArbitrator; import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement; -import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement; -import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.TermComboType; -import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; import eu.etaxonomy.taxeditor.ui.term.AbstractTermComboElement; /** @@ -41,9 +40,8 @@ import eu.etaxonomy.taxeditor.ui.term.AbstractTermComboElement; * @created Feb 26, 2010 * @version 1.0 */ -public class NameDetailElement extends AbstractCdmDetailElement implements ISelectableElement, IEnableableFormElement{ +public class NameDetailElement extends AbstractIdentifiableEntityDetailElement implements ISelectableElement, IEnableableFormElement{ - private ToggleableTextElement toggleable_cache; private AbstractTermComboElement combo_rank; private TextWithLabelElement text_appendedPhrase; private TextWithLabelElement text_uninomial; @@ -184,9 +182,7 @@ public class NameDetailElement extends AbstractCdmDetailElement im getEntity().setAppendedPhrase(text_appendedPhrase.getText()); } else if(eventSource == toggleable_cache){ - getEntity().setNameCache(toggleable_cache.getText(), toggleable_cache.getState()); - //setEnabled(! text_nameCache.getState(), Arrays.asList(new Object[]{text_nameCache, combo_nomenclaturalCode})); - if(! isIrrelevant()) setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache})); + handleToggleableCacheField(); } else if(eventSource == text_infragenericEpithet){ getEntity().setInfraGenericEpithet(text_infragenericEpithet.getText()); @@ -209,10 +205,10 @@ public class NameDetailElement extends AbstractCdmDetailElement im toggleable_cache.setText(getEntity().getNameCache()); } - // we have to notify the parent if this is embedded in the nonviral name section - // maybe we can handle this a little bit more elegant - if(getParentElement() instanceof AbstractCdmDetailSection) - firePropertyChangeEvent(new CdmPropertyChangeEvent(getParentElement(), null)); +// // we have to notify the parent if this is embedded in the nonviral name section +// // maybe we can handle this a little bit more elegant +// if(getParentElement() instanceof AbstractCdmDetailSection) +// firePropertyChangeEvent(new CdmPropertyChangeEvent(getParentElement(), null)); } /* @@ -227,4 +223,11 @@ public class NameDetailElement extends AbstractCdmDetailElement im public SelectionArbitrator getSelectionArbitrator() { return selectionArbitrator; } + + @Override + public void updateToggleableCacheField() { + if(! getEntity().isProtectedNameCache()){ + toggleable_cache.setText(getEntity().getNameCache()); + } + } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java index 17b19a994..e72ba626d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java @@ -21,9 +21,8 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.DetailType; import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EnumComboType; 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.AbstractCdmDetailSection; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; import eu.etaxonomy.taxeditor.ui.term.NomenclaturalCodeComboElement; /** @@ -36,11 +35,10 @@ import eu.etaxonomy.taxeditor.ui.term.NomenclaturalCodeComboElement; * @version 1.0 */ public class NonViralNameDetailElement extends - AbstractCdmDetailElement { + AbstractIdentifiableEntityDetailElement { private NameDetailSection section_name; private AuthorshipDetailSection section_author; - private ToggleableTextElement toggleable_cache; private NomenclaturalCodeComboElement combo_nomenclaturalCode; /** diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java index 392e6dc67..b0d5b881d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java @@ -23,10 +23,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent; import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement; 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.AbstractCdmDetailSection; -import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement; /** @@ -38,7 +35,7 @@ import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement; * @created Feb 26, 2010 * @version 1.0 */ -public class TaxonBaseDetailElement extends AbstractCdmDetailElement { +public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElement { private CheckboxElement checkbox_doubtful; @@ -48,8 +45,6 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement private TextWithLabelElement text_appendedPhrase; - private ToggleableTextElement toggleable_cache; - private CheckboxElement checkbox_excluded; private CheckboxElement checkbox_unplaced; @@ -110,37 +105,19 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[] { toggleable_cache })); } - - /** {@inheritDoc} */ + @Override - public void propertyChange(PropertyChangeEvent event) { - Object eventSource = event.getSource(); - if (eventSource instanceof ICdmFormElement) { - ICdmFormElement element = (ICdmFormElement) eventSource; - ICdmFormElement parentElement = element.getParentElement(); - if (parentElement instanceof NonViralNameDetailElement) { - String title = getEntity().generateTitle(); - getEntity().setTitleCache(title); - toggleable_cache.setText(title); - if (getParentElement() instanceof AbstractCdmDetailSection) - ((AbstractCdmDetailSection) getParentElement()) - .updateTitle(); - } - } - - super.propertyChange(event); + protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) { + String title = getEntity().generateTitle(); + getEntity().setTitleCache(title); + super.handleTitleCacheRelevantChange(event); } /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { if (eventSource.equals(toggleable_cache)) { - getEntity().setTitleCache(toggleable_cache.getText(), - toggleable_cache.getState()); - // setEnabled(! toggleable_titleCache.getState(), Arrays.asList(new - // Object[]{toggleable_titleCache})); - setIrrelevant(toggleable_cache.getState(), - Arrays.asList(new Object[] { toggleable_cache })); + handleToggleableCacheField(); } else if (eventSource.equals(checkbox_doubtful)) { getEntity().setDoubtful(checkbox_doubtful.getSelection()); } else if (eventSource.equals(checkbox_useNameCache)) { @@ -155,9 +132,6 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement ((Taxon) getEntity()).setUnplaced(checkbox_unplaced.getSelection()); } - if (eventSource != toggleable_cache) { - toggleable_cache.setText(getEntity().getTitleCache()); - } firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null)); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java index 6329af4b4..124d4a157 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java @@ -16,8 +16,8 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.DetailType; +import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection; @@ -68,6 +68,14 @@ public class TaxonBaseDetailSection extends AbstractCdmDetailSection return DetailType.TAXONBASE; } + @Override + protected void setSectionTitle() { + if(getEntity().generateTitle().equals(getEntity().getTitleCache())){ + System.out.println("test"); + } + super.setSectionTitle(); + } + /* (non-Javadoc) * @see eu.etaxonomy.taxeditor.section.ITaxonDetailSection#getTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase) */