new MenuItem(addMenu, SWT.SEPARATOR);
createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
+ return;
}
//context menu for Specimen
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
+ return;
}
//context menu for TissueSample
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
+ return;
}
//context menu for DnaSample
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){
createMenuItem(addMenu, CONSENSUS_SEQUENCE, selectedTreeNode, Sequence.class, null, null);
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
+ return;
}
//context menu for Sequence
else if(selectedTreeNode.getValue() instanceof Sequence){
createMenuItem(addMenu, SINGLE_READ, selectedTreeNode, SingleRead.class, null, null);
- }
- //default
- else{
- MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
- menuItem.setText(Messages.CreateDerivateContextMenu_NO_CHILD_DERIVATE);
- menuItem.setEnabled(false);
+ return;
}
}
+ MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
+ menuItem.setText(Messages.CreateDerivateContextMenu_NO_CHILD_DERIVATE);
+ menuItem.setEnabled(false);
}
}
private void createMenuItem(Menu menu, String menuLabel, final TreeNode selectedNode, Class<?> childClass, final SpecimenOrObservationType specimenType, final DerivationEventType derivationEventType) {
- if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.Media)){
+ if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.StillImage)){
//media submenu
MenuItem mediaItem = new MenuItem(menu, SWT.CASCADE);
mediaItem.setText(Messages.CreateDerivateContextMenu_MEDIA);
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);
-
- //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
- CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase);
- }
+ 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();
+
+ specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
+ mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+ mediaSpecimen.getTitleCache(); //update title cache
+ 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);
+ }
}
}
});
Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0); //$NON-NLS-1$
createdElement = newInstance;
}
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
- }
- else if(selectedDerivate instanceof Sequence){
+ CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+ } else if(selectedDerivate instanceof Sequence){
SingleRead newInstance = SingleRead.NewInstance();
((Sequence) selectedDerivate).addSingleRead(newInstance);
createdElement = newInstance;
- CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate);
+ CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
+
}
- else if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
+ if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
DerivedUnit derivedUnit;
if(childClass.equals(DnaSample.class)){
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
derivedUnit.getTitleCache(); //update title cache
createdElement = derivedUnit;
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
+ CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+
}
//refresh view
if(derivateView!=null){
- //CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
derivateView.getConversationHolder().commit();
derivateView.refreshTree(createdElement);
}