Changeset 4916
- Timestamp:
- 06/18/08 12:34:17 (5 months ago)
- Location:
- trunk/src/com/itmill/toolkit/terminal/gwt
- Files:
-
- 2 modified
-
client/ApplicationConnection.java (modified) (6 diffs)
-
server/CommunicationManager.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
r4913 r4916 49 49 private static final String ERROR_CLASSNAME_EXT = "-error"; 50 50 51 public static final String VAR_RECORD_SEPARATOR = escapeString("\u001e");52 53 public static final String VAR_FIELD_SEPARATOR = escapeString("\u001f");51 public static final String VAR_RECORD_SEPARATOR = "\u001e"; 52 53 public static final String VAR_FIELD_SEPARATOR = "\u001f"; 54 54 55 55 private final HashMap resourcesMap = new HashMap(); … … 132 132 view = new IView(cnf.getRootPanelId()); 133 133 134 makeUidlRequest(" repaintAll=1");134 makeUidlRequest("", true); 135 135 applicationRunning = true; 136 136 } … … 230 230 } 231 231 232 private void makeUidlRequest(String requestData ) {232 private void makeUidlRequest(String requestData, boolean repaintAll) { 233 233 startRequest(); 234 234 235 235 console.log("Making UIDL Request with params: " + requestData); 236 final String uri = getAppUri() + "UIDL" + configuration.getPathInfo(); 236 String uri = getAppUri() + "UIDL" + configuration.getPathInfo(); 237 if (repaintAll) { 238 uri += "?repaintAll=1"; 239 } 237 240 final RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, uri); 238 rb.setHeader("Content-Type",239 "application/x-www-form-urlencoded; charset=utf-8");240 //rb.setHeader("Content-Type", "text/plain;charset=utf-8");241 // rb.setHeader("Content-Type", 242 // "application/x-www-form-urlencoded; charset=utf-8"); 243 rb.setHeader("Content-Type", "text/plain;charset=utf-8"); 241 244 try { 242 245 rb.sendRequest(requestData, new RequestCallback() { … … 621 624 final StringBuffer req = new StringBuffer(); 622 625 623 req.append("changes=");624 626 for (int i = 0; i < pendingVariables.size(); i++) { 625 627 if (i > 0) { … … 634 636 635 637 pendingVariables.clear(); 636 makeUidlRequest(req.toString()); 637 } 638 639 private static native String escapeString(String value) 640 /*-{ 641 return encodeURIComponent(value); 642 }-*/; 638 makeUidlRequest(req.toString(), false); 639 } 643 640 644 641 public void updateVariable(String paintableId, String variableName, 645 642 String newValue, boolean immediate) { 646 addVariableToQueue(paintableId, variableName, escapeString(newValue), 647 immediate, 's'); 643 addVariableToQueue(paintableId, variableName, newValue, immediate, 's'); 648 644 } 649 645 … … 685 681 buf.append(","); 686 682 } 687 buf.append( escapeString(values[i].toString()));683 buf.append(values[i].toString()); 688 684 } 689 685 addVariableToQueue(paintableId, variableName, buf.toString(), -
trunk/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java
r4894 r4916 32 32 33 33 import javax.servlet.ServletException; 34 import javax.servlet.ServletInputStream; 34 35 import javax.servlet.ServletOutputStream; 35 36 import javax.servlet.http.HttpServletRequest; … … 48 49 import com.itmill.toolkit.terminal.VariableOwner; 49 50 import com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent; 50 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;51 51 import com.itmill.toolkit.ui.Component; 52 52 import com.itmill.toolkit.ui.Upload; … … 72 72 private static final int VAR_VALUE = 0; 73 73 74 private static final String VAR_RECORD_SEPARATOR = ApplicationConnection.VAR_RECORD_SEPARATOR; 75 76 private static final String VAR_FIELD_SEPARATOR = ApplicationConnection.VAR_FIELD_SEPARATOR; 74 private static final String VAR_RECORD_SEPARATOR = "\u001e"; 75 76 private static final String VAR_FIELD_SEPARATOR = "\u001f"; 77 78 private static final int MAX_BUFFER_SIZE = 64 * 1024; 77 79 78 80 private final ArrayList dirtyPaintabletSet = new ArrayList(); … … 504 506 * @param application2 505 507 * @return true if successful, false if there was an inconsistency 508 * @throws IOException 506 509 */ 507 510 private boolean handleVariables(HttpServletRequest request, 508 Application application2) {511 Application application2) throws IOException { 509 512 boolean success = true; 510 final Map params = new HashMap(request.getParameterMap()); 511 final String changes = (String) ((params.get("changes") instanceof String[]) ? ((String[]) params 512 .get("changes"))[0] 513 : params.get("changes")); 514 params.remove("changes"); 515 516 if (changes != null && changes.length() > 0) { 513 514 if (request.getContentLength() > 0) { 515 516 byte[] buffer = new byte[request.getContentLength()]; 517 ServletInputStream inputStream = request.getInputStream(); 518 int totalBytesRead = 0; 519 int bytesRead; 520 while ((bytesRead = inputStream.read(buffer, totalBytesRead, 521 MAX_BUFFER_SIZE)) != -1) { 522 totalBytesRead += bytesRead; 523 } 524 525 String changes = new String(buffer, "utf-8"); 517 526 // extract variables to two dim string array 518 527 final String[] tmp = changes.split(VAR_RECORD_SEPARATOR);
