All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.att.xgen.html.JSGen Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
 *******************************************************************************/
package com.att.xgen.html;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import com.att.inno.env.util.IndentPrintWriter;
import com.att.xgen.Back;
import com.att.xgen.Mark;


public class JSGen {
	private HTMLGen htmlGen;
	private IndentPrintWriter ipw;
	private Mark mark;

	public JSGen(Mark mark, HTMLGen hg) {
		this.mark = mark==null?new Mark():mark;
		hg.incr(this.mark, "script", "language=javascript", "type=text/javascript");
		htmlGen = hg;
		ipw = hg.getWriter();
	}

	public JSGen inline(String filename, int tabstop) throws IOException {
		BufferedReader br = new BufferedReader(new FileReader(filename));
		int indent = htmlGen.getIndent();
		try {
			boolean pretty = htmlGen.pretty;
			String line, el;
			int l, end;
			while((line=br.readLine())!=null) {
				if(pretty) {
					String[] elements = line.split("\t");
					
					for(int i=0; i0) ipw.print(' ');
								ipw.print(el);
							}
					}
					ipw.println();
				} else {
					ipw.print(line.trim());
				}
			}
		} finally {
			htmlGen.setIndent(indent);
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return this;
	}
	
	public JSGen pst(String ... lines) {
		return pst(null, lines);
	}
	
	public JSGen pst(Mark jm, String ... lines) {
		if(lines.length>0) ipw.append(lines[0]);
		ipw.append('(');
		for(int i=1;i0)ipw.println();
			ipw.print(lines[i]);
		}
		ipw.setIndent(current);
		ipw.append(';');
		if(htmlGen.pretty)ipw.println();
		return this;
	}
	
	public JSGen text(String text) {
		ipw.append(text);
		if(htmlGen.pretty)ipw.println();
		return this;
	}

	public JSGen function(String name, String ... params) {
		return function(null, name, params);
	}
	
	public JSGen jqfunc(Mark mark, String name, String ... params) {
		pst(mark,"$").function(name, params);
		return this;
	}
	
	public JSGen function(Mark jm, String name, String ... params) {
		ipw.print("function ");
		ipw.print(name);
		ipw.print('(');
		for(int i=0;i0)ipw.println();
			ipw.print(lines[i]);
		}
		ipw.setIndent(current);
		ipw.print('{');
		if(htmlGen.pretty) {
			ipw.println();
			ipw.inc();
		}
		int spot = htmlGen.pushBack(new Back("}",true,true));
		if(jm!=null)jm.spot(spot); 
		return this;

	}

	
	public JSGen comment(String ... lines) {
		if(htmlGen.pretty) {
			for(int i=0;i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy