4 package eu
.etaxonomy
.taxeditor
.editor
.name
.handler
;
6 import org
.apache
.log4j
.Logger
;
7 import org
.eclipse
.jface
.action
.IContributionItem
;
8 import org
.eclipse
.jface
.viewers
.ISelection
;
9 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
10 import org
.eclipse
.swt
.SWT
;
11 import org
.eclipse
.ui
.ISelectionService
;
12 import org
.eclipse
.ui
.IWorkbenchWindow
;
13 import org
.eclipse
.ui
.PlatformUI
;
14 import org
.eclipse
.ui
.actions
.CompoundContributionItem
;
15 import org
.eclipse
.ui
.menus
.CommandContributionItem
;
16 import org
.eclipse
.ui
.menus
.CommandContributionItemParameter
;
18 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
19 import eu
.etaxonomy
.cdm
.model
.name
.NameRelationshipType
;
20 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
21 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
22 import eu
.etaxonomy
.taxeditor
.labels
.ILabelImageStrategy
;
23 import eu
.etaxonomy
.taxeditor
.labels
.LabelImageProvider
;
26 * <p>GroupBasionymContributionItem class.</p>
31 public class GroupBasionymContributionItem
extends CompoundContributionItem
{
32 private static final Logger logger
= Logger
.getLogger(GroupBasionymContributionItem
.class);
35 * <p>Constructor for GroupBasionymContributionItem.</p>
37 public GroupBasionymContributionItem() {}
40 * <p>Constructor for GroupBasionymContributionItem.</p>
42 * @param id a {@link java.lang.String} object.
44 public GroupBasionymContributionItem(String id
) {
50 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
54 protected IContributionItem
[] getContributionItems() {
56 IWorkbenchWindow window
= PlatformUI
.getWorkbench().getActiveWorkbenchWindow();
58 ISelectionService selectionService
= window
.getSelectionService();
60 ISelection selection
= selectionService
.getSelection();
62 if(selection
instanceof IStructuredSelection
){
63 Object selectedObject
= ((IStructuredSelection
) selection
).getFirstElement();
65 if(selectedObject
!= null && selectedObject
instanceof TaxonBase
){
67 TaxonNameBase name
= (TaxonNameBase
) HibernateProxyHelper
.deproxy(((TaxonBase
) selectedObject
).getName());
69 if(name
.getHomotypicalGroup().getTypifiedNames().size() > 1){
71 CommandContributionItemParameter parameter
=
72 new CommandContributionItemParameter(
73 window
, null, getCommand(name
), SWT
.NONE
);
75 parameter
.label
= getLabel(name
);
77 return new IContributionItem
[] {
78 new CommandContributionItem(parameter
)
85 return new IContributionItem
[]{};
92 private String
getCommand(TaxonNameBase name
) {
93 if(name
.isGroupsBasionym()){
94 return "eu.etaxonomy.taxeditor.editor.name.removeBasionym" ;
96 return "eu.etaxonomy.taxeditor.editor.name.setBasionym";
103 private String
getLabel(TaxonNameBase name
) {
104 ILabelImageStrategy strategy
= LabelImageProvider
.getLabelStrategy(name
);
105 LabelImageProvider labelProvider
= new LabelImageProvider(strategy
);
106 return (name
.isGroupsBasionym() ?
"Remove" : "Set")
107 + " as " + labelProvider
.getNameRelationTypeDescription(NameRelationshipType
.BASIONYM()) + " for Homotypic Group";