Project

General

Profile

Download (2.8 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.preference;
10

    
11
import java.util.ArrayList;
12
import java.util.List;
13
import java.util.UUID;
14

    
15
import org.apache.commons.lang3.StringUtils;
16

    
17
import eu.etaxonomy.cdm.api.service.IVocabularyService;
18
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19
import eu.etaxonomy.cdm.model.term.TermType;
20
import eu.etaxonomy.cdm.persistence.dto.TermDto;
21
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
22
import eu.etaxonomy.taxeditor.store.CdmStore;
23

    
24
/**
25
 * @author k.luther
26
 * @since 05.06.2019
27
 *
28
 */
29
public class RankPreference extends GeneralTermPreferencePage {
30

    
31
    public RankPreference(){
32
        super();
33
        isAdminPreference = false;
34
        setPredicate(PreferencePredicate.AvailableRanks);
35
        type = TermType.Rank;
36
    }
37

    
38
    @Override
39
    protected void initialiseVocabularies() {
40

    
41
        if (getVocabularies() != null) {
42
            getVocabularies().clear();
43
        }
44
        List<TermVocabularyDto> vocs = new ArrayList<>();
45
        vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
46

    
47
        setVocabularies(vocs);
48
    }
49

    
50
    @Override
51
    public boolean performOk() {
52
        if (!isApply()){
53
            return true;
54
        }
55
        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
56
        List<UUID> listUIIDChecked = new ArrayList<>();
57
        List<TermDto> preferredTerms = new ArrayList<>();
58
        for (Object o : checkedElements) {
59
            if(o instanceof TermDto){
60
                TermDto termDto = (TermDto) o;
61
                listUIIDChecked.add(termDto.getUuid());
62
                preferredTerms.add(termDto);
63
            }
64
        }
65
        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
66

    
67
        PreferencesUtil.setStringValue(PreferencePredicate.AvailableRanks.getKey(), saveCheckedElements);
68
        String text = this.useLocalOrAdmin.getText();
69
        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
70
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), false);
71
        }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
72
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), true);
73
        }
74

    
75
        CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.Rank);
76
        PreferencesUtil.firePreferencesChanged(this.getClass());
77
        return true;
78

    
79
    }
80

    
81

    
82

    
83

    
84

    
85

    
86
}
(47-47/62)