Fix null selection for existing media
authorPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 2 Oct 2015 14:25:38 +0000 (16:25 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 5 Oct 2015 07:02:28 +0000 (09:02 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java

index b3c0bd85cf6b933bbc9e33c791ddc6e0f016fe88..8007d5079c552fb0ca1646ae0162e7bd507b29bc 100644 (file)
@@ -127,31 +127,33 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                 public void widgetSelected(SelectionEvent e) {
                     //select media
                     Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
-                    //create MediaSpecimen
-                    MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specimenType);
-                    mediaSpecimen.setMediaSpecimen(media);
+                    if(media!=null){
+                        //create MediaSpecimen
+                        MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specimenType);
+                        mediaSpecimen.setMediaSpecimen(media);
 
-                    //attach to parent
-                    if(selectedNode.getValue() instanceof SpecimenOrObservationBase){
-                        SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedNode.getValue();
+                        //attach to parent
+                        if(selectedNode.getValue() instanceof SpecimenOrObservationBase){
+                            SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedNode.getValue();
 
-                        specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
-                        mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
-                        mediaSpecimen.getTitleCache(); //update title cache
-                        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                            CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
+                            specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
+                            mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+                            mediaSpecimen.getTitleCache(); //update title cache
+                            if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                                CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
+                            }
                         }
-                    }
 
-                    //refresh view
-                    DerivateView derivateView = null;
-                    if(AbstractUtility.getActivePart() instanceof DerivateView){
-                        derivateView = (DerivateView) AbstractUtility.getActivePart();
-                    }
-                    if(derivateView!=null){
+                        //refresh view
+                        DerivateView derivateView = null;
+                        if(AbstractUtility.getActivePart() instanceof DerivateView){
+                            derivateView = (DerivateView) AbstractUtility.getActivePart();
+                        }
+                        if(derivateView!=null){
 
-                        derivateView.getConversationHolder().commit();
-                        derivateView.refreshTree(mediaSpecimen);
+                            derivateView.getConversationHolder().commit();
+                            derivateView.refreshTree(mediaSpecimen);
+                        }
                     }
                 }
             });