2 * Copyright (C) 2018 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
.wizard
;
11 import java
.util
.ArrayList
;
12 import java
.util
.Arrays
;
13 import java
.util
.Collection
;
14 import java
.util
.List
;
17 import org
.apache
.commons
.lang
.StringUtils
;
18 import org
.eclipse
.swt
.widgets
.Composite
;
20 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
21 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
22 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
23 import eu
.etaxonomy
.cdm
.persistence
.dto
.AbstractTermDto
;
24 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermVocabularyDto
;
25 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.RootElementsOnlyTreeContentProvider
;
26 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
27 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
28 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySession
;
29 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySessionEnabled
;
36 public class AvailableAreaVocabulariesPage
extends AbstractAdminTermSelectionWizardPage
implements ICdmEntitySessionEnabled
{
41 public AvailableAreaVocabulariesPage(String pageName
, boolean localPref
, CdmPreference pref
, String featureTitle
) {
42 super(pageName
, TermType
.NamedArea
, pref
);
43 this.localPref
= localPref
;
44 this.featureTitle
= featureTitle
;
49 public void createControl(Composite parent
) {
51 setTitle(String
.format(Messages
.AvailableAreaVocabulariesPage_PAGE_TITLE
, featureTitle
));
52 setDescription(String
.format(Messages
.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION
, featureTitle
));
53 createAllowOverrideButton(parent
);
55 super.createControl(parent
);
57 treeComposite
.getViewer().setContentProvider(new RootElementsOnlyTreeContentProvider());
58 treeComposite
.setAllowTopLevelSelection(true);
64 protected String
getCheckedValuesFromPreferences() {
65 String vocString
= null;
67 vocString
= PreferencesUtil
.getPreferredVocabulariesForDistributionEditor(localPref
);
68 if (StringUtils
.isBlank(vocString
) && pref
!= null){
69 vocString
= pref
.getValue();
71 this.override
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.createOverridePreferenceString(pref
.getPredicate()));
72 }else if (pref
!= null){
73 vocString
= pref
.getValue();
78 protected CdmPreference
getPreferences() {
83 public ICdmEntitySession
getCdmEntitySession() {
88 public <T
extends CdmBase
> Collection
<T
> getRootEntities() {
93 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
101 protected List
<TermVocabularyDto
> getVocabulariesFromPreference() {
102 // TODO Auto-generated method stub
106 protected void rememberCheckedValues(String checkedValues
) {
107 initialiseVocabularies();
109 treeComposite
.getViewer().setInput(getVocabularies());
111 if (checkedValues
!= null && checkedValues
!= "") { //$NON-NLS-1$
112 String
[] listChecked
= checkedValues
.split(";"); //$NON-NLS-1$
113 String
[] listCheckedComma
= checkedValues
.split(","); //$NON-NLS-1$
114 List
<String
> checked
= new ArrayList
<>();
115 if (listChecked
!= null ){
116 checked
= Arrays
.asList(listChecked
);
118 if (listCheckedComma
!= null && checkedValues
.contains(",")){ //$NON-NLS-1$
119 checked
= Arrays
.asList(listCheckedComma
);
121 List
<AbstractTermDto
> termsFromStringValues
= getTermsFromStringValues(checked
);
122 treeComposite
.setCheckedElements(termsFromStringValues
.toArray());
126 treeComposite
.getViewer().setAllChecked(true);