public void generateJsFile(PrintWriter out, UIBaseType uiEntity) throws Exception { String jsEntityName = entityName.replace('.', '_'); List commonComponent = new ArrayList(); List reference = new ArrayList(); List container = new ArrayList(); referenceMap = new HashMap(); UIContainerType rootPanel = null; if (uiEntity instanceof UIEntity) { rootPanel = ((UIEntity) uiEntity).getBody(); divideContainer(rootPanel, commonComponent, reference, container, false); } for (int i = 0; i < reference.size(); i++) { UIReferenceEntityType rType = (UIReferenceEntityType) reference.get(i); List<ReconfigurationType> reconfigs = rType.getReconfigurations(); for (ReconfigurationType reconfig : reconfigs) { if (reconfig instanceof FunctionReconfigurationType) { FunctionReconfigurationType ffType = (FunctionReconfigurationType) reconfig; String funcName = "this." + rType.getUIID() + "." + ffType.getOriginFunctionName(); referenceMap.put(ffType.getOverrideFunctionName(), funcName); } } } out.write("\n/* "); out.print(uiEntity.getRevision()); out.write(" */\n/* auto generated constructor */\nfunction "); out.print(jsEntityName); out.write("(json)\n{\n var prefix = (typeof(json) == \"string\") ? json : json.prefix; \n"); if (uiEntity instanceof UIEntity) { genComponentJS(out, commonComponent, reference, container, (UIEntity) uiEntity); genRootPanelJS( out, (UIPanelType) rootPanel, commonComponent, reference, container, (UIEntity) uiEntity); out.write("\n "); out.print(((UIEntity) uiEntity).getBody().getUIID()); out.write(".user_constructor = function()\n {\n /* Construct_FIRST:"); out.print(jsEntityName); out.write(" */\n"); List result = null; if (jsText != null) { result = JSMerge.getConstructPlugin(jsText); } if (result != null && result.size() > 0) { genUserConstructor(out); } else if (((UIPanelType) rootPanel).getConstructorCode() != null) { out.write("\n "); out.print(((UIPanelType) rootPanel).getConstructorCode()); out.write("\n "); } out.write(" /* Construct_LAST:"); out.print(jsEntityName); out.write(" */\n };\n"); } else { out.write( "\n var Form = {}\n Form.name = prefix;\n Form.init = function()\n {\n /* Construct_FIRST:"); out.print(jsEntityName); out.write(" */\n"); genUserConstructor(out); out.write(" /* Construct_LAST:"); out.print(jsEntityName); out.write(" */\n };\n"); } }