Revision cb89f4f7
Added by Andreas Müller over 4 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterEditor.java | ||
---|---|---|
59 | 59 |
import eu.etaxonomy.cdm.api.service.ITermService; |
60 | 60 |
import eu.etaxonomy.cdm.api.service.IVocabularyService; |
61 | 61 |
import eu.etaxonomy.cdm.model.description.Character; |
62 |
import eu.etaxonomy.cdm.model.description.Feature; |
|
62 | 63 |
import eu.etaxonomy.cdm.model.term.DefinedTermBase; |
63 |
import eu.etaxonomy.cdm.model.term.FeatureNode; |
|
64 |
import eu.etaxonomy.cdm.model.term.FeatureTree; |
|
65 | 64 |
import eu.etaxonomy.cdm.model.term.Representation; |
65 |
import eu.etaxonomy.cdm.model.term.TermNode; |
|
66 |
import eu.etaxonomy.cdm.model.term.TermTree; |
|
66 | 67 |
import eu.etaxonomy.cdm.model.term.TermType; |
67 | 68 |
import eu.etaxonomy.cdm.model.term.TermVocabulary; |
68 | 69 |
import eu.etaxonomy.cdm.model.term.VocabularyEnum; |
... | ... | |
226 | 227 |
return; |
227 | 228 |
} |
228 | 229 |
Collection<Character> characters = createCharacters((TreeSelection)structureTreeSelection, (TreeSelection)propertyTreeSelection); |
229 |
FeatureNode<Character> parent = ((FeatureTree<Character>) characterTreeEditorComposite.getViewer().getInput()).getRoot();
|
|
230 |
TermNode<Character> parent = ((TermTree<Character>) characterTreeEditorComposite.getViewer().getInput()).getRoot();
|
|
230 | 231 |
for (Character character : characters) { |
231 | 232 |
//add new Character to feature tree |
232 | 233 |
CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid()); |
... | ... | |
291 | 292 |
public static Collection<Character> createCharacters(TreeSelection structureTreeSelection, TreeSelection propertyTreeSelection){ |
292 | 293 |
Set<Character> characters = new HashSet<>(); |
293 | 294 |
//get selected structures and properties |
294 |
Iterator<FeatureNode<DefinedTermBase>> structureIterator = structureTreeSelection.iterator();
|
|
295 |
Iterator<TermNode<DefinedTermBase>> structureIterator = structureTreeSelection.iterator();
|
|
295 | 296 |
|
296 | 297 |
//create all combinations of structures and properties |
297 | 298 |
while(structureIterator.hasNext()){ |
298 |
FeatureNode<DefinedTermBase> structureNode = structureIterator.next();
|
|
299 |
Iterator<FeatureNode<DefinedTermBase>> propertiesIterator = propertyTreeSelection.iterator();
|
|
299 |
TermNode<DefinedTermBase> structureNode = structureIterator.next();
|
|
300 |
Iterator<TermNode<DefinedTermBase>> propertiesIterator = propertyTreeSelection.iterator();
|
|
300 | 301 |
while(propertiesIterator.hasNext()){ |
301 |
FeatureNode<DefinedTermBase> propertyNode = propertiesIterator.next();
|
|
302 |
TermNode<DefinedTermBase> propertyNode = propertiesIterator.next();
|
|
302 | 303 |
Representation structureRepresentation = structureNode.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); |
303 | 304 |
Representation propertyRepresentation = propertyNode.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); |
304 | 305 |
String label = null; |
... | ... | |
327 | 328 |
// commit the conversation and start a new transaction immediately |
328 | 329 |
conversation.commit(true); |
329 | 330 |
|
330 |
FeatureTree<Character> featureTree = characterTreeEditorComposite.getFeatureTree();
|
|
331 |
TermTree<Character> featureTree = characterTreeEditorComposite.getFeatureTree();
|
|
331 | 332 |
if(featureTree!=null){ |
332 | 333 |
//save characters because they can be modified in this editor |
333 |
featureTree.getDistinctFeatures().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
|
|
334 |
featureTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
|
|
334 | 335 |
} |
335 | 336 |
CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(featureTree); |
336 | 337 |
|
... | ... | |
376 | 377 |
}); |
377 | 378 |
Map<Object, List<String>> propertyPathMap = |
378 | 379 |
new HashMap<Object, List<String>>(); |
379 |
propertyPathMap.put(FeatureNode.class,propertyPaths);
|
|
380 |
propertyPathMap.put(TermNode.class,propertyPaths);
|
|
380 | 381 |
return propertyPathMap; |
381 | 382 |
} |
382 | 383 |
|
383 | 384 |
@Override |
384 |
public List<FeatureTree<Character>> getRootEntities() {
|
|
385 |
List<FeatureTree<Character>> root = new ArrayList<>();
|
|
385 |
public List<TermTree<Character>> getRootEntities() {
|
|
386 |
List<TermTree<Character>> root = new ArrayList<>();
|
|
386 | 387 |
root.add(characterTreeEditorComposite.getFeatureTree()); |
387 | 388 |
return root; |
388 | 389 |
} |
... | ... | |
422 | 423 |
return (IStructuredSelection) characterTreeEditorComposite.getViewer().getSelection(); |
423 | 424 |
} |
424 | 425 |
|
425 |
public FeatureTree<Character> getCharacterTree(){
|
|
426 |
public TermTree<Character> getCharacterTree(){
|
|
426 | 427 |
return characterTreeEditorComposite.getFeatureTree(); |
427 | 428 |
} |
428 | 429 |
|
... | ... | |
434 | 435 |
} |
435 | 436 |
|
436 | 437 |
private class FeatureTreeChooserListener extends SelectionAdapter{ |
437 |
private FeatureTreeEditorComposite<?> featureTreeEditorComposite;
|
|
438 |
private FeatureTreeEditorComposite<Feature> featureTreeEditorComposite;
|
|
438 | 439 |
private TermType termType; |
439 | 440 |
|
440 |
public FeatureTreeChooserListener(FeatureTreeEditorComposite<?> featureTreeEditorComposite, TermType termType) {
|
|
441 |
public FeatureTreeChooserListener(FeatureTreeEditorComposite<Feature> featureTreeEditorComposite, TermType termType) {
|
|
441 | 442 |
super(); |
442 | 443 |
this.featureTreeEditorComposite = featureTreeEditorComposite; |
443 | 444 |
this.termType = termType; |
... | ... | |
445 | 446 |
|
446 | 447 |
@Override |
447 | 448 |
public void widgetSelected(SelectionEvent e) { |
448 |
FeatureTree tree = FeatureTreeSelectionDialog.select(featureTreeEditorComposite.getDisplay().getActiveShell(), null, termType);
|
|
449 |
TermTree<Feature> tree = FeatureTreeSelectionDialog.select(featureTreeEditorComposite.getDisplay().getActiveShell(), null, termType);
|
|
449 | 450 |
if(tree!=null){ |
450 | 451 |
featureTreeEditorComposite.setSelectedTree(tree); |
451 | 452 |
} |
... | ... | |
475 | 476 |
@Override |
476 | 477 |
public boolean postOperation(Object objectAffectedByOperation) { |
477 | 478 |
characterTreeEditorComposite.getViewer().refresh(); |
478 |
if(objectAffectedByOperation instanceof FeatureNode){
|
|
479 |
if(objectAffectedByOperation instanceof TermNode){
|
|
479 | 480 |
StructuredSelection selection = new StructuredSelection(objectAffectedByOperation); |
480 | 481 |
characterTreeEditorComposite.getViewer().setSelection(selection); |
481 | 482 |
} |
Also available in: Unified diff
ref #6794 adapt TaxEditor to new term structure (rename FeatureNode and FeatureTree)