Project

General

Profile

Download (8.79 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor;
2

    
3
import java.net.URI;
4
import java.net.URISyntaxException;
5

    
6
import org.eclipse.core.runtime.IProgressMonitor;
7
import org.eclipse.ui.IMemento;
8

    
9
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
10
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
11
import eu.etaxonomy.cdm.api.service.ITermService;
12
import eu.etaxonomy.cdm.api.service.IVocabularyService;
13
import eu.etaxonomy.cdm.model.common.MarkerType;
14
import eu.etaxonomy.cdm.model.common.TermVocabulary;
15
import eu.etaxonomy.cdm.model.description.Feature;
16
import eu.etaxonomy.cdm.model.description.FeatureNode;
17
import eu.etaxonomy.cdm.model.description.FeatureTree;
18
import eu.etaxonomy.cdm.model.description.Modifier;
19
import eu.etaxonomy.cdm.model.description.State;
20
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
21
import eu.etaxonomy.taxeditor.store.CdmStore;
22
import eu.etaxonomy.taxeditor.store.StoreUtil;
23

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