Project

General

Profile

« Previous | Next » 

Revision 8de0560f

Added by Patrick Plitzner over 6 years ago

ref #7086, #7095 Add descriptions to WS initially in matrix editor

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/WorkingSetEditor.java
46 46

  
47 47
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
48 48
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
49
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
50 49
import eu.etaxonomy.cdm.api.service.ITermService;
51 50
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
52
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
53 51
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
54 52
import eu.etaxonomy.cdm.model.description.FeatureTree;
55
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
56 53
import eu.etaxonomy.cdm.model.description.WorkingSet;
57 54
import eu.etaxonomy.cdm.model.location.NamedArea;
58 55
import eu.etaxonomy.cdm.model.name.Rank;
59
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
60 56
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
61
import eu.etaxonomy.cdm.model.taxon.Taxon;
62 57
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
63 58
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
64 59
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
......
225 220
                if(taxonTreeNode instanceof TaxonNode){
226 221
                    TaxonNode taxonNode = (TaxonNode)taxonTreeNode;
227 222
                    workingSet.addTaxonSubtree(taxonNode);
228
                    if(taxonNode.getTaxon()!=null){
229
                        Taxon taxon = HibernateProxyHelper.deproxy(taxonNode.getTaxon(), Taxon.class);
230
                        Collection<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(SpecimenOrObservationBase.class, null, taxon, null, null, null, null, null);
231
                        for (SpecimenOrObservationBase specimen : specimens) {
232
                            Set<SpecimenDescription> specimenDescriptions = specimen.getSpecimenDescriptions();
233
                            for (SpecimenDescription specimenDescription : specimenDescriptions) {
234
                                workingSet.addDescription(specimenDescription);
235
                            }
236
                        }
237
                    }
238 223
                }
239 224
            }
240 225
        }
241 226
        FeatureTree characters = composite.getCharacters();
242
        //save characters because they can be modified in this editor
243
        characters.getDistinctFeatures().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
227
        if(characters!=null){
228
            //save characters because they can be modified in this editor
229
            characters.getDistinctFeatures().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
230
        }
244 231

  
245 232

  
246 233
        DefinedTermBase rankMaxSelection = composite.getRankMax().getSelection();

Also available in: Unified diff