aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorJohannes Dahlström <johannesd@vaadin.com>2016-08-02 12:07:22 +0300
committerPekka Hyvönen <pekka@vaadin.com>2016-12-01 09:48:23 +0000
commit5ffd1309e1453871dc8c092c79b1016c88a805ae (patch)
tree1dbb43011ef61053ca992831c8488fe1c503a9e9 /client
parentedde64dd81d75ade1a02d92001ed0f55451dbb95 (diff)
downloadvaadin-framework-5ffd1309e1453871dc8c092c79b1016c88a805ae.tar.gz
vaadin-framework-5ffd1309e1453871dc8c092c79b1016c88a805ae.zip
Start client-side Grid DOM event handling refactor
Change-Id: I67dad4cfbd6e9e355c48703253ff3d6da00e4eef
Diffstat (limited to 'client')
-rw-r--r--client/src/main/java/com/vaadin/client/widgets/Grid.java49
1 files changed, 33 insertions, 16 deletions
diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java
index e10035f9f7..5e33124405 100644
--- a/client/src/main/java/com/vaadin/client/widgets/Grid.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java
@@ -7311,31 +7311,34 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
eventCell.set(cell, getSectionFromContainer(container));
// Editor can steal focus from Grid and is still handled
- if (isEditorEnabled() && handleEditorEvent(event, container)) {
+ if (handleEditorEvent(event, container)) {
return;
}
// Fire GridKeyEvents and GridClickEvents. Pass the event to escalator.
- super.onBrowserEvent(event);
+ if (handleSuperEvent(event, container)) {
+ return;
+ }
- if (!isElementInChildWidget(e)) {
+ if (handleChildWidgetEvent(event, container)) {
+ return;
+ }
- if (handleHeaderCellDragStartEvent(event, container)) {
- return;
- }
+ if (handleHeaderCellDragStartEvent(event, container)) {
+ return;
+ }
- // Sorting through header Click / KeyUp
- if (handleHeaderDefaultRowEvent(event, container)) {
- return;
- }
+ // Sorting through header Click / KeyUp
+ if (handleHeaderDefaultRowEvent(event, container)) {
+ return;
+ }
- if (handleRendererEvent(event, container)) {
- return;
- }
+ if (handleRendererEvent(event, container)) {
+ return;
+ }
- if (handleCellFocusEvent(event, container)) {
- return;
- }
+ if (handleCellFocusEvent(event, container)) {
+ return;
}
}
@@ -7389,6 +7392,10 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
}
private boolean handleEditorEvent(Event event, RowContainer container) {
+ if (!isEditorEnabled()) {
+ return false;
+ }
+
Widget w;
if (editor.focusedColumnIndex < 0) {
w = null;
@@ -7402,6 +7409,16 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
return getEditor().getEventHandler().handleEvent(editorEvent);
}
+ private boolean handleSuperEvent(Event event, RowContainer container) {
+ super.onBrowserEvent(event);
+ return false;
+ }
+
+ private boolean handleChildWidgetEvent(Event event,
+ RowContainer container) {
+ return isElementInChildWidget(Element.as(event.getEventTarget()));
+ }
+
private boolean handleRendererEvent(Event event, RowContainer container) {
if (container == escalator.getBody()) {