Project

General

Profile

« Previous | Next » 

Revision 86bbdab9

Added by Katja Luther over 4 years ago

ref #7981: add aggregation wizard to character matrix

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterEditor.java
59 59
import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
60 60
import eu.etaxonomy.cdm.api.service.ITermTreeService;
61 61
import eu.etaxonomy.cdm.api.service.IVocabularyService;
62
import eu.etaxonomy.cdm.api.service.UpdateResult;
62 63
import eu.etaxonomy.cdm.model.description.Character;
63 64
import eu.etaxonomy.cdm.model.description.Feature;
64 65
import eu.etaxonomy.cdm.model.term.DefinedTerm;
......
233 234
                TermNode<Character> parent = ((TermTree<Character>) characterTreeEditorComposite.getViewer().getInput()).getRoot();
234 235
                for (Character character : characters) {
235 236
                    //add new Character to feature tree
236
                    CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
237
                    UpdateResult result = CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
238
                    cdmEntitySession.load(result, true);
237 239
                }
238 240
                refresh();
239 241
            }
......
321 323
                TermNode<DefinedTerm> propertyNode = propertiesIterator.next();
322 324
                Character character = CharacterTransfer.createCharacter(structureNode, propertyNode);
323 325
                characters.add(character);
326

  
324 327
            }
325 328
        }
326 329
        return characters;
......
335 338

  
336 339
        TermTree<Character> featureTree = characterTreeEditorComposite.getFeatureTree();
337 340

  
338
        CdmStore.getService(ITermTreeService.class).merge(featureTree);
341
        CdmStore.getService(ITermTreeService.class).merge(featureTree, true);
339 342

  
340 343
        // commit the conversation and start a new transaction immediately
341 344
        conversation.commit(true);
......
349 352
        Object[] expandedElements = characterTreeEditorComposite.getViewer().getExpandedElements();
350 353
        characterTreeEditorComposite.getViewer().getTree().removeAll();
351 354
        TermTree tree = (TermTree) characterTreeEditorComposite.getViewer().getInput();
355
        cdmEntitySession.load(tree, true);
352 356
        characterTreeEditorComposite.getViewer().setInput(tree);
353 357
        characterTreeEditorComposite.getViewer().setExpandedElements(expandedElements);
354 358
    }
......
398 402
    @Override
399 403
    public List<TermTree<Character>> getRootEntities() {
400 404
        List<TermTree<Character>> root = new ArrayList<>();
405
        cdmEntitySession.load(characterTreeEditorComposite.getFeatureTree(), true);
401 406
        root.add(characterTreeEditorComposite.getFeatureTree());
402 407
        return root;
403 408
    }
......
467 472
        public void widgetSelected(SelectionEvent e) {
468 473
            TermTree tree = FeatureTreeSelectionDialog.select(featureTreeEditorComposite.getDisplay().getActiveShell(), null, termType);
469 474
            if(tree!=null){
475
//                cdmEntitySession.load(tree, true);
470 476
                featureTreeEditorComposite.setSelectedTree(tree);
471 477
            }
472 478
        }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixBottomToolbar.java
22 22
import org.eclipse.core.runtime.jobs.Job;
23 23
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
24 24
import org.eclipse.jface.layout.GridDataFactory;
25
import org.eclipse.jface.viewers.IStructuredSelection;
25 26
import org.eclipse.jface.window.Window;
27
import org.eclipse.jface.wizard.WizardDialog;
26 28
import org.eclipse.swt.SWT;
27 29
import org.eclipse.swt.events.SelectionAdapter;
28 30
import org.eclipse.swt.events.SelectionEvent;
......
51 53
import eu.etaxonomy.taxeditor.model.MessagingUtils;
52 54
import eu.etaxonomy.taxeditor.store.CdmStore;
53 55
import eu.etaxonomy.taxeditor.store.StoreUtil;
56
import eu.etaxonomy.taxeditor.ui.dialog.configurator.StructuredAggregationConfigurationWizard;
54 57
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonSelectionDialog;
55 58

  
56 59
/**
......
183 186
        // FIXME: set taxon node filter for config (this is still not used in the aggregation)
184 187
        StructuredDescriptionAggregationConfiguration config = StructuredDescriptionAggregationConfiguration.NewInstance(
185 188
                null, null);
186
        config.setDatasetUuid(matrix.getDescriptiveDataSet().getUuid());
187
        config.setAggregateToHigherRanks(true);
188
        config.setAggregationMode(AggregationMode.byAreasAndRanks());
189
        config.setAdaptBatchSize(false);
190

  
189
        IStructuredSelection sel = matrix.getSelection();
190
        Object o = sel.getFirstElement();
191 191
        TaxonNodeFilter filter = TaxonNodeFilter.NewRankInstance(matrix.getDescriptiveDataSet().getMinRank(),
192 192
                matrix.getDescriptiveDataSet().getMaxRank());
193 193
        for (NamedArea namedArea : matrix.getDescriptiveDataSet().getGeoFilter()) {
194 194
            filter = filter.orArea(namedArea.getUuid());
195 195
        }
196
        for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
197
            filter = filter.orSubtree(taxonNode);
196
//        for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
197
//            filter = filter.orSubtree(taxonNode);
198
//        }
199

  
200
        if (o instanceof TaxonNodeDto){
201
            filter = filter.orSubtree(CdmStore.getService(ITaxonNodeService.class).load(((TaxonNodeDto)o).getUuid()));
202
        }else{
203
            for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
204
                filter = filter.orSubtree(taxonNode);
205
            }
198 206
        }
199 207
        config.setTaxonNodeFilter(filter);
200 208

  
209
        config.setDatasetUuid(matrix.getDescriptiveDataSet().getUuid());
210
        config.setAggregateToHigherRanks(true);
211
        config.setAggregationMode(AggregationMode.byAreasAndRanks());
212
        config.setAdaptBatchSize(false);
213
        StructuredAggregationConfigurationWizard aggregationWizard = new StructuredAggregationConfigurationWizard(config, this.matrix.getDescriptiveDataSet());
214
        WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
215
                aggregationWizard);
216

  
217
        int open = dialog.open();
218
        if (open != Window.OK){
219
            return;
220
        }
201 221
        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
202 222

  
203 223
        String jobLabel = "Aggregate Descriptive Data Set";

Also available in: Unified diff