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();
}
};
composite.getRankMin().addSelectionChangedListener(event->dirty.setDirty(true));
+ composite.getRankMin().setText("Select min rank...");
composite.getRankMax().addSelectionChangedListener(event->dirty.setDirty(true));
+ composite.getRankMin().setText("Select max rank...");
+ composite.getBtnRemoveRankMin().addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
+ composite.getRankMin().setElement(null);
+ dirty.setDirty(true);
+ }
+ });
+ composite.getBtnRemoveRankMax().addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
+ composite.getRankMax().setElement(null);
+ dirty.setDirty(true);
+ }
+ });
composite.getBtnChooseArea().addSelectionListener(new SelectionAdapter() {
@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);
}