*/
package eu.etaxonomy.taxeditor.editor.workingSet;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.swt.widgets.Display;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.WorkingSet;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
areas.add(area);
}
TaxonNode taxonNode = composite.getTaxonNode();
+ Set<NamedArea> descriptions;
+ if(taxonNode!=null && taxonNode.getTaxon()!=null){
+ Taxon taxon = HibernateProxyHelper.deproxy(taxonNode.getTaxon(), Taxon.class);
+ Collection<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(SpecimenOrObservationBase.class, null, taxon, null, null, null, null, null);
+ for (SpecimenOrObservationBase specimen : specimens) {
+ Set<SpecimenDescription> specimenDescriptions = specimen.getSpecimenDescriptions();
+ for (SpecimenDescription specimenDescription : specimenDescriptions) {
+ workingSet.addDescription(specimenDescription);
+ }
+ }
+ }
FeatureTree characters = composite.getCharacters();
DefinedTermBase rankMaxSelection = composite.getRankMax().getSelection();
Rank rankMax = null;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.WorkingSet;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
private List<SpecimenDescription> getDescriptions(WorkingSet workingSet) {
List<SpecimenDescription> descriptions = new ArrayList<>();
- Set<TaxonNode> taxonSubtreeFilter = workingSet.getTaxonSubtreeFilter();
- for (TaxonNode taxonNode : taxonSubtreeFilter) {
- Taxon taxon = taxonNode.getTaxon();
- if(taxon!=null){
- taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class);
- Collection<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(SpecimenOrObservationBase.class, null, taxon, null, null, null, null, null);
- for (SpecimenOrObservationBase specimen : specimens) {
- descriptions.addAll(specimen.getSpecimenDescriptions());
- }
+ Set<DescriptionBase> wsDescriptions = workingSet.getDescriptions();
+ for (DescriptionBase descriptionBase : wsDescriptions) {
+ if(descriptionBase instanceof SpecimenDescription){
+ descriptions.add((SpecimenDescription) descriptionBase);
}
}
return descriptions;