summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2012-03-13 20:40:27 +0200
committerArtur Signell <artur@vaadin.com>2012-03-14 16:00:56 +0200
commit07c94092bd066846d20e5bf6c4fe87b88f5cd9f2 (patch)
tree2a7ed980682c8057aa00ba06d748c5f4063d562d /src/com/vaadin
parent4a3f767d1cd330b4dc83531f349e2d6408b202da (diff)
downloadvaadin-framework-07c94092bd066846d20e5bf6c4fe87b88f5cd9f2.tar.gz
vaadin-framework-07c94092bd066846d20e5bf6c4fe87b88f5cd9f2.zip
#8504 Support passing Connector references to/from client
Diffstat (limited to 'src/com/vaadin')
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java8
-rw-r--r--src/com/vaadin/terminal/gwt/server/JsonCodec.java2
-rw-r--r--src/com/vaadin/ui/Component.java5
3 files changed, 9 insertions, 6 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java b/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
index 0eaa106b43..33a415a91d 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
@@ -15,8 +15,8 @@ import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
+import com.vaadin.terminal.gwt.client.ServerConnector;
/**
* Client side decoder for decodeing shared state and other values from JSON
@@ -39,7 +39,8 @@ public class JsonDecoder {
* @param jsonArray
* JSON array with two elements
* @param idMapper
- * mapper between connector ID and {@link ServerConnector} objects
+ * mapper between connector ID and {@link ServerConnector}
+ * objects
* @param connection
* reference to the current ApplicationConnection
* @return decoded value (does not contain JSON types)
@@ -82,8 +83,7 @@ public class JsonDecoder {
// TODO handle properly
val = Boolean.valueOf(String.valueOf(value));
} else if (JsonEncoder.VTYPE_PAINTABLE.equals(variableType)) {
- // TODO handle properly
- val = idMapper.getConnector(String.valueOf(value));
+ val = idMapper.getConnector(((JSONString) value).stringValue());
} else {
// object, class name as type
JSONSerializer serializer = serializerMap
diff --git a/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/src/com/vaadin/terminal/gwt/server/JsonCodec.java
index 4b3f41508e..44180e78c9 100644
--- a/src/com/vaadin/terminal/gwt/server/JsonCodec.java
+++ b/src/com/vaadin/terminal/gwt/server/JsonCodec.java
@@ -20,6 +20,7 @@ import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
import com.vaadin.external.json.JSONObject;
import com.vaadin.terminal.Paintable;
+import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.terminal.gwt.client.communication.JsonEncoder;
/**
@@ -35,6 +36,7 @@ public class JsonCodec implements Serializable {
static {
registerType(String.class, JsonEncoder.VTYPE_STRING);
registerType(Paintable.class, JsonEncoder.VTYPE_PAINTABLE);
+ registerType(Connector.class, JsonEncoder.VTYPE_PAINTABLE);
registerType(Boolean.class, JsonEncoder.VTYPE_BOOLEAN);
registerType(Integer.class, JsonEncoder.VTYPE_INTEGER);
registerType(Float.class, JsonEncoder.VTYPE_FLOAT);
diff --git a/src/com/vaadin/ui/Component.java b/src/com/vaadin/ui/Component.java
index 9c3f1a02f1..d3efb74118 100644
--- a/src/com/vaadin/ui/Component.java
+++ b/src/com/vaadin/ui/Component.java
@@ -18,6 +18,7 @@ import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Sizeable;
import com.vaadin.terminal.VariableOwner;
import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.terminal.gwt.server.RpcTarget;
/**
@@ -53,8 +54,8 @@ import com.vaadin.terminal.gwt.server.RpcTarget;
* @VERSION@
* @since 3.0
*/
-public interface Component extends Paintable, VariableOwner, Sizeable,
- Serializable, RpcTarget {
+public interface Component extends Connector, Paintable, VariableOwner,
+ Sizeable, Serializable, RpcTarget {
/**
* Gets all user-defined CSS style names of a component. If the component