summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorKnoobie <Knoobie@gmx.de>2017-10-30 09:00:21 +0100
committerPéter Török <31210544+torok-peter@users.noreply.github.com>2017-10-30 10:00:21 +0200
commite65efdfb50bc10bedf506d475f582276f6be0e2f (patch)
tree73c6ef9f6ad9658ea2ff564024f8426433c69b06 /client
parentfb6e81221bd1b5ab0b81a3ee6c82e4286df57264 (diff)
downloadvaadin-framework-e65efdfb50bc10bedf506d475f582276f6be0e2f.tar.gz
vaadin-framework-e65efdfb50bc10bedf506d475f582276f6be0e2f.zip
add Grid.Column#get/setAssistiveCaption (#10219)
* add Grid#Column#get/setAssistiveCaption * fix test and update doc * move testGridAssistiveCaption to GridTest * delete test file * delete test file * Delete GridAssistiveCaptionTest.java * Create GridAssistiveCaptionTest * Create GridAssistiveCaption * Rename GridAssistiveCaption to GridAssistiveCaption.java * Rename GridAssistiveCaptionTest to GridAssistiveCaptionTest.java * Reformat using eclipse
Diffstat (limited to 'client')
-rw-r--r--client/src/main/java/com/vaadin/client/connectors/grid/ColumnConnector.java5
-rwxr-xr-xclient/src/main/java/com/vaadin/client/widgets/Grid.java50
2 files changed, 53 insertions, 2 deletions
diff --git a/client/src/main/java/com/vaadin/client/connectors/grid/ColumnConnector.java b/client/src/main/java/com/vaadin/client/connectors/grid/ColumnConnector.java
index b9d14dc91c..e46a01c1ae 100644
--- a/client/src/main/java/com/vaadin/client/connectors/grid/ColumnConnector.java
+++ b/client/src/main/java/com/vaadin/client/connectors/grid/ColumnConnector.java
@@ -98,6 +98,11 @@ public class ColumnConnector extends AbstractExtensionConnector {
column.setHeaderCaption(getState().caption);
}
+ @OnStateChange("assistiveCaption")
+ void updateAssistiveCaption() {
+ column.setAssistiveCaption(getState().assistiveCaption);
+ }
+
@OnStateChange("sortable")
void updateSortable() {
column.setSortable(getState().sortable);
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 11604db9b8..34b58d569f 100755
--- a/client/src/main/java/com/vaadin/client/widgets/Grid.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java
@@ -26,6 +26,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
@@ -4722,6 +4723,8 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
private String headerCaption = "";
+ private String assistiveCaption = null;
+
private String hidingToggleCaption = null;
private double minimumWidthPx = GridConstants.DEFAULT_MIN_WIDTH;
@@ -4836,6 +4839,36 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
return headerCaption;
}
+ /**
+ * Sets the header aria-label for this column.
+ *
+ * @param caption
+ * The header aria-label for this column
+ * @return the column itself
+ *
+ * @since
+ */
+ public Column<C, T> setAssistiveCaption(String caption) {
+ if (!Objects.equals(this.assistiveCaption, caption)) {
+ this.assistiveCaption = caption;
+ if (grid != null) {
+ grid.getHeader().requestSectionRefresh();
+ }
+ }
+
+ return this;
+ }
+ /**
+ * Returns the current header aria-label for this column.
+ *
+ * @return the header aria-label string
+ *
+ * @since
+ */
+ public String getAssistiveCaption() {
+ return assistiveCaption;
+ }
+
private void updateHeader() {
HeaderRow row = grid.getHeader().getDefaultRow();
if (row != null) {
@@ -5730,6 +5763,7 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
// Decorate default row with sorting indicators
if (staticRow instanceof HeaderRow) {
+ addAriaLabelToHeaderRow(cell);
addSortingIndicatorsToHeaderRow((HeaderRow) staticRow,
cell);
}
@@ -5954,8 +5988,20 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
}
}
- private void addSortingIndicatorsToHeaderRow(HeaderRow headerRow,
- FlyweightCell cell) {
+ private void addAriaLabelToHeaderRow(FlyweightCell cell) {
+
+ Element cellElement = cell.getElement();
+
+ final Column<?, T> column = getVisibleColumn(cell.getColumn());
+
+ if (column.getAssistiveCaption() != null) {
+ cellElement.setAttribute("aria-label", column.getAssistiveCaption());
+ } else {
+ cellElement.removeAttribute("aria-label");
+ }
+ }
+
+ private void addSortingIndicatorsToHeaderRow(HeaderRow headerRow, FlyweightCell cell) {
Element cellElement = cell.getElement();