Project

General

Profile

« Previous | Next » 

Revision 5dd877d3

Added by Andreas Kohlbecker over 5 years ago

ref #7481 adding validator for in reference type constraints

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/reference/ReferenceEditorPresenter.java
30 30
import eu.etaxonomy.cdm.model.reference.Reference;
31 31
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
32 32
import eu.etaxonomy.cdm.model.reference.ReferenceType;
33
import eu.etaxonomy.cdm.persistence.dao.common.Restriction;
34
import eu.etaxonomy.cdm.persistence.dao.common.Restriction.Operator;
33 35
import eu.etaxonomy.cdm.service.CdmFilterablePagingProvider;
34 36
import eu.etaxonomy.cdm.service.UserHelperAccess;
35 37
import eu.etaxonomy.cdm.vaadin.component.CdmBeanItemContainerFactory;
......
61 63

  
62 64
    ReferencePopupEditor inReferencePopup = null;
63 65

  
66
    CdmFilterablePagingProvider<Reference, Reference> inReferencePagingProvider;
67

  
68
    Restriction<UUID> includeCurrentInReference;
69

  
64 70
    public ReferenceEditorPresenter() {
65 71

  
66 72
    }
......
73 79
    public void handleViewEntered() {
74 80
        super.handleViewEntered();
75 81

  
82

  
83
        updateInReferencePageProvider();
76 84
        getView().getInReferenceCombobox().getSelect().setCaptionGenerator(new CaptionGenerator<Reference>(){
77 85

  
78 86
            @Override
......
106 114

  
107 115
    @Override
108 116
    protected void adaptDataProviders() {
109
        CdmFilterablePagingProvider<Reference, Reference> collectionPagingProvider = pagingProviderFactory.inRereferencePagingProvider((ReferenceType) getView().getTypeSelect().getValue());
110
        getView().getInReferenceCombobox().loadFrom(collectionPagingProvider, collectionPagingProvider, collectionPagingProvider.getPageSize());
117
//        updateInReferencePageProvider();
118
//        getView().getInReferenceCombobox().addValueChangeListener(e -> updateInReferencePageProvider());
119
    }
120

  
121

  
122
    /**
123
     * @param inReferencePagingProvider
124
     */
125
    public void updateInReferencePageProvider() {
126

  
127
        inReferencePagingProvider = pagingProviderFactory.inReferencePagingProvider((ReferenceType) getView().getTypeSelect().getValue());
128
        Reference inReference = getView().getInReferenceCombobox().getValue();
129
        if(inReference != null){
130
            if(includeCurrentInReference == null){
131
                includeCurrentInReference = new Restriction<UUID>("uuid", Operator.OR, null, inReference.getUuid());
132
            }
133
            inReferencePagingProvider.addRestriction(includeCurrentInReference);
134
        } else {
135
            inReferencePagingProvider.getRestrictions().remove(includeCurrentInReference);
136
            includeCurrentInReference = null;
137
        }
138
        getView().getInReferenceCombobox().reload();
139
        getView().getInReferenceCombobox().loadFrom(inReferencePagingProvider, inReferencePagingProvider, inReferencePagingProvider.getPageSize());
111 140
    }
112 141

  
113 142

  

Also available in: Unified diff