diff options
author | Johannes Dahlström <johannesd@vaadin.com> | 2014-09-23 17:52:44 +0300 |
---|---|---|
committer | Johannes Dahlström <johannesd@vaadin.com> | 2014-09-23 18:48:18 +0300 |
commit | d156b34db4aad889e5dcdfe6de660826e53de050 (patch) | |
tree | 272be49c88c03ff5b59a5b8a8ea4cc740daf3689 /server/src/com/vaadin/ui/components/grid/AbstractRenderer.java | |
parent | dd26a0da34260f0ad303b820e8a1624ca13de04a (diff) | |
download | vaadin-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.java | 27 |
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> |