Project

General

Profile

Download (6.4 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2018 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9
package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
10

    
11
import org.eclipse.nebula.widgets.nattable.config.AbstractRegistryConfiguration;
12
import org.eclipse.nebula.widgets.nattable.config.CellConfigAttributes;
13
import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
14
import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
15
import org.eclipse.nebula.widgets.nattable.edit.editor.ComboBoxCellEditor;
16
import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowDataLayer;
17
import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowTextCellEditor;
18
import org.eclipse.nebula.widgets.nattable.filterrow.TextMatchingMode;
19
import org.eclipse.nebula.widgets.nattable.filterrow.config.FilterRowConfigAttributes;
20
import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
21

    
22
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.supplementalInfo.SupplementalInfoDisplayConverter;
23
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
24

    
25
/**
26
 * @author k.luther
27
 * @since 13.12.2018
28
 *
29
 */
30
public class FilterRowConfiguration extends AbstractRegistryConfiguration {
31

    
32
    DistributionEditor editor;
33

    
34
        /**
35
     * @param distributionEditor
36
     */
37
    public FilterRowConfiguration(DistributionEditor distributionEditor) {
38
        editor = distributionEditor;
39
    }
40

    
41
        @Override
42
        public void configureRegistry(IConfigRegistry configRegistry) {
43

    
44
            // register the FilterRowTextCellEditor in the first column which
45
            // immediately commits on key press
46
            configRegistry.registerConfigAttribute(
47
                    EditConfigAttributes.CELL_EDITOR,
48
                    new FilterRowTextCellEditor(),
49
                    DisplayMode.NORMAL,
50
                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 1);
51

    
52
            configRegistry.registerConfigAttribute(
53
                    FilterRowConfigAttributes.TEXT_MATCHING_MODE,
54
                    TextMatchingMode.CONTAINS,
55
                    DisplayMode.NORMAL,
56
                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 1);
57

    
58
            configRegistry.registerConfigAttribute(
59
                    CellConfigAttributes.DISPLAY_CONVERTER,
60
                    new SupplementalInfoDisplayConverter(),
61
                    DisplayMode.NORMAL,
62
                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 1);
63

    
64
            if (PreferencesUtil.isShowRankInChecklistEditor()){
65
                configRegistry.registerConfigAttribute(
66
                        EditConfigAttributes.CELL_EDITOR,
67
                        new FilterRowTextCellEditor(),
68
                        DisplayMode.NORMAL,
69
                        FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 2);
70

    
71
                configRegistry.registerConfigAttribute(
72
                        FilterRowConfigAttributes.TEXT_MATCHING_MODE,
73
                        TextMatchingMode.CONTAINS,
74
                        DisplayMode.NORMAL,
75
                        FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 2);
76

    
77
                configRegistry.registerConfigAttribute(
78
                        CellConfigAttributes.DISPLAY_CONVERTER,
79
                        new SupplementalInfoDisplayConverter(),
80
                        DisplayMode.NORMAL,
81
                        FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + 2);
82
            }
83

    
84
            // Register a combo box editor to be displayed in the filter row
85
            // cell when a value is selected from the combo, the object is
86
            // converted to a string using the converter (registered below)
87
            StatusComboBoxDataProvider dataProvider;
88
            int start = 1;
89
            if (PreferencesUtil.isShowRankInChecklistEditor()){
90
                start = 2;
91
            }
92

    
93
            for (int i = start; i < editor.areas.size()+start; ++i) {
94
                dataProvider = new StatusComboBoxDataProvider(editor);
95
                ComboBoxCellEditor cellEditor = new ComboBoxCellEditor(dataProvider, dataProvider.getMaxVisibleItems());
96
                cellEditor.setFreeEdit(true);
97
                configRegistry.registerConfigAttribute(
98
                        EditConfigAttributes.CELL_EDITOR,
99
                        cellEditor,
100
                        DisplayMode.NORMAL,
101
                        FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + i);
102

    
103

    
104

    
105
            configRegistry.registerConfigAttribute(
106
                    FilterRowConfigAttributes.FILTER_DISPLAY_CONVERTER,
107
                    new FilterStatusDisplayConverter(),
108
                    DisplayMode.NORMAL,
109
                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX+i);
110

    
111
            configRegistry.registerConfigAttribute(
112
                    CellConfigAttributes.DISPLAY_CONVERTER,
113
                    new StatusDisplayConverter(),
114
                    DisplayMode.NORMAL,
115
                    DistributionEditorConfigLabelAccumulator.STATUS);
116

    
117
            }
118

    
119

    
120
//            // register the FilterRowTextCellEditor in the first column which
121
//            // immediately commits on key press
122
//            configRegistry.registerConfigAttribute(
123
//                    EditConfigAttributes.CELL_EDITOR,
124
//                    new FilterRowTextCellEditor(),
125
//                    DisplayMode.NORMAL,
126
//                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX
127
//                            + DistributionEditorConfigLabelAccumulator.STATUS);
128
//
129
//            configRegistry.registerConfigAttribute(
130
//                    FilterRowConfigAttributes.TEXT_MATCHING_MODE,
131
//                    TextMatchingMode.CONTAINS,
132
//                    DisplayMode.NORMAL,
133
//                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX
134
//                    + DistributionEditorConfigLabelAccumulator.STATUS);
135
//
136
//            configRegistry.registerConfigAttribute(
137
//                    CellConfigAttributes.DISPLAY_CONVERTER,
138
//                    new StatusDisplayConverter(),
139
//                    DisplayMode.NORMAL,
140
//                    FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX
141
//                    + DistributionEditorConfigLabelAccumulator.STATUS);
142

    
143

    
144

    
145

    
146

    
147
            configRegistry.registerConfigAttribute(
148
                    FilterRowConfigAttributes.TEXT_DELIMITER, "&"); //$NON-NLS-1$
149

    
150
        }
151

    
152
}
(11-11/17)