// 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; }
// 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("&", "&"); if (line.contains("<")) ; line = line.replace("<", "<"); if (line.contains(">")) line = line.replace(">", ">"); if (line.contains("���")) line = line.replace("���", "~"); 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; }
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; }