aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java')
-rwxr-xr-xsrc/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
index e1c490f4de..06824e5541 100755
--- a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
@@ -185,8 +185,8 @@ public class ApplicationConnection implements EntryPoint {
}
private void addVariableToQueue(String paintableId, String variableName,
- String encodedValue, boolean immediate) {
- String id = paintableId + "_" + variableName;
+ String encodedValue, boolean immediate, char type) {
+ String id = paintableId + "_" + variableName + "_" + type;
for (int i = 0; i < pendingVariables.size(); i += 2)
if ((pendingVariables.get(i)).equals(id)) {
pendingVariables.remove(i);
@@ -202,37 +202,35 @@ public class ApplicationConnection implements EntryPoint {
public void sendPendingVariableChanges() {
StringBuffer req = new StringBuffer();
+ req.append("changes=");
for (int i = 0; i < pendingVariables.size(); i++) {
- req.append(pendingVariables.get(i++));
- req.append("=");
+ if (i>0) req.append("\u0001");
req.append(pendingVariables.get(i));
- req.append("&");
}
pendingVariables.clear();
makeUidlRequest(req.toString());
}
- private String escapeString(String value) {
- // TODO
- return value;
- }
+ private static native String escapeString(String value) /*-{
+ return encodeURIComponent(value);
+ }-*/;
public void updateVariable(String paintableId, String variableName,
String newValue, boolean immediate) {
addVariableToQueue(paintableId, variableName, escapeString(newValue),
- immediate);
+ immediate, 's');
}
public void updateVariable(String paintableId, String variableName,
int newValue, boolean immediate) {
- addVariableToQueue(paintableId, variableName, "" + newValue, immediate);
+ addVariableToQueue(paintableId, variableName, "" + newValue, immediate, 'i');
}
public void updateVariable(String paintableId, String variableName,
boolean newValue, boolean immediate) {
addVariableToQueue(paintableId, variableName, newValue ? "true"
- : "false", immediate);
+ : "false", immediate, 'b');
}
public void updateVariable(String paintableId, String variableName,
@@ -243,8 +241,8 @@ public class ApplicationConnection implements EntryPoint {
buf.append(",");
buf.append(escapeString(values[i].toString()));
}
- addVariableToQueue("array:" + paintableId, variableName,
- buf.toString(), immediate);
+ addVariableToQueue(paintableId, variableName,
+ buf.toString(), immediate, 'a');
}
public WidgetFactory getWidgetFactory() {