public JSObject readJsArray(Collection<Map<String, Object>> aCollection) { JSObject result = makeArray(); JSObject jsPush = (JSObject) result.getMember("push"); aCollection.forEach((Map<String, Object> aItem) -> { JSObject jsItem = makeObj(); aItem.entrySet().forEach((Map.Entry<String, Object> aItemContent) -> { jsItem.setMember(aItemContent.getKey(), toJs(aItemContent.getValue())); }); jsPush.call(result, new Object[]{jsItem}); }); return result; }
public static void setPathData(JSObject anElement, String aPath, Object aValue) { if (aPath != null && !aPath.isEmpty()) { JSObject target = anElement; String[] path = aPath.split("\\."); String propName = path[0]; for (int i = 1; i < path.length; i++) { Object oTarget = target.getMember(propName); propName = path[i]; if (!(oTarget instanceof JSObject)) { propName = null; break; } else { target = (JSObject) oTarget; } } if (propName != null) { Object jsData = Scripts.isInitialized()/* Carzy designer :(*/ ? Scripts.getSpace().toJs(aValue) : aValue; target.setMember(propName, jsData); } else { Logger.getLogger(ModelWidget.class.getName()).log(Level.FINE, PROPERTY_PATH_MISSING_MSG, aPath); } } else { Logger.getLogger(ModelWidget.class.getName()).log(Level.FINE, "Property path missing"); } } static final String PROPERTY_PATH_MISSING_MSG = "Property path: {0} doesn't exist.";
protected Object executeEvent(final int aEventId, final Object anEvent) { try { JSObject handler = handlers.get(aEventId); if (handler != null) { return Scripts.getSpace().toJava(handler.call(eventThis, new Object[]{Scripts.getSpace().toJs(wrapEvent(anEvent))})); } else { return null; } } catch (Exception ex) { Logger.getLogger(ControlEventsIProxy.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); return null; } }
for(int p = 1; p <= aParams.getParametersCount(); p++){ Parameter param = aParams.get(p); params.put(param.getName(), aSpace.toJson(aSpace.toJs(param.getValue())));
JSObject jsEvent = Scripts.getSpace().makeObj(); jsEvent.setMember("source", getPublished()); jsEvent.setMember("value", Scripts.getSpace().toJs(value)); try { return JSType.toString(onFormat.call(getPublished(), new Object[]{jsEvent}));
Logger.getLogger(ScriptedResource.class.getName()).log(Level.SEVERE, null, ex); space.process(() -> { aOnFailure.call(null, new Object[]{space.toJs(ex.getMessage())}); });
@Override public void visit(RPCRequest.Response resp) throws Exception { final Object result = ((RPCRequest.Response) resp).getResult(); makeResponseNotCacheable(servletResponse); if (result instanceof String) { writeJsonResponse((String) result, servletResponse, async); } else if (result instanceof Report) { writeReportResponse((Report) result); } else if (result instanceof JSObject) { /* JSObject jsResult = (JSObject) result; JSObject p = space.lookupInGlobal("P"); if (p != null) { Object reportClass = p.getMember("Report"); if (jsResult.isInstanceOf(reportClass)) { Report report = (Report) ((JSObject) jsResult.getMember("unwrap")).call(null, new Object[]{}); writeReportResponse(report); } else { writeJsonResponse(space.toJson(result), servletResponse, async); } } else { writeJsonResponse(space.toJson(result), servletResponse, async); } */ writeJsonResponse(space.toJson(result), servletResponse, async); } else {// including null result writeJsonResponse(space.toJson(space.toJs(result)), servletResponse, async); } }
jsHeaders.setMember(aEntry.getKey(), aSpace.toJs(aEntry.getValue())); }); jsResp.setMember("headers", jsHeaders); jsCookie.setMember("name", aCookie.getName()); jsCookie.setMember("domain", aCookie.getDomain()); jsCookie.setMember("expires", aSpace.toJs(aCookie.getExpires())); jsCookie.setMember("maxAge", (double) aCookie.getMaxAge()); jsCookie.setMember("path", aCookie.getPath());
protected void bind() { if (data != null && field != null && !field.isEmpty() && Scripts.isInitialized()) { boundToData = Scripts.getSpace().listen(data, field, new AbstractJSObject() { @Override public Object call(Object thiz, Object... args) { rebind(); return null; } }); Object oData = ModelWidget.getPathData(data, field); setJsValue(oData); boundToValue = (PropertyChangeEvent evt) -> { if (!settingValueFromJs) { settingValueToJs = true; try { ModelWidget.setPathData(data, field, Scripts.getSpace().toJs(evt.getNewValue())); } finally { settingValueToJs = false; } } }; addValueChangeListener(boundToValue); } else { setJsValue(null); } }
@Override public Object callServerModuleMethod(String aModuleName, String aMethodName, Scripts.Space aSpace, JSObject onSuccess, JSObject onFailure, Object... aArguments) throws Exception { if (Scripts.getContext() != null) { Scripts.getContext().incAsyncsCount(); } assert Scripts.getSpace() == aSpace; serverCore.executeMethod(aModuleName, aMethodName, aArguments, false, onSuccess != null ? (Object aResult) -> { onSuccess.call(null, new Object[]{aSpace.toJs(aResult)}); } : null, (Exception ex) -> { if (onFailure != null) { onFailure.call(null, new Object[]{ex instanceof JsObjectException ? ((JsObjectException) ex).getData() : ex.toString()}); } else { Logger.getLogger(LocalServerModulesProxy.class.getName()).log(Level.SEVERE, ex.toString()); } }); return null;// Only asynchronous form is allowed. }
@Override public Object getJsValue() { return Scripts.getSpace() != null ? Scripts.getSpace().toJs(getValue()) : getValue(); }
@ScriptFunction(name = "value", jsDoc = JS_VALUE_JSDOC) @Undesignable @Override public Object getJsValue() { return Scripts.isInitialized() ? Scripts.getSpace().toJs(super.getValue()) : super.getValue(); }
public static Object load(final String aResourceName, String aCalledFromFile, JSObject aOnSuccess, JSObject aOnFailure) throws Exception { Scripts.Space space = Scripts.getSpace(); return _load(aResourceName, aCalledFromFile, space, aOnSuccess != null ? (Object aLoaded) -> { aOnSuccess.call(null, new Object[]{space.toJs(aLoaded)}); } : null, aOnFailure != null ? (Exception ex) -> { aOnFailure.call(null, new Object[]{space.toJs(ex.getMessage())}); } : null); }
@ScriptFunction(jsDoc = "" + "/**\n" + " * Value of changed property.\n" + " */") public Object getValue() { return Scripts.getSpace().toJs(value); }
public JSObject toJsArray(List aArray) { JSObject published = makeArray(); JSObject push = (JSObject) published.getMember("push"); for (int i = 0; i < aArray.size(); i++) { push.call(published, toJs(aArray.get(i))); } return published; }