summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2015-04-24 16:51:22 +0300
committerVaadin Code Review <review@vaadin.com>2015-05-05 06:59:34 +0000
commit8b93cba4dec9cc04adc8776d116042755d18fe1e (patch)
tree687e8fa240fc2bd83e0a7bbb2de8bb4314084773 /client
parent3c5824fad9f22a3091d2bcb52122959c513d14f7 (diff)
downloadvaadin-framework-8b93cba4dec9cc04adc8776d116042755d18fe1e.tar.gz
vaadin-framework-8b93cba4dec9cc04adc8776d116042755d18fe1e.zip
Fix enabled handling for DateField and PopupDateField (#17620)
Change-Id: I3e38bb5c03453b6c1ad5c9bb717241297a779f73
Diffstat (limited to 'client')
-rw-r--r--client/src/com/vaadin/client/ui/VPopupCalendar.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/client/src/com/vaadin/client/ui/VPopupCalendar.java b/client/src/com/vaadin/client/ui/VPopupCalendar.java
index cf88ceb8d6..bbf654980b 100644
--- a/client/src/com/vaadin/client/ui/VPopupCalendar.java
+++ b/client/src/com/vaadin/client/ui/VPopupCalendar.java
@@ -269,24 +269,29 @@ public class VPopupCalendar extends VTextualDate implements Field,
*/
public void setTextFieldEnabled(boolean textFieldEnabled) {
this.textFieldEnabled = textFieldEnabled;
+ updateTextFieldEnabled();
+ }
+
+ protected void updateTextFieldEnabled() {
+ boolean reallyEnabled = isEnabled() && isTextFieldEnabled();
// IE has a non input disabled themeing that can not be overridden so we
// must fake the functionality using readonly and unselectable
if (BrowserInfo.get().isIE()) {
- if (!textFieldEnabled) {
+ if (!reallyEnabled) {
text.getElement().setAttribute("unselectable", "on");
text.getElement().setAttribute("readonly", "");
text.setTabIndex(-2);
- } else if (textFieldEnabled
+ } else if (reallyEnabled
&& text.getElement().hasAttribute("unselectable")) {
text.getElement().removeAttribute("unselectable");
text.getElement().removeAttribute("readonly");
text.setTabIndex(0);
}
} else {
- text.setEnabled(textFieldEnabled);
+ text.setEnabled(reallyEnabled);
}
- if (textFieldEnabled) {
+ if (reallyEnabled) {
calendarToggle.setTabIndex(-1);
Roles.getButtonRole().setAriaHiddenState(
calendarToggle.getElement(), true);
@@ -466,7 +471,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
-
+ updateTextFieldEnabled();
calendarToggle.setEnabled(enabled);
Roles.getButtonRole().setAriaDisabledState(calendarToggle.getElement(),
!enabled);
@@ -500,9 +505,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
if (!parsable) {
setText(previousValue);
}
-
- // superclass sets the text field independently when building date
- setTextFieldEnabled(isEnabled() && isTextFieldEnabled());
+ updateTextFieldEnabled();
}
/**