diff options
author | Johannes Dahlström <johannesd@vaadin.com> | 2014-12-18 18:43:21 +0200 |
---|---|---|
committer | Teemu Suo-Anttila <teemusa@vaadin.com> | 2014-12-30 08:09:50 +0000 |
commit | 8355e9d00fd6025ce390293f9cf5fc8fdd45d0e8 (patch) | |
tree | 9fde24695348bd5416921483619e78a830bb50fc /client | |
parent | 181b598714e979ad26236a3677f9e825f74ca282 (diff) | |
download | vaadin-framework-8355e9d00fd6025ce390293f9cf5fc8fdd45d0e8.tar.gz vaadin-framework-8355e9d00fd6025ce390293f9cf5fc8fdd45d0e8.zip |
Make disabled Grid nonfocusable and ignore events (#13334)
Change-Id: Ie017b0449c84ec1afd902503712133ab095282d8
Diffstat (limited to 'client')
-rw-r--r-- | client/src/com/vaadin/client/widgets/Grid.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index a5b90e5563..e53e79c46b 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -54,6 +54,7 @@ import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; +import com.google.gwt.user.client.ui.HasEnabled; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.ResizeComposite; import com.google.gwt.user.client.ui.Widget; @@ -171,7 +172,8 @@ import com.vaadin.shared.util.SharedUtil; * @author Vaadin Ltd */ public class Grid<T> extends ResizeComposite implements - HasSelectionHandlers<T>, SubPartAware, DeferredWorker, HasWidgets { + HasSelectionHandlers<T>, SubPartAware, DeferredWorker, HasWidgets, + HasEnabled { /** * Enum describing different sections of Grid. @@ -2449,6 +2451,8 @@ public class Grid<T> extends ResizeComposite implements */ private final AutoColumnWidthsRecalculator autoColumnWidthsRecalculator = new AutoColumnWidthsRecalculator(); + private boolean enabled = true; + /** * Enumeration for easy setting of selection mode. */ @@ -3457,6 +3461,19 @@ public class Grid<T> extends ResizeComposite implements } @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void setEnabled(boolean enabled) { + this.enabled = enabled; + getElement().setTabIndex(enabled ? 0 : -1); + getEscalator().setScrollLocked(Direction.VERTICAL, !enabled); + getEscalator().setScrollLocked(Direction.HORIZONTAL, !enabled); + } + + @Override public void setStylePrimaryName(String style) { super.setStylePrimaryName(style); escalator.setStylePrimaryName(style); @@ -4428,6 +4445,10 @@ public class Grid<T> extends ResizeComposite implements @Override public void onBrowserEvent(Event event) { + if (!isEnabled()) { + return; + } + EventTarget target = event.getEventTarget(); if (!Element.is(target)) { |