X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/a3c56b93813fa25a19da96969a694c22af7f0c30..e751d1723a238ce06ee6b1dc0cd67399a7ae8618:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java index d4b4a9dab..4a4411264 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java @@ -57,17 +57,21 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.ITermService; -import eu.etaxonomy.cdm.model.common.DefinedTermBase; import eu.etaxonomy.cdm.model.description.DescriptiveDataSet; -import eu.etaxonomy.cdm.model.description.FeatureTree; +import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.location.NamedArea; import eu.etaxonomy.cdm.model.name.Rank; import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; +import eu.etaxonomy.cdm.model.term.DefinedTermBase; +import eu.etaxonomy.cdm.model.term.TermTree; +import eu.etaxonomy.cdm.model.term.TermType; import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto; import eu.etaxonomy.cdm.persistence.dto.TermDto; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.editor.l10n.Messages; +import eu.etaxonomy.taxeditor.event.EventUtility; +import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants; import eu.etaxonomy.taxeditor.model.IDirtyMarkable; import eu.etaxonomy.taxeditor.model.IPartContentHasDetails; import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData; @@ -128,13 +132,14 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { @Override public void modifyText(ModifyEvent e) { descriptiveDataSet.setLabel(composite.getTxt_label().getText()); + EventUtility.postSyncEvent(WorkbenchEventConstants.REFRESH_DATASET_NAVIGATOR, descriptiveDataSet); dirty.setDirty(true); } }; composite.getRankMin().addSelectionChangedListener(event->dirty.setDirty(true)); composite.getRankMin().setText("Select min rank..."); composite.getRankMax().addSelectionChangedListener(event->dirty.setDirty(true)); - composite.getRankMin().setText("Select max rank..."); + composite.getRankMax().setText("Select max rank..."); composite.getBtnRemoveRankMin().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { @@ -156,7 +161,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { AreasSelectionDialog areasSelectionDialog = new AreasSelectionDialog(composite.getShell(), composite.getAreas()); if(areasSelectionDialog.open()==Window.OK){ - Set selectedAreas = areasSelectionDialog.getSelectedAreas(); + List selectedAreas = areasSelectionDialog.getSelectedAreas(); if(selectedAreas!=null){ composite.setAreas(selectedAreas); dirty.setDirty(true); @@ -165,7 +170,13 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { } }); - composite.getFeatureTreeEditorComposite().init("Character Tree", null, null, e->selectionService.setSelection(e.getSelection()), this, null); + composite.getFeatureTreeEditorComposite().init("Character Tree", + TermType.Character, + null, + null, + e->selectionService.setSelection(e.getSelection()), + this, + null); //add drag'n'drop support Transfer[] transfers = new Transfer[] {LocalSelectionTransfer.getTransfer()}; @@ -204,13 +215,8 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { } Set geoFilter = descriptiveDataSet.getGeoFilter(); if(geoFilter!=null && !geoFilter.isEmpty()){ - Set terms = geoFilter.stream().map(filter->new TermDto( - filter.getUuid(), - filter.getRepresentations(), - filter.getPartOf()!=null?filter.getPartOf().getUuid():null, - filter.getVocabulary().getUuid(), - filter.getOrderIndex())).collect(Collectors.toSet()); - composite.setAreas(terms); + Set terms = geoFilter.stream().map(filter->TermDto.fromTerm(filter, true)).collect(Collectors.toSet()); + composite.setAreas(new ArrayList<>(terms)); } Set taxonSubtreeFilter = descriptiveDataSet.getTaxonSubtreeFilter(); if(taxonSubtreeFilter!=null){ @@ -274,7 +280,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { @Persist @Override public void save(IProgressMonitor monitor) { - Set areas = composite.getAreas(); + Collection areas = composite.getAreas(); Object input = composite.getTaxonNodeTree().getInput(); if(input!=null){ descriptiveDataSet.setTaxonSubtreeFilter(new HashSet<>());//clear existing filter @@ -286,10 +292,10 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { } } } - FeatureTree characters = composite.getCharacters(); + TermTree characters = composite.getCharacters(); if(characters!=null){ //save characters because they can be modified in this editor - characters.getDistinctFeatures().forEach(character->CdmStore.getService(ITermService.class).merge(character,true)); + characters.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true)); } @@ -319,6 +325,11 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable { dirty.setDirty(false); } + @Override + public boolean isDirty() { + return dirty.isDirty(); + } + @PreDestroy public void dispose() { if (conversation != null) {