aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/components/grid/AbstractRenderer.java
diff options
context:
space:
mode:
authorJohannes Dahlström <johannesd@vaadin.com>2014-09-23 17:52:44 +0300
committerJohannes Dahlström <johannesd@vaadin.com>2014-09-23 18:48:18 +0300
commitd156b34db4aad889e5dcdfe6de660826e53de050 (patch)
tree272be49c88c03ff5b59a5b8a8ea4cc740daf3689 /server/src/com/vaadin/ui/components/grid/AbstractRenderer.java
parentdd26a0da34260f0ad303b820e8a1624ca13de04a (diff)
downloadvaadin-framework-d156b34db4aad889e5dcdfe6de660826e53de050.tar.gz
vaadin-framework-d156b34db4aad889e5dcdfe6de660826e53de050.zip
Add default implementation of Renderer.encode to AbstractRenderer (#13334)
Change-Id: I74a0960bbe56e71702762e4cf1067098dd428125
Diffstat (limited to 'server/src/com/vaadin/ui/components/grid/AbstractRenderer.java')
-rw-r--r--server/src/com/vaadin/ui/components/grid/AbstractRenderer.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/components/grid/AbstractRenderer.java b/server/src/com/vaadin/ui/components/grid/AbstractRenderer.java
index d1cf77c24b..a0eea891e7 100644
--- a/server/src/com/vaadin/ui/components/grid/AbstractRenderer.java
+++ b/server/src/com/vaadin/ui/components/grid/AbstractRenderer.java
@@ -17,6 +17,9 @@ package com.vaadin.ui.components.grid;
import com.vaadin.server.AbstractClientConnector;
import com.vaadin.server.AbstractExtension;
+import com.vaadin.server.JsonCodec;
+
+import elemental.json.JsonValue;
/**
* An abstract base class for server-side Grid renderers.
@@ -65,6 +68,30 @@ public abstract class AbstractRenderer<T> extends AbstractExtension implements
return presentationType;
}
+ @Override
+ public JsonValue encode(T value) {
+ return JsonCodec.encode(doEncode(value), null, getPresentationType(),
+ getUI().getConnectorTracker()).getEncodedValue();
+ }
+
+ /**
+ * Encodes the given value to an intermediate representation that can be
+ * serialized to JSON by Vaadin. The default implementation simply returns
+ * the value as is.
+ * <p>
+ * This is a helper method intended to be overridden if the value must be
+ * processed somehow but doing the JSON serialization manually is not
+ * desired. For instance, a {@code Renderer<Date>} could return a formatted
+ * string from {@code doEncode}.
+ *
+ * @param value
+ * the value to be encoded
+ * @return a value that can be serialized by Vaadin
+ */
+ protected Object doEncode(T value) {
+ return value;
+ }
+
/**
* Gets the item id for a row key.
* <p>