ko4j/src/main/java/org/netbeans/html/ko4j/FXContext.java
branchUniversalKO
changeset 446 6dce58c06f58
parent 442 bd85dbbdc60c
child 452 059e6c2cc82b
     1.1 --- a/ko4j/src/main/java/org/netbeans/html/ko4j/FXContext.java	Thu Jan 09 15:03:34 2014 +0100
     1.2 +++ b/ko4j/src/main/java/org/netbeans/html/ko4j/FXContext.java	Thu Jan 09 20:39:23 2014 +0100
     1.3 @@ -42,9 +42,11 @@
     1.4   */
     1.5  package org.netbeans.html.ko4j;
     1.6  
     1.7 +import java.io.ByteArrayOutputStream;
     1.8  import java.io.Closeable;
     1.9  import java.io.IOException;
    1.10  import java.io.InputStream;
    1.11 +import java.io.InputStreamReader;
    1.12  import java.util.concurrent.Executor;
    1.13  import java.util.logging.Logger;
    1.14  import net.java.html.js.JavaScriptBody;
    1.15 @@ -73,7 +75,7 @@
    1.16          this.browserContext = browserContext;
    1.17      }
    1.18      
    1.19 -    @JavaScriptBody(args = {}, body = "return true;")
    1.20 +    @JavaScriptBody(args = {}, body = "if (window) return true; else return false;")
    1.21      private static boolean isJavaScriptEnabledJs() {
    1.22          return false;
    1.23      }
    1.24 @@ -148,7 +150,22 @@
    1.25  
    1.26      @Override
    1.27      public void loadJSON(final JSONCall call) {
    1.28 -        LoadJSON.loadJSON(call);
    1.29 +        if (call.isJSONP()) {
    1.30 +            String me = LoadJSON.createJSONP(call);
    1.31 +            LoadJSON.loadJSONP(call.composeURL(me), me);
    1.32 +        } else {
    1.33 +            String data = null;
    1.34 +            if (call.isDoOutput()) {
    1.35 +                try {
    1.36 +                    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    1.37 +                    call.writeData(bos);
    1.38 +                    data = new String(bos.toByteArray(), "UTF-8");
    1.39 +                } catch (IOException ex) {
    1.40 +                    call.notifyError(ex);
    1.41 +                }
    1.42 +            }
    1.43 +            LoadJSON.loadJSON(call.composeURL(null), call, call.getMethod(), data);
    1.44 +        }
    1.45      }
    1.46  
    1.47      @Override
    1.48 @@ -158,7 +175,16 @@
    1.49  
    1.50      @Override
    1.51      public Object toJSON(InputStream is) throws IOException {
    1.52 -        return LoadJSON.parse(is);
    1.53 +        StringBuilder sb = new StringBuilder();
    1.54 +        InputStreamReader r = new InputStreamReader(is);
    1.55 +        for (;;) {
    1.56 +            int ch = r.read();
    1.57 +            if (ch == -1) {
    1.58 +                break;
    1.59 +            }
    1.60 +            sb.append((char)ch);
    1.61 +        }
    1.62 +        return LoadJSON.parse(sb.toString());
    1.63      }
    1.64  
    1.65      @Override