Esempio n. 1
0
  // Function��work�᥽�å�
  @Override
  public String work(ExtList data_info) {
    this.setDataList(data_info);
    // Log.out("FuncName= " + this.getFuncName());
    // Log.out("filename= " + this.getAtt("filename"));
    // Log.out("condition= " + this.getAtt("condition"));

    String FuncName = this.getFuncName();

    if (FuncName.equalsIgnoreCase("imagefile") || FuncName.equalsIgnoreCase("image")) {
      Func_imagefile();
    } else if (FuncName.equalsIgnoreCase("invoke")) {
      Func_invoke();
    } else if (FuncName.equalsIgnoreCase("foreach")) {
      try {
        Func_foreach(data_info);
      } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
      }
    } else if (FuncName.equalsIgnoreCase("sinvoke") || FuncName.equalsIgnoreCase("link")) {
      Func_sinvoke(data_info);
    } else if (FuncName.equalsIgnoreCase("null")) {
      Func_null();
    }
    // // for practice
    // else if(FuncName.equalsIgnoreCase("button")){
    // Func_button();
    // }
    // chie
    else if (FuncName.equalsIgnoreCase("submit")) {
      Func_submit();
    } else if (FuncName.equalsIgnoreCase("select")) {
      Func_select();
    } else if (FuncName.equalsIgnoreCase("checkbox")) {
      Func_checkbox();
    } else if (FuncName.equalsIgnoreCase("radio")) {
      Func_radio();
    } else if (FuncName.equalsIgnoreCase("inputtext")) {
      Func_inputtext();
    } else if (FuncName.equalsIgnoreCase("textarea")) {
      Func_textarea();
    } else if (FuncName.equalsIgnoreCase("hidden")) {
      Func_hidden();
    } else if (FuncName.equalsIgnoreCase("session")) {
      // Func_session(); not use
    }
    // tk start//////////////////////////////////
    else if (FuncName.equalsIgnoreCase("embed")) {
      Log.out("[enter embed]");
      Func_embed(data_info);
    }
    // tk end////////////////////////////////////
    else if (FuncName.equalsIgnoreCase("anchor") || FuncName.equalsIgnoreCase("a")) {
      Func_url(false, "");
    } else if (FuncName.equalsIgnoreCase("image_anchor")
        || FuncName.equalsIgnoreCase("img_anchor")
        || FuncName.equalsIgnoreCase("img_a")
        || FuncName.equalsIgnoreCase("image_a")) {
      Func_url(false, "image");
    }

    Log.out("TFEId = " + HTMLEnv.getClassID(this));
    htmlEnv.append_css_def_td(HTMLEnv.getClassID(this), this.decos);
    return null;
  }
Esempio n. 2
0
  // tk
  // start//////////////////////////////////////////////////////////////////////////////
  private void Func_embed(ExtList data_info) {
    String file = this.getAtt("file");
    String where = this.getAtt("where");
    String att = this.getAtt("att");
    this.getAtt("border");
    String att2 = this.getAtt("attString");
    String condition = new String();
    this.getAtt("defcond");

    Log.out("function embed");
    Log.out("isNewEmbed:" + GlobalEnv.isNewEmbed());

    boolean is_hidden = false;

    if (decos.containsKey("status"))
      if (decos.getStr("status").compareTo("hidden") == 0) is_hidden = true;

    // for tab
    if (decos.containsKey("tab")) {
      htmlEnv.code.append("<div id=\"myTab\" ");

      if (decos.containsKey("class"))
        htmlEnv.code.append("class=\"" + decos.getStr("class") + "\"");

      htmlEnv.code.append(">\n");
      htmlEnv.code.append("<div id=\"mTab\" class=\"yui-navset\">\n");

      htmlEnv.code.append("</div></div>\n");

      htmlEnv.script.append("var mTab = new YAHOO.widget.TabView(\"mTab\");");
      htmlEnv.script.append("new YAHOO.util.DDTarget(\"myTab\", \"myTab\");");

      return;
    }

    if (!is_hidden) {
      htmlEnv.code.append("<table class=\"att " + htmlEnv.getOutlineModeAtt() + " ");

      if (decos.containsKey("class")) htmlEnv.code.append(decos.getStr("class"));
      else htmlEnv.code.append(HTMLEnv.getClassID(this));

      htmlEnv.code.append("\"");
      htmlEnv.code.append("><tr><td>");
    }

    // for ajax div id
    // //////////////////////////////////////////////////////

    String divname = new String();
    boolean has_divid = false;

    if (decos.containsKey("divid")) {
      has_divid = true;
      Log.out("embed contains decos with divid");
      String tmpdivid = decos.getStr("divid");
      String tmp;
      String ans;

      if (tmpdivid.contains("+")) {
        ans = tmpdivid.substring(0, tmpdivid.indexOf("+"));
        tmp = tmpdivid.substring(tmpdivid.indexOf("+") + 1, tmpdivid.length());

        if (tmp.compareTo("att") == 0) {
          tmp = att;
        }
        divname = ans + "_" + tmp;
        Log.out("ans :" + ans + " tmp:" + tmp + " divname:" + divname);
      } else {
        divname = decos.getStr("divid");
      }
    } /*
       * else { //online file if(file.contains("/")) { divname =
       * file.substring(file.lastIndexOf("/")+1,file.indexOf(".sql")); }
       * //ofline file else if(file.contains("\\")) {
       * Log.out(" // index"+file.indexOf(".sql")); divname =
       * file.substring(file.lastIndexOf("\\")+1,file.indexOf(".sql")); }
       * //only file name else { divname =
       * file.substring(0,file.indexOf(".sql")); }
       *
       * }
       */
    if (GlobalEnv.isAjax() && decos.containsKey("droppable")) {
      htmlEnv.script.append("new YAHOO.util.DDTarget(\"" + divname + "\", \"" + divname + "\");");
    }
    // ajax & decos contains status=hidden
    if (is_hidden && GlobalEnv.isAjax()) {

      htmlEnv.code.append("<div id=\"" + divname + "\" ");

      if (decos.containsKey("class"))
        htmlEnv.code.append("class=\"" + decos.getStr("class") + "\" ");

      htmlEnv.code.append("></div>");
      Log.out("<div id=" + divname + "></div>");

      return;
    }
    // end ajax divname ////////////////////////////////////////////////

    /*
     * if(border.compareTo("1") == 0) {} else html_env.css.append(
     * ".embed { vertical-align : text-top; padding : 0px ; margin : 0px; border: 0px,0px,0px,0px; width: 100%;}"
     * );
     */
    if (att.compareTo("") != 0) {
      condition = condition + where + att;
    } else if (att2.compareTo("") != 0) {
      condition = condition + where + "'" + att2 + "'";
    }
    // store original config
    Hashtable tmphash = GlobalEnv.getEnv();

    // set new config for embed
    // String[] args = {"-f",file,"-cond",condition,"-debug"};
    // Log.out("cond:"+condition);
    String[] args;
    if (GlobalEnv.isAjax()) {
      if (condition.equals("")) {
        args = new String[3];
        args[0] = "-f";
        args[1] = file;
        args[2] = "-ajax";
        // args[3] = "-debug";

      } else {
        args = new String[5];
        args[0] = "-f";
        args[1] = file;
        args[2] = "-cond";
        args[3] = condition;
        args[4] = "-ajax";
        // args[5] = "-debug";
      }
    } else {
      if (GlobalEnv.isOpt()) {
        args = new String[5];
        args[0] = "-f";
        args[1] = file;
        args[2] = "-cond";
        args[3] = condition;
        args[4] = "-optimizer";
        // args[5] = "-debug";
      } else {
        args = new String[4];
        args[0] = "-f";
        args[1] = file;
        args[2] = "-cond";
        args[3] = condition;
        // args[4] = "-debug";
      }
    }

    htmlEnv.embedCount++;

    if (file.contains(".sql") || file.contains(".ssql")) {

      String makedfilename = file.substring(file.lastIndexOf("\\") + 1, file.indexOf("."));

      if (att.compareTo("") != 0) makedfilename = makedfilename.concat("_" + att);
      if (att2.compareTo("") != 0) makedfilename = makedfilename.concat("_" + att2);

      makedfilename = makedfilename.concat(".html");

      Log.out("embed tmpfilename:" + makedfilename + " option:" + GlobalEnv.getEmbedOption());

      File makedfile = new File(GlobalEnv.getEmbedTmp(), makedfilename);

      if (makedfile.exists() && GlobalEnv.isNewEmbed() == 1) {
        Log.out("[Enter new Embed]");
        Log.out("embed read tmp file");
        BufferedReader dis;
        String line = new String();
        try {
          dis = new BufferedReader(new FileReader(makedfile));

          try {
            while (!line.equalsIgnoreCase(" ")) {
              Log.out("line : " + line);
              line = dis.readLine();
              if (line != null) htmlEnv.code.append(line);
            }
          } catch (NullPointerException e) {
            Log.out("no more lines");
          }

          dis.close();
        } catch (IOException ioe) {
          System.out.println("IOException: " + ioe);
        }
      } else {
        Log.out("embed make file");

        GlobalEnv.setGlobalEnvEmbed(args);

        SSQLparser parser;
        if (file.contains("http")) {
          parser = new SSQLparser("online");
        } else {
          parser = new SSQLparser(10000 * (htmlEnv.embedCount + 1));
        }

        CodeGenerator codegenerator = parser.getcodegenerator();
        DataConstructor dc = new DataConstructor(parser);

        StringBuffer returnedcode = codegenerator.generateCode2(parser, dc.getData());

        // ajax add div
        // tag////////////////////////////////////////////////////////////////////
        if (GlobalEnv.isAjax()) {
          // TODO 20140619_masato
          if (!has_divid) {
            int x = 0;
            if (file.indexOf(".sql") > 0) {
              x = file.indexOf(".sql");
            } else if (file.indexOf(".ssql") > 0) {
              x = file.indexOf(".ssql");
            }
            // online file
            if (file.contains("/")) {
              divname = file.substring(file.lastIndexOf("/") + 1, x);
            }
            // ofline file
            else if (file.contains("\\")) {
              divname = file.substring(file.lastIndexOf("\\") + 1, x);
            }
            // only file name
            else {
              divname = file.substring(0, x);
            }
          }

          htmlEnv.code.append("<div id=\"" + divname + "\" ");

          if (decos.containsKey("class"))
            htmlEnv.code.append("class=\"" + decos.getStr("class") + "\" ");

          htmlEnv.code.append(">");
          // html_env.code.append("<br><a href=\"close.html\" class=\"bottom_close_"+divname+"\"
          // onClick=\"return closeDiv('"+divname+"')\">close</a><br>");
          Log.out("<div id=" + divname + ">");
        }

        // xml�����
        if (!is_hidden) {
          htmlEnv2.code.append("<EMBED>");
          htmlEnv.code.append(returnedcode);
          htmlEnv2.code.append(returnedcode);
          htmlEnv2.code.append("</EMBED>");
        }

        if (GlobalEnv.isAjax()) htmlEnv.code.append("</div>");
        // end ajax
        // /////////////////////////////////////////////////////////////////

        if (htmlEnv.embedCount >= 1) {
          htmlEnv.css.append(codegenerator.generateCode3(parser, dc.getData()));
          htmlEnv.cssFile.append(codegenerator.generateCssfile(parser, dc.getData()));
        }

        // restore original config
        GlobalEnv.setEnv(tmphash);

        // writing tmpfile
        Log.out("embed hogehoge:" + GlobalEnv.isNewEmbed());
        Log.out("enb:" + GlobalEnv.getEnv());

        if (GlobalEnv.isNewEmbed() == 1) {
          GlobalEnv.addEmbedFile(makedfilename);
          Log.out("embed start writing");
          String filename = GlobalEnv.getEmbedTmp();

          if (filename.endsWith("/") || filename.endsWith("\\"))
            filename = filename + makedfilename;
          else filename = filename + "/" + makedfilename;

          try {
            OutputStream fout = new FileOutputStream(filename);
            OutputStream bout = new BufferedOutputStream(fout);
            OutputStreamWriter out = new OutputStreamWriter(bout, "UTF-8");

            out.write(htmlEnv.header.toString());
            out.write(returnedcode.toString());
            out.write(htmlEnv.footer.toString());

            out.close();
            /*
             * PrintWriter pw = new PrintWriter(new
             * BufferedWriter(new FileWriter( filename)));
             * Log.out("filename:"+filename);
             * pw.println(html_env.header);
             * pw.println(returnedcode);
             * pw.println(html_env.footer); pw.close();
             */
          } catch (FileNotFoundException fe) {

            fe.printStackTrace();
            System.err.println(
                "Error: specified embedtmp outdirectory \""
                    + GlobalEnv.getEmbedTmp()
                    + "\" is not found to write "
                    + htmlEnv.fileName);

            GlobalEnv.addErr(
                "Error: specified embedtmp outdirectory \""
                    + GlobalEnv.getEmbedTmp()
                    + "\" is not found to write "
                    + htmlEnv.fileName);
            // comment out by chie
            // System.exit(-1);
          } catch (IOException e) {
            System.err.println("Error[HTMLManager]: File IO Error in HTMLManager at embed");
            e.printStackTrace();
            GlobalEnv.addErr("Error[HTMLManager]: File IO Error in HTMLManager at embed");
            // comment out by chie
            // System.exit(-1);
          }
        }
      }
    }
    // embed html file
    else if (file.contains(".html")) {
      String line = new String();

      if (decos.containsKey("divid")) divname = decos.getStr("divid");
      else if (file.contains("\\"))
        divname = file.substring(file.lastIndexOf("\\") + 1, file.indexOf(".html"));
      else if (file.contains("/"))
        divname = file.substring(file.lastIndexOf("/") + 1, file.indexOf(".html"));
      else divname = file.substring(0, file.indexOf(".html"));

      BufferedReader dis;
      try {
        if (file.contains("http://")) {
          URL fileurl = new URL(file);

          URLConnection fileurlConnection = fileurl.openConnection();
          dis = new BufferedReader(new InputStreamReader(fileurlConnection.getInputStream()));
        } else {
          try {
            Log.out("embed file (html):" + file);
            dis = new BufferedReader(new FileReader(new File(file)));
          } catch (IOException ioe) {
            String path = htmlEnv.outFile;
            if (path.contains("\\")) path = path.substring(0, path.lastIndexOf("\\") + 1);
            else if (path.contains("/")) path = path.substring(0, path.lastIndexOf("/") + 1);
            if (file.startsWith("./")) {
              file = file.substring(1, file.length());
            }
            Log.out("embed file (html):" + path + file);
            if (path.startsWith("http:")) {
              URL fileurl = new URL(path + file);
              URLConnection fileurlConnection = fileurl.openConnection();
              dis = new BufferedReader(new InputStreamReader(fileurlConnection.getInputStream()));
            } else {
              dis = new BufferedReader(new FileReader(new File(path + file)));
            }
          }
        }
        /*
         * DataInputStream dis = new
         * DataInputStream(fileurlConnection.getInputStream());
         */
        line = dis.readLine(); // read <BODY> and/or <HEAD>
        if (line.contains("<head>")) {
        } else {
          line = dis.readLine(); // read <HEAD>
        }

        while (!line.equalsIgnoreCase("</head>")) {
          line = dis.readLine();
          if (!line.equalsIgnoreCase("</head>")) htmlEnv.header.append(line + "\n");
        }
        line = dis.readLine(); // read <body>

        htmlEnv.code.append("<div id=\"" + divname + "\" ");

        if (decos.containsKey("class"))
          htmlEnv.code.append("class=\"" + decos.getStr("class") + "\" ");

        htmlEnv.code.append(">");

        htmlEnv2.code.append("<EMBED>");
        while (!line.equalsIgnoreCase("</body>")) {
          Log.out("line : " + line);
          line = dis.readLine();
          if (!line.equalsIgnoreCase("</body>")) {
            htmlEnv.code.append(line);
            if (line.contains("&")) line = line.replace("&", "&amp;");
            if (line.contains("<")) ;
            line = line.replace("<", "&lt;");
            if (line.contains(">")) line = line.replace(">", "&gt;");
            if (line.contains("���")) line = line.replace("���", "&#65374;");
            htmlEnv2.code.append(line);
          }
        }
        htmlEnv2.code.append("</EMBED>");
        // html_env.code.append("<br><a href=\"close.html\" class=\"bottom_close_"+divname+"\"
        // onClick=\"return closeDiv('"+divname+"')\">close</a><br>");

        htmlEnv.code.append("</div>");
        dis.close();

      } catch (MalformedURLException me) {
        System.out.println("MalformedURLException: " + me);
      } catch (IOException ioe) {
        System.out.println("HTMLFuncEmbed:IOException: " + ioe);
      }
    }
    if (!is_hidden) htmlEnv.code.append("</td></tr></table>");

    htmlEnv.embedCount += 1;
  }
Esempio n. 3
0
  protected void Func_imagefile() {

    /*
     * ImageFile function : <td> <img src="${imgpath}/"+att /> </td>
     */

    String path = this.getAtt("path", ".");
    if (!path.startsWith("/")) {
      String basedir = GlobalEnv.getBaseDir();
      if (basedir != null && basedir != "") {
        path = GlobalEnv.getBaseDir() + "/" + path;
      }
    }
    if (GlobalEnv.isServlet()) {
      path = GlobalEnv.getFileDirectory() + path;
    }

    // System.out.println(GlobalEnv.isServlet());

    // tk to make hyper link to
    // image//////////////////////////////////////////////////////////////////////////////////
    if (htmlEnv.linkFlag > 0 || htmlEnv.sinvokeFlag) {
      // added by goto 20121222 start
      // �ʲ��ϡ�-f�Υե�����̾���꤬���Хѥ��ˤʤäƤ�����ν���(?)
      // [%Ϣ���] href�λ�������Хѥ���������Хѥ������פ��ѹ�
      // 20120622�ν������ȡ���-f �ե�ѥ��ե�����̾�פ��Ѥ��Ƥ����硢���Хѥ������ˤʤ�ʤ�
      String fileDir = new File(htmlEnv.linkUrl).getAbsoluteFile().getParent();

      if (fileDir.length() < htmlEnv.linkUrl.length()
          && fileDir.equals(htmlEnv.linkUrl.substring(0, fileDir.length()))) {
        String relative_path = htmlEnv.linkUrl.substring(fileDir.length() + 1);
        htmlEnv.code.append("<A href=\"" + relative_path + "\" ");
      } else htmlEnv.code.append("<A href=\"" + htmlEnv.linkUrl + "\" ");

      // html_env.code.append("<A href=\"" + html_env.linkurl + "\" ");
      // added by goto 20121222 end

      if (decos.containsKey("target"))
        htmlEnv.code.append(" target=\"" + decos.getStr("target") + "\" ");
      if (decos.containsKey("class"))
        htmlEnv.code.append(" class=\"" + decos.getStr("class") + "\" ");
      htmlEnv.code.append(">\n");

      Log.out("<A href=\"" + htmlEnv.linkUrl + "\">");
    }
    // tk/////////////////////////////////////////////////////////////////////////////////

    if (decos.containsKey("lightbox")) {
      Date d1 = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyymmddHHmmss");
      String today = sdf.format(d1);

      htmlEnv.code.append(
          "<a href=\""
              + path
              + "/"
              + this.Args.get(0).getStr()
              + "\" rel=\"lightbox[lb"
              + today
              + "]\">");

      if (decos.getStr("lightbox").compareTo("root") == 0
          || decos.getStr("lightbox").compareTo("thumb") == 0) {
        htmlEnv.code.append("<img class=\"" + HTMLEnv.getClassID(this) + " ");

        if (decos.containsKey("class")) htmlEnv.code.append(decos.getStr("class"));

        htmlEnv.code.append(
            " \" src=\""
                + path
                + "/"
                + this.Args.get(0).getStr()
                + "\" onLoad=\"initLightbox()\"/>");
      }
      htmlEnv.code.append("</a>");
    } else {
      htmlEnv.code.append("<img class=\"" + HTMLEnv.getClassID(this) + " ");
      htmlEnv2.code.append("<VALUE type=\"img\" class=\"" + HTMLEnv.getClassID(this) + " ");
      if (decos.containsKey("class")) htmlEnv.code.append(decos.getStr("class"));

      htmlEnv.code.append(" \" src=\"" + path + "/" + this.Args.get(0).getStr() + "\"/>");
      htmlEnv2.code.append(" \" src=\"" + path + "/" + this.Args.get(0).getStr() + "\" ");
      if (decos.containsKey("width")) {
        htmlEnv2.code.append("width=\"" + decos.getStr("width").replace("\"", "") + "\" ");
      }
      if (decos.containsKey("height")) {
        htmlEnv2.code.append("height=\"" + decos.getStr("height").replace("\"", "") + "\" ");
      }
      htmlEnv2.code.append(" ></VALUE>");
    }
    // tk to make hyper link to
    // image///////////////////////////////////////////////////////////////////////////////////
    if (htmlEnv.linkFlag > 0 || htmlEnv.sinvokeFlag) {
      htmlEnv.code.append("</a>");
    }
    // tk///////////////////////////////////////////////////////////////////////////////////
    return;
  }