Project

General

Profile

Download (3.21 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.taxeditor.editor.name.handler;
5

    
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;
17

    
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;
24

    
25
/**
26
 * <p>GroupBasionymContributionItem class.</p>
27
 *
28
 * @author p.ciardelli
29
 * @version $Id: $
30
 */
31
public class GroupBasionymContributionItem extends CompoundContributionItem {
32
	private static final Logger logger = Logger.getLogger(GroupBasionymContributionItem.class);
33

    
34
	/**
35
	 * <p>Constructor for GroupBasionymContributionItem.</p>
36
	 */
37
	public GroupBasionymContributionItem() {}
38

    
39
	/**
40
	 * <p>Constructor for GroupBasionymContributionItem.</p>
41
	 *
42
	 * @param id a {@link java.lang.String} object.
43
	 */
44
	public GroupBasionymContributionItem(String id) {
45
		super(id);
46
	}
47
	
48

    
49
	/* (non-Javadoc)
50
	 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
51
	 */
52
	/** {@inheritDoc} */
53
	@Override
54
	protected IContributionItem[] getContributionItems() {
55
		
56
		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
57
		
58
		ISelectionService selectionService = window.getSelectionService();
59
		
60
		ISelection selection = selectionService.getSelection();
61
		
62
		if(selection instanceof IStructuredSelection){
63
			Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
64
			
65
			if(selectedObject != null && selectedObject instanceof TaxonBase){
66
				
67
				TaxonNameBase name = (TaxonNameBase) HibernateProxyHelper.deproxy(((TaxonBase) selectedObject).getName());
68
				
69
				if(name.getHomotypicalGroup().getTypifiedNames().size() > 1){
70
				
71
					CommandContributionItemParameter parameter = 
72
						new CommandContributionItemParameter(
73
								window, null, getCommand(name), SWT.NONE);
74
					
75
					parameter.label = getLabel(name);		
76
							
77
					return new IContributionItem[] {
78
							new CommandContributionItem(parameter)
79
					};
80
				}
81
				
82
			}
83
		}
84
		
85
		return new IContributionItem[]{};
86
	}
87

    
88
	/**
89
	 * @param name
90
	 * @return
91
	 */
92
	private String getCommand(TaxonNameBase name) {
93
		if(name.isGroupsBasionym()){
94
			return "eu.etaxonomy.taxeditor.editor.name.removeBasionym" ;
95
		}
96
		return "eu.etaxonomy.taxeditor.editor.name.setBasionym";
97
	}
98

    
99
	/**
100
	 * @param name
101
	 * @return
102
	 */
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";
108
	}
109
}
(17-17/21)