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
.Collection
;
13 import java
.util
.List
;
16 import org
.eclipse
.jface
.viewers
.CheckStateChangedEvent
;
17 import org
.eclipse
.jface
.viewers
.CheckboxTreeViewer
;
18 import org
.eclipse
.jface
.viewers
.ColumnViewer
;
19 import org
.eclipse
.jface
.viewers
.ICheckStateListener
;
20 import org
.eclipse
.jface
.viewers
.StyledString
.Styler
;
21 import org
.eclipse
.jface
.viewers
.ViewerComparator
;
22 import org
.eclipse
.swt
.SWT
;
23 import org
.eclipse
.swt
.graphics
.TextStyle
;
24 import org
.eclipse
.swt
.layout
.GridData
;
25 import org
.eclipse
.swt
.layout
.GridLayout
;
26 import org
.eclipse
.swt
.widgets
.Composite
;
27 import org
.eclipse
.swt
.widgets
.Display
;
29 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
30 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
31 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
32 import eu
.etaxonomy
.cdm
.model
.common
.TermVocabulary
;
33 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
34 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.TermContentProvider
;
35 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.TermLabelProvider
;
36 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySession
;
37 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySessionEnabled
;
44 public class AvailableDistributionStatusPage
extends AbstractTermSelectionWizardPage
implements ICdmEntitySessionEnabled
{
46 private ColumnViewer viewer
;
47 private List
<TermVocabulary
<DefinedTermBase
>> vocabularies
= new ArrayList
<>();
48 private CdmPreference pref
;
51 public AvailableDistributionStatusPage(String pageName
, CdmPreference pref
) {
52 super(pageName
, TermType
.PresenceAbsenceTerm
);
61 public void createControl(Composite parent
) {
63 // String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
66 // String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
67 setTitle("Select Distribution Status");
68 setDescription("In order to be able to modify and see the distribution status of taxa,\n"
69 + "you have to select the status the user should be allowed to use.");
70 Composite composite
= new Composite(parent
, SWT
.NULL
);
71 composite
.setLayout(new GridLayout());
72 setViewer(new CheckboxTreeViewer(composite
, SWT
.NULL
));
73 ((CheckboxTreeViewer
)getViewer()).getTree().setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
74 // viewer.setContentProvider(new TermContentProvider());
75 Styler styler
= new Styler() {
77 public void applyStyles(TextStyle textStyle
) {
78 textStyle
.foreground
= Display
.getCurrent().getSystemColor(SWT
.COLOR_BLACK
);
81 getViewer().setContentProvider(new TermContentProvider());
82 getViewer().setLabelProvider(new TermLabelProvider(styler
));
83 getViewer().setComparator(new ViewerComparator());
84 ((CheckboxTreeViewer
)getViewer()).addCheckStateListener(new ICheckStateListener() {
86 private boolean ignoreCheckEvent
= false;
89 public void checkStateChanged(CheckStateChangedEvent event
) {
92 if (ignoreCheckEvent
) {
96 ignoreCheckEvent
= true;
103 ignoreCheckEvent
= false;
108 String checkedValues
= null;
110 checkedValues
= pref
.getValue();
112 rememberCheckedValues(checkedValues
, null);
113 ((CheckboxTreeViewer
)getViewer()).setCheckedElements(listCheckedTerms
.toArray());
114 ((CheckboxTreeViewer
)getViewer()).expandToLevel(2);
115 setControl(composite
);
121 public ColumnViewer
getViewer() {
126 public void setViewer(ColumnViewer viewer
) {
127 this.viewer
= viewer
;
133 public ICdmEntitySession
getCdmEntitySession() {
134 // TODO Auto-generated method stub
142 public <T
extends CdmBase
> Collection
<T
> getRootEntities() {
143 // TODO Auto-generated method stub
151 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
152 // TODO Auto-generated method stub
156 protected List
<TermVocabulary
<DefinedTermBase
>> getVocabulariesFromPreference(){