1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.handler
;
3 import org
.eclipse
.core
.commands
.AbstractHandler
;
4 import org
.eclipse
.core
.commands
.ExecutionEvent
;
5 import org
.eclipse
.core
.commands
.ExecutionException
;
7 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
8 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
9 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
10 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateView
;
11 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
12 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
13 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
14 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
16 public class CreateFieldUnitHandler
extends AbstractHandler
{
19 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
20 if(AbstractUtility
.getActivePart() instanceof DerivateView
){
21 DerivateView derivateView
= (DerivateView
)AbstractUtility
.getActivePart();
22 if(derivateView
.isDirty()){
23 MessagingUtils
.warningDialog(DerivateView
.VIEW_HAS_UNSAVED_CHANGES
, this, DerivateView
.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION
);
26 FieldUnit fieldUnit
= FieldUnit
.NewInstance();
27 fieldUnit
= CdmBase
.deproxy(CdmStore
.getService(IOccurrenceService
.class).save(fieldUnit
), FieldUnit
.class);
28 derivateView
.getConversationHolder().commit();
29 DerivateViewEditorInput input
= (DerivateViewEditorInput
) derivateView
.getEditorInput();
30 input
.addRootEntity(fieldUnit
);
31 derivateView
.refreshTree();