eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/SingleReadSequenceContextMenu.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/DeleteDerivateOperation.java -text
label="Delete"
style="push">
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+ label="Create Field Unit"
+ style="push">
+ </command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+ label="Delete (with children)"
+ style="push">
+ </command>
</menuContribution>
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
id="eu.etaxonomy.taxeditor.editor.taxonParameterType"
type="eu.etaxonomy.cdm.model.taxon.TaxonBase">
</commandParameterType>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler"
+ id="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+ name="Create Field Unit">
+ </command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
+ id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+ name="Deep Delete">
+ </command>
</extension>
<extension
point="org.eclipse.core.expressions.definitions">
/**
* The selected derivate {@link UUID}s
*/
- private Set<UUID> derivateUUIDs;
+ private final Set<UUID> derivateUUIDs;
/**
* List of the {@link UUID}s of the root elements of the hierarchy (may be the same objects as the derivates)
*/
return derivateUUIDs;
}
- public void setRootAsDerivate(){
- this.derivateUUIDs = this.rootUUIDs;
+ public void addRootUuid(UUID root){
+ rootUUIDs.add(root);
}
+
public ConversationHolder getConversationHolder() {
return conversationHolder;
}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class CreateFieldUnitHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ DerivateView derivateView = (DerivateView)AbstractUtility.getActivePart();
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+ return null;
+ }
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ CdmStore.getService(IOccurrenceService.class).save(fieldUnit);
+ derivateView.getConversationHolder().commit();
+ DerivateViewEditorInput input = (DerivateViewEditorInput) derivateView.getEditorInput();
+ input.addRootUuid(fieldUnit.getUuid());
+ derivateView.refreshTree();
+ }
+ return null;
+ }
+
+}