diff options
author | Artur Signell <artur@vaadin.com> | 2012-12-17 21:16:54 +0200 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-12-17 21:16:54 +0200 |
commit | e0769ba8b00455181b2539af088275df120c866f (patch) | |
tree | a288db926a693d9139e4edb0735d0ce6325e63b6 /server/src | |
parent | 47bd15b914b90d600f7082d828e14ddc97b69ecd (diff) | |
download | vaadin-framework-e0769ba8b00455181b2539af088275df120c866f.tar.gz vaadin-framework-e0769ba8b00455181b2539af088275df120c866f.zip |
Only update value on locale change if using the data source directly (#8192)
Change-Id: I8bbf8f693ccb2646df898433897425de7898966f
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/com/vaadin/ui/AbstractField.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 59e986cd23..9cf72a36b3 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -1344,8 +1344,11 @@ public abstract class AbstractField<T> extends AbstractComponent implements } private void localeMightHaveChanged() { - if (!equals(valueLocale, getLocale())) { - Object modelValue = convertToModel(getValue(), valueLocale); + if (!equals(valueLocale, getLocale()) && dataSource != null + && !isBuffered() && !isModified()) { + // When we have a data source and the internal value is directly + // read from that we want to update the value + Object modelValue = convertToModel(getInternalValue(), valueLocale); setValue(convertFromModel(modelValue)); } } |