Project

General

Profile

« Previous | Next » 

Revision 103f7f4a

Added by Patrick Plitzner over 5 years ago

ref #7887 Use term DTOs for distribution wizards

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractTermSelectionWizardPage.java
14 14
import java.util.UUID;
15 15

  
16 16
import org.apache.commons.lang.StringUtils;
17
import org.eclipse.jface.viewers.ColumnViewer;
17
import org.eclipse.jface.layout.GridLayoutFactory;
18
import org.eclipse.jface.viewers.CheckboxTreeViewer;
18 19
import org.eclipse.jface.wizard.WizardPage;
20
import org.eclipse.swt.SWT;
21
import org.eclipse.swt.layout.GridLayout;
19 22
import org.eclipse.swt.widgets.Composite;
20 23

  
21 24
import eu.etaxonomy.cdm.api.service.ITermService;
22 25
import eu.etaxonomy.cdm.api.service.IVocabularyService;
23 26
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
24
import eu.etaxonomy.cdm.model.common.TermBase;
25 27
import eu.etaxonomy.cdm.model.common.TermType;
26 28
import eu.etaxonomy.cdm.model.common.TermVocabulary;
29
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
30
import eu.etaxonomy.cdm.persistence.dto.TermDto;
31
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
32
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
33
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
34
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
27 35
import eu.etaxonomy.taxeditor.store.CdmStore;
28 36

  
29 37
/**
......
33 41
 */
34 42
public abstract class AbstractTermSelectionWizardPage extends WizardPage {
35 43

  
36
    private ColumnViewer viewer;
37
    private List<TermVocabulary<DefinedTermBase>> vocabularies = new ArrayList<>();
44
    protected CheckBoxTreeComposite treeComposite;
45
    private List<TermVocabularyDto> vocabularies = new ArrayList<>();
38 46
    boolean localPref;
39
    List<TermBase> listCheckedTerms = new ArrayList<>();
40
    List<TermBase> listGrayedTerms = new ArrayList<>();
47
    List<AbstractTermDto> listCheckedTerms = new ArrayList<>();
48
    List<AbstractTermDto> listGrayedTerms = new ArrayList<>();
41 49

  
42 50
    TermType type;
43 51

  
......
55 63
     * {@inheritDoc}
56 64
     */
57 65
    @Override
58
    public abstract void createControl(Composite parent) ;
66
    public void createControl(Composite parent){
67
        parent.setLayout(new GridLayout());
68
        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
69
        treeComposite.getViewer().setComparator(new DefinedTermSorter());
70
        GridLayoutFactory.fillDefaults().applyTo(treeComposite);
59 71

  
60
    public ColumnViewer getViewer() {
61
        return viewer;
72

  
73
        rememberCheckedValues(getCheckedValuesFromPreferences(), getGrayedValuesFromPreferences());
74
        treeComposite.setCheckedElements(listCheckedTerms.toArray());
75
        setControl(treeComposite);
62 76
    }
63 77

  
64
    public void setViewer(ColumnViewer viewer) {
65
        this.viewer = viewer;
78
    protected abstract String getCheckedValuesFromPreferences();
79

  
80
    protected abstract String getGrayedValuesFromPreferences();
81

  
82
    protected CheckboxTreeViewer getViewer(){
83
        return treeComposite.getViewer();
66 84
    }
67 85

  
68
    public List<TermVocabulary<DefinedTermBase>> getVocabularies() {
86
    public List<TermVocabularyDto> getVocabularies() {
69 87
        return vocabularies;
70 88
    }
71 89

  
72
    public void addVocabularies(TermVocabulary<DefinedTermBase> vocabulary) {
90
    public void addVocabularies(TermVocabularyDto vocabulary) {
73 91
        this.vocabularies.add(vocabulary);
74 92
    }
75 93

  
......
77 95
    /**
78 96
     * @param vocs
79 97
     */
80
    protected void setVocabularies(List<TermVocabulary<DefinedTermBase>> vocs) {
81
        for (TermVocabulary voc:vocs){
82
            vocabularies.add(voc);
83
        }
98
    protected void setVocabularies(List<TermVocabularyDto> vocs) {
99
        vocabularies = vocs;
84 100
    }
85 101

  
86
    public List<TermBase> getListCheckedTerms() {
102
    public List<AbstractTermDto> getListCheckedTerms() {
87 103
        return listCheckedTerms;
88 104
    }
89 105

  
90
    public List<TermBase> getListGrayedTerms() {
106
    public List<AbstractTermDto> getListGrayedTerms() {
91 107
        return listGrayedTerms;
92 108
    }
93 109

  
94 110
    protected void rememberCheckedValues(String checkedValues, String grayedValues) {
95 111
        initialiseVocabularies();
96
        getViewer().setInput(getVocabularies());
112
        treeComposite.getViewer().setInput(getVocabularies());
97 113

  
98 114
        if (grayedValues != null && grayedValues != "") { //$NON-NLS-1$
99 115
            String[] arrayGrayed = grayedValues.split(";"); //$NON-NLS-1$
100 116
            List<String> listGrayed = Arrays.asList(arrayGrayed);
101
            if (listGrayedTerms == null){
102
                listGrayedTerms = new ArrayList();
103
            }
104
            getTermsFromStringValues(listGrayed, this.listGrayedTerms);
117
            listGrayedTerms = getTermsFromStringValues(listGrayed);
105 118

  
106 119
        }
107 120
        if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
......
114 127
            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
115 128
                checked = Arrays.asList(listCheckedComma);
116 129
            }
117
            if (listCheckedTerms == null){
118
                listCheckedTerms = new ArrayList();
119
            }
120
            getTermsFromStringValues(checked, listCheckedTerms);
130
            listCheckedTerms = getTermsFromStringValues(checked);
121 131

  
122 132
        }
123 133
    }
......
126 136
     * @param split
127 137
     * @param termlist
128 138
     */
129
    private void getTermsFromStringValues(List<String> listValue, List<TermBase> termlist) {
130

  
139
    private List<AbstractTermDto> getTermsFromStringValues(List<String> listValue) {
140
        List<AbstractTermDto> termlist = new ArrayList<>();
131 141
        for (String s : listValue) {
132 142
            if (!StringUtils.isBlank(s)){
133 143
                UUID uuid = UUID.fromString(s);
134 144
                ITermService termService = CdmStore.getService(ITermService.class);
135 145
                DefinedTermBase definedTermBase = termService.load(uuid);
136 146
                if(definedTermBase != null){
137
                    termlist.add(definedTermBase);
147
                    termlist.add(new TermDto(uuid, definedTermBase.getRepresentations(), null));
138 148
                }else{
139 149
                    IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
140 150
                    TermVocabulary termVocabulary = vocabularyService.load(uuid);
141
                    termlist.add(termVocabulary);
151
                    termlist.add(new TermVocabularyDto(uuid, termVocabulary.getRepresentations()));
142 152
                }
143 153
            }
144 154
        }
155
        return termlist;
145 156
    }
146 157

  
147 158

  
......
149 160
        if (getVocabularies() != null) {
150 161
            getVocabularies().clear();
151 162
        }
152
        List<TermVocabulary<DefinedTermBase>> vocs = new ArrayList<>();
163
        List<TermVocabularyDto> vocs = new ArrayList<>();
153 164
        if (localPref){
154 165
            vocs = getVocabulariesFromPreference();
155 166

  
156 167
        }else{
157
            vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
158
                    type, null);
168
            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
159 169
        }
160 170
        setVocabularies(vocs);
161 171
    }
162 172

  
163
    protected abstract List<TermVocabulary<DefinedTermBase>> getVocabulariesFromPreference();
173
    protected abstract List<TermVocabularyDto> getVocabulariesFromPreference();
164 174

  
165 175

  
166 176
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableAreaVocabulariesPage.java
17 17
import java.util.UUID;
18 18

  
19 19
import org.apache.commons.lang.StringUtils;
20
import org.eclipse.jface.viewers.CheckStateChangedEvent;
21
import org.eclipse.jface.viewers.CheckboxTableViewer;
22
import org.eclipse.jface.viewers.ICheckStateListener;
23
import org.eclipse.jface.viewers.StyledString.Styler;
24
import org.eclipse.jface.viewers.ViewerComparator;
25
import org.eclipse.swt.SWT;
26
import org.eclipse.swt.graphics.TextStyle;
27
import org.eclipse.swt.layout.GridData;
28
import org.eclipse.swt.layout.GridLayout;
29 20
import org.eclipse.swt.widgets.Composite;
30
import org.eclipse.swt.widgets.Display;
31 21

  
32 22
import eu.etaxonomy.cdm.api.service.IVocabularyService;
33 23
import eu.etaxonomy.cdm.model.common.CdmBase;
34
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
35 24
import eu.etaxonomy.cdm.model.common.TermType;
36 25
import eu.etaxonomy.cdm.model.common.TermVocabulary;
37 26
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
38 27
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
39
import eu.etaxonomy.taxeditor.editor.definedterm.VocabularyContentProvider;
40
import eu.etaxonomy.taxeditor.editor.definedterm.VocabularyLabelProvider;
28
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
41 29
import eu.etaxonomy.taxeditor.l10n.Messages;
42 30
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
43 31
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
......
69 57
     */
70 58
    @Override
71 59
    public void createControl(Composite parent) {
60

  
61
        setTitle(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_TITLE, featureTitle));
62
        setDescription(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION, featureTitle));
63

  
64
        super.createControl(parent);
65
    }
66

  
67
    /**
68
     * {@inheritDoc}
69
     */
70
    @Override
71
    protected String getCheckedValuesFromPreferences() {
72 72
        String vocString = null;
73 73
        if (localPref){
74 74
            vocString = PreferencesUtil.getPreferredVocabulariesForDistributionEditor(localPref);
75 75
        }else if (pref != null){
76 76
            vocString = pref.getValue();
77 77
        }
78
        setTitle(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_TITLE, featureTitle));
79
        setDescription(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION, featureTitle));
80
        Composite composite = new Composite(parent, SWT.NULL);
81
        composite.setLayout(new GridLayout());
82
        setViewer(CheckboxTableViewer.newCheckList(composite, SWT.NULL));
83
        ((CheckboxTableViewer)getViewer()).getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
84

  
85
        Styler styler = new Styler() {
86
            @Override
87
            public void applyStyles(TextStyle textStyle) {
88
                textStyle.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
89
            }
90
        };
91
        getViewer().setContentProvider(new VocabularyContentProvider());
92
        getViewer().setLabelProvider(new VocabularyLabelProvider(styler));
93
        getViewer().setComparator(new ViewerComparator());
94
        ((CheckboxTableViewer)getViewer()).addCheckStateListener(new ICheckStateListener() {
95

  
96
            private boolean ignoreCheckEvent = false;
97

  
98
            @Override
99
            public void checkStateChanged(CheckStateChangedEvent event) {
100

  
101

  
102
                if (ignoreCheckEvent ) {
103
                    return;
104
                }
105

  
106
                ignoreCheckEvent = true;
107

  
108
                try {
109

  
110

  
111
                }
112
                finally {
113
                    ignoreCheckEvent = false;
114
                }
115

  
116
            }
117
        });
118
        rememberCheckedValues(vocString, null);
119
        ((CheckboxTableViewer)getViewer()).setCheckedElements(listCheckedTerms.toArray());
120
        setControl(composite);
78
        return vocString;
79
    }
121 80

  
81
    /**
82
     * {@inheritDoc}
83
     */
84
    @Override
85
    protected String getGrayedValuesFromPreferences() {
86
        // TODO Auto-generated method stub
87
        return null;
122 88
    }
123 89

  
124 90
    /**
......
146 112
    }
147 113

  
148 114
    @Override
149
    protected  List<TermVocabulary<DefinedTermBase>> getVocabulariesFromPreference(){
150
        List<TermVocabulary<DefinedTermBase>> vocs = new ArrayList();
115
    protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
116
        List<TermVocabularyDto> vocs = new ArrayList<>();
151 117

  
152 118
        if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null ){
153
            vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
154
                    type, null);
119
            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
155 120
        }else{
156 121
            String vocString = PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
157 122

  
......
165 130
            }
166 131
            List<TermVocabulary> tempVocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
167 132
            for (TermVocabulary voc: tempVocs){
168
                vocs.add(voc);
133
                vocs.add(new TermVocabularyDto(voc.getUuid(), voc.getRepresentations()));
169 134
            }
170 135

  
171 136
        }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java
19 19
import java.util.UUID;
20 20

  
21 21
import org.apache.commons.lang.StringUtils;
22
import org.eclipse.jface.viewers.CheckStateChangedEvent;
23 22
import org.eclipse.jface.viewers.CheckboxTreeViewer;
24
import org.eclipse.jface.viewers.ICheckStateListener;
25
import org.eclipse.jface.viewers.ITreeViewerListener;
26
import org.eclipse.jface.viewers.TreeExpansionEvent;
27
import org.eclipse.swt.SWT;
28
import org.eclipse.swt.layout.GridData;
29
import org.eclipse.swt.layout.GridLayout;
30 23
import org.eclipse.swt.widgets.Composite;
31 24

  
32 25
import eu.etaxonomy.cdm.api.service.IVocabularyService;
33 26
import eu.etaxonomy.cdm.model.common.CdmBase;
34
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
35 27
import eu.etaxonomy.cdm.model.common.TermType;
36 28
import eu.etaxonomy.cdm.model.common.TermVocabulary;
37 29
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
30
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
38 31
import eu.etaxonomy.taxeditor.l10n.Messages;
39 32
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
40 33
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
......
62 55
    public void createControl(Composite parent) {
63 56
        //IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
64 57

  
65
        String checkedValues = PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
66
        String grayedValues = PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
67 58
        setTitle(Messages.AvailableDistributionPage_PAGE_TITLE);
68 59
        setDescription(Messages.AvailableDistributionPage_PAGE_DESCRIPTION);
69
        Composite composite = new Composite(parent, SWT.NULL);
70
        composite.setLayout(new GridLayout());
71
        setViewer(new CheckboxTreeViewer(composite, SWT.NULL));
72
        ((CheckboxTreeViewer)getViewer()).getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
73
        getViewer().setContentProvider(new DistributionContentProvider());
74
        getViewer().setLabelProvider(new AreaLabelProvider());
75
        getViewer().setComparator(new AreaViewerComparator());
76
        ((CheckboxTreeViewer)getViewer()).addCheckStateListener(new ICheckStateListener() {
77

  
78
            private boolean ignoreCheckEvent = false;
79

  
80
            @Override
81
            public void checkStateChanged(CheckStateChangedEvent event) {
82
                if (ignoreCheckEvent ) {
83
                    return;
84
                }
85
                ignoreCheckEvent = true;
86
                try {
87
                    checkChildren(event.getElement(), event.getChecked());
88
                    grayParents(event.getElement(), event.getChecked());
89
                   // ((CheckboxTreeViewer)getViewer()).refresh();
90
                }
91
                finally {
92
                    ignoreCheckEvent = false;
93
                }
94
                checkNoneChecked();
95
            }
96
        });
97
        ((CheckboxTreeViewer)getViewer()).addTreeListener(new ITreeViewerListener() {
98
            @Override
99
            public void treeCollapsed(TreeExpansionEvent event) {
100
            }
101

  
102
            @Override
103
            public void treeExpanded(TreeExpansionEvent event) {
104
                final Object element = event.getElement();
105
                final Object[] children = ((DistributionContentProvider)getViewer().getContentProvider()).getChildren(element);
106
                for (Object child : children) {
107
                    if (child instanceof NamedAreaWrapper){
108
                        if (getListCheckedTerms().contains(((NamedAreaWrapper) child).getNamedArea()) ){
109
                            ((CheckboxTreeViewer)getViewer()).setChecked(child, true);
110
                        }
111
                        if (getListGrayedTerms().contains(((NamedAreaWrapper) child).getNamedArea())&& !((NamedAreaWrapper) child).isBaseElement){
112
                            ((CheckboxTreeViewer)getViewer()).setGrayChecked(child, true);
113
                        }
114
                    }
115 60

  
116
                }
117
            }
118
        });
119

  
120
        // TODO: write listener or toggle button to select all named areas
121

  
122
        rememberCheckedValues(checkedValues, grayedValues);
123
       // ((CheckboxTreeViewer)getViewer()).expandToLevel(2);
124
        setControl(composite);
61
        super.createControl(parent);
125 62
    }
126 63

  
64
    @Override
65
    protected String getCheckedValuesFromPreferences() {
66
        return PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
67
    }
127 68

  
128

  
129

  
130

  
69
    @Override
70
    protected String getGrayedValuesFromPreferences() {
71
        return PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
72
    }
131 73

  
132 74
    private boolean checkNoneChecked() {
133 75

  
134
        if (((CheckboxTreeViewer)getViewer()).getCheckedElements().length == 0) {
76
        if (getViewer().getCheckedElements().length == 0) {
135 77
            setMessage(Messages.AvailableDistributionPage_CHECK_MESSAGE, WARNING);
136 78
            return true;
137 79
        } else {
......
151 93
           return;
152 94
       }
153 95

  
154
       if (((CheckboxTreeViewer)getViewer()).isExpandable(element)){
155
           ((CheckboxTreeViewer)getViewer()).expandToLevel(element, CheckboxTreeViewer.ALL_LEVELS);
156
           ((CheckboxTreeViewer)getViewer()).setSubtreeChecked(element, checked);
96
       if (getViewer().isExpandable(element)){
97
           getViewer().expandToLevel(element, CheckboxTreeViewer.ALL_LEVELS);
98
           getViewer().setSubtreeChecked(element, checked);
157 99

  
158
           ((CheckboxTreeViewer)getViewer()).setChecked(element, checked);
159
           if (((CheckboxTreeViewer)getViewer()).getGrayed(element)){
160
               ((CheckboxTreeViewer)getViewer()).setGrayChecked(element, !checked);
100
           getViewer().setChecked(element, checked);
101
           if (getViewer().getGrayed(element)){
102
               getViewer().setGrayChecked(element, !checked);
161 103
           }
162 104
//           if (element instanceof NamedAreaWrapper){
163 105
//               NamedAreaWrapper baseElement = new NamedAreaWrapper(((NamedAreaWrapper)element).getNamedArea(), true, ((NamedAreaWrapper)element).parent);
......
166 108
//           }
167 109

  
168 110
       }else{
169
           ((CheckboxTreeViewer)getViewer()).setChecked(element, checked);
170
           ((CheckboxTreeViewer)getViewer()).setGrayed(element, false);
111
           getViewer().setChecked(element, checked);
112
           getViewer().setGrayed(element, false);
171 113
       }
172 114

  
173 115
   }
......
196 138
//
197 139
//          }else{
198 140
              for (final Object fieldElement : tcp.getChildren(parent)) {
199
                  allChecked = allChecked && ((CheckboxTreeViewer)getViewer()).getChecked(fieldElement);
200
                  allUnchecked = allUnchecked && !((CheckboxTreeViewer)getViewer()).getChecked(fieldElement);
201
                  allUnchecked = allUnchecked && !((CheckboxTreeViewer)getViewer()).getGrayed(fieldElement);
141
                  allChecked = allChecked && getViewer().getChecked(fieldElement);
142
                  allUnchecked = allUnchecked && !getViewer().getChecked(fieldElement);
143
                  allUnchecked = allUnchecked && !getViewer().getGrayed(fieldElement);
202 144
              }
203 145
              if (allUnchecked) {
204 146
//                  if (!((CheckboxTreeViewer)getViewer()).getChecked(parent)){
205
                      ((CheckboxTreeViewer)getViewer()).setChecked(parent, false);
206
                      ((CheckboxTreeViewer)getViewer()).setGrayed(parent, false);
147
                      getViewer().setChecked(parent, false);
148
                      getViewer().setGrayed(parent, false);
207 149
//                  }else{
208 150
//                      checked = true;
209 151
//                  }
210 152
              } else if (allChecked){
211
                  ((CheckboxTreeViewer)getViewer()).setChecked(parent, true);
212
                  ((CheckboxTreeViewer)getViewer()).setGrayed(parent, false);
153
                  getViewer().setChecked(parent, true);
154
                  getViewer().setGrayed(parent, false);
213 155
              }else {
214 156
//                if (!((CheckboxTreeViewer)getViewer()).getChecked(parent)){
215
                    ((CheckboxTreeViewer)getViewer()).setGrayChecked(parent, true);
216
                    ((CheckboxTreeViewer)getViewer()).setChecked(parent, true);
157
                    getViewer().setGrayChecked(parent, true);
158
                    getViewer().setChecked(parent, true);
217 159
//                }
218 160
                checked = true;
219 161

  
......
259 201
    }
260 202

  
261 203
    @Override
262
    protected  List<TermVocabulary<DefinedTermBase>> getVocabulariesFromPreference(){
263
        List<TermVocabulary<DefinedTermBase>> vocs = new ArrayList();
204
    protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
205
        List<TermVocabularyDto> vocs = new ArrayList<>();
264 206

  
265 207
        if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null && PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES) == null){
266
            vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
267
                    type, null);
208
            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
268 209
        }else{
269 210
            String vocString = PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
270 211

  
......
278 219
            }
279 220
            List<TermVocabulary> tempVocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
280 221
            for (TermVocabulary voc: tempVocs){
281
                vocs.add(voc);
222
                vocs.add(new TermVocabularyDto(voc.getUuid(), voc.getRepresentations()));
282 223
            }
283 224

  
284 225
        }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusPage.java
13 13
import java.util.List;
14 14
import java.util.Map;
15 15

  
16
import org.eclipse.jface.viewers.CheckStateChangedEvent;
17
import org.eclipse.jface.viewers.CheckboxTreeViewer;
18 16
import org.eclipse.jface.viewers.ColumnViewer;
19
import org.eclipse.jface.viewers.ICheckStateListener;
20
import org.eclipse.jface.viewers.ViewerComparator;
21
import org.eclipse.swt.SWT;
22
import org.eclipse.swt.layout.GridData;
23
import org.eclipse.swt.layout.GridLayout;
24 17
import org.eclipse.swt.widgets.Composite;
25 18

  
26 19
import eu.etaxonomy.cdm.model.common.CdmBase;
......
28 21
import eu.etaxonomy.cdm.model.common.TermType;
29 22
import eu.etaxonomy.cdm.model.common.TermVocabulary;
30 23
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
31
import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider;
32
import eu.etaxonomy.taxeditor.editor.definedterm.TermLabelProvider;
24
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
33 25
import eu.etaxonomy.taxeditor.l10n.Messages;
34 26
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
35 27
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
......
64 56
       // String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
65 57
        setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
66 58
        setDescription(Messages.AvailableDistributionStatusPage_PAGE_DESCRIPTION);
67
        Composite composite = new Composite(parent, SWT.NULL);
68
        composite.setLayout(new GridLayout());
69
        setViewer(new CheckboxTreeViewer(composite, SWT.NULL));
70
        ((CheckboxTreeViewer)getViewer()).getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
71
//        viewer.setContentProvider(new TermContentProvider());
72
        getViewer().setContentProvider(new TermContentProvider());
73
        getViewer().setLabelProvider(new TermLabelProvider());
74
        getViewer().setComparator(new ViewerComparator());
75
        ((CheckboxTreeViewer)getViewer()).addCheckStateListener(new ICheckStateListener() {
76 59

  
77
            private boolean ignoreCheckEvent = false;
60
        super.createControl(parent);
78 61

  
79
            @Override
80
            public void checkStateChanged(CheckStateChangedEvent event) {
81

  
82

  
83
                if (ignoreCheckEvent ) {
84
                    return;
85
                }
86

  
87
                ignoreCheckEvent = true;
88

  
89
                try {
90

  
91

  
92
                }
93
                finally {
94
                    ignoreCheckEvent = false;
95
                }
62
    }
96 63

  
97
            }
98
        });
64
    @Override
65
    protected String getCheckedValuesFromPreferences() {
99 66
        String checkedValues = null;
100 67
        if (pref != null){
101 68
            checkedValues = pref.getValue();
102 69
        }
103
        rememberCheckedValues(checkedValues, null);
104
        ((CheckboxTreeViewer)getViewer()).setCheckedElements(listCheckedTerms.toArray());
105
        ((CheckboxTreeViewer)getViewer()).expandToLevel(2);
106
        setControl(composite);
107

  
70
        return checkedValues;
108 71
    }
109 72

  
110

  
111 73
    @Override
112
    public ColumnViewer getViewer() {
113
        return viewer;
74
    protected String getGrayedValuesFromPreferences() {
75
        return null;
114 76
    }
115 77

  
116
    @Override
117
    public void setViewer(ColumnViewer viewer) {
118
        this.viewer = viewer;
119
    }
120 78
    /**
121 79
     * {@inheritDoc}
122 80
     */
......
144 102
        return null;
145 103
    }
146 104
    @Override
147
    protected  List<TermVocabulary<DefinedTermBase>> getVocabulariesFromPreference(){
105
    protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
148 106
     return null;
149 107
    }
150 108

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusWizard.java
9 9
package eu.etaxonomy.taxeditor.preference.wizard;
10 10

  
11 11
import java.util.ArrayList;
12
import java.util.Collection;
12 13
import java.util.List;
13 14
import java.util.UUID;
14 15

  
15 16
import org.apache.commons.lang.StringUtils;
16
import org.eclipse.jface.viewers.CheckboxTreeViewer;
17 17
import org.eclipse.jface.wizard.IWizardPage;
18 18
import org.eclipse.jface.wizard.Wizard;
19 19

  
20 20
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
21 21
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
22
import eu.etaxonomy.cdm.api.service.ITermService;
22 23
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23 24
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
24 25
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
......
113 114
     */
114 115
    @Override
115 116
    public boolean performFinish() {
116
        Object[] checkedElements = ((CheckboxTreeViewer)aPage.getViewer()).getCheckedElements();
117
        Object[] checkedElements = aPage.getViewer().getCheckedElements();
117 118

  
118 119
        List<UUID> listUIIDChecked = new ArrayList<>();
119 120
        List<DefinedTermBase> preferredTerms = new ArrayList<>();
120 121
        for (Object o : checkedElements) {
121
               if(o instanceof DefinedTermBase){
122
                   DefinedTermBase otb = (DefinedTermBase) o;
123
                   listUIIDChecked.add(otb.getUuid());
124
                   preferredTerms.add(otb);
125
                }
122
            if(o instanceof DefinedTermBase){
123
                DefinedTermBase otb = (DefinedTermBase) o;
124
                listUIIDChecked.add(otb.getUuid());
125
                preferredTerms.add(otb);
126 126
            }
127
           String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
128
           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
129

  
130
           PreferencesUtil.setPreferenceToDB(pref);
131
           CdmStore.getTermManager().setPreferredTerms(preferredTerms, aPage.getVocabularies().get(0).getTerms());
132
           PreferencesUtil.firePreferencesChanged(this.getClass());
133
           return true;
127
        }
128
        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
129
        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
130

  
131
        PreferencesUtil.setPreferenceToDB(pref);
132
        Collection<DefinedTermBase> terms = new ArrayList<>();
133
        aPage.getVocabularies().get(0).getTerms()
134
        .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
135
        CdmStore.getTermManager().setPreferredTerms(preferredTerms, terms);
136
        PreferencesUtil.firePreferencesChanged(this.getClass());
137
        return true;
134 138
    }
135 139

  
136 140

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableVocabularyWizard.java
12 12
import java.util.UUID;
13 13

  
14 14
import org.apache.commons.lang.StringUtils;
15
import org.eclipse.jface.viewers.CheckboxTableViewer;
16 15
import org.eclipse.jface.wizard.IWizardPage;
17 16
import org.eclipse.jface.wizard.Wizard;
18 17

  
......
116 115
     */
117 116
    @Override
118 117
    public boolean performFinish() {
119
        Object[] checkedElements = ((CheckboxTableViewer)aPage.getViewer()).getCheckedElements();
118
        Object[] checkedElements = aPage.getViewer().getCheckedElements();
120 119

  
121 120
        ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
122 121
        for (Object o : checkedElements) {

Also available in: Unified diff