Example #1
0
  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");
    }
  }