Project

General

Profile

« Previous | Next » 

Revision f8d807a7

Added by Katja Luther about 3 years ago

ref #9504: fix saving label changes of newly created term trees

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditor.java
51 51
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
52 52
import eu.etaxonomy.cdm.api.service.ITermNodeService;
53 53
import eu.etaxonomy.cdm.api.service.ITermTreeService;
54
import eu.etaxonomy.cdm.api.service.UpdateResult;
54 55
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
55 56
import eu.etaxonomy.cdm.model.term.TermNode;
56 57
import eu.etaxonomy.cdm.model.term.TermType;
......
125 126
    Map<UUID,TermTreeDto> trees;
126 127

  
127 128
    Map<UUID, TermNodeDto> uuidTermMap = new HashMap<>();
128
    List<AbstractPostOperation<TermNode>> createOperationList = new ArrayList<>();
129
    Map<UUID, CreateFeatureTreeOperation> createOperationList = new HashMap<>();
129 130
    List<AbstractPostOperation<TermNode>> operationList = new ArrayList<>();
130 131
    List<TermNodeDto> listToUpdate = new ArrayList<>();
131 132

  
......
308 309

  
309 310
        // commit the conversation and start a new transaction immediately
310 311
        Object[] expandedElements = this.viewer.getExpandedElements();
312
        ISelection sel = this.viewer.getSelection();
311 313
        conversation.commit(true);
312 314
        if (createOperationList != null && !createOperationList.isEmpty()){
313
            for (AbstractPostOperation<TermNode> operation: createOperationList){
315
            for (CreateFeatureTreeOperation operation: createOperationList.values()){
316
                TermTreeDto termDto = getTreeDtoForUuid(operation.getElementUuid());
317
                operation.getElement().setTitleCache(termDto.getTitleCache(), true);
318
                operation.getElement().setAllowDuplicates(termDto.isAllowDuplicate());
319
                operation.getElement().setFlat(termDto.isFlat());
320
                operation.getElement().setOrderRelevant(termDto.isOrderRelevant());
314 321
                AbstractUtility.executeOperation(operation, sync);
315 322
            }
316 323
            createOperationList.clear();
......
326 333
        CdmStore.getService(ITermNodeService.class).saveTermNodeDtoList(listToUpdate);
327 334
        listToUpdate.clear();
328 335
        List<TermTreeDto> rootEntities = getRootEntities();
329
        CdmStore.getService(ITermTreeService.class).saveOrUpdateTermTreeDtoList(rootEntities);
330
        initializeTrees();
336
        UpdateResult result = CdmStore.getService(ITermTreeService.class).saveOrUpdateTermTreeDtoList(rootEntities);
331 337
        conversation.commit(true);
332

  
333 338
        this.setDirty(false);
339
        initializeTrees();
340
        this.viewer.setSelection(sel);
334 341
//        this.viewer.setExpandedElements(expandedElements);
335 342
	}
336 343

  
......
524 531
    @Override
525 532
    public void addOperation(AbstractPostOperation operation) {
526 533
        if (operation instanceof CreateFeatureTreeOperation){
527
            createOperationList.add(operation);
534
            createOperationList.put(((CreateFeatureTreeOperation)operation).getElementUuid(), (CreateFeatureTreeOperation)operation);
528 535
        }else{
529 536
            operationList.add(operation);
530 537
        }
......
535 542
    private void addSaveCandidate(@UIEventTopic(WorkbenchEventConstants.ADD_SAVE_CANDIDATE) UUID cdmbaseUuid) {
536 543
        for (UUID uuid: uuidTermMap.keySet()) {
537 544
            if (uuid.equals(cdmbaseUuid)){
538
                listToUpdate.add(uuidTermMap.get(uuid));
545
               listToUpdate.add(uuidTermMap.get(uuid));
539 546
            }
540 547

  
541 548
        }
549

  
542 550
    }
543 551

  
544 552
    @Override
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CreateTermTreeHandler.java
16 16
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
17 17
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
18 18
import org.eclipse.e4.ui.services.IServiceConstants;
19
import org.eclipse.jface.viewers.IStructuredSelection;
20
import org.eclipse.jface.viewers.SelectionChangedEvent;
21
import org.eclipse.jface.viewers.StructuredSelection;
19 22

  
20 23
import eu.etaxonomy.cdm.model.term.TermTree;
21 24
import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
......
42 45
        newTree.setAllowDuplicates(false);
43 46
        newTree.setFlat(false);
44 47
        newTree.setOrderRelevant(true);
45
        newTree.setTitleCache(String.format("New %s tree", editor.getTermType().getLabel()));
48
        newTree.setTitleCache(String.format("_New %s tree", editor.getTermType().getLabel()), true);
46 49

  
47 50
        CreateFeatureTreeOperation operation = new CreateFeatureTreeOperation(newTree, editor, editor);
48 51
        TermTreeDto newDto = TermTreeDto.fromTree(newTree);
......
53 56
        ((TermTreeEditor)editor).getViewer().setInput(((TermTreeEditor)editor).getTrees());
54 57

  
55 58
        ((TermTreeEditor)editor).getViewer().setExpandedElements(expandedElements);
59
        IStructuredSelection sel = new StructuredSelection(newDto);
60
        SelectionChangedEvent event = new SelectionChangedEvent(
61
                ((TermTreeEditor)editor).getViewer(), sel);
62
        ((TermTreeEditor)editor).selectionChanged(event);
56 63

  
57 64
    }
58 65

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/CreateFeatureTreeOperation.java
47 47
    public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
48 48
        return null;
49 49
    }
50

  
51
    public void setElement(TermTree termTree){
52
        this.element = termTree;
53
    }
50 54
}

Also available in: Unified diff