Project

General

Profile

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

    
11
import java.net.URI;
12
import java.net.URISyntaxException;
13

    
14
import org.eclipse.core.runtime.IProgressMonitor;
15
import org.eclipse.ui.IMemento;
16

    
17
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
18
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
19
import eu.etaxonomy.cdm.api.service.ITermService;
20
import eu.etaxonomy.cdm.api.service.IVocabularyService;
21
import eu.etaxonomy.cdm.model.common.MarkerType;
22
import eu.etaxonomy.cdm.model.common.TermVocabulary;
23
import eu.etaxonomy.cdm.model.description.Feature;
24
import eu.etaxonomy.cdm.model.description.FeatureNode;
25
import eu.etaxonomy.cdm.model.description.FeatureTree;
26
import eu.etaxonomy.cdm.model.description.Modifier;
27
import eu.etaxonomy.cdm.model.description.State;
28
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
30
import eu.etaxonomy.taxeditor.store.StoreUtil;
31

    
32
/**
33
 * This class sets up the necessary items for the use interface.
34
 * @author a.theys	
35
 * @created mar 13, 2012
36
 * @version 1.0
37
 */
38
public class UseObjectManager extends ContextListenerAdapter{
39
	@Override
40
	public void contextRefresh(IProgressMonitor monitor) {
41
		monitor.subTask("Refreshing the Uses View");
42
		StoreUtil.warn(getClass(), "Refreshing Uses View warn");
43
		setupNecessaryItems(monitor);
44
	}
45
	
46
	
47
	@Override
48
	public void contextStart(IMemento memento, IProgressMonitor monitor) {
49
		monitor.subTask("Starting the Uses View");
50
		StoreUtil.warn(getClass(), "Starting Uses View warn");
51
		setupNecessaryItems(monitor);
52
	}
53
	
54
	private void setupNecessaryItems(IProgressMonitor monitor) {
55
		MarkerType existingMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseMarkerType);
56
		TermVocabulary<State> stateVocabulary =  (TermVocabulary<State>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidUseCategoryVocabulary);
57
		Feature featureUseRecord = (Feature) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseRecordFeature);
58
		Feature featureUseSummary = (Feature) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseSummaryFeature);
59
		TermVocabulary<Modifier> countryVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary);
60
		TermVocabulary<Modifier> plantPartVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary);
61
		TermVocabulary<Modifier> humanGroupVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary);
62
		
63
		ConversationHolder conversation = CdmStore.createConversation();
64
		if (existingMarkertype == null) {
65
			existingMarkertype = MarkerType.NewInstance(UsageTermCollection.useMakerLabel, UsageTermCollection.useMakerLabel, null);
66
			existingMarkertype.setUuid( UsageTermCollection.uuidUseMarkerType);
67
			TermVocabulary<MarkerType> markerTypeVocabulary = (TermVocabulary<MarkerType>)CdmStore.getService(IVocabularyService.class).find((UsageTermCollection.uuidMarkersVocabulary));
68
			markerTypeVocabulary.addTerm(existingMarkertype);
69
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(markerTypeVocabulary);
70
			conversation.commit(true);
71
		}
72
		if (stateVocabulary == null) {
73
			monitor.subTask("stateVocabulary empty");
74
			URI termSourceUri = null;
75
			try {
76
				termSourceUri = new URI("eu.etaxonomy.cdm.model.description.State");
77
			} catch (URISyntaxException e) {
78
				e.printStackTrace();
79
			}
80
			stateVocabulary = TermVocabulary.NewInstance(UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri);
81
			stateVocabulary.setUuid(UsageTermCollection.uuidUseCategoryVocabulary);
82
			State newDummyState = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
83
			newDummyState.setUuid(UsageTermCollection.uuidUseCategoryDummy);
84
			State newDummySubCat = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
85
			newDummySubCat.setUuid(UsageTermCollection.uuidUseSubCategoryDummy);
86
			newDummyState.addIncludes(newDummySubCat);
87
			stateVocabulary.addTerm(newDummyState);
88
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(stateVocabulary);
89
			conversation.commit(true);
90
		}
91
		if (countryVocabulary == null) {
92
			monitor.subTask("countryVocabulary empty");
93
			URI termSourceUri = null;
94
			try {
95
				termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
96
			} catch (URISyntaxException e) {
97
				e.printStackTrace();
98
			}
99
			countryVocabulary = TermVocabulary.NewInstance(UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri);
100
			countryVocabulary.setUuid(UsageTermCollection.uuidCountryVocabulary);
101
			Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
102
			newDummyModifier.setUuid(UsageTermCollection.uuidCountryDummy);
103
			countryVocabulary.addTerm(newDummyModifier);
104
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(countryVocabulary);
105
			conversation.commit(true);
106
		}
107
		if (plantPartVocabulary == null) {
108
			monitor.subTask("plantPartVocabulary empty");
109
			URI termSourceUri = null;
110
			try {
111
				termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
112
			} catch (URISyntaxException e) {
113
				e.printStackTrace();
114
			}
115
			plantPartVocabulary = TermVocabulary.NewInstance(UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri);
116
			plantPartVocabulary.setUuid(UsageTermCollection.uuidPlantPartVocabulary);
117
			Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
118
			newDummyModifier.setUuid(UsageTermCollection.uuidPlantPartDummy);
119
			plantPartVocabulary.addTerm(newDummyModifier);
120
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(plantPartVocabulary);
121
			conversation.commit(true);
122
		}
123
		if (humanGroupVocabulary == null) {
124
			monitor.subTask("humanGroupVocabulary empty");
125
			URI termSourceUri = null;
126
			try {
127
				termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
128
			} catch (URISyntaxException e) {
129
				e.printStackTrace();
130
			}
131
			humanGroupVocabulary = TermVocabulary.NewInstance(UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri);
132
			humanGroupVocabulary.setUuid(UsageTermCollection.uuidHumanGroupVocabulary);
133
			Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
134
			newDummyModifier.setUuid(UsageTermCollection.uuidHumanGroupDummy);
135
			Modifier newSubDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);
136
			newSubDummyModifier.setUuid(UsageTermCollection.uuidEthnicGroupDummy);
137
			newDummyModifier.addIncludes(newSubDummyModifier);
138
			humanGroupVocabulary.addTerm(newDummyModifier);
139
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(humanGroupVocabulary);
140
			conversation.commit(true);
141
		}
142
		
143
		if(featureUseRecord == null|| featureUseSummary == null) {
144
			TermVocabulary<Feature> featureVocabulary = (TermVocabulary<Feature>)CdmStore.getService(IVocabularyService.class).find((UsageTermCollection.uuidFeatureVocabulary));
145
			FeatureTree palmWebFeatureTree = CdmStore.getService(IFeatureTreeService.class).find(UsageTermCollection.uuidPalmWebFeatureTree);
146
			
147
			if (featureUseRecord == null ) {
148
				featureUseRecord = Feature.NewInstance(UsageTermCollection.useRecordFeatureLabel, UsageTermCollection.useRecordFeatureLabel, null);
149
				featureUseRecord.setUuid(UsageTermCollection.uuidUseRecordFeature);
150
				featureUseRecord.isSupportsCategoricalData();
151
				featureUseRecord.setSupportsCategoricalData(true);
152
				featureVocabulary.addTerm(featureUseRecord);
153
				FeatureNode useRecFeatureNode = FeatureNode.NewInstance(featureUseRecord);
154
				palmWebFeatureTree.getRoot().addChild(useRecFeatureNode);
155
			}
156
			if (featureUseSummary == null) {
157
				featureUseSummary = Feature.NewInstance(UsageTermCollection.useSummaryFeatureLabel, UsageTermCollection.useSummaryFeatureLabel, null);
158
				featureUseSummary.setUuid(UsageTermCollection.uuidUseSummaryFeature);
159
				featureUseSummary.isSupportsTextData();
160
				featureUseSummary.setSupportsTextData(true);
161
				featureVocabulary.addTerm(featureUseSummary);
162
				FeatureNode useSumFeatureNode = FeatureNode.NewInstance(featureUseSummary);
163
				palmWebFeatureTree.getRoot().addChild(useSumFeatureNode);
164
			}
165
			
166
			CdmStore.getService(IVocabularyService.class).saveOrUpdate(featureVocabulary);
167
			CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(palmWebFeatureTree);
168
			conversation.commit(true);
169
			
170
		}
171
		conversation.close();	
172
	}
173
}
(16-16/17)