ref #8777 try to filter CDM Source in Original Sources if no data exist (it is read...
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 29 Jul 2022 13:39:18 +0000 (15:39 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 29 Jul 2022 13:39:18 +0000 (15:39 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java

index 23558113661b3234964c2a1bc0b9a1d1b4b7b4ff..1fd7c9d296495316d6a404574a56719b724015c8 100644 (file)
@@ -80,18 +80,23 @@ public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase
                    selection_reference.setEntity(entity.getCitation());
                text_referenceDetail.setText(entity.getCitationMicroReference());
                text_originalInfo.setText(entity.getOriginalInfo());
+
                ICdmTarget cdmSource = entity.getCdmSource();
-               String source = "";
-               if(cdmSource instanceof IdentifiableEntity) {
-                   source = ((IdentifiableEntity) cdmSource).getTitleCache();
-               } else if(cdmSource instanceof CdmBase) {
-                   source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
-                   source += ((CdmBase) cdmSource).getUuid().toString();
-               } else if(cdmSource!=null){
-                   source = cdmSource.toString();
+               if (cdmSource != null){
+               String source = "";
+               if(cdmSource instanceof IdentifiableEntity) {
+                   source = ((IdentifiableEntity) cdmSource).getTitleCache();
+               } else if(cdmSource instanceof CdmBase) {
+                   source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
+                   source += ((CdmBase) cdmSource).getUuid().toString();
+               } else {
+                   source = cdmSource.toString();
+               }
+               text_cdmsource.setText(source);
+               }
+               if (externalLinks != null){
+                   externalLinks.setEntity(entity);
                }
-               text_cdmsource.setText(source);
-               externalLinks.setEntity(entity);
                }
        }
 
@@ -131,25 +136,33 @@ public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase
                }
                text_originalInfo = formFactory.createTextWithLabelElement(
                        formElement, "Original Information", null, SWT.NULL);
-               text_cdmsource = formFactory.createTextWithLabelElement(
-                       formElement, "CDM Source", null, SWT.NULL);
-               ((Text) text_cdmsource.getMainControl()).setEditable(false);
+
+               //we only show the cdm source if it exist.
+               //It can't be set during editing as it is read only.
+               if (this.entity != null && this.entity.getCdmSource() != null) {
+                   text_cdmsource = formFactory.createTextWithLabelElement(
+                    formElement, "CDM Source", null, SWT.NULL);
+                   ((Text) text_cdmsource.getMainControl()).setEditable(false);
+        }
 
                if (entity != null){
                        selection_reference.setEntity(entity.getCitation());
                text_referenceDetail.setText(entity.getCitationMicroReference());
                text_originalInfo.setText(entity.getOriginalInfo());
+
                ICdmTarget cdmSource = entity.getCdmSource();
-               String source = "";
-               if(cdmSource instanceof IdentifiableEntity) {
-                   source = ((IdentifiableEntity) cdmSource).getTitleCache();
-               } else if(cdmSource instanceof CdmBase) {
-                   source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
-                   source += ((CdmBase) cdmSource).getUuid().toString();
-               } else if(cdmSource!=null){
-                   source = cdmSource.toString();
+               if (cdmSource != null){
+                   String source = "";
+                   if(cdmSource instanceof IdentifiableEntity) {
+                       source = ((IdentifiableEntity) cdmSource).getTitleCache();
+                   } else if(cdmSource instanceof CdmBase) {
+                       source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
+                       source += ((CdmBase) cdmSource).getUuid().toString();
+                   } else {
+                       source = cdmSource.toString();
+                   }
+                   text_cdmsource.setText(source);
                }
-               text_cdmsource.setText(source);
                if (externalLinks != null){
                        externalLinks.setEntity(entity);
                }