summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorJohannes Dahlström <johannesd@vaadin.com>2014-12-18 18:43:21 +0200
committerTeemu Suo-Anttila <teemusa@vaadin.com>2014-12-30 08:09:50 +0000
commit8355e9d00fd6025ce390293f9cf5fc8fdd45d0e8 (patch)
tree9fde24695348bd5416921483619e78a830bb50fc /client
parent181b598714e979ad26236a3677f9e825f74ca282 (diff)
downloadvaadin-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.java23
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)) {