Project

General

Profile

« Previous | Next » 

Revision 4d76d7eb

Added by Fabian Reimeier over 6 years ago

ref #6903 TermCacher reorganisation

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/container/PresenceAbsenceTermContainer.java
10 10
import com.vaadin.data.util.BeanItemContainer;
11 11
import com.vaadin.server.VaadinSession;
12 12

  
13
import eu.etaxonomy.cdm.model.common.TermType;
14 13
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
15 14
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
16 15
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
......
34 33

  
35 34
    private void initDataModel() {
36 35
        Collection<PresenceAbsenceTerm> distributionStatus = getDistributionStatusList(TERMS_INIT_STRATEGY);
37

  
38 36
        defaultDistributionStatus = distributionStatus;
39
		TermCacher termCacher = TermCacher.getInstance();
40 37
		addAll(distributionStatus);
41
		for (PresenceAbsenceTerm presenceAbsenceTerm : distributionStatus) {
42
			termCacher.addPresenceAbsenceTerm(presenceAbsenceTerm);
43
		}
44 38
    }
45 39

  
46 40
	public static PresenceAbsenceTermContainer getInstance(){
......
66 60
            List<UUID> uuidList = statusPref.getValueUuidList();
67 61
            return (List)CdmSpringContextHelper.getTermService().load(uuidList, propertyPath);
68 62
        }else{
69
            return CdmSpringContextHelper.getTermService().listByTermType(
70
                    TermType.PresenceAbsenceTerm, null, null, null, propertyPath);
63
            return TermCacher.getInstance().getDistributionStatusTermList();
71 64
        }
72 65
    }
73 66

  
src/main/java/eu/etaxonomy/cdm/vaadin/util/TermCacher.java
8 8
*/
9 9
package eu.etaxonomy.cdm.vaadin.util;
10 10

  
11
import java.util.ArrayList;
12
import java.util.Arrays;
11 13
import java.util.HashMap;
14
import java.util.List;
12 15
import java.util.Map;
13 16

  
17
import eu.etaxonomy.cdm.model.common.TermType;
14 18
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
15 19
import eu.etaxonomy.cdm.model.location.NamedArea;
16 20

  
......
38 42
        return instance;
39 43
    }
40 44

  
45

  
41 46
    public void addNamedArea(NamedArea namedArea){
42 47
        titleToNamedAreaMap.put(namedArea.getTitleCache(), namedArea);
43 48
    }
44 49

  
50
//    private void loadNamedAreaTerms() {
51
//        List<NamedArea> naTerms = CdmSpringContextHelper.getTermService().listByTermType(TermType.NamedArea,
52
//                                                                     null, null, null, TERMS_INIT_STRATEGY);
53
//        for(NamedArea naTerm : naTerms) {
54
//            this.addNamedArea(naTerm);
55
//        }
56
//    }
57

  
45 58
    public NamedArea getNamedArea(String title){
59
//        // TODO: Only load single area if not already cached.
60
//        if(titleToNamedAreaMap.isEmpty()) {
61
//            loadNamedAreaTerms();
62
//        }
46 63
        return titleToNamedAreaMap.get(title);
47 64
    }
48 65

  
66
//    // Performance Issue
67
//    public List<NamedArea> getNamedAreaTermList(){
68
//        if (titleToNamedAreaMap.isEmpty()) {
69
//            loadNamedAreaTerms();
70
//        }
71
//        List<NamedArea> naList = new ArrayList<>();
72
//        naList.addAll(titleToNamedAreaMap.values());
73
//        return naList;
74
//    }
75

  
49 76
    public void addPresenceAbsenceTerm(PresenceAbsenceTerm presenceAbsenceTerm){
50 77
        titleToPresenceAbsenceTermMap.put(presenceAbsenceTerm.getTitleCache(), presenceAbsenceTerm);
51 78
    }
52 79

  
80
    private void loadDistributionStatusTerms() {
81
        List<PresenceAbsenceTerm> paTerms = CdmSpringContextHelper.getTermService().listByTermType(
82
                                                TermType.PresenceAbsenceTerm, null, null, null,
83
                                                TERMS_INIT_STRATEGY);
84
        for(PresenceAbsenceTerm paTerm : paTerms) {
85
            this.addPresenceAbsenceTerm(paTerm);
86
        }
87
    }
88

  
53 89
    public PresenceAbsenceTerm getPresenceAbsenceTerm(String title){
90
        if(titleToPresenceAbsenceTermMap.isEmpty()) {
91
            loadDistributionStatusTerms();
92
        }
54 93
        return titleToPresenceAbsenceTermMap.get(title);
55 94
    }
95

  
96
    public List<PresenceAbsenceTerm> getDistributionStatusTermList(){
97
        if (titleToPresenceAbsenceTermMap.isEmpty()) {
98
            loadDistributionStatusTerms();
99
        }
100
        List<PresenceAbsenceTerm> paList = new ArrayList<>();
101
        paList.addAll(titleToPresenceAbsenceTermMap.values());
102
        return paList;
103
    }
104

  
105
    protected static final List<String> TERMS_INIT_STRATEGY = Arrays.asList(new String []{
106
            "$",
107
            "representations",
108
    });
56 109
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/DistributionTableViewBean.java
317 317
     */
318 318
	@Override
319 319
	protected void initContent() {
320
	    // initialize term cacher for table formatting
321
	    getPresenter().getPresenceAbsenceTermContainer();
322 320
	    // initialize layout
323 321
        AbsoluteLayout mainLayout = initLayout();
324 322
        setCompositionRoot(mainLayout);

Also available in: Unified diff