Revision b3f62829
Added by Andreas Kohlbecker almost 6 years ago
src/main/java/eu/etaxonomy/cdm/service/TaxonNameStringFilterablePagingProvider.java | ||
---|---|---|
21 | 21 |
|
22 | 22 |
import com.vaadin.data.Property.ValueChangeListener; |
23 | 23 |
import com.vaadin.ui.AbstractField; |
24 |
import com.vaadin.ui.Field; |
|
24 | 25 |
|
25 | 26 |
import eu.etaxonomy.cdm.api.service.INameService; |
26 | 27 |
import eu.etaxonomy.cdm.api.service.pager.Pager; |
... | ... | |
78 | 79 |
public void listenToFields(AbstractField<String> genusOrUninomialField, AbstractField<String> infraGenericEpithetField, |
79 | 80 |
AbstractField<String> specificEpithetField, AbstractField<String> infraSpecificEpithetField){ |
80 | 81 |
|
81 |
for(AbstractField<String> f : registeredToFields.keySet()){ |
|
82 |
f.removeValueChangeListener(registeredToFields.get(f)); |
|
83 |
} |
|
84 |
registeredToFields.clear(); |
|
82 |
unlistenAllFields(); |
|
85 | 83 |
|
86 | 84 |
registerNullSave(genusOrUninomialField, e -> namePartsFilter.setGenusOrUninomial(genusOrUninomialField.getValue())); |
87 | 85 |
registerNullSave(infraGenericEpithetField, e -> namePartsFilter.setGenusOrUninomial(infraGenericEpithetField.getValue())); |
... | ... | |
89 | 87 |
registerNullSave(infraSpecificEpithetField, e -> namePartsFilter.setGenusOrUninomial(infraSpecificEpithetField.getValue())); |
90 | 88 |
} |
91 | 89 |
|
90 |
/** |
|
91 |
* |
|
92 |
*/ |
|
93 |
public void unlistenAllFields() { |
|
94 |
for(AbstractField<String> f : registeredToFields.keySet()){ |
|
95 |
f.removeValueChangeListener(registeredToFields.get(f)); |
|
96 |
} |
|
97 |
registeredToFields.clear(); |
|
98 |
} |
|
99 |
|
|
100 |
public void replaceFields(AbstractField<String> unlistenField, AbstractField<String> listenToField) throws UnknownFieldException{ |
|
101 |
if(registeredToFields.containsKey(unlistenField)){ |
|
102 |
ValueChangeListener listener = registeredToFields.get(unlistenField); |
|
103 |
unlistenField.removeValueChangeListener(listener); |
|
104 |
registeredToFields.remove(unlistenField); |
|
105 |
registerNullSave(listenToField, listener); |
|
106 |
} else { |
|
107 |
throw new UnknownFieldException(); |
|
108 |
} |
|
109 |
} |
|
110 |
|
|
111 |
public void updateFromFields(){ |
|
112 |
for(AbstractField<String> f : registeredToFields.keySet()){ |
|
113 |
ValueChangeListener listener = registeredToFields.get(f); |
|
114 |
listener.valueChange(new Field.ValueChangeEvent(f)); |
|
115 |
} |
|
116 |
} |
|
117 |
|
|
92 | 118 |
/** |
93 | 119 |
* @param genusOrUninomialField |
94 | 120 |
*/ |
... | ... | |
187 | 213 |
public List<Criterion> getCriteria() { |
188 | 214 |
return criteria; |
189 | 215 |
} |
216 |
|
|
217 |
public class UnknownFieldException extends Exception { |
|
218 |
|
|
219 |
private static final long serialVersionUID = 1L; |
|
220 |
|
|
221 |
|
|
222 |
} |
|
190 | 223 |
} |
Also available in: Unified diff
ref #7338 mode VALIDATE_AGAINST_HIGHER_NAME_PART implemented for specificEpithet