Project

General

Profile

Download (5.23 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.taxeditor.ui.dialog.selection;
11

    
12
import org.eclipse.swt.widgets.Shell;
13

    
14
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
15
import eu.etaxonomy.cdm.model.agent.AgentBase;
16
import eu.etaxonomy.cdm.model.agent.Institution;
17
import eu.etaxonomy.cdm.model.agent.Person;
18
import eu.etaxonomy.cdm.model.agent.Team;
19
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
20
import eu.etaxonomy.cdm.model.common.Group;
21
import eu.etaxonomy.cdm.model.common.ICdmBase;
22
import eu.etaxonomy.cdm.model.common.User;
23
import eu.etaxonomy.cdm.model.description.Feature;
24
import eu.etaxonomy.cdm.model.description.FeatureTree;
25
import eu.etaxonomy.cdm.model.description.PolytomousKey;
26
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
27
import eu.etaxonomy.cdm.model.location.NamedArea;
28
import eu.etaxonomy.cdm.model.molecular.Amplification;
29
import eu.etaxonomy.cdm.model.molecular.Primer;
30
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
31
import eu.etaxonomy.cdm.model.occurrence.Collection;
32
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
33
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
34
import eu.etaxonomy.cdm.model.reference.Reference;
35
import eu.etaxonomy.cdm.model.taxon.Classification;
36
import eu.etaxonomy.cdm.model.taxon.Synonym;
37
import eu.etaxonomy.cdm.model.taxon.Taxon;
38
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
39
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
40
import eu.etaxonomy.taxeditor.model.MessagingUtils;
41

    
42
/**
43
 * @author n.hoffmann
44
 * @date Jan 25, 2012
45
 *
46
 */
47
public class SelectionDialogFactory {
48

    
49
	public static <T extends ICdmBase> T getSelectionFromDialog(Class<T> clazz, Shell shell, ConversationHolder conversation, T curentSelection){
50

    
51
		if(clazz.equals(Taxon.class)){
52
			return (T) TaxonBaseSelectionDialog.selectTaxon(shell, conversation, (Taxon) curentSelection);
53
		}
54
		if(clazz.equals(Synonym.class)){
55
			return (T) TaxonBaseSelectionDialog.selectSynonym(shell, conversation);
56
		}
57
		if(clazz.equals(TaxonBase.class)){
58
			return (T) TaxonBaseSelectionDialog.selectTaxonBase(shell, conversation);
59
		}
60
		if(clazz.equals(Classification.class)){
61
			return (T) ClassificationSelectionDialog.select(shell, conversation, (Classification) curentSelection);
62
		}
63
		if(clazz.equals(TaxonNode.class)){
64
			return (T) TaxonNodeSelectionDialog.select(shell, conversation, null, null, (TaxonNode) curentSelection, null);
65
		}
66
		if(clazz.equals(Reference.class)){
67
			return (T) ReferenceSelectionDialog.select(shell, conversation, (Reference) curentSelection);
68
		}
69
		if(clazz.equals(TaxonNameBase.class)){
70
			return (T) NameSelectionDialog.select(shell, conversation, (TaxonNameBase) curentSelection);
71
		}
72
		if(clazz.equals(Team.class)){
73
			return (T) TeamSelectionDialog.select(shell, conversation, (Team) curentSelection);
74
		}
75
		if(clazz.equals(AgentBase.class)){
76
			return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) curentSelection);
77
		}
78
		if(clazz.equals(Feature.class)){
79
			return (T) FeatureSelectionDialog.select(shell, conversation, (Feature) curentSelection);
80
		}
81
		if(clazz.equals(FeatureTree.class)){
82
			return (T) FeatureTreeSelectionDialog.select(shell, conversation, (FeatureTree) curentSelection);
83
		}
84
		if(clazz.equals(PolytomousKey.class)){
85
			return (T) PolytomousKeySelectionDialog.select(shell, conversation, (PolytomousKey) curentSelection);
86
		}
87
		if(clazz.equals(PolytomousKeyNode.class)){
88
			MessagingUtils.warningDialog("Not implemented yet", SelectionDialogFactory.class,
89
					"This functionality is not implemented yet.");
90
			return null;
91
		}
92
		if(clazz.equals(DerivedUnit.class)){
93
			return (T) DerivedUnitSelectionDialog.select(shell, conversation, (DerivedUnit) curentSelection);
94
		}
95
		if(clazz.equals(FieldUnit.class)){
96
			return (T) FieldUnitSelectionDialog.select(shell, conversation, (FieldUnit) curentSelection);
97
		}
98
		if(clazz.equals(NamedArea.class)){
99
			return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) curentSelection);
100
		}
101
		if(clazz.equals(Collection.class)){
102
			return (T) CollectionSelectionDialog.select(shell, conversation, (Collection) curentSelection);
103
		}
104
		if(clazz.equals(User.class)){
105
			return (T) UserSelectionDialog.select(shell, conversation, (User) curentSelection);
106
		}
107
		if(clazz.equals(GrantedAuthorityImpl.class)){
108
			return (T) GrantedAuthoritySelectionDialog.select(shell, conversation, (GrantedAuthorityImpl) curentSelection);
109
		}
110
		if (clazz.equals(Person.class)){
111
			return (T) PersonSelectionDialog.select(shell, conversation, (Person) curentSelection);
112
		}
113
		if(clazz.equals(Group.class)){
114
			return (T) GroupSelectionDialog.select(shell, conversation, (Group) curentSelection);
115
		}
116
		if(clazz.equals(Institution.class)){
117
			return (T) InstitutionSelectionDialog.select(shell, conversation, (Institution) curentSelection);
118
		}
119
		if(clazz.equals(Primer.class)){
120
		    return (T) PrimerSelectionDialog.select(shell, conversation, (Primer) curentSelection);
121
		}
122
		if(clazz.equals(Amplification.class)){
123
		    return (T) AmplificationSelectionDialog.select(shell, conversation, (Amplification) curentSelection);
124
		}
125

    
126
		return null;
127
	}
128

    
129
}
(22-22/27)