Project

General

Profile

« Previous | Next » 

Revision be7068cc

Added by Katja Luther over 5 years ago

ref #7063:handle orderedTerms without orderindex and order by lable

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java
32 32
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
33 33
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
34 34
import eu.etaxonomy.cdm.model.common.Language;
35
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
35 36
import eu.etaxonomy.cdm.model.common.OrderedTermComparator;
36 37
import eu.etaxonomy.cdm.model.common.TermIdInVocabularyComparator;
37 38
import eu.etaxonomy.cdm.model.common.TermLanguageComparator;
......
185 186
            }
186 187
            IVocabularyService service =  CdmStore.getService(IVocabularyService.class);
187 188
            List<TermVocabulary> vocs = service.find(uuidList);
188
            split = valuesAreas.split(",");
189
            split = valuesAreas.split(";");
189 190
            listValue = Arrays.asList(split);
190 191
            for (TermVocabulary voc: vocs){
191 192
                termlist.addAll(service.getTerms(voc, null, null, null, null).getRecords());
......
222 223
    public SortedSet<DefinedTermBase> getTermsOrderedByVocabularyOrder(List<DefinedTermBase> listAreas){
223 224
        HashMap<TermVocabulary<DefinedTermBase>, List<DefinedTermBase>> vocs = new HashMap<>();
224 225
        OrderedTermComparator<?> comp = new OrderedTermComparator<>();
226
        boolean allOrderedTerms = true;
227
        List<TermVocabulary> alreadyOrderIndexNull = new ArrayList<>();
228
        for (DefinedTermBase term: listAreas){
229
            if (!(term instanceof OrderedTermBase)){
230
                allOrderedTerms = false;
231
                break;
232
            }else if (((OrderedTermBase)term).getOrderIndex() == 0){
233
                if(alreadyOrderIndexNull.contains(term.getVocabulary())) {
234
                    allOrderedTerms = false;
235
                    break;
236
                }else{
237
                    alreadyOrderIndexNull.add(term.getVocabulary());
238
                }
239

  
240

  
241
            }
242
        }
243
        if (allOrderedTerms){
244
            SortedSet<DefinedTermBase> result = new TreeSet(comp.reversed());
245
            result.addAll(listAreas);
246
            return result;
247
        }else{
248
            return getTermsOrderedByLabels(listAreas, PreferencesUtil.getGlobalLanguage());
249
        }
225 250

  
226
        SortedSet<DefinedTermBase> result = new TreeSet(comp.reversed());
227
        result.addAll(listAreas);
228 251

  
229
        return result;
230 252
    }
231 253

  
232 254
    /**
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/ChecklistEditorE4.java
575 575
            }
576 576
          index++;
577 577
      }
578
      if (oldTerms != null){
578 579
    	for (DefinedTermBase oldTerm:oldTerms){
579 580
            boolean delete = true;
580 581
            for (DefinedTermBase term: newTerms){
......
591 592
            }
592 593
        }
593 594
    	updateColumnIndex();
594

  
595
      }
595 596

  
596 597

  
597 598
    	for (DefinedTermBase term:newTerms){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
1563 1563
        } else{
1564 1564
            preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaVocabularies, saveCheckedElements);
1565 1565
            setPreferenceToDB(preference);
1566
            getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS,
1566
            getPreferenceStore().setValue(DISTRIBUTION_VOCABULARIES,
1567 1567
                    saveCheckedElements);
1568 1568

  
1569 1569
        }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAreaSelectionWizard.java
15 15
import java.util.Set;
16 16
import java.util.UUID;
17 17

  
18
import org.apache.commons.lang.StringUtils;
18 19
import org.eclipse.jface.viewers.CheckboxTableViewer;
19 20
import org.eclipse.jface.viewers.CheckboxTreeViewer;
20 21
import org.eclipse.jface.viewers.ColumnViewer;
......
24 25
import eu.etaxonomy.cdm.api.service.ITermService;
25 26
import eu.etaxonomy.cdm.api.service.IVocabularyService;
26 27
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
28
import eu.etaxonomy.cdm.model.common.TermType;
27 29
import eu.etaxonomy.cdm.model.common.TermVocabulary;
28 30
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
29 31
import eu.etaxonomy.taxeditor.store.CdmStore;
......
37 39

  
38 40
    private ColumnViewer viewer;
39 41
    private List<TermVocabulary<DefinedTermBase>> vocabularies = new ArrayList<>();
42
    boolean localPref;
40 43

  
41 44

  
42 45
    /**
......
74 77
    /**
75 78
     * @param vocs
76 79
     */
77
    protected void setVocabularies(List<TermVocabulary> vocs) {
80
    protected void setVocabularies(List<TermVocabulary<DefinedTermBase>> vocs) {
78 81
        for (TermVocabulary voc:vocs){
79 82
            vocabularies.add(voc);
80 83
        }
......
87 90
        getViewer().setInput(getVocabularies());
88 91

  
89 92
        if (grayedValues != null && grayedValues != "") {
90
            String[] listGrayed = grayedValues.split(";");
93
            String[] arrayGrayed = grayedValues.split(";");
94
            List<String> listGrayed = Arrays.asList(arrayGrayed);
91 95
            ArrayList listGrayedTerms = new ArrayList();
92 96
            getTermsFromStringValues(listGrayed, listGrayedTerms);
93 97
            for(Object element : listGrayedTerms){
......
99 103
            }
100 104
        }
101 105
        if (checkedValues != null && checkedValues != "") {
102
            String[] listChecked = checkedValues.split(",");
106
            String[] listChecked = checkedValues.split(";");
107
            String[] listCheckedComma = checkedValues.split(",");
108
            List<String> checked = new ArrayList<>();
109
            if (listChecked != null ){
110
                checked = Arrays.asList(listChecked);
111
            }
112
            if (listCheckedComma != null && checkedValues.contains(",")){
113
                checked = Arrays.asList(listCheckedComma);
114
            }
103 115
            ArrayList<DefinedTermBase<?>> listCheckedTerms = new ArrayList<DefinedTermBase<?>>();
104
            getTermsFromStringValues(listChecked, listCheckedTerms);
116
            getTermsFromStringValues(checked, listCheckedTerms);
105 117
            for(Object element : listCheckedTerms){
106 118
                if(element != null){
107 119
                    if (getViewer() instanceof CheckboxTreeViewer) {
......
118 130
     * @param split
119 131
     * @param termlist
120 132
     */
121
    private void getTermsFromStringValues(String[] split, ArrayList termlist) {
122
        List<String> listValue = Arrays.asList(split);
133
    private void getTermsFromStringValues(List<String> listValue, ArrayList termlist) {
134

  
123 135
        for (String s : listValue) {
124
            UUID uuid = UUID.fromString(s);
125
            ITermService termService = CdmStore.getService(ITermService.class);
126
            DefinedTermBase definedTermBase = termService.load(uuid);
127
            if(definedTermBase != null){
128
                termlist.add(definedTermBase);
129
            }else{
130
                IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
131
                TermVocabulary termVocabulary = vocabularyService.load(uuid);
132
                termlist.add(termVocabulary);
136
            if (!StringUtils.isBlank(s)){
137
                UUID uuid = UUID.fromString(s);
138
                ITermService termService = CdmStore.getService(ITermService.class);
139
                DefinedTermBase definedTermBase = termService.load(uuid);
140
                if(definedTermBase != null){
141
                    termlist.add(definedTermBase);
142
                }else{
143
                    IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
144
                    TermVocabulary termVocabulary = vocabularyService.load(uuid);
145
                    termlist.add(termVocabulary);
146
                }
133 147
            }
134 148
        }
135 149
    }
......
139 153
        if (getVocabularies() != null) {
140 154
            getVocabularies().clear();
141 155
        }
156
        List<TermVocabulary<DefinedTermBase>> vocs = new ArrayList<>();
157
        if (localPref){
158
            String vocString = PreferencesUtil.getPreferenceStore().getString(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
159
            String[] arrayVocs = vocString.split(";");
160

  
161
            Set<UUID> uuidVocs = new HashSet();
162
            for (String voc: arrayVocs){
163
                if (!StringUtils.isBlank(voc)){
164
                    uuidVocs.add(UUID.fromString(voc));
165
                }
166
            }
167
            List<TermVocabulary> tempVocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
168
            for (TermVocabulary voc: tempVocs){
169
                vocs.add(voc);
170
            }
142 171

  
143
        String vocString = PreferencesUtil.getPreferenceStore().getString(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
144
        String[] arrayVocs = vocString.split(";");
145

  
146
        Set<UUID> uuidVocs = new HashSet();
147
        for (String voc: arrayVocs){
148
            uuidVocs.add(UUID.fromString(voc));
172
        }else{
173
            vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
174
                    TermType.NamedArea, null);
149 175
        }
150

  
151
        List<TermVocabulary> vocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
152

  
153 176
        setVocabularies(vocs);
154 177
    }
155 178

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableAreaVocabulariesPage.java
38 38
 *
39 39
 */
40 40
public class AvailableAreaVocabulariesPage  extends AbstractAreaSelectionWizard implements ICdmEntitySessionEnabled{
41
    boolean localPref;
41

  
42 42

  
43 43
    /**
44 44
     * @param pageName
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java
48 48
     */
49 49
    protected AvailableDistributionPage(String pageName) {
50 50
        super(pageName);
51
        this.localPref = true;
51 52

  
52 53
    }
53 54

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java
80 80

  
81 81
            }
82 82

  
83
            String saveCheckedElements = StringUtils.join(listUIIDChecked, ",");
84
            String saveGrayedElements = StringUtils.join(listUIIDGrayed, ",");
83
            String saveCheckedElements = StringUtils.join(listUIIDChecked, ";");
84
            String saveGrayedElements = StringUtils.join(listUIIDGrayed, ";");
85 85
            IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
86 86
            //ToDo, if whole vocabulary is selected, save the vocabulary not all areas
87 87
            PreferencesUtil.setPreferredNamedAreasForDistributionEditor(saveCheckedElements, saveGrayedElements, false);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableVocabularyWizard.java
18 18

  
19 19
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
20 20
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
21
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
21
import eu.etaxonomy.cdm.model.common.TermVocabulary;
22 22
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
23 23
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
24 24
import eu.etaxonomy.taxeditor.store.CdmStore;
......
113 113

  
114 114
        ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
115 115
        for (Object o : checkedElements) {
116
               if(o instanceof OrderedTermVocabulary){
117
                    OrderedTermVocabulary otb = (OrderedTermVocabulary) o;
116
               if(o instanceof TermVocabulary){
117
                    TermVocabulary otb = (TermVocabulary) o;
118 118
                    listUIIDChecked.add(otb.getUuid());
119 119
                }
120 120
            }

Also available in: Unified diff