Revision 52aa37ab
Added by Andreas Kohlbecker about 5 years ago
- ID 52aa37ab6574362cda647ba7f83c2b2521620b2c
- Parent 3506344d
src/main/java/eu/etaxonomy/cdm/service/TaxonNameStringFilterablePagingProvider.java | ||
---|---|---|
16 | 16 |
import java.util.UUID; |
17 | 17 |
|
18 | 18 |
import org.apache.log4j.Logger; |
19 |
import org.vaadin.viritin.fields.LazyComboBox.FilterableCountProvider; |
|
19 |
import org.springframework.beans.factory.annotation.Autowired; |
|
20 |
import org.springframework.context.annotation.Scope; |
|
21 |
import org.springframework.stereotype.Repository; |
|
22 |
import org.springframework.transaction.annotation.Transactional; |
|
20 | 23 |
|
21 | 24 |
import com.vaadin.data.Property.ValueChangeListener; |
22 | 25 |
import com.vaadin.ui.AbstractField; |
... | ... | |
41 | 44 |
* @since Jun 7, 2017 |
42 | 45 |
* |
43 | 46 |
*/ |
44 |
public class TaxonNameStringFilterablePagingProvider implements FilterableStringRepresentationPagingProvider<UUID>, FilterableCountProvider { |
|
47 |
@Scope("prototype") |
|
48 |
@Repository |
|
49 |
public class TaxonNameStringFilterablePagingProvider implements ITaxonNameStringFilterablePagingProvider { |
|
45 | 50 |
|
46 | 51 |
private static final List<String> DEFAULT_INIT_STRATEGY = Arrays.asList("$"); |
47 | 52 |
|
... | ... | |
49 | 54 |
|
50 | 55 |
private int pageSize = 20; |
51 | 56 |
|
57 |
@Autowired |
|
52 | 58 |
private INameService service; |
53 | 59 |
|
54 | 60 |
private MatchMode matchMode = MatchMode.BEGINNING; |
... | ... | |
64 | 70 |
private Map<String, UUID> lastPagedEntityUUIDs; |
65 | 71 |
|
66 | 72 |
|
67 |
public TaxonNameStringFilterablePagingProvider(INameService service) {
|
|
68 |
this(service, Rank.GENUS(), null);
|
|
73 |
public TaxonNameStringFilterablePagingProvider() { |
|
74 |
this(Rank.GENUS(), null); |
|
69 | 75 |
} |
70 | 76 |
|
77 |
/** |
|
71 | 78 |
public TaxonNameStringFilterablePagingProvider(INameService service, Rank rank) { |
72 | 79 |
this(service, rank, null); |
73 | 80 |
} |
81 |
*/ |
|
74 | 82 |
|
75 |
public TaxonNameStringFilterablePagingProvider(INameService service, Rank rank, MatchMode matchMode) {
|
|
83 |
private TaxonNameStringFilterablePagingProvider(Rank rank, MatchMode matchMode) {
|
|
76 | 84 |
super(); |
77 |
this.service = service; |
|
78 | 85 |
if(matchMode != null){ |
79 | 86 |
this.matchMode = matchMode; |
80 | 87 |
} |
88 |
setRankFilter(rank); |
|
89 |
} |
|
90 |
|
|
91 |
/** |
|
92 |
* @param rank |
|
93 |
*/ |
|
94 |
@Override |
|
95 |
public void setRankFilter(Rank rank) { |
|
81 | 96 |
namePartsFilter.setRank(rank); |
82 | 97 |
} |
83 | 98 |
|
99 |
|
|
100 |
@Override |
|
84 | 101 |
public void listenToFields(AbstractField<String> genusOrUninomialField, AbstractField<String> infraGenericEpithetField, |
85 | 102 |
AbstractField<String> specificEpithetField, AbstractField<String> infraSpecificEpithetField){ |
86 | 103 |
|
... | ... | |
95 | 112 |
/** |
96 | 113 |
* |
97 | 114 |
*/ |
115 |
@Override |
|
98 | 116 |
public void unlistenAllFields() { |
99 | 117 |
for(AbstractField<String> f : registeredToFields.keySet()){ |
100 | 118 |
f.removeValueChangeListener(registeredToFields.get(f)); |
... | ... | |
113 | 131 |
} |
114 | 132 |
} |
115 | 133 |
|
134 |
@Override |
|
116 | 135 |
public void updateFromFields(){ |
117 | 136 |
for(AbstractField<String> f : registeredToFields.keySet()){ |
118 | 137 |
ValueChangeListener listener = registeredToFields.get(f); |
... | ... | |
133 | 152 |
/** |
134 | 153 |
* @return the matchMode |
135 | 154 |
*/ |
136 |
protected MatchMode getMatchMode() {
|
|
155 |
public MatchMode getMatchMode() {
|
|
137 | 156 |
return matchMode; |
138 | 157 |
} |
139 | 158 |
|
140 | 159 |
/** |
141 | 160 |
* @param matchMode the matchMode to set |
142 | 161 |
*/ |
143 |
protected void setMatchMode(MatchMode matchMode) {
|
|
162 |
public void setMatchMode(MatchMode matchMode) {
|
|
144 | 163 |
this.matchMode = matchMode; |
145 | 164 |
} |
146 | 165 |
|
... | ... | |
166 | 185 |
* {@inheritDoc} |
167 | 186 |
*/ |
168 | 187 |
@Override |
188 |
@Transactional(readOnly=true) |
|
169 | 189 |
public List<String> findEntities(int firstRow, String filter) { |
170 | 190 |
|
171 | 191 |
Integer pageIndex = firstRow / pageSize; |
... | ... | |
191 | 211 |
* {@inheritDoc} |
192 | 212 |
*/ |
193 | 213 |
@Override |
214 |
@Transactional(readOnly=true) |
|
194 | 215 |
public int size(String filter) { |
195 | 216 |
|
196 | 217 |
Pager<TaxonNameParts> taxonNamePager = service.findTaxonNameParts(namePartsFilter, filter, 1, 0, null); |
... | ... | |
203 | 224 |
/** |
204 | 225 |
* @return the pageSize |
205 | 226 |
*/ |
227 |
@Override |
|
206 | 228 |
public int getPageSize() { |
207 | 229 |
return pageSize; |
208 | 230 |
} |
... | ... | |
250 | 272 |
* @param asList |
251 | 273 |
* @return |
252 | 274 |
*/ |
275 |
@Override |
|
253 | 276 |
public void excludeNames(TaxonName ... excludedTaxonNames) { |
254 | 277 |
namePartsFilter.getExludedNamesUuids(); |
255 | 278 |
for(TaxonName n : excludedTaxonNames){ |
Also available in: Unified diff
ref #8161 TaxonNameStringFilterablePagingProvider as transactional readonly prototype bean