summaryrefslogtreecommitdiffstats
path: root/client/src
diff options
context:
space:
mode:
Diffstat (limited to 'client/src')
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java
index 93e94b8447..78d1fd4197 100644
--- a/client/src/com/vaadin/client/widgets/Grid.java
+++ b/client/src/com/vaadin/client/widgets/Grid.java
@@ -1000,7 +1000,7 @@ public class Grid<T> extends ResizeComposite implements
private void cleanup() {
state = State.ACTIVE;
- enableButtons(true);
+ setButtonsEnabled(true);
saveTimeout.cancel();
}
};
@@ -1126,7 +1126,7 @@ public class Grid<T> extends ResizeComposite implements
}
state = State.SAVING;
- enableButtons(false);
+ setButtonsEnabled(false);
saveTimeout.schedule(SAVE_TIMEOUT_MS);
EditorRequest<T> request = new EditorRequest<T>(grid, rowIndex,
saveRequestCallback);
@@ -1372,7 +1372,13 @@ public class Grid<T> extends ResizeComposite implements
editorOverlay.getStyle().setLeft(-grid.getScrollLeft(), Unit.PX);
}
- private void enableButtons(boolean enabled) {
+ protected void setGridEnabled(boolean enabled) {
+ // TODO: This should be informed to handler as well so possible
+ // fields can be disabled.
+ setButtonsEnabled(enabled);
+ }
+
+ private void setButtonsEnabled(boolean enabled) {
saveButton.setEnabled(enabled);
cancelButton.setEnabled(enabled);
}
@@ -3542,7 +3548,15 @@ public class Grid<T> extends ResizeComposite implements
this.enabled = enabled;
getElement().setTabIndex(enabled ? 0 : -1);
- getEscalator().setScrollLocked(Direction.VERTICAL, !enabled);
+
+ // Editor save and cancel buttons need to be disabled.
+ boolean editorOpen = editor.getState() != State.INACTIVE;
+ if (editorOpen) {
+ editor.setGridEnabled(enabled);
+ }
+
+ getEscalator().setScrollLocked(Direction.VERTICAL,
+ !enabled || editorOpen);
getEscalator().setScrollLocked(Direction.HORIZONTAL, !enabled);
}