* @see eu.etaxonomy.cdm.api.service.IClassificationService#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)
*/
@Override
- public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(Classification classification) {
- return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification);
+ public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(Classification classification, List<UUID> excludeTaxa) {
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, excludeTaxa);
}
/**
excludeTaxa.add(actualTaxon.getUuid());
}
Classification classification = null;
+ TaxonNode actualNode = null;
if (actualTaxon != null){
if (!actualTaxon.getTaxonNodes().isEmpty() && actualTaxon.getTaxonNodes().size() ==1){
- classification = actualTaxon.getTaxonNodes().iterator().next().getClassification();
+ actualNode = actualTaxon.getTaxonNodes().iterator().next();
+ classification = actualNode.getClassification();
+
}
}
TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
editor.getConversationHolder(),
"Choose the accepted taxon",
excludeTaxa,
- null,classification
+ null, classification
);
if (newAcceptedTaxonNode != null){
Taxon targetTaxon = newAcceptedTaxonNode.getTaxon();
private List<Classification> classifications;
private Classification selectedClassification;
+ private final List<UUID> excludeTaxa;
protected TaxonNodeSelectionDialog(Shell shell, ConversationHolder conversation, String title, List<UUID> excludeTaxa, boolean multi, TaxonNode node, Classification classification) {
super(shell, conversation, title, multi, TaxonNodeSelectionDialog.class.getCanonicalName(), node);
setListLabelProvider(labelProvider);
setDetailsLabelProvider(labelProvider);
-
+ this.excludeTaxa = excludeTaxa;
if(classification != null){
selectedClassification = classification;
}
+ initModel();
}
/** {@inheritDoc} */
return o1.getTitleCache().compareTo(o2.getTitleCache());
}
});
- selectedClassification = classifications.iterator().next();
+ if (this.cdmBaseToBeFiltered == null){
+ selectedClassification = classifications.iterator().next();
+ } else {
+ selectedClassification = this.cdmBaseToBeFiltered.getClassification();
+ }
}
- model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification);
+ model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification, excludeTaxa);
}
/** {@inheritDoc} */