package scg; import edu.neu.ccs.demeterf.http.classes.HTTPReq; import edu.neu.ccs.demeterf.http.classes.HTTPResp; import edu.neu.ccs.demeterf.http.server.Path; public class HTML { /** Add the Server Header for the Admin */ static HTTPResp addServer(HTTPResp res){ return res.addHeader(Constants.SERVER_KEY, Constants.ADMIN_SERVER_NAME); } /** Create an Error HTML response for the browser */ public static HTTPResp errHTMLResp(String msg, String body){ return addServer(HTTPResp.htmlError(HTTPResp.MIN_ERROR, msg, errorPage(body))); } /** Create an Error Text response */ public static HTTPResp errTextResp(String msg, String body){ return addServer(HTTPResp.textError(HTTPResp.MIN_ERROR, msg, body)); } /** Create an OK HTML response for the browser */ public static HTTPResp okHTMLResp(String body){ return addServer(HTTPResp.htmlResponse(body)); } /** Create an OK Text response */ public static HTTPResp okTextResp(String body){ return addServer(HTTPResp.textResponse(body)); } /** Wrap some text in a Tag */ public static String wrap(String s, String tag){ return "<"+tag+">"+s+""; } /** Wrap some text in a Tag, with the given HTML class */ public static String wrap(String s, String tag, String cls){ return "<"+tag+" class=\""+cls+"\">"+s+""; } /** Default response to unknown requests */ @Path() public static HTTPResp defaultResp(HTTPReq req){ return HTTPResp.htmlError(errorPage("Unaccepted URL Request:

"+ "" + req.trimmedUrl() + "")); } /** Present an HTML Error Page */ public static String errorPage(String msg){ return htmlPage("!ERROR!", "div{ textalign:center;width:400px;height:200px;border:solid red 1px' }", wrap(wrap(wrap("ERROR

" + msg,"h3"),"div"),"center")); } /** Present a refreshable HTML Page */ public static String htmlRefreshPage(int seconds, String title, String style, String body){ return wrap(wrap(wrap(title,"title")+wrap(style,"style")+ (seconds>0?(""):""),"head")+wrap("\n"+body, "body"), "html"); } /** Present an HTML Page */ public static String htmlPage(String title, String style, String body){ return htmlRefreshPage(0,title,style,body); } }