1 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
3 import java
.util
.HashMap
;
6 import org
.eclipse
.jface
.action
.IContributionItem
;
7 import org
.eclipse
.swt
.SWT
;
8 import org
.eclipse
.ui
.IEditorInput
;
9 import org
.eclipse
.ui
.PlatformUI
;
10 import org
.eclipse
.ui
.menus
.CommandContributionItem
;
11 import org
.eclipse
.ui
.menus
.CommandContributionItemParameter
;
13 import eu
.etaxonomy
.cdm
.api
.service
.IAgentService
;
14 import eu
.etaxonomy
.cdm
.api
.service
.IGroupService
;
15 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
16 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
17 import eu
.etaxonomy
.cdm
.api
.service
.IReferenceService
;
18 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
19 import eu
.etaxonomy
.cdm
.api
.service
.IUserService
;
20 import eu
.etaxonomy
.cdm
.model
.agent
.AgentBase
;
21 import eu
.etaxonomy
.cdm
.model
.common
.Group
;
22 import eu
.etaxonomy
.cdm
.model
.common
.User
;
23 import eu
.etaxonomy
.cdm
.model
.name
.NameRelationship
;
24 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
25 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
26 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
27 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
28 import eu
.etaxonomy
.taxeditor
.bulkeditor
.IBulkEditorConstants
;
30 public enum BulkEditorInputType
{
31 AGENT("Authors and Author Teams", AgentEditorInput
.ID
),
32 REFERENCE("Reference", ReferenceEditorInput
.ID
),
33 NAME("Name", NameEditorInput
.ID
),
34 NAME_RELATIONSHIP("Name Relationship", NameRelationshipEditorInput
.ID
),
35 OCCURRENCE("Specimens and Observations", OccurrenceEditorInput
.ID
),
36 USER("User", UserEditorInput
.ID
),
37 GROUP("Group", GroupEditorInput
.ID
),
38 TAXON("Taxon", TaxonEditorInput
.ID
);
43 BulkEditorInputType(String label
, String id
) {
48 public IContributionItem
createContributionItem(){
49 return createContributionItem(label
, id
);
57 private IContributionItem
createContributionItem(String label
,
59 CommandContributionItemParameter parameter
= new CommandContributionItemParameter(
60 PlatformUI
.getWorkbench().getActiveWorkbenchWindow(), null,
61 IBulkEditorConstants
.DYNAMIC_OPEN_MENU_ID
, SWT
.NONE
);
63 parameter
.label
= label
;
65 Map parameters
= new HashMap();
66 parameters
.put(IBulkEditorConstants
.INPUT_TYPE_PARAMETER_ID
, inputType
);
67 parameter
.parameters
= parameters
;
69 return new CommandContributionItem(parameter
);
72 public static BulkEditorInputType
getById(String id
) {
74 for (BulkEditorInputType type
: values()) {
75 if (id
.equals(type
.id
)) {
83 public static BulkEditorInputType
getByType(Class clazz
) {
84 if (Reference
.class.isAssignableFrom(clazz
)) {
86 } else if (TaxonNameBase
.class.isAssignableFrom(clazz
)) {
88 } else if (AgentBase
.class.isAssignableFrom(clazz
)) {
90 } else if (SpecimenOrObservationBase
.class.isAssignableFrom(clazz
)) {
92 } else if (NameRelationship
.class.isAssignableFrom(clazz
)) {
93 return NAME_RELATIONSHIP
;
94 } else if (Group
.class.isAssignableFrom(clazz
)) {
96 } else if (User
.class.isAssignableFrom(clazz
)) {
98 } else if (Taxon
.class.isAssignableFrom(clazz
)){
104 public static BulkEditorInputType
getByInput(IEditorInput input
) {
105 if (input
instanceof ReferenceEditorInput
) {
107 } else if (input
instanceof NameEditorInput
) {
109 } else if (input
instanceof AgentEditorInput
) {
111 } else if (input
instanceof OccurrenceEditorInput
) {
113 } else if (input
instanceof NameRelationshipEditorInput
) {
114 return NAME_RELATIONSHIP
;
115 } else if (input
instanceof UserEditorInput
) {
117 } else if (input
instanceof GroupEditorInput
) {
119 } else if (input
instanceof TaxonEditorInput
){
125 public static AbstractBulkEditorInput
getInput(
126 BulkEditorInputType inputType
) {
129 return new ReferenceEditorInput();
131 return new NameEditorInput();
133 return new AgentEditorInput();
135 return new OccurrenceEditorInput();
136 case NAME_RELATIONSHIP
:
137 return new NameRelationshipEditorInput();
139 return new UserEditorInput();
141 return new GroupEditorInput();
143 return new TaxonEditorInput();
145 throw new IllegalStateException(
146 "No input class for the given input type defined.");
150 public static Class
getServiceClass(
151 BulkEditorInputType inputType
) {
154 return IReferenceService
.class;
156 return INameService
.class;
158 return IAgentService
.class;
160 return IOccurrenceService
.class;
161 case NAME_RELATIONSHIP
:
162 return INameService
.class;
164 return IUserService
.class;
166 return IGroupService
.class;
168 return ITaxonService
.class;
170 throw new IllegalStateException(
171 "No input class for the given input type defined.");