Project

General

Profile

« Previous | Next » 

Revision 785fc5d7

Added by Patrick Plitzner over 7 years ago

ref #5458 Add abbreviated labels to distribution table

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/presenter/dbstatus/DistributionTablePresenter.java
9 9
import java.util.HashSet;
10 10
import java.util.List;
11 11
import java.util.Set;
12
import java.util.SortedSet;
13 12
import java.util.UUID;
14 13

  
15 14
import com.vaadin.server.VaadinSession;
......
20 19
import eu.etaxonomy.cdm.api.service.ITaxonService;
21 20
import eu.etaxonomy.cdm.api.service.ITermService;
22 21
import eu.etaxonomy.cdm.api.service.IVocabularyService;
23
import eu.etaxonomy.cdm.common.CdmUtils;
24 22
import eu.etaxonomy.cdm.model.common.CdmBase;
25 23
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
26 24
import eu.etaxonomy.cdm.model.common.Language;
......
42 40

  
43 41
public class DistributionTablePresenter {
44 42

  
45
	private final IClassificationService classificationService;
43
    private final IClassificationService classificationService;
46 44
	private final IVocabularyService vocabularyService;
47 45
	private final IDescriptionService descriptionService;
48 46
	private final ITaxonNodeService taxonNodeService;
......
119 117
	}
120 118

  
121 119
	public List<String> getAbbreviatedTermList() {
122
		SortedSet<DefinedTermBase> terms = getTermSet();
120
		Set<NamedArea> terms = getTermSet();
123 121
		List<String> list = new ArrayList<String>();
124 122
		for(DefinedTermBase dtb: terms){
125 123
		    for(Representation r : dtb.getRepresentations()){
......
129 127
		return list;
130 128
	}
131 129

  
132
    public List<String> getNamedAreas(){
133
    	String selectedAreas = (String) VaadinSession.getCurrent().getAttribute("selectedAreas");
134
    	if(CdmUtils.isBlank(selectedAreas)){
135
    	    SortedSet<DefinedTermBase> terms = getTermSet();
136
            List<String> list = new ArrayList<String>();
137
            for(DefinedTermBase dtb: terms){
138
               list.add(dtb.getTitleCache());
139
            }
140
    	    return list;
141
    	}
142
    	return Arrays.asList(selectedAreas.split(","));
130
	public Set<NamedArea> getNamedAreas(){
131
	    Set<NamedArea> namedAreas = (Set<NamedArea>) VaadinSession.getCurrent().getAttribute("selectedAreas");
132
	    if(namedAreas.isEmpty()){
133
	        return getTermSet();
134
	    }
135
        return namedAreas;
136
	}
137

  
138
    public List<String> getNamedAreasLabels(boolean abbreviated){
139
        Set<NamedArea> selectedAreas = getNamedAreas();
140
    	List<String> namedAreaTitles = new ArrayList<>();
141
    	for (NamedArea namedArea : selectedAreas) {
142
    	    if(abbreviated){
143
    	        namedAreaTitles.add(namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel());
144
    	    }
145
    	    else{
146
    	        namedAreaTitles.add(namedArea.getRepresentation(Language.DEFAULT()).getLabel());
147
    	    }
148
        }
149
    	return namedAreaTitles;
143 150
    }
144 151

  
145
	private SortedSet<DefinedTermBase> getTermSet(){
152
	private Set<NamedArea> getTermSet(){
146 153
	    VaadinSession session = VaadinSession.getCurrent();
147 154
	    UUID termUUID = (UUID) session.getAttribute("selectedTerm");
148
	    TermVocabulary<DefinedTermBase> term = vocabularyService.load(termUUID);
149
	    term = CdmBase.deproxy(term, TermVocabulary.class);
150
	    return term.getTermsOrderedByLabels(Language.DEFAULT());
155
	    TermVocabulary<NamedArea> vocabulary = vocabularyService.load(termUUID);
156
	    vocabulary = CdmBase.deproxy(vocabulary, TermVocabulary.class);
157
	    return vocabulary.getTermsOrderedByLabels(Language.DEFAULT());
151 158
	}
152 159

  
153 160
	public HashMap<DescriptionElementBase, Distribution> getDistribution(DefinedTermBase dt, Taxon taxon) {
......
209 216
		for (TaxonNode taxonNode : getAllNodes()) {
210 217
			nodeIds.add(taxonNode.getId());
211 218
		}
212
		List<String> namesAreaUuids = getNamedAreas();
213
		CdmSQLContainer container = new CdmSQLContainer(CdmQueryFactory.generateTaxonDistributionQuery(nodeIds, namesAreaUuids));
219
		Set<NamedArea> namesAreas = getNamedAreas();
220
		CdmSQLContainer container = new CdmSQLContainer(CdmQueryFactory.generateTaxonDistributionQuery(nodeIds, namesAreas, true));
214 221
		return container;
215 222
	}
216 223

  

Also available in: Unified diff