6 |
6 |
import java.util.ListIterator;
|
7 |
7 |
import java.util.Map;
|
8 |
8 |
import java.util.Set;
|
|
9 |
import java.util.UUID;
|
|
10 |
|
9 |
11 |
import org.apache.log4j.Logger;
|
10 |
12 |
import org.eclipse.swt.events.SelectionEvent;
|
11 |
13 |
import org.eclipse.swt.events.SelectionListener;
|
|
14 |
|
|
15 |
import eu.etaxonomy.cdm.api.service.ITermService;
|
12 |
16 |
import eu.etaxonomy.cdm.model.common.Language;
|
13 |
17 |
import eu.etaxonomy.cdm.model.common.LanguageString;
|
14 |
18 |
import eu.etaxonomy.cdm.model.common.Marker;
|
... | ... | |
103 |
107 |
}
|
104 |
108 |
|
105 |
109 |
private Modifier modifierSelection(String comboCategory) {
|
|
110 |
Modifier returnModifier = null;
|
106 |
111 |
if(!getEntity().getModifiers().isEmpty()) {
|
107 |
112 |
for (Modifier modifier : getEntity().getModifiers()) {
|
108 |
113 |
if(GetVocabularyType(modifier, comboCategory)) {
|
109 |
|
return modifier;
|
|
114 |
returnModifier = modifier;
|
110 |
115 |
}
|
111 |
116 |
}
|
112 |
|
} else {
|
113 |
|
return null;
|
|
117 |
}
|
|
118 |
|
|
119 |
if (returnModifier == null) {
|
|
120 |
if (comboCategory == "Country") {
|
|
121 |
returnModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("761dddee-bfa2-41f4-82df-3a19c71adee0"));
|
|
122 |
} else if (comboCategory == "Plant Part") {
|
|
123 |
returnModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("30150a82-a12f-4278-96ad-7ce708efa082"));
|
|
124 |
} else if (comboCategory == "Human Group") {
|
|
125 |
returnModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("c4b63327-2548-429d-8d55-81fdba5900a5"));
|
|
126 |
} else if (comboCategory == "Ethnic Group") {
|
|
127 |
returnModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("3ca851e5-d0d4-41cd-9066-f79e246c36c2"));
|
|
128 |
}
|
114 |
129 |
}
|
115 |
|
return null;
|
|
130 |
|
|
131 |
|
|
132 |
return returnModifier;
|
116 |
133 |
|
117 |
134 |
}
|
118 |
135 |
|
119 |
136 |
private State stateSelection(String comboCategory) {
|
|
137 |
State returnState = null;
|
120 |
138 |
if (!getEntity().getStates().isEmpty()) {
|
121 |
139 |
for (StateData statedata : getEntity().getStates()) {
|
122 |
140 |
if (statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
|
123 |
141 |
String testString = statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText();
|
124 |
142 |
if(testString.equals(comboCategory)) {
|
125 |
143 |
if(statedata.getState() !=null) {
|
126 |
|
return statedata.getState();
|
|
144 |
returnState = statedata.getState();
|
127 |
145 |
}
|
128 |
146 |
}
|
129 |
147 |
}
|
130 |
148 |
}
|
131 |
149 |
}
|
132 |
|
else {
|
133 |
|
return null;
|
|
150 |
|
|
151 |
if (returnState == null) {
|
|
152 |
if (comboCategory == "Use Category") {
|
|
153 |
returnState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("983a7184-6a51-489e-aca1-f21fc4fdbae3"));
|
|
154 |
|
|
155 |
} else if (comboCategory == "Use SubCategory") {
|
|
156 |
returnState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
|
157 |
}
|
134 |
158 |
}
|
135 |
|
return null;
|
136 |
159 |
|
|
160 |
return returnState;
|
137 |
161 |
}
|
138 |
162 |
|
139 |
163 |
private List<Modifier> setModifierComboTerms(List<Modifier> listOfTerms, String modType) {
|
... | ... | |
281 |
305 |
}
|
282 |
306 |
} else if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals("Use SubCategory") && isUseCategoryChanged == true) {
|
283 |
307 |
itrExistingStates.remove();
|
|
308 |
State naUseSubCatState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
|
309 |
StateData subCatStateData = StateData.NewInstance(naUseSubCatState);
|
|
310 |
subCatStateData.setState(naUseSubCatState);
|
|
311 |
subCatStateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use SubCategory");
|
|
312 |
getEntity().addState(subCatStateData);
|
284 |
313 |
}
|
285 |
314 |
}
|
286 |
315 |
}
|
... | ... | |
293 |
322 |
stateData.setState(combo_UseCategory.getSelection());
|
294 |
323 |
stateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use Category");
|
295 |
324 |
getEntity().addState(stateData);
|
|
325 |
State naUseSubCatState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
|
326 |
StateData subCatStateData = StateData.NewInstance(naUseSubCatState);
|
|
327 |
subCatStateData.setState(naUseSubCatState);
|
|
328 |
subCatStateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use SubCategory");
|
|
329 |
getEntity().addState(subCatStateData);
|
|
330 |
|
296 |
331 |
}
|
297 |
332 |
|
|
333 |
State naUseSubCatState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
298 |
334 |
combo_UseSubCategory.setEnabled(true);
|
|
335 |
combo_UseSubCategory.setSelection(naUseSubCatState);
|
299 |
336 |
|
300 |
337 |
}
|
301 |
338 |
else {
|
... | ... | |
305 |
342 |
StateData stateToRemove = itr.next();
|
306 |
343 |
itr.remove();
|
307 |
344 |
}
|
|
345 |
State naUseCatState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("983a7184-6a51-489e-aca1-f21fc4fdbae3"));
|
|
346 |
StateData stateData = StateData.NewInstance(naUseCatState);
|
|
347 |
stateData.setState(naUseCatState);
|
|
348 |
stateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use Category");
|
|
349 |
getEntity().addState(stateData);
|
308 |
350 |
List<State> termsSubCategory = new ArrayList<State>();
|
309 |
|
State emptyState = State.NewInstance();
|
310 |
|
termsSubCategory.add(emptyState);
|
|
351 |
State naUseSubCatState = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
|
352 |
StateData subCatStateData = StateData.NewInstance(naUseSubCatState);
|
|
353 |
subCatStateData.setState(naUseSubCatState);
|
|
354 |
subCatStateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use SubCategory");
|
|
355 |
getEntity().addState(subCatStateData);
|
|
356 |
termsSubCategory.add(naUseSubCatState);
|
|
357 |
|
311 |
358 |
combo_UseSubCategory.setTerms(termsSubCategory);
|
312 |
359 |
combo_UseSubCategory.setEnabled(false);
|
313 |
|
}
|
|
360 |
}
|
314 |
361 |
}
|
315 |
362 |
}
|
316 |
363 |
|
... | ... | |
361 |
408 |
}
|
362 |
409 |
}
|
363 |
410 |
}
|
|
411 |
State naUseSubCat = (State) CdmStore.getService(ITermService.class).find(UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62"));
|
|
412 |
StateData stateData = StateData.NewInstance(naUseSubCat);
|
|
413 |
stateData.setState(naUseSubCat);
|
|
414 |
stateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use SubCategory");
|
|
415 |
getEntity().addState(stateData);
|
|
416 |
|
364 |
417 |
}
|
365 |
418 |
}
|
366 |
419 |
if (eventSource == combo_PlantPart) {
|
... | ... | |
386 |
439 |
}
|
387 |
440 |
}
|
388 |
441 |
}
|
|
442 |
Modifier naPlantPartModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("30150a82-a12f-4278-96ad-7ce708efa082"));
|
|
443 |
getEntity().addModifier(naPlantPartModifier);
|
389 |
444 |
|
390 |
445 |
}
|
391 |
446 |
}
|
... | ... | |
412 |
467 |
}
|
413 |
468 |
}
|
414 |
469 |
}
|
|
470 |
Modifier naCountryModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("761dddee-bfa2-41f4-82df-3a19c71adee0"));
|
|
471 |
getEntity().addModifier(naCountryModifier);
|
415 |
472 |
}
|
416 |
473 |
}
|
417 |
474 |
if (eventSource == combo_HumanGroup) {
|
|
475 |
Modifier naHumanGroupModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("c4b63327-2548-429d-8d55-81fdba5900a5"));
|
|
476 |
Modifier naEthnicGroupModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("3ca851e5-d0d4-41cd-9066-f79e246c36c2"));
|
418 |
477 |
if (combo_HumanGroup.getSelection() != null) {
|
419 |
478 |
boolean isHumanGroupChanged = true;
|
420 |
479 |
for (Modifier modToCheck: getEntity().getModifiers()) {
|
... | ... | |
435 |
494 |
if(isHumanGroupChanged){
|
436 |
495 |
Modifier humanGroup = combo_HumanGroup.getSelection();
|
437 |
496 |
getEntity().addModifier(humanGroup);
|
|
497 |
getEntity().addModifier(naEthnicGroupModifier);
|
|
498 |
|
438 |
499 |
}
|
|
500 |
|
439 |
501 |
combo_EthnicGroup.setEnabled(true);
|
|
502 |
combo_EthnicGroup.setSelection(naEthnicGroupModifier);
|
|
503 |
|
440 |
504 |
} else {
|
441 |
505 |
Set<Modifier> modifiers = getEntity().getModifiers();
|
442 |
506 |
if(!modifiers.isEmpty()) {
|
... | ... | |
448 |
512 |
}
|
449 |
513 |
}
|
450 |
514 |
}
|
|
515 |
getEntity().addModifier(naHumanGroupModifier);
|
|
516 |
getEntity().addModifier(naEthnicGroupModifier);
|
451 |
517 |
List<Modifier> emptyListToResetComboBox = new ArrayList<Modifier>();
|
452 |
|
Modifier emptyMod = Modifier.NewInstance();
|
453 |
|
emptyListToResetComboBox.add(emptyMod);
|
|
518 |
emptyListToResetComboBox.add(naEthnicGroupModifier);
|
454 |
519 |
combo_EthnicGroup.setTerms(emptyListToResetComboBox);
|
|
520 |
combo_EthnicGroup.setSelection(naEthnicGroupModifier);
|
455 |
521 |
combo_EthnicGroup.setEnabled(false);
|
456 |
522 |
|
457 |
523 |
}
|
... | ... | |
481 |
547 |
}
|
482 |
548 |
|
483 |
549 |
}
|
|
550 |
Modifier naEthnicGroupModifier = (Modifier) CdmStore.getService(ITermService.class).find(UUID.fromString("3ca851e5-d0d4-41cd-9066-f79e246c36c2"));
|
|
551 |
getEntity().addModifier(naEthnicGroupModifier);
|
484 |
552 |
}
|
485 |
553 |
}
|
486 |
554 |
}
|
... | ... | |
516 |
584 |
State selectedUseCategory = combo_UseCategory.getSelection();
|
517 |
585 |
if (selectedUseCategory != null) {
|
518 |
586 |
combo_UseSubCategory.setTerms(setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false),selectedUseCategory));
|
519 |
|
|
520 |
587 |
if (!getEntity().getStates().isEmpty()) {
|
521 |
588 |
Iterator<StateData> itrExistingState = getEntity().getStates().iterator();
|
522 |
589 |
while(itrExistingState.hasNext()) {
|
AT: committing changes to formalise the use record string building.