From 5d53f0766807cbea057f32a7908e3ea820530112 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Tue, 21 Jun 2016 08:37:32 +0200 Subject: [PATCH] Refactor identifier section classes #5898 - add abstract identifier section to support IdentifiableEntities and DerivedUnitFacades --- .../taxeditor/ui/element/CdmFormFactory.java | 17 ++++-- .../identifier/AbstractIdentifierSection.java | 34 ++++++++++++ .../DerivedUnitFacadeIdentifierSection.java | 52 +++++++++++++++++++ .../identifier/IdentifierElement.java} | 6 +-- .../identifier/IdentifierSection.java} | 36 +++---------- .../taxeditor/view/detail/DetailsViewer.java | 4 +- .../SupplementalDataViewer.java | 6 +-- 7 files changed, 112 insertions(+), 43 deletions(-) create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java rename eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/{identifier/IdentifierDetailElement.java => supplemental/identifier/IdentifierElement.java} (90%) rename eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/{identifier/IdentifierDetailSection.java => supplemental/identifier/IdentifierSection.java} (52%) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java index 8052c82f4..205eca3f2 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java @@ -173,8 +173,6 @@ import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailElement; import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection; import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement; import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection; -import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailElement; -import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailElement; @@ -299,6 +297,9 @@ import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement; import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierElement; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection; import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement; import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection; import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailElement; @@ -2343,11 +2344,17 @@ public class CdmFormFactory extends FormToolkit { return section; } - public IdentifierDetailSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ - IdentifierDetailSection section = new IdentifierDetailSection(this, conversation, parentElement, style); + public IdentifierSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ + IdentifierSection section = new IdentifierSection(this, conversation, parentElement, style); addAndAdaptSection(parentElement, section); return section; } + + public DerivedUnitFacadeIdentifierSection createDerivedUnitFacadeIdentifierSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ + DerivedUnitFacadeIdentifierSection section = new DerivedUnitFacadeIdentifierSection(this, conversation, parentElement, style); + addAndAdaptSection(parentElement, section); + return section; + } public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style); @@ -2565,7 +2572,7 @@ public class CdmFormFactory extends FormToolkit { element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier) entity, removeListener, backgroundColor, style); } else{ - element = new IdentifierDetailElement(this, parentElement, (Identifier) entity, removeListener, style); + element = new IdentifierElement(this, parentElement, (Identifier) entity, removeListener, style); } } else if (entity instanceof TermVocabulary) { TermVocabulary termVocabulary = (TermVocabulary)entity; diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java new file mode 100644 index 000000000..6ac00ae80 --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java @@ -0,0 +1,34 @@ +package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.model.common.Identifier; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; + +public abstract class AbstractIdentifierSection extends AbstractEntityCollectionSection { + + public AbstractIdentifierSection(CdmFormFactory formFactory, + ConversationHolder conversation, ICdmFormElement parentElement, int style) { + super(formFactory, conversation, parentElement, "Identifiers", style); + } + + /** {@inheritDoc} */ + @Override + public Identifier createNewElement() { + return Identifier.NewInstance(null, null); + } + + /** {@inheritDoc} */ + @Override + public String getEmptyString() { + return "No identifiers yet."; + } + + /** {@inheritDoc} */ + @Override + protected String getTooltipString() { + return "Add an identifier"; + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java new file mode 100644 index 000000000..9d587486e --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java @@ -0,0 +1,52 @@ +// $Id$ +/** +* Copyright (C) 2007 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ + +package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier; + +import java.util.Collection; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.cdm.model.common.Identifier; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; + +/** + * + * @author pplitzner + * + */ +public class DerivedUnitFacadeIdentifierSection extends AbstractIdentifierSection { + + + public DerivedUnitFacadeIdentifierSection(CdmFormFactory formFactory, + ConversationHolder conversation, ICdmFormElement parentElement, + int style) { + super(formFactory, conversation, parentElement, style); + } + + @Override + public Collection getCollection(DerivedUnitFacade entity) { + return entity.getIdentifiers(); + } + + + @Override + public void addElement(Identifier element) { + getEntity().addIdentifier(element); + } + + + @Override + public void removeElement(Identifier element) { + getEntity().removeIdentifier(element); + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierElement.java similarity index 90% rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierElement.java index e1796bcfd..5d75c58d6 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierElement.java @@ -8,7 +8,7 @@ * See LICENSE.TXT at the top of this package for the full license terms. */ -package eu.etaxonomy.taxeditor.ui.section.identifier; +package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier; import org.eclipse.swt.events.SelectionListener; @@ -27,13 +27,13 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; * @author pplitzner * */ -public class IdentifierDetailElement extends AbstractEntityCollectionElement { +public class IdentifierElement extends AbstractEntityCollectionElement { private TextWithLabelElement textIdentifier; private TermComboElement comboIdentifierType; - public IdentifierDetailElement(CdmFormFactory formFactory, + public IdentifierElement(CdmFormFactory formFactory, AbstractFormSection section, Identifier entity, SelectionListener removeListener, int style) { super(formFactory, section, entity, removeListener, null, style); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java similarity index 52% rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java index 4c6cdd868..5750a1f45 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java @@ -8,7 +8,7 @@ * See LICENSE.TXT at the top of this package for the full license terms. */ -package eu.etaxonomy.taxeditor.ui.section.identifier; +package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier; import java.util.Collection; @@ -17,55 +17,33 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity; import eu.etaxonomy.cdm.model.common.Identifier; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** * * @author pplitzner * */ -public class IdentifierDetailSection extends AbstractEntityCollectionSection { +public class IdentifierSection extends AbstractIdentifierSection { - public IdentifierDetailSection(CdmFormFactory formFactory, - ConversationHolder conversation, ICdmFormElement parentElement, int style) { - super(formFactory, conversation, parentElement, "Identifiers", style); + public IdentifierSection(CdmFormFactory formFactory, + ConversationHolder conversation, ICdmFormElement parentElement, + int style) { + super(formFactory, conversation, parentElement, style); } - /** {@inheritDoc} */ @Override public Collection getCollection(IdentifiableEntity entity) { return entity.getIdentifiers(); } - /** {@inheritDoc} */ - @Override - public Identifier createNewElement() { - return Identifier.NewInstance(null, null); - } - - /** {@inheritDoc} */ @Override public void addElement(Identifier element) { getEntity().addIdentifier(element); } - /** {@inheritDoc} */ @Override public void removeElement(Identifier element) { - getEntity().removeIdentifier(element); - getConversationHolder().commit(); - } - - /** {@inheritDoc} */ - @Override - public String getEmptyString() { - return "No identifiers yet."; - } - - /** {@inheritDoc} */ - @Override - protected String getTooltipString() { - return "Add an identifier"; + getEntity().removeIdentifier(element); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java index e26adaafc..0b4be864f 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java @@ -74,7 +74,6 @@ import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSectio import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection; import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection; import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection; -import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection; import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection; @@ -105,6 +104,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDe import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection; import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection; import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection; import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailSection; import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailSection; @@ -591,7 +591,7 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(taxonAssociationDetailSection); } formFactory.createHorizontalSeparator(parent, SWT.BORDER); - IdentifierDetailSection identifierDetailSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); addPart(identifierDetailSection); } if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java index b3190cd09..2bf4227dd 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java @@ -27,7 +27,6 @@ import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.RootElement; -import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection; import eu.etaxonomy.taxeditor.ui.section.media.MediaSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection; @@ -38,6 +37,7 @@ import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection; import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection; import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer; import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart; import eu.etaxonomy.taxeditor.view.detail.DetailsViewer; @@ -164,10 +164,8 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe formFactory.createHorizontalSeparator(parent, SWT.BORDER); - IdentifierDetailSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - addPart(creditSection); addPart(extensionSection); addPart(rightsSection); -- 2.34.1