Project

General

Profile

« Previous | Next » 

Revision f5b88527

Added by Fabian Reimeier over 6 years ago

ref #6903 reworked distribution area sorting

View differences:

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