Revision f5b88527
Added by Fabian Reimeier over 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/container/NamedAreaContainer.java | ||
---|---|---|
7 | 7 |
|
8 | 8 |
import com.vaadin.data.util.BeanItemContainer; |
9 | 9 |
|
10 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
|
11 |
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary; |
|
10 | 12 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
11 | 13 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
12 | 14 |
import eu.etaxonomy.cdm.vaadin.util.TermCacher; |
... | ... | |
18 | 20 |
public NamedAreaContainer(TermVocabulary<NamedArea> vocabulary) |
19 | 21 |
throws IllegalArgumentException { |
20 | 22 |
super(NamedArea.class); |
21 |
List<NamedArea> namedAreas = new ArrayList<>(vocabulary.getTerms()); |
|
22 |
Collections.sort(namedAreas, new AlphabeticallyAscendingNamedAreaComparator()); |
|
23 |
List<NamedArea> namedAreas; |
|
24 |
if (vocabulary.isInstanceOf(OrderedTermVocabulary.class)) { |
|
25 |
OrderedTermVocabulary orderedVoc = CdmBase.deproxy(vocabulary, OrderedTermVocabulary.class); |
|
26 |
namedAreas = new ArrayList<>(orderedVoc.getOrderedTerms()); |
|
27 |
Collections.reverse(namedAreas); |
|
28 |
}else { |
|
29 |
namedAreas = new ArrayList<>(vocabulary.getTerms()); |
|
30 |
Collections.sort(namedAreas, new AlphabeticallyAscendingNamedAreaComparator()); |
|
31 |
} |
|
32 |
|
|
23 | 33 |
TermCacher termCacher = TermCacher.getInstance(); |
24 | 34 |
for (NamedArea namedArea: namedAreas) { |
25 | 35 |
termCacher.addNamedArea(namedArea); |
src/main/java/eu/etaxonomy/cdm/vaadin/util/DistributionEditorUtil.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.sql.SQLException; |
4 | 4 |
import java.util.List; |
5 |
import java.util.Set; |
|
6 | 5 |
import java.util.UUID; |
7 | 6 |
|
8 | 7 |
import com.vaadin.server.VaadinSession; |
... | ... | |
31 | 30 |
|
32 | 31 |
public static final String SEPARATOR = ";;"; |
33 | 32 |
|
34 |
public static void updateDistributionView(IDistributionTableView distributionTableView, List<UUID> taxonNodes, TermVocabulary<NamedArea> areaVoc, Set<NamedArea> selectedAreas, UUID classificationUuid) { |
|
33 |
public static void updateDistributionView(IDistributionTableView distributionTableView, List<UUID> taxonNodes, TermVocabulary<NamedArea> areaVoc, |
|
34 |
List<NamedArea> selectedAreas, UUID classificationUuid) { |
|
35 | 35 |
VaadinSession.getCurrent().setAttribute(SATTR_TAXON_NODES_UUID, taxonNodes); |
36 | 36 |
VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREA_VOCABULARY_UUID, areaVoc.getUuid()); |
37 | 37 |
VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREAS, selectedAreas); |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/AreaAndTaxonSettingsConfigWindow.java | ||
---|---|---|
288 | 288 |
} |
289 | 289 |
} |
290 | 290 |
areaVoc = (TermVocabulary<NamedArea>) distAreaBox.getValue(); |
291 |
Set<NamedArea> selectedAreas = (Set<NamedArea>) namedAreaList.getValue();
|
|
291 |
List<NamedArea> selectedAreas = new ArrayList<>((Set<NamedArea>)namedAreaList.getValue()); //getValue is LinkedHashSet and therefore sorted
|
|
292 | 292 |
DistributionEditorUtil.updateDistributionView(distributionTableView, taxonNodes, areaVoc, selectedAreas, classificationUuid); |
293 | 293 |
window.close(); |
294 | 294 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/DistributionTablePresenter.java | ||
---|---|---|
37 | 37 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
38 | 38 |
import eu.etaxonomy.cdm.model.common.DefinedTermBase; |
39 | 39 |
import eu.etaxonomy.cdm.model.common.Language; |
40 |
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary; |
|
40 | 41 |
import eu.etaxonomy.cdm.model.common.Representation; |
41 | 42 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
42 | 43 |
import eu.etaxonomy.cdm.model.description.DescriptionBase; |
... | ... | |
171 | 172 |
} |
172 | 173 |
|
173 | 174 |
public List<NamedArea> getNamedAreas(){ |
174 |
Set<NamedArea> namedAreas = (Set<NamedArea>) VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_SELECTED_AREAS);
|
|
175 |
List<NamedArea> namedAreas = (List<NamedArea>)VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_SELECTED_AREAS);
|
|
175 | 176 |
if(namedAreas!=null && namedAreas.isEmpty()){ |
176 | 177 |
return getTermSet(); |
177 | 178 |
} |
178 |
if(namedAreas != null) { |
|
179 |
return namedAreas.stream().collect(Collectors.toCollection(ArrayList::new)); |
|
180 |
} |
|
181 |
return null; |
|
179 |
return namedAreas; |
|
182 | 180 |
} |
183 | 181 |
|
184 | 182 |
private List<NamedArea> getTermSet(){ |
... | ... | |
186 | 184 |
UUID vocUUID = (UUID) session.getAttribute(DistributionEditorUtil.SATTR_SELECTED_AREA_VOCABULARY_UUID); |
187 | 185 |
TermVocabulary<NamedArea> vocabulary = CdmSpringContextHelper.getVocabularyService().load(vocUUID, Arrays.asList("terms")); //$NON-NLS-1$ |
188 | 186 |
vocabulary = CdmBase.deproxy(vocabulary, TermVocabulary.class); |
189 |
return vocabulary.getTermsOrderedByLabels(Language.DEFAULT()).stream().collect(Collectors.toCollection(ArrayList::new)); |
|
187 |
if (vocabulary instanceof OrderedTermVocabulary) { |
|
188 |
List<NamedArea> list = new ArrayList<> (((OrderedTermVocabulary)vocabulary).getOrderedTerms()); |
|
189 |
Collections.reverse(list); |
|
190 |
return list; |
|
191 |
}else { |
|
192 |
return vocabulary.getTermsOrderedByLabels(Language.DEFAULT()).stream().collect(Collectors.toCollection(ArrayList::new)); |
|
193 |
} |
|
194 |
|
|
190 | 195 |
} |
191 | 196 |
|
192 | 197 |
public HashMap<DescriptionElementBase, Distribution> getDistribution(DefinedTermBase dt, Taxon taxon) { |
Also available in: Unified diff
ref #6903 reworked distribution area sorting