Project

General

Profile

« Previous | Next » 

Revision bef42c71

Added by Andreas Kohlbecker almost 7 years ago

ref #6169 implementing lazy loading ToOneRelatedEntityCombobox field and using it for inReferences

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/reference/ReferenceEditorPresenter.java
14 14
import org.apache.log4j.Logger;
15 15
import org.springframework.context.event.EventListener;
16 16
import org.springframework.transaction.TransactionStatus;
17
import org.vaadin.viritin.fields.CaptionGenerator;
18
import org.vaadin.viritin.fields.LazyComboBox.FilterableCountProvider;
19
import org.vaadin.viritin.fields.LazyComboBox.FilterablePagingProvider;
17 20

  
18
import com.vaadin.data.util.BeanItemContainer;
19 21
import com.vaadin.ui.ListSelect;
20 22

  
23
import eu.etaxonomy.cdm.api.service.pager.Pager;
21 24
import eu.etaxonomy.cdm.model.reference.Reference;
22 25
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
26
import eu.etaxonomy.cdm.persistence.query.MatchMode;
23 27
import eu.etaxonomy.cdm.persistence.query.OrderHint;
24 28
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
25 29
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityField;
......
50 54
    @Override
51 55
    public void handleViewEntered() {
52 56
        super.handleViewEntered();
57
        /*
53 58
        ListSelect select = getView().getInReferenceSelect().getSelect();
54 59
        BeanItemContainer<Reference> inReferenceSelectContainer = (BeanItemContainer<Reference>) select.getContainerDataSource();
55 60
        List<Reference> references = getRepo().getCommonService().list(Reference.class, (Integer)null, (Integer)null,
......
58 63
        inReferenceSelectContainer.addAll(references);
59 64
        select.setItemCaptionPropertyId("titleCache");
60 65
        select.markAsDirty();
66
        */
67

  
68
        getView().getInReferenceCombobox().getSelect().setCaptionGenerator(new CaptionGenerator<Reference>(){
69

  
70
            @Override
71
            public String getCaption(Reference option) {
72
                return option.getTitleCache();
73
            }
74

  
75
        });
76
        getView().getInReferenceCombobox().loadFrom(new FilterablePagingProvider<Reference>(){
77

  
78
            @Override
79
            public List<Reference> findEntities(int firstRow, String filter) {
80
                Pager<Reference> page = getRepo().getReferenceService().findByTitle(
81
                        null,
82
                        filter,
83
                        MatchMode.ANYWHERE,
84
                        null,
85
                        20,
86
                        firstRow,
87
                        OrderHint.ORDER_BY_TITLE_CACHE.asList(),
88
                        Arrays.asList("$")
89
                      );
90
                return page.getRecords();
91
            }},
92
            new FilterableCountProvider(){
93
                @Override
94
                public int size(String filter) {
95
                    Pager<Reference> page = getRepo().getReferenceService().findByTitle(
96
                            null,
97
                            filter,
98
                            MatchMode.ANYWHERE,
99
                            null,
100
                            1,
101
                            0,
102
                            null,
103
                            null
104
                          );
105
                    return page.getCount().intValue();
106
                }}
107
            , 20);
61 108
    }
62 109

  
63 110
    /**

Also available in: Unified diff