Revision af0633ea
Added by Andreas Kohlbecker about 5 years ago
src/main/java/eu/etaxonomy/vaadin/component/WeaklyRelatedEntityCombobox.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.vaadin.component; |
10 | 10 |
|
11 |
import java.util.Objects; |
|
11 | 12 |
import java.util.Optional; |
12 | 13 |
import java.util.UUID; |
13 | 14 |
|
... | ... | |
196 | 197 |
*/ |
197 | 198 |
@Override |
198 | 199 |
public void setValue(String newFieldValue) throws com.vaadin.data.Property.ReadOnlyException, ConversionException { |
199 |
lazySelect.refresh(); |
|
200 |
if(lazySelect.getOptions().contains(newFieldValue)){ |
|
201 |
lazySelect.setValue(newFieldValue); |
|
200 |
if(!Objects.equals(newFieldValue, lazySelect.getValue())){ |
|
201 |
lazySelect.refresh(); |
|
202 |
if(contains(newFieldValue)){ |
|
203 |
lazySelect.setValue(newFieldValue); |
|
204 |
} |
|
205 |
lazySelect.markAsDirty(); |
|
202 | 206 |
} |
203 |
lazySelect.markAsDirty(); |
|
204 | 207 |
} |
205 | 208 |
|
209 |
/** |
|
210 |
* @param newFieldValue |
|
211 |
* @return |
|
212 |
*/ |
|
213 |
private boolean contains(String newFieldValue) { |
|
214 |
UUID id = filterablePagingProvider.idFor(newFieldValue); |
|
215 |
return id != null; |
|
216 |
} |
|
217 |
|
|
218 |
|
|
206 | 219 |
@Override |
207 | 220 |
public boolean isValueInOptions(){ |
208 | 221 |
return lazySelect.getOptions().contains(lazySelect.getValue()); |
Also available in: Unified diff
ref #8176 WeaklyRelatedEntityCombobox solving minor performance on setValue