import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.DescriptionAggregationConfiguration;
import eu.etaxonomy.cdm.api.service.config.IdentifiableServiceConfiguratorImpl;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.description.QuantitativeData;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
import eu.etaxonomy.cdm.strategy.generate.PolytomousKeyGenerator;
import eu.etaxonomy.cdm.strategy.generate.PolytomousKeyGeneratorConfigurator;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonSelectionDialog;
/**
* @author pplitzner
System.out.println("Key with same name found for this data set found");
}
key.setTitleCache(descriptiveDataSet.getTitleCache(), true);
- keyService.save(key);
+
+ Set<TaxonNodeDto> nodeDtos = matrix.getDescriptiveDataSet().getTaxonSubtreeFilter().stream()
+ .map(node->new TaxonNodeDto(node))
+ .collect(Collectors.toSet());
+ TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).findCommonParentDto(nodeDtos);
+ UUID taxonUuid = parentDto.getTaxonUuid();
+ int response = MessagingUtils.confirmDialog(
+ "Choose taxonomic scope",
+ String.format("The common parent taxon of this data set is :\n%s\n\n"
+ + "Do you want to use this as the taxonomic scope for the polytomous key?"
+ , parentDto.getTaxonTitleCache()), "Yes", "Choose different taxon", "Cancel");
+ if(response==2){
+ return;
+ }
+ else if(response==1){
+ Taxon taxon = TaxonSelectionDialog.selectTaxon(getShell(), null);
+ if(taxon==null){
+ return;
+ }
+ taxonUuid = taxon.getUuid();
+ }
+
+ key.addTaxonomicScope((Taxon) CdmStore.getService(ITaxonService.class).load(taxonUuid));
+
+ keyService.saveOrUpdate(key);
key.print(System.out);
}
});