Revision 5dd877d3
Added by Andreas Kohlbecker over 5 years ago
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
ref #7481 adding validator for in reference type constraints