- fixed persistent saving of media of a MediaSpecimen (#3339)
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 18 Aug 2014 12:57:37 +0000 (12:57 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 18 Aug 2014 12:57:37 +0000 (12:57 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java

index f834a8d2abab902904b0529c0947cb4bb9648155..f272dfe505ce2f5b231a6240685d844455c84e9d 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.section.occurrence.media;
 
 import java.net.URISyntaxException;
+import java.util.List;
 import java.util.Set;
 
 import org.eclipse.swt.widgets.Label;
@@ -179,18 +180,28 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
     }
 
     private MediaRepresentationPart getMediaRepresentationPart(Media media) {
-        if(mediaRepresentationPart!=null){
-            return mediaRepresentationPart;
-        }
-        else {
-            MediaRepresentationPart part = MediaRepresentationPart.NewInstance(null, null);
-
+        if(mediaRepresentationPart==null){
             Set<MediaRepresentation> representations = media.getRepresentations();
-            MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
-            mediaRepresentation.addRepresentationPart(part);
-            media.addRepresentation(mediaRepresentation);
-            return part;
+            if(representations!=null && representations.size()>0){
+                MediaRepresentation mediaRepresentation = representations.iterator().next();
+                List<MediaRepresentationPart> parts = mediaRepresentation.getParts();
+                if(parts!=null && parts.size()>0){
+                    mediaRepresentationPart = parts.iterator().next();
+                }
+                else{
+                    mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+                    mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
+                }
+            }
+            else{
+                mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+
+                MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
+                mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
+                media.addRepresentation(mediaRepresentation);
+            }
         }
+        return mediaRepresentationPart;
     }
 
 }