diff --git a/java/src/main/java/com/genexus/webpanels/GXWebPanel.java b/java/src/main/java/com/genexus/webpanels/GXWebPanel.java index 2720c6b76..b32b37285 100644 --- a/java/src/main/java/com/genexus/webpanels/GXWebPanel.java +++ b/java/src/main/java/com/genexus/webpanels/GXWebPanel.java @@ -514,62 +514,55 @@ protected class DynAjaxEvent { HashSet inParmsMetadataHash; boolean anyError; - private void parseInputJSonMessage(JSONObject objMessage, GXWebPanel targetObj) throws JSONException { - if (objMessage.has("parms")) - inParmsValues = objMessage.getJSONArray("parms"); - if (objMessage.has("hsh")) - inHashValues = objMessage.getJSONArray("hsh"); - if (objMessage.has("events")) - events = objMessage.getJSONArray("events"); - if (objMessage.has("cmpCtx")) - cmpContext = objMessage.getString("cmpCtx"); - this.targetObj = targetObj; - try - { - String pckgName = (objMessage.has("pkgName") && objMessage.getString("pkgName").length() > 0)? objMessage.getString("pkgName") + ".": ""; - if (objMessage.has("MPage") && objMessage.getBoolean("MPage")) - { - if (objMessage.has("objClass")) - { + private void parseInputJSonMessage(String jsonMessage, GXWebPanel targetObj) throws JSONException { + try { + JSONObject objMessage = new JSONObject(jsonMessage); + if (objMessage.has("parms")) + inParmsValues = objMessage.getJSONArray("parms"); + if (objMessage.has("hsh")) + inHashValues = objMessage.getJSONArray("hsh"); + if (objMessage.has("events")) + events = objMessage.getJSONArray("events"); + if (objMessage.has("cmpCtx")) + cmpContext = objMessage.getString("cmpCtx"); + this.targetObj = targetObj; + String pckgName = (objMessage.has("pkgName") && objMessage.getString("pkgName").length() > 0) ? objMessage.getString("pkgName") + "." : ""; + if (objMessage.has("MPage") && objMessage.getBoolean("MPage")) { + if (objMessage.has("objClass")) { String fullClassName = pckgName + objMessage.getString("objClass") + "_impl"; Class webComponentClass = targetObj.getClass().forName(fullClassName); - GXWebPanel webComponent = (GXWebPanel) webComponentClass.getConstructor(new Class[] { int.class, ModelContext.class }).newInstance(new Object[] {new Integer(remoteHandle), context}); + GXWebPanel webComponent = (GXWebPanel) webComponentClass.getConstructor(new Class[]{int.class, ModelContext.class}).newInstance(new Object[]{new Integer(remoteHandle), context}); this.targetObj = webComponent; } - } - else - { - if (!cmpContext.equals("") && objMessage.has("objClass")) - { + } else { + if (!cmpContext.equals("") && objMessage.has("objClass")) { String fullClassName = pckgName + objMessage.getString("objClass") + "_impl"; GXWebComponent webComponent = WebUtils.getWebComponent(getClass(), fullClassName, remoteHandle, context); this.targetObj = webComponent; } } - } - catch (Exception e) - { + if (objMessage.has("grids")) + parseGridsDataParms((JSONObject) objMessage.get("grids")); + if (objMessage.has("grid")) + grid = objMessage.getInt("grid"); + else + grid = 0; + if (objMessage.has("row")) + row = objMessage.getString("row"); + else + row = ""; + if (objMessage.has("pRow")) + pRow = objMessage.getString("pRow"); + if (objMessage.has("gxstate")) { + parseGXStateParms(objMessage.getJSONObject("gxstate")); + } + if (objMessage.has("fullPost")) { + parseGXStateParms(objMessage.getJSONObject("fullPost")); + } + } catch (Exception e) { e.printStackTrace(); this.targetObj = new GXWebComponentNull(remoteHandle, context); } - if (objMessage.has("grids")) - parseGridsDataParms((JSONObject)objMessage.get("grids")); - if (objMessage.has("grid")) - grid = objMessage.getInt("grid"); - else - grid = 0; - if (objMessage.has("row")) - row = objMessage.getString("row"); - else - row = ""; - if (objMessage.has("pRow")) - pRow = objMessage.getString("pRow"); - if (objMessage.has("gxstate")) { - parseGXStateParms(objMessage.getJSONObject("gxstate")); - } - if (objMessage.has("fullPost")) { - parseGXStateParms(objMessage.getJSONObject("fullPost")); - } } private void parseGridsDataParms(JSONObject gxGrids) @@ -1101,8 +1094,7 @@ private void doInvoke(Object [] MethodParms) throws IllegalArgumentException, public String invoke(String JsonMessage, GXWebPanel targetObj) throws Exception { - JSONObject objMessage = new JSONObject(JsonMessage); - parseInputJSonMessage(objMessage, targetObj); + parseInputJSonMessage(JsonMessage, targetObj); this.targetObj.setFullAjaxMode(); this.targetObj.createObjects(); this.targetObj.initialize();