Project

General

Profile

« Previous | Next » 

Revision 8a925e42

Added by Katja Luther over 4 years ago

ref #8389: adapt term preference handling

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java
25 25
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
26 26
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
27 27
import eu.etaxonomy.cdm.model.term.TermType;
28
import eu.etaxonomy.cdm.persistence.dto.TermDto;
28 29
import eu.etaxonomy.taxeditor.store.CdmStore;
29 30

  
30 31
/**
......
145 146
                }
146 147

  
147 148
                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
148
                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.PresenceAbsenceTerm);
149
                List<TermDto> dtos = new ArrayList<>();
150
                for (DefinedTermBase term: definedTermBases){
151
                    dtos.add(TermDto.fromTerm(term));
152
                }
153
                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.PresenceAbsenceTerm);
149 154
            }
150 155
        }
151 156
         key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableRanks);
......
167 172
                }
168 173

  
169 174
                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
170
                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.Rank);
175
                List<TermDto> dtos = new ArrayList();
176
                for (DefinedTermBase term: definedTermBases){
177
                    dtos.add(TermDto.fromTerm(term));
178
                }
179
                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.Rank);
171 180
            }
172 181
        }
173 182

  
......
190 199
                }
191 200

  
192 201
                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
193
                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.NomenclaturalStatusType);
202
                List<TermDto> dtos = new ArrayList();
203
                for (DefinedTermBase term: definedTermBases){
204
                    dtos.add(TermDto.fromTerm(term));
205
                }
206
                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.NomenclaturalStatusType);
194 207
            }
195 208
        }
196 209
    }
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreference.java
322 322
        }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
323 323
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), true);
324 324
        }
325
        if (vocabularies.size() == 1){
325
        if (type == null){
326 326
            CdmStore.getTermManager().setPreferredTermsByDto(preferredTermDtos, vocabularies.get(0));
327 327
        }else{
328
            CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, type);
328
            CdmStore.getTermManager().setPreferredTermsByType(preferredTermDtos, type);
329 329
        }
330 330
        PreferencesUtil.firePreferencesChanged(this.getClass());
331 331
        return true;
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/RankPreference.java
14 14

  
15 15
import org.apache.commons.lang.StringUtils;
16 16

  
17
import eu.etaxonomy.cdm.api.service.ITermService;
18 17
import eu.etaxonomy.cdm.api.service.IVocabularyService;
19 18
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
20
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
21 19
import eu.etaxonomy.cdm.model.term.TermType;
22 20
import eu.etaxonomy.cdm.persistence.dto.TermDto;
23 21
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
......
68 66
        }
69 67
        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
70 68
        List<UUID> listUIIDChecked = new ArrayList<>();
71
        List<DefinedTermBase> preferredTerms = new ArrayList<>();
69
        List<TermDto> preferredTerms = new ArrayList<>();
72 70
        for (Object o : checkedElements) {
73 71
            if(o instanceof TermDto){
74 72
                TermDto termDto = (TermDto) o;
75 73
                listUIIDChecked.add(termDto.getUuid());
76
                preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
74
                preferredTerms.add(termDto);
77 75
            }
78 76
        }
79 77
        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/SpecimenTypeDesignationStatusMenuPreferences.java
15 15

  
16 16
import org.apache.commons.lang.StringUtils;
17 17

  
18
import eu.etaxonomy.cdm.api.service.ITermService;
19 18
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
20
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
21 19
import eu.etaxonomy.cdm.model.term.TermType;
22 20
import eu.etaxonomy.cdm.persistence.dto.TermDto;
23 21
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
......
64 62
       }
65 63
       Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
66 64
       List<UUID> listUIIDChecked = new ArrayList<>();
67
       List<DefinedTermBase> preferredTerms = new ArrayList<>();
65
       List<TermDto> preferredTerms = new ArrayList<>();
68 66
       for (Object o : checkedElements) {
69 67
           if(o instanceof TermDto){
70 68
               TermDto termDto = (TermDto) o;
71 69
               listUIIDChecked.add(termDto.getUuid());
72
               preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
70
               preferredTerms.add(termDto);
73 71
           }
74 72
       }
75 73
       String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermManager.java
265 265
     * @param initialTerms a {@link java.util.List} object.
266 266
     * @param <T> a T object.
267 267
     */
268
    public <T extends DefinedTermBase> void setPreferredTermsByType(Collection<T> preferredTerms, TermType type){
269

  
270

  
271

  
272
        List<DefinedTermBase> oldValues = getPreferredTerms(type);
273
        for (DefinedTermBase term: oldValues){
274
            PreferencesUtil.setBooleanValue(getPrefName(term), false);
268
    public  void setPreferredTermsByType(Collection<TermDto> preferredTerms, TermType type){
269
        List<?> oldValues = getPreferredTerms(type);
270
        for (Object term: oldValues){
271
            if (term instanceof TermDto){
272
                PreferencesUtil.setBooleanValue(getPrefNameByDto((TermDto)term), false);
273
            }else{
274
                PreferencesUtil.setBooleanValue(getPrefName((DefinedTermBase)term), false);
275
            }
275 276
        }
276
        for(TermBase term : preferredTerms){
277
           PreferencesUtil.setBooleanValue(getPrefName(term), true);
277
        for(TermDto term : preferredTerms){
278
           PreferencesUtil.setBooleanValue(getPrefNameByDto(term), true);
278 279

  
279 280
        }
280 281

  
281 282
        clearTermMapForTermType(type);
282
        List<DefinedTermBase> list = new ArrayList<>(preferredTerms);
283
        List<TermDto> list = new ArrayList<>(preferredTerms);
283 284
        cachedTermMap.put(type.getUuid(), list);
284 285

  
285 286

  

Also available in: Unified diff