aboutsummaryrefslogtreecommitdiffstats
path: root/client/src
diff options
context:
space:
mode:
authorAlexey Fansky <alexey.fansky@effective-soft.com>2015-03-23 11:55:55 -0700
committerVaadin Code Review <review@vaadin.com>2015-03-25 14:31:33 +0000
commitf665aed236f64da849862d4e463d80deecc33d9a (patch)
tree10e73fe6fe12daa312c76a064514b9aeb77b79ef /client/src
parent140844eaff3de1b926460081405eb7d53ec811f8 (diff)
downloadvaadin-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.java1
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java13
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);
}
}