ref #8263 Full refresh when creating a new vocabulary
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 May 2019 13:11:11 +0000 (15:11 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 May 2019 13:11:11 +0000 (15:11 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java

index 5ce8b717cf71b08565001c1f910f53fb7089741e..1b68f88b42b48403893491035ac552688f4fabd3 100644 (file)
@@ -45,6 +45,7 @@ import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -142,7 +143,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
        public boolean postOperation(Object objectAffectedByOperation) {
         input.initialiseVocabularies();
 
-           Collection<TermDto> termsToSelect = new HashSet<>();
+           Collection<AbstractTermDto> itemsToSelect = new HashSet<>();
 
            if(objectAffectedByOperation instanceof Collection){
                for (Object o : (Collection<?>)objectAffectedByOperation) {
@@ -152,22 +153,26 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
                 else if(o instanceof TermDto){
                     viewer.refresh(((TermDto) o).getVocabularyDto());
                     viewer.refresh(o);
-                    termsToSelect.add((TermDto) o);
+                    itemsToSelect.add((TermDto) o);
                 }
             }
            }
-           if(objectAffectedByOperation instanceof TermDto){
+           if(objectAffectedByOperation instanceof TermVocabularyDto){
+               viewer.refresh();
+               itemsToSelect.add((AbstractTermDto) objectAffectedByOperation);
+           }
+           else if(objectAffectedByOperation instanceof TermDto){
                TermDto termDto = (TermDto) objectAffectedByOperation;
-            termsToSelect.add(termDto);
+            itemsToSelect.add(termDto);
                viewer.refresh(termDto.getVocabularyDto());
            }
            else{
                viewer.refresh(objectAffectedByOperation);
            }
-               if(!termsToSelect.isEmpty()){
-                       StructuredSelection selection = new StructuredSelection(termsToSelect);
+               if(!itemsToSelect.isEmpty()){
+                       StructuredSelection selection = new StructuredSelection(itemsToSelect);
             viewer.setSelection(selection);
-            for (TermDto termDto : termsToSelect) {
+            for (AbstractTermDto termDto : itemsToSelect) {
                 viewer.expandToLevel(termDto, 1);
             }
                }