Project

General

Profile

« Previous | Next » 

Revision 8b643532

Added by Katja Luther almost 4 years ago

fix #9040: adapt preferences to availableFor attribute of features

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/FeatureDtoContentProvider.java
98 98
                    }
99 99
                }
100 100
            }
101

  
102
            getVocabularyToChildTermMap().put(voc, filteredChildren);
101
            if (filteredChildren.isEmpty()){
102
                getVocabularyToChildTermMap().remove(voc);
103
            }else{
104
                getVocabularyToChildTermMap().put(voc, filteredChildren);
105
            }
103 106
        }else{
104 107
            filteredChildren = children;
105 108
        }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractGeneralTermPreference.java
179 179
        treeComposite.getViewer().getTree().deselectAll();
180 180
        treeComposite.getViewer().refresh();
181 181
        treeComposite.getViewer().setInput(getVocabularies());
182
        Object o =treeComposite.getViewer().getInput();
183

  
182 184

  
183 185
        if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
184 186
            String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
9 9
package eu.etaxonomy.taxeditor.preference.menu;
10 10

  
11 11
import java.util.ArrayList;
12
import java.util.Collection;
13
import java.util.HashSet;
12 14
import java.util.List;
15
import java.util.Set;
16
import java.util.UUID;
13 17

  
18
import org.apache.commons.lang.StringUtils;
19
import org.eclipse.swt.SWT;
20
import org.eclipse.swt.custom.CLabel;
21
import org.eclipse.swt.layout.GridData;
22
import org.eclipse.swt.layout.GridLayout;
23
import org.eclipse.swt.widgets.Combo;
24
import org.eclipse.swt.widgets.Composite;
25
import org.eclipse.swt.widgets.Control;
26

  
27
import eu.etaxonomy.cdm.api.service.ITermService;
14 28
import eu.etaxonomy.cdm.api.service.IVocabularyService;
29
import eu.etaxonomy.cdm.model.common.CdmClass;
15 30
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
16 31
import eu.etaxonomy.cdm.model.term.TermType;
17
import eu.etaxonomy.cdm.model.term.VocabularyEnum;
32
import eu.etaxonomy.cdm.persistence.dto.TermDto;
18 33
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
34
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
35
import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
36
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
19 37
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
38
import eu.etaxonomy.taxeditor.l10n.Messages;
20 39
import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
40
import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
41
import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
21 42
import eu.etaxonomy.taxeditor.store.CdmStore;
22 43

  
23 44
/**
......
31 52
public class FeatureMenuPreferences extends GeneralTermPreferencePage{
32 53

  
33 54
    /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
34
    public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
55
    public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.taxonFeature"; //$NON-NLS-1$
35 56

  
36 57
    /**
37 58
     * <p>Constructor for FeatureMenuPreference.</p>
......
43 64
        type = TermType.Feature;
44 65
    }
45 66

  
67
    @Override
68
    protected Control createContents(Composite parent) {
69
        Composite container = new Composite(parent, SWT.NULL);
70
        getPreferenceValues();
71
        if (isLocalPref() && !allowOverride){
72
            final CLabel description = new CLabel(parent, SWT.NULL);
73
            description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
74
            this.setDefaultButtonActivated(false);
75
            return parent;
76

  
77
        }
78
        final GridLayout gridLayout = new GridLayout();
79
        gridLayout.numColumns = 2;
80
        container.setLayout(gridLayout);
81
        parent.setLayout(new GridLayout());
82
        useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
83
        if (!isAdminPreference){
84
            useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
85
            useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
86

  
87
        }else{
88
            useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
89
            useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
90
        }
91

  
92

  
93
        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(true, false, false), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
94
        treeComposite.getViewer().setComparator(new DefinedTermSorter());
95
        rememberCheckedValues(getCheckedValuesFromPreferences());
96

  
97
        if (isLocalPref()){
98
            if (isOverride){
99
                useLocalOrAdmin.select(1);
100
            }else{
101
                useLocalOrAdmin.select(0);
102
                if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
103
                    treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
104
                }
105
                treeComposite.setEnabled(false);
106

  
107
                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
108
            }
109
        }else{
110
            if (allowOverride){
111
                useLocalOrAdmin.select(0);
112
            }else{
113
                useLocalOrAdmin.select(1);
114
            }
115
        }
116
        useLocalOrAdmin.addSelectionListener(this);
117

  
118
        GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
119
        data.heightHint = 300;
120
        treeComposite.setLayoutData(data);
121
        treeComposite.getViewer().addSelectionChangedListener(this);
122

  
123
        return container;
124

  
125
    }
126

  
46 127

  
47 128

  
48 129
    @Override
......
59 140

  
60 141
    @Override
61 142
    protected void initialiseVocabularies() {
143
        if (getVocabularies() != null) {
144
            getVocabularies().clear();
145
        }
146
        List<TermVocabularyDto> vocs = new ArrayList<>();
147
        Set<CdmClass> availableFor = new HashSet<>();
148
        availableFor.add(CdmClass.TAXON);
149
        vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
150

  
151
        setVocabularies(vocs);
152
//       super.initialiseVocabularies();
153

  
154

  
155

  
156
//       List<TermVocabularyDto> vocs = new ArrayList<>();
157
//       vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
158
//       this.getVocabularies().removeAll(vocs);
159

  
160
    }
161

  
162
    @Override
163
    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
164
        Collection<TermDto> termlist = new ArrayList<>();
165
        ITermService termService = CdmStore.getService(ITermService.class);
166
        List<UUID> uuidList = new ArrayList();
167
        for (String s : listValue) {
168
            if (!StringUtils.isBlank(s)){
169
                UUID uuid = UUID.fromString(s);
170
                uuidList.add(uuid);
171
            }
172
        }
173
        if (!uuidList.isEmpty()){
174
            termlist = termService.findFeatureByUUIDsAsDto(uuidList);
175
        }
62 176

  
63
       super.initialiseVocabularies();
64
       List<TermVocabularyDto> vocs = new ArrayList<>();
65
       vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
66
       this.getVocabularies().removeAll(vocs);
177
        if (listValue == null || listValue.isEmpty() ){
178
            termlist = termService.findFeatureByTitleAsDto("");
179

  
180
        }
67 181

  
182
        return new ArrayList(termlist);
68 183
    }
69 184

  
70 185

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameFeatureMenuPreference.java
9 9
package eu.etaxonomy.taxeditor.preference.menu;
10 10

  
11 11
import java.util.ArrayList;
12
import java.util.HashSet;
12 13
import java.util.List;
14
import java.util.Set;
15

  
16
import org.eclipse.swt.SWT;
17
import org.eclipse.swt.custom.CLabel;
18
import org.eclipse.swt.layout.GridData;
19
import org.eclipse.swt.layout.GridLayout;
20
import org.eclipse.swt.widgets.Combo;
21
import org.eclipse.swt.widgets.Composite;
22
import org.eclipse.swt.widgets.Control;
13 23

  
14 24
import eu.etaxonomy.cdm.api.service.IVocabularyService;
25
import eu.etaxonomy.cdm.model.common.CdmClass;
15 26
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
16 27
import eu.etaxonomy.cdm.model.term.TermType;
17
import eu.etaxonomy.cdm.model.term.VocabularyEnum;
18 28
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
29
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
30
import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
31
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
32
import eu.etaxonomy.taxeditor.l10n.Messages;
19 33
import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
34
import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
20 35
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
36
import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
21 37
import eu.etaxonomy.taxeditor.store.CdmStore;
22 38

  
23 39
/**
......
38 54
        type = TermType.Feature;
39 55
    }
40 56

  
57
    @Override
58
    protected Control createContents(Composite parent) {
59
        Composite container = new Composite(parent, SWT.NULL);
60
        getPreferenceValues();
61
        if (isLocalPref() && !allowOverride){
62
            final CLabel description = new CLabel(parent, SWT.NULL);
63
            description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
64
            this.setDefaultButtonActivated(false);
65
            return parent;
66

  
67
        }
68
        final GridLayout gridLayout = new GridLayout();
69
        gridLayout.numColumns = 2;
70
        container.setLayout(gridLayout);
71
        parent.setLayout(new GridLayout());
72
        useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
73
        if (!isAdminPreference){
74
            useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
75
            useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
76

  
77
        }else{
78
            useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
79
            useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
80
        }
81

  
82

  
83
        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(false, true, false), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
84
        treeComposite.getViewer().setComparator(new DefinedTermSorter());
85
        rememberCheckedValues(getCheckedValuesFromPreferences());
86

  
87
        if (isLocalPref()){
88
            if (isOverride){
89
                useLocalOrAdmin.select(1);
90
            }else{
91
                useLocalOrAdmin.select(0);
92
                if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
93
                    treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
94
                }
95
                treeComposite.setEnabled(false);
96

  
97
                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
98
            }
99
        }else{
100
            if (allowOverride){
101
                useLocalOrAdmin.select(0);
102
            }else{
103
                useLocalOrAdmin.select(1);
104
            }
105
        }
106
        useLocalOrAdmin.addSelectionListener(this);
107

  
108
        GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
109
        data.heightHint = 300;
110
        treeComposite.setLayoutData(data);
111
        treeComposite.getViewer().addSelectionChangedListener(this);
112

  
113
        return container;
114

  
115
    }
41 116

  
42 117

  
43 118
    @Override
......
59 134
            getVocabularies().clear();
60 135
        }
61 136
        List<TermVocabularyDto> vocs = new ArrayList<>();
62
        vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
137
        Set<CdmClass> availableFor = new HashSet<>();
138
        availableFor.add(CdmClass.TAXON_NAME);
139
        vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
63 140

  
64 141
        setVocabularies(vocs);
65 142
    }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java
101 101
            sectionModifierVocabularies.setEntity(getEntity());
102 102
        }
103 103

  
104
        availableForTaxon = formFactory.createCheckbox(formElement, "Available for Taxon", entity.isAvailableForTaxon(), style);;
105
        availableForTaxonName = formFactory.createCheckbox(formElement, "Available for Taxon Name", entity.isAvailableForTaxonName(), style);;;
104
        availableForTaxon = formFactory.createCheckbox(formElement, "Available for Taxon", entity.isAvailableForTaxon(), style);
105
        availableForTaxonName = formFactory.createCheckbox(formElement, "Available for Taxon Name", entity.isAvailableForTaxonName(), style);
106 106
        availableForSpecimenOrObservation = formFactory.createCheckbox(formElement, "Available for Occurrence", entity.isAvailableForOccurrence(), style);
107 107
    }
108 108

  
......
152 152
        }
153 153
	    else if(eventSource == availableForSpecimenOrObservation){
154 154
            getEntity().setAvailableForOccurrence(availableForSpecimenOrObservation.getSelection());
155
            System.err.println(getEntity().isAvailableForOccurrence());
155 156
        }
156 157
	    else if(eventSource == availableForTaxon){
157 158
            getEntity().setAvailableForTaxon(availableForTaxon.getSelection());
159
            System.err.println(getEntity().isAvailableForTaxon());
158 160
        }
159 161
	    else if(eventSource == availableForTaxonName){
160 162
            getEntity().setAvailableForTaxonName(availableForTaxonName.getSelection());
163
            System.err.println(getEntity().isAvailableForTaxonName());
161 164
        }
162 165

  
163 166
        StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);

Also available in: Unified diff