From 9dfd3706bcc09730a3b64d6b12a264b587c52a2e Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Mon, 20 Feb 2017 18:20:33 +0100 Subject: [PATCH] fix #3603 Avoid creation of dummy DefinedTerm --- .../taxeditor/ui/element/CdmFormFactory.java | 19 +++++++++++++++++++ .../section/description/ModifierElement.java | 2 +- .../section/description/ModifierSection.java | 3 +-- .../ui/section/description/ScopeElement.java | 10 +++++++++- .../ui/section/description/ScopeSection.java | 3 +-- .../section/key/ScopeRestrictionSection.java | 9 ++++----- 6 files changed, 35 insertions(+), 11 deletions(-) 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 ef9204b73..be66a75fa 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 @@ -2718,6 +2718,25 @@ public class CdmFormFactory extends FormToolkit { element = new StatisticalMeasureCollectionElement(this, parentElement, (StatisticalMeasure) entity, removeListener, backgroundColor, style); } + //check for parent section when entity is null + //this happens when AbstractUnboundEntityCollectionSection is used + if(entity==null){ + if(parentElement instanceof ScopeSection || parentElement instanceof ScopeRestrictionSection){ + element = new ScopeElement(this, + parentElement, + (DefinedTerm) entity, + removeListener, + style); + } + else if(parentElement instanceof ModifierSection){ + element = new ModifierElement(this, + parentElement, + (DefinedTerm) entity, + removeListener, + style); + } + } + if (element == null) { MessagingUtils.messageDialog("No element for entity", this, diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java index be5f37828..cc6b3f4aa 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java @@ -74,7 +74,7 @@ public class ModifierElement extends AbstractEntityCollectionElement0){ + if(entity!=null && entity.getId()>0){ combo_modifier.setSelection(entity); combo_modifier.removeEmptyElement(); } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java index b4ad1c9bb..ec09e802c 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java @@ -13,7 +13,6 @@ import java.util.Collection; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.common.DefinedTerm; -import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.description.IModifiable; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; @@ -45,7 +44,7 @@ public class ModifierSection extends AbstractUnboundEntityCollectionSection { @Override public void setEntity(DefinedTerm entity) { this.entity = entity; - if(entity.getId()!=0){ + if(entity!=null && entity.getId()!=0){ combo_scope.setSelection(entity); combo_scope.removeEmptyElement(); } @@ -74,6 +75,13 @@ public class ScopeElement extends AbstractEntityCollectionElement { key.addScopeRestriction(scopeTerm); entity = scopeTerm; } + else if(getParentElement() instanceof ScopeSection){ + TaxonDescription description = ((ScopeSection)getParentElement()).getEntity(); + description.removeScope(entity); + description.addScope(scopeTerm); + entity = scopeTerm; + + } } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java index 566f76a2d..6aae3f43b 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java @@ -13,7 +13,6 @@ import java.util.Collection; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.common.DefinedTerm; -import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; @@ -49,7 +48,7 @@ public class ScopeSection extends AbstractUnboundEntityCollectionSection