3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.editor
.handler
.create
;
13 import java
.util
.Collections
;
15 import org
.apache
.log4j
.Logger
;
16 import org
.eclipse
.core
.commands
.AbstractHandler
;
17 import org
.eclipse
.core
.commands
.ExecutionEvent
;
18 import org
.eclipse
.core
.commands
.ExecutionException
;
19 import org
.eclipse
.ui
.PartInitException
;
21 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
22 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeCacheStrategy
;
23 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeFieldUnitCacheStrategy
;
24 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
25 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEvent
;
26 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEventType
;
27 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
28 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
29 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
30 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
31 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
32 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
36 * @created Jun 16, 2010
39 public class NewSpecimenHandler
extends AbstractHandler
{
40 private static final Logger logger
= Logger
41 .getLogger(NewSpecimenHandler
.class);
45 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
46 ConversationHolder conversation
= CdmStore
.createConversation();
48 FieldUnit fieldUnit
= FieldUnit
.NewInstance();
49 DerivedUnit derivedUnit
= DerivedUnit
.NewInstance(SpecimenOrObservationType
.PreservedSpecimen
);
50 DerivationEvent
.NewSimpleInstance(fieldUnit
, derivedUnit
, DerivationEventType
.GATHERING_IN_SITU());
51 fieldUnit
.setCacheStrategy(new DerivedUnitFacadeFieldUnitCacheStrategy());
52 derivedUnit
.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
53 CdmStore
.getService(IOccurrenceService
.class).save(fieldUnit
);
54 CdmStore
.getService(IOccurrenceService
.class).save(derivedUnit
);
55 conversation
.commit();
56 DerivateViewEditorInput input
= new DerivateViewEditorInput(Collections
.singleton(fieldUnit
.getUuid()));
58 EditorUtil
.open(input
);
59 } catch (PartInitException e
) {
60 // TODO Auto-generated catch block
63 // NewDerivedUnitBaseWizard wizard = new NewDerivedUnitBaseWizard();
64 // wizard.init(null, null);
65 // WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);