Revision e6a01da7
Added by Alex Theys about 12 years ago
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
AT: committing latest changes to the Tax Editor after a first round of Code review