Project

General

Profile

« Previous | Next » 

Revision e6a01da7

Added by Alex Theys about 12 years ago

AT: committing latest changes to the Tax Editor after a first round of Code review

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesViewPart.java
29 29
import org.eclipse.ui.IMemento;
30 30
import org.eclipse.ui.IWorkbenchActionConstants;
31 31
import org.eclipse.ui.IWorkbenchPart;
32
import org.springframework.transaction.PlatformTransactionManager;
33
import org.springframework.transaction.TransactionStatus;
34
import org.springframework.transaction.support.DefaultTransactionDefinition;
35 32

  
33
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
34
import eu.etaxonomy.cdm.api.service.ITermService;
35
import eu.etaxonomy.cdm.api.service.IVocabularyService;
36 36
import eu.etaxonomy.cdm.model.common.CdmBase;
37
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
38 37
import eu.etaxonomy.cdm.model.common.MarkerType;
39 38
import eu.etaxonomy.cdm.model.common.TermVocabulary;
40
import eu.etaxonomy.cdm.model.common.VocabularyEnum;
41 39
import eu.etaxonomy.cdm.model.description.DescriptionBase;
42 40
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
43 41
import eu.etaxonomy.cdm.model.description.Feature;
44 42
import eu.etaxonomy.cdm.model.description.Modifier;
45 43
import eu.etaxonomy.cdm.model.description.State;
46 44
import eu.etaxonomy.cdm.model.description.TaxonDescription;
47
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
48
import eu.etaxonomy.cdm.api.service.IDescriptionService;
49
import eu.etaxonomy.cdm.api.service.IMarkerService;
50
import eu.etaxonomy.cdm.api.service.ITermService;
51
import eu.etaxonomy.cdm.api.service.IVocabularyService;
52 45
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
53 46
import eu.etaxonomy.taxeditor.editor.EditorUtil;
54 47
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
55
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
56
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;
57 48
import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
58
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;
59
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;
60 49
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;
61
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveContentProvider;
62
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveLabelProvider;
63
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewerSorter;
64 50
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
65 51
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
66 52
import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
......
68 54
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
69 55
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
70 56
import eu.etaxonomy.taxeditor.model.ImageResources;
71
import eu.etaxonomy.taxeditor.newWizard.NewInstitutionWizard;
72
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
73 57
import eu.etaxonomy.taxeditor.store.CdmStore;
74 58
import eu.etaxonomy.taxeditor.store.StoreUtil;
75 59
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
......
83 67
 * @version 1.0
84 68
 */
85 69
public class UsesViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
70

  
86 71
	
87
	
88
	private class ContextListener extends ContextListenerAdapter{
89
		/* (non-Javadoc)
90
		 * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
91
		 */
92
		
93
		@Override
94
		public void contextRefresh(IProgressMonitor monitor) {
95
			monitor.subTask("Refreshing the Uses View");
96
			StoreUtil.warn(getClass(), "Refreshing Uses View warn");
97
			setupNecessaryItems(monitor);
98
		}
99
		
100
		
101
		@Override
102
		public void contextStart(IMemento memento, IProgressMonitor monitor) {
103
			monitor.subTask("Starting the Uses View");
104
			StoreUtil.warn(getClass(), "Starting Uses View warn");
105
			setupNecessaryItems(monitor);
106
			
107
			
108
		}
109
		
110
		private void setupNecessaryItems(IProgressMonitor monitor) {
111
			MarkerType existingMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(UUID.fromString("2e6e42d9-e92a-41f4-899b-03c0ac64f039"));
112
			TermVocabulary<State> stateVocabulary =  (TermVocabulary<State>) CdmStore.getService(IVocabularyService.class).find(UUID.fromString("67430d7c-fd43-4e9d-af5e-d0dca3f74931"));
113
			Feature featureUseRecord = (Feature) CdmStore.getService(ITermService.class).find(UUID.fromString("8125a59d-b4d5-4485-89ea-67306297b599"));
114
			TermVocabulary<Modifier> countryVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UUID.fromString("116c51f1-e63a-46f7-a258-e1149a42868b"));
115
			TermVocabulary<Modifier> plantPartVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UUID.fromString("369914fe-d54b-4063-99ce-abc81d30ad35"));
116
			TermVocabulary<Modifier> humanGroupVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UUID.fromString("ca46cea5-bdf7-438d-9cd8-e2793d2178dc"));
117
			ConversationHolder conversation = CdmStore.createConversation();
118
			if (existingMarkertype == null) {
119
				existingMarkertype = MarkerType.NewInstance("use", "use", null);
120
				existingMarkertype.setUuid( UUID.fromString("2e6e42d9-e92a-41f4-899b-03c0ac64f039"));
121
				TermVocabulary<MarkerType> markerTypeVocabulary = (TermVocabulary<MarkerType>)CdmStore.getService(IVocabularyService.class).find((UUID.fromString("19dffff7-e142-429c-a420-5d28e4ebe305")));
122
				markerTypeVocabulary.addTerm(existingMarkertype);
123
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(markerTypeVocabulary);
124
				conversation.commit(true);
125
			}
126
			if (stateVocabulary == null) {
127
				monitor.subTask("stateVocabulary empty");
128
				URI termSourceUri = null;
129
				try {
130
					termSourceUri = new URI("eu.etaxonomy.cdm.model.description.State");
131
				} catch (URISyntaxException e) {
132
					e.printStackTrace();
133
				}
134
				stateVocabulary = TermVocabulary.NewInstance("Use Category", "Use Category", null, termSourceUri);
135
				stateVocabulary.setUuid(UUID.fromString("67430d7c-fd43-4e9d-af5e-d0dca3f74931"));
136
				State newDummyState = State.NewInstance("Dummy Use Cat", "Dummy Use Cat", null);
137
				State newDummySubCat = State.NewInstance("Dummy Use Sub Cat", "Dummy Use Sub Cat", null);
138
				newDummyState.addIncludes(newDummySubCat);
139
				stateVocabulary.addTerm(newDummyState);
140
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(stateVocabulary);
141
				conversation.commit(true);
142
			}
143
			if (countryVocabulary == null) {
144
				monitor.subTask("countryVocabulary empty");
145
				URI termSourceUri = null;
146
				try {
147
					termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
148
				} catch (URISyntaxException e) {
149
					e.printStackTrace();
150
				}
151
				countryVocabulary = TermVocabulary.NewInstance("Country", "Country", null, termSourceUri);
152
				countryVocabulary.setUuid(UUID.fromString("116c51f1-e63a-46f7-a258-e1149a42868b"));
153
				
154
				Modifier newDummyModifier = Modifier.NewInstance("Dummy Country", "Dummy Country", null);
155
				countryVocabulary.addTerm(newDummyModifier);
156
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(countryVocabulary);
157
				conversation.commit(true);
158
			}
159
			if (plantPartVocabulary == null) {
160
				monitor.subTask("plantPartVocabulary empty");
161
				URI termSourceUri = null;
162
				try {
163
					termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
164
				} catch (URISyntaxException e) {
165
					e.printStackTrace();
166
				}
167
				plantPartVocabulary = TermVocabulary.NewInstance("Plant Part", "Plant Part", null, termSourceUri);
168
				plantPartVocabulary.setUuid(UUID.fromString("369914fe-d54b-4063-99ce-abc81d30ad35"));
169
				Modifier newDummyModifier = Modifier.NewInstance("Dummy Plant Part", "Dummy Plant Part", null);
170
				plantPartVocabulary.addTerm(newDummyModifier);
171
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(plantPartVocabulary);
172
				conversation.commit(true);
173
			}
174
			if (humanGroupVocabulary == null) {
175
				monitor.subTask("humanGroupVocabulary empty");
176
				URI termSourceUri = null;
177
				try {
178
					termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");
179
				} catch (URISyntaxException e) {
180
					e.printStackTrace();
181
				}
182
				humanGroupVocabulary = TermVocabulary.NewInstance("Human Group", "Human Group", null, termSourceUri);
183
				humanGroupVocabulary.setUuid(UUID.fromString("ca46cea5-bdf7-438d-9cd8-e2793d2178dc"));
184
				Modifier newDummyModifier = Modifier.NewInstance("Dummy Human Group", "Dummy Human Group", null);
185
				Modifier newSubDummyModifier = Modifier.NewInstance("Dummy Ethnic Group", "Dummy Ethnic Group", null);
186
				newDummyModifier.addIncludes(newSubDummyModifier);
187
				humanGroupVocabulary.addTerm(newDummyModifier);
188
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(humanGroupVocabulary);
189
				conversation.commit(true);
190
			}
191
			if(featureUseRecord == null) {
192
				featureUseRecord = Feature.NewInstance("Use Record", "Use Record", null);
193
				featureUseRecord.setUuid(UUID.fromString("8125a59d-b4d5-4485-89ea-67306297b599"));
194
				featureUseRecord.setSupportsCategoricalData(true);
195
				TermVocabulary<Feature> featureVocabulary = (TermVocabulary<Feature>)CdmStore.getService(IVocabularyService.class).find((UUID.fromString("b187d555-f06f-4d65-9e53-da7c93f8eaa8")));
196
				featureVocabulary.addTerm(featureUseRecord);
197
				CdmStore.getService(IVocabularyService.class).saveOrUpdate(featureVocabulary);
198
				conversation.commit(true);
199
				
200
			}
201
				
202
			
203
			conversation.close();	
204
		}
205
	}
72

  
206 73
	
207 74
	public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses";
208 75
	private TreeViewer viewer;
209 76
	private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainerTree>();
210 77
	private ToggleDescriptionAction showAllElementsAction;
211 78
	private ToggleDescriptionAction hideAllElementsAction;
212
	private IContextListener contextListener;
213 79

  
214 80
	private int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
215 81
	
......
224 90
	@Override
225 91
	public void createViewer(Composite parent) {
226 92
		
227
		contextListener = new ContextListener();
228
		CdmStore.getContextManager().addContextListener(contextListener);
229
		
230 93
		viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
231 94
				| SWT.V_SCROLL | SWT.FULL_SELECTION));
232
				
233 95
		viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));
234 96
		//viewer.setContentProvider(new DescriptiveContentProvider(featureNodeContainerCache));
235 97
		

Also available in: Unified diff