- create an empty media for MediaSpecimen (fixes #4543)
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 10 Dec 2014 09:28:37 +0000 (09:28 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 10 Dec 2014 09:28:37 +0000 (09:28 +0000)
 - fixed possible NPE

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java

index e9967a006000d04c56ac0cb3ee379710d48b2d7d..6849014316f3ee9d65d1590c5769ca6c7eacdb61 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.newWizard;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
@@ -83,7 +84,10 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
         } else {
             if (SpecimenOrObservationType.Media.equals(specOrObsType)
                     || ((specOrObsType.getKindOf() != null) && specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
-                   return MediaSpecimen.NewInstance(specOrObsType);
+                   MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specOrObsType);
+                   //a MediaSpecimen with no media attached does not make sense. Hence, we add one
+                mediaSpecimen.setMediaSpecimen(Media.NewInstance());
+                return mediaSpecimen;
             } else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
                 return FieldUnit.NewInstance();
             } else {
index a1daa3a347e8a5d4d1bd01d023f5055c9537b0cc..829bb9fa9162d8d23f970f5097fde2a4d499fafc 100644 (file)
@@ -152,10 +152,15 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
     }
 
     public void toogleAdvancedMediaView() {
-        mediaDetailElement.toggleAdvancedMediaView();
+        if(mediaDetailElement!=null){
+            mediaDetailElement.toggleAdvancedMediaView();
+        }
     }
 
     public boolean isAdvancedMediaView() {
+        if(mediaDetailElement==null){
+            return false;
+        }
         return mediaDetailElement.isAdvancedMediaView();
     }
 
index 49dbea3a7c2e6dc7cf0037ed1023bfbad949a4ce..9b64fec66f2a7c9a18926719bce241d61c3b35c4 100644 (file)
@@ -87,15 +87,8 @@ public class MediaSpecimenGeneralDetailSection  extends AbstractCdmDetailSection
     protected Control createToolbar() {
         ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
 
-        final String label;
-
-        if(mediaSpecimenGeneralDetailElement.isAdvancedMediaView()){
-            label = "Use simple media view";
-        }
-        else{
-            label = "Use advanced media view";
-        }
-        Action addAction = new Action("Use advanced media view", IAction.AS_PUSH_BUTTON) {
+        String actionLabel = "Use advanced media view";
+        Action addAction = new Action(actionLabel, IAction.AS_PUSH_BUTTON) {
             /* (non-Javadoc)
              * @see org.eclipse.jface.action.Action#run()
              */
@@ -104,7 +97,7 @@ public class MediaSpecimenGeneralDetailSection  extends AbstractCdmDetailSection
                 mediaSpecimenGeneralDetailElement.toogleAdvancedMediaView();
             }
         };
-        addAction.setToolTipText(label);
+        addAction.setToolTipText(actionLabel);
 
         toolBarManager.add(addAction);