diff options
author | Alexey Fansky <alexey.fansky@effective-soft.com> | 2015-03-23 11:55:55 -0700 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-03-25 14:31:33 +0000 |
commit | f665aed236f64da849862d4e463d80deecc33d9a (patch) | |
tree | 10e73fe6fe12daa312c76a064514b9aeb77b79ef /client/src | |
parent | 140844eaff3de1b926460081405eb7d53ec811f8 (diff) | |
download | vaadin-framework-f665aed236f64da849862d4e463d80deecc33d9a.tar.gz vaadin-framework-f665aed236f64da849862d4e463d80deecc33d9a.zip |
Disables selection when Grid's editor is open (#17132).
Change-Id: Ibbbffbfe2e8bcb763031ac277c2c36ce4eb4e3fc
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java | 1 | ||||
-rw-r--r-- | client/src/com/vaadin/client/widgets/Grid.java | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/client/src/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java b/client/src/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java index 5024c8bffa..ddbf690970 100644 --- a/client/src/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java +++ b/client/src/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java @@ -569,6 +569,7 @@ public class MultiSelectionRenderer<T> extends ComplexRenderer<Boolean> { InputElement checkbox = InputElement.as(cell.getElement() .getFirstChildElement()); checkbox.setChecked(data.booleanValue()); + checkbox.setDisabled(grid.isEditorActive()); checkbox.setPropertyInt(LOGICAL_ROW_PROPERTY_INT, cell.getRowIndex()); } diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index f4a5b0961c..d9845bcdc8 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -1157,6 +1157,7 @@ public class Grid<T> extends ResizeComposite implements + "Grid editor"); grid.getEscalator().setScrollLocked(Direction.VERTICAL, false); + updateSelectionCheckboxesAsNeeded(true); } } }; @@ -1256,6 +1257,16 @@ public class Grid<T> extends ResizeComposite implements null); handler.cancel(request); state = State.INACTIVE; + updateSelectionCheckboxesAsNeeded(true); + } + + private void updateSelectionCheckboxesAsNeeded(boolean isEnabled) { + if (grid.getSelectionModel() instanceof Multi) { + grid.refreshBody(); + CheckBox checkBox = (CheckBox) grid.getDefaultHeaderRow() + .getCell(grid.selectionColumn).getWidget(); + checkBox.setEnabled(isEnabled); + } } /** @@ -1282,6 +1293,7 @@ public class Grid<T> extends ResizeComposite implements EditorRequest<T> request = new EditorRequestImpl<T>(grid, rowIndex, saveRequestCallback); handler.save(request); + updateSelectionCheckboxesAsNeeded(true); } /** @@ -1346,6 +1358,7 @@ public class Grid<T> extends ResizeComposite implements rowIndex, bindRequestCallback); handler.bind(request); grid.getEscalator().setScrollLocked(Direction.VERTICAL, true); + updateSelectionCheckboxesAsNeeded(false); } } |