</menus>
</elements>
<elements xsi:type="basic:PartDescriptor" xmi:id="_ARZyMKz2EeeBIsZyvYlAaA" elementId="eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4" label="%editor.name.4" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4"/>
- <elements xsi:type="basic:PartDescriptor" xmi:id="_Fa8l4M7XEeex0rHJ7p8Zdw" elementId="eu.etaxonomy.taxeditor.editor.view.descriptiveDataSet.DescriptiveDataSetEditor" label="%partdescriptor.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/ws_icon.gif" tooltip="%partdescriptor.tooltip.1" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor"/>
+ <elements xsi:type="basic:PartDescriptor" xmi:id="_Fa8l4M7XEeex0rHJ7p8Zdw" elementId="eu.etaxonomy.taxeditor.editor.view.descriptiveDataSet.DescriptiveDataSetEditor" label="%partdescriptor.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/ws_icon.gif" tooltip="%partdescriptor.tooltip.1" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor">
+ <handlers xmi:id="_gmq4sFeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.DescriptiveDataSetRemoveTaxonHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.DescriptiveDataSetRemoveTaxonHandler" command="_c3wW8FeBEeiJAP3GTkE0aQ"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="_XMOXgFeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor.popupmenu.specimeneditor">
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_X_YSwFeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.removetaxon" label="%handledmenuitem.label.17" command="_c3wW8FeBEeiJAP3GTkE0aQ"/>
+ </menus>
+ </elements>
<elements xsi:type="basic:PartDescriptor" xmi:id="_rpaDsNK2EeeWSJT7vW9jsw" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart" label="%partdescriptor.label.4" tooltip="%partdescriptor.tooltip.2" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart">
<handlers xmi:id="_d_HUYOPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.handler.2" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.charactermatrix.handler.ExportCharacterMatrixHandler" command="_YeWagOPBEeeIH8IplZ0cuA"/>
<menus xmi:id="_PLw00OPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.menu.characterMatrix" label="%menu.label.7">
<elements xsi:type="commands:Command" xmi:id="_z5Zb4E3kEeivZbtHG8C6kA" elementId="eu.etaxonomy.taxeditor.editor.openSpecimenEditorForTaxonNode" commandName="%command.name.OPEN_DERIVATIVE_EDITOR"/>
<elements xsi:type="commands:Command" xmi:id="_j2cfsJMmEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.editor.openSpecimenEditorForIndividualsAssociation" commandName="%command.name.OPEN_DERIVATIVE_EDITOR"/>
<elements xsi:type="commands:Command" xmi:id="_0DKb4E3kEeivZbtHG8C6kA" elementId="eu.etaxonomy.taxeditor.editor.openSpecimenEditorForSpecimenOrObservation" commandName="%command.name.OPEN_DERIVATIVE_EDITOR"/>
+ <elements xsi:type="commands:Command" xmi:id="_c3wW8FeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.command.descriptivedataseteditor.removeTaxon" commandName="%command.commandname.21"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
<elements xsi:type="menu:HandledMenuItem" xmi:id="_FPIHQKNwEeebGZ23ERGMGw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.conceptGraph" label="%view.name.3" iconURI="" tooltip="%view.name.3" command="_WPjpoDSnEeek0dKsFNy--Q">
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.Persist;
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.services.EMenuService;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
import org.eclipse.jface.util.LocalSelectionTransfer;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
private ModifyListener labelModifyListener;
@PostConstruct
- public void create(Composite parent, IEclipseContext context, @Named(IServiceConstants.ACTIVE_SHELL)Shell shell){
+ public void create(Composite parent, IEclipseContext context, @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
+ EMenuService menuService){
if (CdmStore.isActive()){
if(conversation == null){
conversation = CdmStore.createConversation();
@Override
public void keyPressed(KeyEvent e) {
if(e.character==SWT.DEL){
- IStructuredSelection selection = (IStructuredSelection) composite.getTaxonNodeTree().getSelection();
- if(selection.toList().stream().anyMatch(object->!(object instanceof TaxonNode))){
- MessagingUtils.warningDialog(Messages.DescriptiveDataSetEditor_DELETE_FAIL_TITLE, this.getClass(), Messages.DescriptiveDataSetEditor_DELETE_FAIL_MESSAGE);
- return;
- }
- Iterator<Object> iterator = selection.iterator();
- while(iterator.hasNext()){
- Object next = iterator.next();
- TaxonNode taxonNode = (TaxonNode) next;
- removeTaxonNode(taxonNode);
- }
+ removeSelectedTaxonNodes();
}
}
});
+
+ //create context menu
+ menuService.registerContextMenu(composite.getTaxonNodeTree().getControl(), "eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor.popupmenu.specimeneditor");
+
}
public void init(UUID descriptiveDataSetUuid) {
dirty.setDirty(true);
}
- private void removeTaxonNode(TaxonNode taxonNode){
+ public void removeSelectedTaxonNodes(){
+ IStructuredSelection selection = (IStructuredSelection) composite.getTaxonNodeTree().getSelection();
+ if(selection.toList().stream().anyMatch(object->!(object instanceof TaxonNode))){
+ MessagingUtils.warningDialog(Messages.DescriptiveDataSetEditor_DELETE_FAIL_TITLE, this.getClass(), Messages.DescriptiveDataSetEditor_DELETE_FAIL_MESSAGE);
+ return;
+ }
+ Iterator<Object> iterator = selection.iterator();
Viewer taxonTreeViewer = getTaxonTreeViewer();
Collection<TaxonNode> input = (Collection<TaxonNode>) taxonTreeViewer.getInput();
- input.remove(taxonNode);
- descriptiveDataSet.removeTaxonSubtree(taxonNode);
+ while(iterator.hasNext()){
+ Object next = iterator.next();
+ TaxonNode taxonNode = (TaxonNode) next;
+ input.remove(taxonNode);
+ descriptiveDataSet.removeTaxonSubtree(taxonNode);
+ }
taxonTreeViewer.setInput(input);
dirty.setDirty(true);
}
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor;
+
+public class DescriptiveDataSetRemoveTaxonHandler {
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
+ DescriptiveDataSetEditor editor = (DescriptiveDataSetEditor) activePart.getObject();
+ editor.removeSelectedTaxonNodes();
+ }
+
+
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+ @Named(IServiceConstants.ACTIVE_PART)MPart activePart,
+ MMenuItem menuItem) {
+ boolean canExecute = false;
+ canExecute = !selection.isEmpty() && activePart.getObject() instanceof DescriptiveDataSetEditor;
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
+}
\ No newline at end of file