Revision 785fc5d7
Added by Patrick Plitzner over 7 years ago
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
ref #5458 Add abbreviated labels to distribution table