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