Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / RankPreference.java
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 }