2 package eu
.etaxonomy
.taxeditor
.editor
.descriptiveDataSet
.handler
;
4 import java
.util
.Collection
;
6 import javax
.inject
.Named
;
8 import org
.eclipse
.e4
.core
.di
.annotations
.CanExecute
;
9 import org
.eclipse
.e4
.core
.di
.annotations
.Execute
;
10 import org
.eclipse
.e4
.ui
.model
.application
.ui
.basic
.MPart
;
11 import org
.eclipse
.e4
.ui
.model
.application
.ui
.menu
.MMenuItem
;
12 import org
.eclipse
.e4
.ui
.services
.IServiceConstants
;
13 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
14 import org
.eclipse
.jface
.viewers
.TreeSelection
;
15 import org
.eclipse
.jface
.viewers
.TreeViewer
;
17 import eu
.etaxonomy
.cdm
.persistence
.dto
.TaxonNodeDto
;
18 import eu
.etaxonomy
.taxeditor
.editor
.descriptiveDataSet
.DescriptiveDataSetEditor
;
20 public class DescriptiveDataSetRemoveTaxonHandler
{
22 public void execute(@Named(IServiceConstants
.ACTIVE_PART
)MPart activePart
) {
23 DescriptiveDataSetEditor editor
= (DescriptiveDataSetEditor
) activePart
.getObject();
24 editor
.removeSelectedTaxonNodes();
29 public boolean canExecute(@Named(IServiceConstants
.ACTIVE_SELECTION
)IStructuredSelection selection
,
30 @Named(IServiceConstants
.ACTIVE_PART
)MPart activePart
,
32 boolean canExecute
= false;
33 TreeSelection sel
= ((TreeViewer
)((DescriptiveDataSetEditor
)activePart
.getObject()).getTaxonTreeViewer()).getSelection() instanceof TreeSelection ?
(TreeSelection
)((TreeViewer
)((DescriptiveDataSetEditor
)activePart
.getObject()).getTaxonTreeViewer()).getSelection(): null;
34 canExecute
= !selection
.isEmpty() && activePart
.getObject() instanceof DescriptiveDataSetEditor
&& sel
!= null && sel
.getFirstElement() instanceof TaxonNodeDto
;
35 TreeViewer viewer
= ((TreeViewer
)((DescriptiveDataSetEditor
)activePart
.getObject()).getTaxonTreeViewer());
36 Collection
<TaxonNodeDto
> input
= (Collection
<TaxonNodeDto
>)viewer
.getInput();
38 canExecute
&= input
.contains(sel
.getFirstElement());
40 menuItem
.setVisible(canExecute
);