2 * Copyright (C) 2019 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.preference
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
13 import java
.util
.UUID
;
15 import org
.apache
.commons
.lang3
.StringUtils
;
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
;
29 public class RankPreference
extends GeneralTermPreferencePage
{
31 public RankPreference(){
33 isAdminPreference
= false;
34 setPredicate(PreferencePredicate
.AvailableRanks
);
39 protected void initialiseVocabularies() {
41 if (getVocabularies() != null) {
42 getVocabularies().clear();
44 List
<TermVocabularyDto
> vocs
= new ArrayList
<>();
45 vocs
= CdmStore
.getService(IVocabularyService
.class).findVocabularyDtoByTermType(type
);
47 setVocabularies(vocs
);
51 public boolean performOk() {
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
);
65 String saveCheckedElements
= StringUtils
.join(listUIIDChecked
, ";"); //$NON-NLS-1$
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);
75 CdmStore
.getTermManager().setPreferredTermsByType(preferredTerms
, TermType
.Rank
);
76 PreferencesUtil
.firePreferencesChanged(this.getClass());