import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
@Override
public void widgetSelected(SelectionEvent e) {
- FieldUnit fieldUnit = HibernateProxyHelper.deproxy(selectedElement, FieldUnit.class);
+ IOccurrenceService occurrenceService = CdmStore.getCurrentApplicationConfiguration().getOccurrenceService();
+ SpecimenOrObservationBase fieldUnit = occurrenceService.load(((FieldUnit) selectedElement).getUuid());
+
DerivedUnit specimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
fieldUnit.addDerivationEvent(DerivationEvent.NewSimpleInstance(fieldUnit, specimen, DerivationEventType.GATHERING_IN_SITU()));
specimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
- specimen.getTitleCache(); //update title cache
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+// specimen.getTitleCache(); //update title cache
IWorkbenchPart activePart = AbstractUtility.getActivePart();
- CdmStore.getService(IOccurrenceService.class).saveOrUpdate(fieldUnit);
+ occurrenceService.saveOrUpdate(fieldUnit);
if(activePart instanceof DerivateView){
DerivateView derivateView = (DerivateView)activePart;
derivateView.viewer.refresh();
}
+// DerivedUnit specimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+// fieldUnit.addDerivationEvent(DerivationEvent.NewSimpleInstance(fieldUnit, specimen, DerivationEventType.GATHERING_IN_SITU()));
+// specimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+// specimen.getTitleCache(); //update title cache
+// IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+// IWorkbenchPart activePart = AbstractUtility.getActivePart();
+// ConversationHolder conversation = CdmStore.createConversation();
+// CdmStore.getService(IOccurrenceService.class).saveOrUpdate(fieldUnit);
+// conversation.commit();
+// conversation.close();
+// if(activePart instanceof DerivateView){
+// DerivateView derivateView = (DerivateView)activePart;
+// derivateView.viewer.refresh();
+// }
}
@Override
import java.util.List;
import java.util.Set;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
@Override
public Object[] getElements(Object inputElement) {
+ if(inputElement instanceof IStructuredSelection){
+ inputElement = ((IStructuredSelection) inputElement).getFirstElement();
+ }
// return the parent FieldUnit if element is a DerivedUnit
if(inputElement instanceof DerivedUnit){
DerivedUnit derivedUnit = (DerivedUnit)inputElement;
@Override
public Object[] getChildren(Object parentElement) {
+ if(parentElement instanceof IStructuredSelection){
+ parentElement = ((IStructuredSelection) parentElement).getFirstElement();
+ }
if(parentElement instanceof SpecimenOrObservationBase){
return getDerivates((SpecimenOrObservationBase) parentElement).toArray();
}
@Override
public Object getParent(Object element) {
+ if(element instanceof IStructuredSelection){
+ element = ((IStructuredSelection) element).getFirstElement();
+ }
if(element instanceof DerivedUnit){
DerivedUnit derivedUnit = (DerivedUnit)element;
return derivedUnit.getOriginalUnit();
@Override
public boolean hasChildren(Object element) {
+ if(element instanceof IStructuredSelection){
+ element = ((IStructuredSelection) element).getFirstElement();
+ }
if(element instanceof SpecimenOrObservationBase){
SpecimenOrObservationBase specimenOrObservation = (SpecimenOrObservationBase)element;
for(DerivationEvent event:(Set<DerivationEvent>)specimenOrObservation.getDerivationEvents()){