fix #9857: collector field should show collector title
authorKatja Luther <k.luther@bgbm.org>
Wed, 10 Nov 2021 08:40:40 +0000 (09:40 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 10 Nov 2021 08:40:40 +0000 (09:40 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java [new file with mode: 0644]

index 52a3826c734565812b32991498dc708a965f1b01..f7a1c599a990a7c6ac750921866757553de417bd 100644 (file)
@@ -55,6 +55,7 @@ import eu.etaxonomy.taxeditor.ui.section.description.detail.CommonNameDetailElem
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;\r
 import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement;\r
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;\r
@@ -117,7 +118,7 @@ public class SelectionDialogFactory {
                if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){\r
             return (T) NomenclaturalAuthorSelectionDialog.select(shell,\r
                     (TeamOrPersonBase) currentSelection, false);\r
-        }else if(clazz.equals(AgentBase.class) && parentElement instanceof FieldUnitFacadeGeneralDetailElement){\r
+        }else if(clazz.equals(AgentBase.class) && (parentElement instanceof FieldUnitFacadeGeneralDetailElement || parentElement instanceof DerivedUnitGeneralDetailElement)){\r
                    return (T) CollectorSelectionDialog.select(shell,\r
                            (TeamOrPersonBase) currentSelection, false);\r
                }else if(clazz.equals(TeamOrPersonBase.class)){\r
index 8be23b4aaab513122b608089ed578e19ab6ed698..d61865a6b6ef4209d6a529f3dfa03e5b4e4bac00 100644 (file)
@@ -58,9 +58,11 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.common.DOI;
 import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.ORCID;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Credit;
@@ -141,6 +143,7 @@ import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
 import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectorSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
 import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
@@ -403,6 +406,7 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureDtoCollect
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermMediaSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.CommonNameReferenceSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
@@ -3272,6 +3276,14 @@ public class CdmFormFactory extends FormToolkit {
         parentElement.addElement(element);
         return element;
     }
+    public CollectorSelectionElement createCollectorSelectionElement(ICdmFormElement parentElement, String labelString, AgentBase selection, int mode,
+          int style) {
+       CollectorSelectionElement element = new CollectorSelectionElement(this, parentElement, 
+              labelString, selection, mode, style);
+      adapt(element);
+      parentElement.addElement(element);
+      return element;
+  }
 
     public CommonNameReferenceSelectionElement createCommonNameReferenceSelectionElement(ICdmFormElement parentElement, String labelString, Reference selection, int mode,
           int style) {
index 8a0d23200ccd8bd38007015923e0299a161d9b43..387a37eee97b7bbafb2b8a9e9d7d593c8b91febb 100644 (file)
@@ -99,7 +99,7 @@ public class DerivedUnitGeneralDetailElement extends
                    element_date = formFactory.createTimePeriodElement(formElement, "Date",
                            entity.getGatheringPeriod(), style);
                    selection_collector = formFactory
-                           .createSelectionElement(AgentBase.class,//getConversationHolder(),
+                           .createCollectorSelectionElement(
                                    formElement, "Collector",
                                    entity.getCollector(), EntitySelectionElement.ALL,
                                    style);
index 10a5e1e598b53d60b1b0a8f2aafa751e486fa6b5..c58b0e262091d12b75e09d2796c475d740185750 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -45,7 +46,7 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
     private PointElement element_point;
     private NumberWithLabelElement number_elevation;
     private TimePeriodElement element_date;
-    private EntitySelectionElement<AgentBase> selection_collector;
+    private CollectorSelectionElement selection_collector;
     private TextWithLabelElement text_collectingNumber;
     private GatheringEventUnitElement element_elevation;
     private CheckboxElement checkIsPublish;
@@ -79,8 +80,7 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
                                formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION,  style);
 
         element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
-        selection_collector = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
-                formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
+        selection_collector = formFactory.createCollectorSelectionElement(formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
         text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
                 entity.getFieldNumber(), style);
         checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.innerFieldUnit().isPublish(), style);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java
new file mode 100644 (file)
index 0000000..7c0edde
--- /dev/null
@@ -0,0 +1,39 @@
+package eu.etaxonomy.taxeditor.ui.selection;
+
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+public class CollectorSelectionElement extends EntitySelectionElement<AgentBase> {
+       /**
+     * @param formFactory
+     * @param conversation
+     * @param parentElement
+     * @param clazz
+     * @param labelString
+     * @param entity
+     * @param mode
+     * @param style
+     */
+    public CollectorSelectionElement(CdmFormFactory formFactory,// ConversationHolder conversation,
+            ICdmFormElement parentElement, String labelString, AgentBase entity, int mode, int style) {
+       super(formFactory, //conversation,
+        parentElement, AgentBase.class,
+        labelString, entity, mode, style);
+    }
+
+    @Override
+    protected String getTitle() {
+               if (entity != null){
+                       if (entity instanceof TeamOrPersonBase){
+                               return ((TeamOrPersonBase)entity).getCollectorTitleCache();               
+                       }else{
+                               return entity.getTitleCache();
+                       }
+               }
+               return "";
+       }
+}