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
.databaseAdmin
.preferencePage
;
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
.ITermService
;
18 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
19 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
20 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTermBase
;
21 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermDto
;
22 import eu
.etaxonomy
.taxeditor
.preference
.LocalOrDefaultEnum
;
23 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
24 import eu
.etaxonomy
.taxeditor
.preference
.RankPreference
;
25 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
32 public class RankAdminPreference
extends RankPreference
{
35 public RankAdminPreference(){
37 isAdminPreference
= true;
43 public boolean performOk() {
47 int index
= useLocalOrAdmin
.getSelectionIndex();
48 if (pref
== null && index
== 0){
49 PreferencesUtil
.setPreferenceToDB(CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.AvailableRanks
, null));
50 PreferencesUtil
.updateDBPreferences();
51 PreferencesUtil
.firePreferencesChanged(this.getClass());
54 Object
[] checkedElements
= treeComposite
.getViewer().getCheckedElements();
55 List
<UUID
> listUIIDChecked
= new ArrayList
<>();
56 List
<DefinedTermBase
> preferredTerms
= new ArrayList
<>();
57 for (Object o
: checkedElements
) {
58 if(o
instanceof TermDto
){
59 TermDto termDto
= (TermDto
) o
;
60 listUIIDChecked
.add(termDto
.getUuid());
61 preferredTerms
.add(CdmStore
.getService(ITermService
.class).load(termDto
.getUuid()));
64 String saveCheckedElements
= StringUtils
.join(listUIIDChecked
, ";"); //$NON-NLS-1$
65 if (StringUtils
.isBlank(saveCheckedElements
)){
66 saveCheckedElements
= null;
68 CdmPreference savePref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.AvailableRanks
, saveCheckedElements
);
69 String text
= this.useLocalOrAdmin
.getText();
70 if (text
.equals(LocalOrDefaultEnum
.Database
.getLabel()) ){
71 savePref
.setAllowOverride(false);
72 }else if (text
.equals(LocalOrDefaultEnum
.AllowOverride
.getLabel())){
73 savePref
.setAllowOverride(true);
76 PreferencesUtil
.setPreferenceToDB(savePref
);
77 PreferencesUtil
.updateDBPreferences();
78 PreferencesUtil
.firePreferencesChanged(this.getClass());