\r
\r
public class JSGen {\r
- private HTMLGen htmlGen;\r
- private IndentPrintWriter ipw;\r
- private Mark mark;\r
+ private HTMLGen htmlGen;\r
+ private IndentPrintWriter ipw;\r
+ private Mark mark;\r
\r
- public JSGen(Mark mark, HTMLGen hg) {\r
- this.mark = mark==null?new Mark():mark;\r
- hg.incr(this.mark, "script", "language=javascript", "type=text/javascript");\r
- htmlGen = hg;\r
- ipw = hg.getWriter();\r
- }\r
+ public JSGen(Mark mark, HTMLGen hg) {\r
+ this.mark = mark==null?new Mark():mark;\r
+ hg.incr(this.mark, "script", "language=javascript", "type=text/javascript");\r
+ htmlGen = hg;\r
+ ipw = hg.getWriter();\r
+ }\r
\r
- public JSGen inline(String filename, int tabstop) throws IOException {\r
- BufferedReader br = new BufferedReader(new FileReader(filename));\r
- int indent = htmlGen.getIndent();\r
- try {\r
- boolean pretty = htmlGen.pretty;\r
- String line, el;\r
- int l, end;\r
- while((line=br.readLine())!=null) {\r
- if(pretty) {\r
- String[] elements = line.split("\t");\r
- \r
- for(int i=0; i<elements.length;++i) {\r
- el = elements[i];\r
- l = el.length();\r
- if(l==0) {// was a Tab\r
- ipw.print(" ");\r
- } else {\r
- el = el.trim();\r
- l = l-el.length();\r
- end = l/tabstop;\r
- for(int j=0;j<end;++j) {\r
- ipw.print(" ");\r
- }\r
- end = l%tabstop;\r
- for(int j=0;j<end;++j) {\r
- ipw.print(' ');\r
- }\r
- if(i>0) ipw.print(' ');\r
- ipw.print(el);\r
- }\r
- }\r
- ipw.println();\r
- } else {\r
- ipw.print(line.trim());\r
- }\r
- }\r
- } finally {\r
- htmlGen.setIndent(indent);\r
- try {\r
- br.close();\r
- } catch (IOException e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- return this;\r
- }\r
- \r
- public JSGen pst(String ... lines) {\r
- return pst(null, lines);\r
- }\r
- \r
- public JSGen pst(Mark jm, String ... lines) {\r
- if(lines.length>0) ipw.append(lines[0]);\r
- ipw.append('(');\r
- for(int i=1;i<lines.length;++i) {\r
- ipw.print(lines[i]);\r
- ipw.print(", ");\r
- }\r
- Back back;\r
+ public JSGen inline(String filename, int tabstop) throws IOException {\r
+ BufferedReader br = new BufferedReader(new FileReader(filename));\r
+ int indent = htmlGen.getIndent();\r
+ try {\r
+ boolean pretty = htmlGen.pretty;\r
+ String line, el;\r
+ int l, end;\r
+ while((line=br.readLine())!=null) {\r
+ if(pretty) {\r
+ String[] elements = line.split("\t");\r
+ \r
+ for(int i=0; i<elements.length;++i) {\r
+ el = elements[i];\r
+ l = el.length();\r
+ if(l==0) {// was a Tab\r
+ ipw.print(" ");\r
+ } else {\r
+ el = el.trim();\r
+ l = l-el.length();\r
+ end = l/tabstop;\r
+ for(int j=0;j<end;++j) {\r
+ ipw.print(" ");\r
+ }\r
+ end = l%tabstop;\r
+ for(int j=0;j<end;++j) {\r
+ ipw.print(' ');\r
+ }\r
+ if(i>0) ipw.print(' ');\r
+ ipw.print(el);\r
+ }\r
+ }\r
+ ipw.println();\r
+ } else {\r
+ ipw.print(line.trim());\r
+ }\r
+ }\r
+ } finally {\r
+ htmlGen.setIndent(indent);\r
+ try {\r
+ br.close();\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+ return this;\r
+ }\r
+ \r
+ public JSGen pst(String ... lines) {\r
+ return pst(null, lines);\r
+ }\r
+ \r
+ public JSGen pst(Mark jm, String ... lines) {\r
+ if(lines.length>0) ipw.append(lines[0]);\r
+ ipw.append('(');\r
+ for(int i=1;i<lines.length;++i) {\r
+ ipw.print(lines[i]);\r
+ ipw.print(", ");\r
+ }\r
+ Back back;\r
\r
- if(htmlGen.pretty) {\r
- back = new Back(");\n",false,false);\r
- } else {\r
- back = new Back(");",false,false);\r
- }\r
- int spot = htmlGen.pushBack(back);\r
- if(jm!=null)jm.spot(spot);\r
- return this;\r
- }\r
- \r
- public JSGen li(String ... lines) {\r
- int current = ipw.getIndent();\r
- for(int i=0;i<lines.length;++i) {\r
- if(i==1)ipw.inc();\r
- if(i>0)ipw.println();\r
- ipw.print(lines[i]);\r
- }\r
- ipw.setIndent(current);\r
- ipw.append(';');\r
- if(htmlGen.pretty)ipw.println();\r
- return this;\r
- }\r
- \r
- public JSGen text(String text) {\r
- ipw.append(text);\r
- if(htmlGen.pretty)ipw.println();\r
- return this;\r
- }\r
+ if(htmlGen.pretty) {\r
+ back = new Back(");\n",false,false);\r
+ } else {\r
+ back = new Back(");",false,false);\r
+ }\r
+ int spot = htmlGen.pushBack(back);\r
+ if(jm!=null)jm.spot(spot);\r
+ return this;\r
+ }\r
+ \r
+ public JSGen li(String ... lines) {\r
+ int current = ipw.getIndent();\r
+ for(int i=0;i<lines.length;++i) {\r
+ if(i==1)ipw.inc();\r
+ if(i>0)ipw.println();\r
+ ipw.print(lines[i]);\r
+ }\r
+ ipw.setIndent(current);\r
+ ipw.append(';');\r
+ if(htmlGen.pretty)ipw.println();\r
+ return this;\r
+ }\r
+ \r
+ public JSGen text(String text) {\r
+ ipw.append(text);\r
+ if(htmlGen.pretty)ipw.println();\r
+ return this;\r
+ }\r
\r
- public JSGen function(String name, String ... params) {\r
- return function(null, name, params);\r
- }\r
- \r
- public JSGen jqfunc(Mark mark, String name, String ... params) {\r
- pst(mark,"$").function(name, params);\r
- return this;\r
- }\r
- \r
- public JSGen function(Mark jm, String name, String ... params) {\r
- ipw.print("function ");\r
- ipw.print(name);\r
- ipw.print('(');\r
- for(int i=0;i<params.length;++i) {\r
- if(i!=0)ipw.print(", ");\r
- ipw.print(params[i]);\r
- }\r
- ipw.print(") {");\r
- if(htmlGen.pretty) {\r
- ipw.println();\r
- ipw.inc();\r
- }\r
- int spot = htmlGen.pushBack(new Back("}",true,true));\r
- if(jm!=null)jm.spot(spot); \r
- return this;\r
- }\r
- \r
- public JSGen cb(String ... lines) {\r
- return cb(null,lines);\r
- }\r
+ public JSGen function(String name, String ... params) {\r
+ return function(null, name, params);\r
+ }\r
+ \r
+ public JSGen jqfunc(Mark mark, String name, String ... params) {\r
+ pst(mark,"$").function(name, params);\r
+ return this;\r
+ }\r
+ \r
+ public JSGen function(Mark jm, String name, String ... params) {\r
+ ipw.print("function ");\r
+ ipw.print(name);\r
+ ipw.print('(');\r
+ for(int i=0;i<params.length;++i) {\r
+ if(i!=0)ipw.print(", ");\r
+ ipw.print(params[i]);\r
+ }\r
+ ipw.print(") {");\r
+ if(htmlGen.pretty) {\r
+ ipw.println();\r
+ ipw.inc();\r
+ }\r
+ int spot = htmlGen.pushBack(new Back("}",true,true));\r
+ if(jm!=null)jm.spot(spot); \r
+ return this;\r
+ }\r
+ \r
+ public JSGen cb(String ... lines) {\r
+ return cb(null,lines);\r
+ }\r
\r
- public JSGen cb(Mark jm, String ... lines) {\r
- int current = ipw.getIndent();\r
- for(int i=0;i<lines.length;++i) {\r
- if(i==1)ipw.inc();\r
- if(i>0)ipw.println();\r
- ipw.print(lines[i]);\r
- }\r
- ipw.setIndent(current);\r
- ipw.print('{');\r
- if(htmlGen.pretty) {\r
- ipw.println();\r
- ipw.inc();\r
- }\r
- int spot = htmlGen.pushBack(new Back("}",true,true));\r
- if(jm!=null)jm.spot(spot); \r
- return this;\r
+ public JSGen cb(Mark jm, String ... lines) {\r
+ int current = ipw.getIndent();\r
+ for(int i=0;i<lines.length;++i) {\r
+ if(i==1)ipw.inc();\r
+ if(i>0)ipw.println();\r
+ ipw.print(lines[i]);\r
+ }\r
+ ipw.setIndent(current);\r
+ ipw.print('{');\r
+ if(htmlGen.pretty) {\r
+ ipw.println();\r
+ ipw.inc();\r
+ }\r
+ int spot = htmlGen.pushBack(new Back("}",true,true));\r
+ if(jm!=null)jm.spot(spot); \r
+ return this;\r
\r
- }\r
+ }\r
\r
- \r
- public JSGen comment(String ... lines) {\r
- if(htmlGen.pretty) {\r
- for(int i=0;i<lines.length;++i) {\r
- ipw.print("// ");\r
- ipw.println(lines[i]);\r
- }\r
- }\r
- return this;\r
- }\r
- \r
- public JSGen end(Mark mark) {\r
- htmlGen.end(mark);\r
- return this;\r
- }\r
- \r
- public HTMLGen done() {\r
- return htmlGen.end(mark);\r
- }\r
- \r
+ \r
+ public JSGen comment(String ... lines) {\r
+ if(htmlGen.pretty) {\r
+ for(int i=0;i<lines.length;++i) {\r
+ ipw.print("// ");\r
+ ipw.println(lines[i]);\r
+ }\r
+ }\r
+ return this;\r
+ }\r
+ \r
+ public JSGen end(Mark mark) {\r
+ htmlGen.end(mark);\r
+ return this;\r
+ }\r
+ \r
+ public HTMLGen done() {\r
+ return htmlGen.end(mark);\r
+ }\r
+ \r
}\r