fix update of media details header and add published in details
authorKatja Luther <k.luther@bgbm.org>
Wed, 13 Jan 2021 11:06:04 +0000 (12:06 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 13 Jan 2021 11:06:04 +0000 (12:06 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/MediaDetailsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java

index 8e4faf4304ce4ed6831ccb79c180cef728366ec9..765b7d77256712a4800d9ad60518071d1706e4a9 100644 (file)
@@ -53,6 +53,11 @@ public class MediaDetailsSection extends AbstractCdmDetailSection<Media> {
                layout();
        }
 
+
+       public void setMediaSectionTitle() {
+           this.setSectionTitle();
+    }
+
        /** {@inheritDoc} */
        @Override
        public String getHeading() {
index 2c967a9ff1fed65ac89a829393606b9ec1858399..ba32bc63e7fbd60998cc351c8273c66c411836e4 100644 (file)
@@ -44,6 +44,7 @@ import eu.etaxonomy.taxeditor.ui.element.ImageElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection;
 
 /**
  * @author pplitzner
@@ -167,6 +168,14 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                     job.schedule();
                 }
             }
+            if (this.getParentElement() != null && this.getParentElement() instanceof MediaMetaElement){
+                MediaMetaElement metaElement = (MediaMetaElement)this.getParentElement();
+                if (metaElement.getParentElement() != null && metaElement.getParentElement() instanceof MediaDetailsSection){
+                    MediaDetailsSection sec = (MediaDetailsSection)metaElement.getParentElement();
+                    sec.setMediaSectionTitle();
+                }
+            }
+
         }
     }
 
index fd3309c20385a031974672183873f2266eb579c8..8a2307d1c224dda6392d0583be7d4b160f356942 100644 (file)
@@ -52,6 +52,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement text_accessionNumber;
     private EntitySelectionElement<Reference> selection_publishedIn;
+    private TextWithLabelElement text_published_in_detail;
     private CheckboxElement checkIsPublish;
 
     private MediaDetailElement mediaDetailElement;
@@ -91,14 +92,17 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
 
             //the first PrimaryMediaSource is used for storing the reference
             Reference publishedIn = null;
+            String publishedInDetail = null;
             for(IdentifiableSource source:media.getSources()){
                 if(source.getType()==OriginalSourceType.PrimaryMediaSource){
                     publishedIn = source.getCitation();
+                    publishedInDetail = source.getCitationMicroReference();
                     break;
                 }
             }
             selection_publishedIn = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
                     formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
+            text_published_in_detail = formFactory.createTextWithLabelElement(formElement, "Detail", publishedInDetail, style);
             checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
             mediaDetailElement = formFactory.createMediaDetailElement(formElement);
@@ -150,6 +154,21 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
                 primaryMediaSource.setCitation(selection_publishedIn.getSelection());
             }
         }
+        else if(eventSource==text_published_in_detail){
+            IdentifiableSource primaryMediaSource = null;
+            for(IdentifiableSource source:media.getSources()){
+                if(source.getType()==OriginalSourceType.PrimaryMediaSource){
+                    primaryMediaSource = source;
+                }
+            }
+            if(primaryMediaSource==null){
+                primaryMediaSource = IdentifiableSource.NewInstance(OriginalSourceType.PrimaryMediaSource);
+                media.addSource(primaryMediaSource);
+            }
+            else{
+                primaryMediaSource.setCitationMicroReference(text_published_in_detail.getText());
+            }
+        }
         else if(eventSource==checkIsPublish){
             ((MediaSpecimen)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
         }