// BizVizWiz0.java // // CREATED: ABS 2012.11.08 copied from NewsletterTest.java; did page layout // MODIFIED: ABS 2012.11.09 chopped away spurious code, debugged, built out // MODIFIED: ABS 2012.11.14 added doc, safetyCheck(); added source code upload // MODIFIED: ABS 2012.11.15 built out & debugged // MODIFIED: ABS 2012.11.16 tested against server upgrade // MODIFIED: ABS 2012.11.17 added Green Bay data as default // MODIFIED: ABS 2012.11.18 added dummy key & annotations // To Do: // [/] measure HTML table sizes in browsers // [X] make debug follow links // [_] use prev values as defaults // [_] input into array // [_] adaptive input screen (width & height) // [/] input CSV // [/] select params // [X] create HTML: all rows // [X] re-add radio buttons // [_] see drawn spec // [X] default values in inputs // [X] bullet-proof // import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import javax.mail.event.*; import javax.mail.internet.*; import javax.activation.*; public class BizVizWiz0 extends HttpServlet { String trueString = "true"; String debug; ///////////////////////////////////////////////////////////////////////////////////// // // // doGet // // // ///////////////////////////////////////////////////////////////////////////////////// public void doGet ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { String requestType = req.getParameter("requestType"); HttpSession session = req.getSession(true); res.setContentType("text/html"); PrintWriter out = res.getWriter(); debug = req.getParameter("debug"); if (debug != null) { session.setAttribute("debug", debug); } else { session.setAttribute("debug",""); } if (trueString.equals(session.getAttribute("debug"))) { session.setAttribute("debugString0","?debug=true"); session.setAttribute("debugString","&debug=true"); } else { session.setAttribute("debugString0",""); session.setAttribute("debugString",""); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %% // input_data %% // %% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (requestType == null || requestType.equals("input_data")) { printHead(out, "BizVizWiz0 - input data"); printNavBar(out, 1, false, session); printStepsHighlighted(out, session, 1); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "input_data page"); } safetyCheck(out, session); printInput_dataForm(out, session); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %% // set_params %% // %% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% else if (requestType.equals("set_params")) { printHead(out, "BizVizWiz0 - set params"); printNavBar(out, 1, false, session); printStepsHighlighted(out, session, 2); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "set_params page"); } safetyCheck(out, session); printSet_paramsForm(out, session); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %% // view_results %% // %% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% else if (requestType.equals("view_results")) { printHead(out, "BizVizWiz0 - view results"); printNavBar(out, 2, true, session); printStepsHighlighted(out, session, 3); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "view_results page"); } safetyCheck(out, session); { int i_row, i_col; String[][] my_third_array = new String[2][3]; my_third_array = (String[][])session.getAttribute( "myArray"); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "my_third_array length: " + my_third_array.length); for (i_row = 0; i_row < 3; i_row++) { for (i_col = 0; i_col < 2; i_col++) { printDebug(out, "my_third_array[" + i_row + "][" + i_col + "]: " + my_third_array[i_row][i_col]); } } } } /************************************** HINKY h = session.getAttribute("h"); w = session.getAttribute("w"); h = "32"; w = "32"; **************************************/ out.println("

results

"); out.println("

"); out.println("

" + session.getAttribute("title_string") + "

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); if (trueString.equals(session.getAttribute("debug"))) { out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); } else { out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); // HINKY out.println(""); out.println(""); out.println(""); out.println(""); } out.println(""); out.println("
0 1 2 3
a" + dec_to_hex((String)session.getAttribute("a0"), 0) + "" + dec_to_hex((String)session.getAttribute("a1"), 0) + "" + dec_to_hex((String)session.getAttribute("a2"), 0) + "" + dec_to_hex((String)session.getAttribute("a3"), 0) + "
b" + dec_to_hex((String)session.getAttribute("b0"), 0) + "" + dec_to_hex((String)session.getAttribute("b1"), 0) + "" + dec_to_hex((String)session.getAttribute("b2"), 0) + "" + dec_to_hex((String)session.getAttribute("b3"), 0) + "
c" + dec_to_hex((String)session.getAttribute("c0"), 0) + "" + dec_to_hex((String)session.getAttribute("c1"), 0) + "" + dec_to_hex((String)session.getAttribute("c2"), 0) + "" + dec_to_hex((String)session.getAttribute("c3"), 0) + "a" + " " + "" + " " + "" + " " + "" + " " + "
b" + " " + "" + " " + "" + " " + "" + " " + "
c" + " " + "" + " " + "" + " " + "" + " " + "
"); out.println("

"); out.println("

key:

"); out.println("

"); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(""); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(""); out.println("
"); out.println(" 56
" + session.getAttribute("units_string") + "
"); out.println("
"); out.println(" "); out.println(" "); out.println(" 80
" + session.getAttribute("units_string") + "
"); out.println("
"); out.println(" "); out.println(" "); out.println(" 104
" + session.getAttribute("units_string") + "
"); out.println("
"); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println("
"); out.println("

"); out.println("

notes:

"); out.println("

"); out.println(session.getAttribute("notes_string")); out.println("


"); out.println("

"); out.println("Here is the data used:"); // HINKEY printDataTable(out, session); } } // end of doGet() ///////////////////////////////////////////////////////////////////////////////////// // // // doPost // // // ///////////////////////////////////////////////////////////////////////////////////// public void doPost ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { HttpSession session = req.getSession(true); res.setContentType("text/html"); PrintWriter out = res.getWriter(); String postType = req.getParameter("postType"); debug = req.getParameter("debug"); if (debug != null) { session.setAttribute("debug", debug); } else { session.setAttribute("debug",""); } if (trueString.equals(session.getAttribute("debug"))) { session.setAttribute("debugString0","?debug=true"); session.setAttribute("debugString","&debug=true"); } else { session.setAttribute("debugString0",""); session.setAttribute("debugString",""); } printHead(out, "BizVizWiz0 - POST"); //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // || // null || // || //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| if (postType == null) { // input_data post printNavBar(out, 1, false, session); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "input_data post page"); } printStepsHighlighted(out, session, 2); session.setAttribute("a0",req.getParameter("a0")); session.setAttribute("a1",req.getParameter("a1")); session.setAttribute("a2",req.getParameter("a2")); session.setAttribute("a3",req.getParameter("a3")); session.setAttribute("b0",req.getParameter("b0")); session.setAttribute("b1",req.getParameter("b1")); session.setAttribute("b2",req.getParameter("b2")); session.setAttribute("b3",req.getParameter("b3")); session.setAttribute("c0",req.getParameter("c0")); session.setAttribute("c1",req.getParameter("c1")); session.setAttribute("c2",req.getParameter("c2")); session.setAttribute("c3",req.getParameter("c3")); { //in servlet from: // http://www.sitepoint.com/forums/showthread.php?417581-Put-arrays-in-session-variables // http://www.leepoint.net/notes-java/data/arrays/arrays-2D.html // // 2-dimensional arrays are usually represented with a row-column // "spreadsheet" style. Assume we have an array, a, with two rows // and four columns. // // int[][] a = new int[2][4]; // Two rows and four columns. int i_row, i_col; String my_array[][] = { {"00", "01"}, {"10", "11"}, {"20", "21"} }; String[][] my_other_array = new String[2][3]; session.setAttribute( "myArray", my_array ); my_other_array = (String[][])session.getAttribute( "myArray"); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "my_array length: " + my_array.length); printDebug(out, "my_other_array length: " + my_other_array.length); for (i_row = 0; i_row < 3; i_row++) { for (i_col = 0; i_col < 2; i_col++) { printDebug(out, "my_other_array[" + i_row + "][" + i_col + "]: " + my_other_array[i_row][i_col]); } } } } out.println("

Thank you for entering your data.

"); out.println("

Here it is:

"); printDataTable(out, session); out.close(); } // end if (postType == null) //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // || // submit_params || // || //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| else if (postType.equals("submit_params")) { printNavBar(out, 1, false, session); if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "submit_parameters post page"); } printStepsHighlighted(out, session, 3); session.setAttribute("normDir",req.getParameter("normDir")); session.setAttribute("h",req.getParameter("h")); session.setAttribute("w",req.getParameter("w")); session.setAttribute("title_string",req.getParameter("title_string")); session.setAttribute("notes_string",req.getParameter("notes_string")); session.setAttribute("units_string",req.getParameter("units_string")); if (true) { if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "inputs ok!"); } out.println("

Thank you for entering your parameters.

"); out.println("

Here they are:

"); } else { } out.println("normDir = " + session.getAttribute("normDir") + "
"); out.println("h = " + session.getAttribute("h") + "
"); out.println("w = " + session.getAttribute("w") + "
"); } // end if (postType.equals("submit_params")) //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // || // foo || // || //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| else if (postType.equals("foo")) { out.println("

foo

"); } // end if (postType.equals("foo")) //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // || // illegal || // || //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| else { // illegal post type if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "illegal post type"); } } } ///////////////////////////////////////////////////////////////////////////////////// // // // printHead // // // ///////////////////////////////////////////////////////////////////////////////////// public void printHead(PrintWriter out, String title) { out.println("" + title + ""); out.println(""); out.println(""); } ///////////////////////////////////////////////////////////////////////////////////// // // // printNavBar // // // ///////////////////////////////////////////////////////////////////////////////////// public void printNavBar(PrintWriter out, int position, boolean loginStatus, HttpSession session) { out.println(""); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
BizVizWiz0
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
input data
"); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
set params
"); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
view results
"); out.println("
"); out.println("
"); out.println(""); } ///////////////////////////////////////////////////////////////////////////////////// // // // printInput_dataForm // // // ///////////////////////////////////////////////////////////////////////////////////// public void printInput_dataForm(PrintWriter out, HttpSession session) { out.println("

input data

"); out.println("

"); out.println("Enter 12 numbers from 0 to 255 below."); out.println("

"); out.println("

"); out.println(" a0 "); out.println(" a1 "); out.println(" a2 "); out.println(" a3
"); out.println(" b0 "); out.println(" b1 "); out.println(" b2 "); out.println(" b3
"); out.println(" c0 "); out.println(" c1 "); out.println(" c2 "); out.println(" c3
"); out.println(""); out.println("
"); out.println("

"); out.println("Here is the last data entered:"); out.println("

"); printDataTable(out, session); } ///////////////////////////////////////////////////////////////////////////////////// // // // printSet_paramsForm // // // ///////////////////////////////////////////////////////////////////////////////////// public void printSet_paramsForm(PrintWriter out, HttpSession session) { out.println("

set params

"); out.println("

"); out.println("

"); out.println("rows
"); out.println("columns
"); out.println("both
"); out.println("none
"); out.println("

"); out.println(" height of cells
"); out.println(" width of cells
"); out.println("

"); out.println(" title of display
"); out.println(" units
"); out.println(" additional notes after key
"); out.println("

"); out.println(""); out.println("

"); out.println("
"); out.println(""); } ///////////////////////////////////////////////////////////////////////////////////// // // // printDataTable // // // ///////////////////////////////////////////////////////////////////////////////////// public void printDataTable(PrintWriter out, HttpSession session) { out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); } ///////////////////////////////////////////////////////////////////////////////////// // // // printDebug // // // ///////////////////////////////////////////////////////////////////////////////////// public void printDebug(PrintWriter out, String s) { out.println("

debug: " + s + "

"); } ///////////////////////////////////////////////////////////////////////////////////// // // // printStepsHighlighted // // // ///////////////////////////////////////////////////////////////////////////////////// public void printStepsHighlighted(PrintWriter out, HttpSession session, int highlight) { out.println(""); out.println("
  0 1 2 3
a " + session.getAttribute("a0") + "" + session.getAttribute("a1") + "" + session.getAttribute("a2") + "" + session.getAttribute("a3") + "
b " + session.getAttribute("b0") + "" + session.getAttribute("b1") + "" + session.getAttribute("b2") + "" + session.getAttribute("b3") + "
c " + session.getAttribute("c0") + "" + session.getAttribute("c1") + "" + session.getAttribute("c2") + "" + session.getAttribute("c3") + "
"); // Step 1 out.println(""); // Step 2 out.println(""); // Step 3 out.println(""); out.println("
"); if (highlight == 1 || highlight == 99) { out.println(""); } else { out.println(""); } out.println("

Step 1:

"); out.println("

"); out.println("Go the input data screen (link above) and enter twelve"); out.println("numbers from 0 to 255, then press the \"input data\" button."); out.println(""); out.println("

"); if (highlight == 2 || highlight == 99) { out.println(""); } else { out.println(""); } out.println("

Step 2:

"); out.println("

"); out.println("Go the set params screen (link above) and enter parameters"); out.println("then press the\"submit parameters\" button."); out.println(""); out.println("

"); if (highlight == 3 || highlight == 99) { out.println(""); } else { out.println(""); } out.println("

Step 3:

"); out.println("

"); out.println("Go the view results screen (link above) and see a 2D"); out.println("color plot in an HTML table."); out.println(""); out.println("

"); out.println(""); } ///////////////////////////////////////////////////////////////////////////////////// // // // safetyCheck // // // ///////////////////////////////////////////////////////////////////////////////////// public void safetyCheck(PrintWriter out, HttpSession session) { if (trueString.equals(session.getAttribute("debug"))) { printDebug(out, "safetyCheck() done"); } // params if (null == session.getAttribute("h")) session.setAttribute("h", "32"); if (null == session.getAttribute("w")) session.setAttribute("w", "32"); if (null == session.getAttribute("title_string")) session.setAttribute("title_string", "Green Bay bla bla"); if (null == session.getAttribute("units_string")) session.setAttribute("units_string", "d F"); if (null == session.getAttribute("notes_string")) session.setAttribute("notes_string", "bla bla"); // normalized monthly record highs in Green Bay, WI if (null == session.getAttribute("a0")) session.setAttribute("a0", "0"); // 56 deg F Jan. if (null == session.getAttribute("a1")) session.setAttribute("a1", "20"); // 60 deg F Feb. if (null == session.getAttribute("a2")) session.setAttribute("a2", "130"); // 82 deg F Mar. if (null == session.getAttribute("a3")) session.setAttribute("a3", "165"); // 89 deg F Apr. if (null == session.getAttribute("b0")) session.setAttribute("b0", "220"); // 100 deg F May. if (null == session.getAttribute("b1")) session.setAttribute("b1", "225"); // 101 deg F Jun. if (null == session.getAttribute("b2")) session.setAttribute("b2", "240"); // 104 deg F Jul. if (null == session.getAttribute("b3")) session.setAttribute("b3", "220"); // 100 deg F Aug. if (null == session.getAttribute("c0")) session.setAttribute("c0", "205"); // 97 deg F Sep. if (null == session.getAttribute("c1")) session.setAttribute("c1", "160"); // 88 deg F Oct. if (null == session.getAttribute("c2")) session.setAttribute("c2", "90"); // 74 deg F Nov. if (null == session.getAttribute("c3")) session.setAttribute("c3", "30"); // 62 deg F Dec. } ///////////////////////////////////////////////////////////////////////////////////// // // // isAlpha // // // ///////////////////////////////////////////////////////////////////////////////////// private boolean isAlpha(char c) { if( (c >=65 && c <= 90) || (c >=97 && c <= 122) ) return true; else return false; } ///////////////////////////////////////////////////////////////////////////////////// // // // dec_to_hex // // // ///////////////////////////////////////////////////////////////////////////////////// private String dec_to_hex(String d, int mode) { if (mode == 0) { if (Integer.parseInt(d) < 16) { return "0" + Integer.toHexString(Integer.parseInt(d)); } else { return Integer.toHexString(Integer.parseInt(d)); } } else { if (255 - Integer.parseInt(d) < 16) { return "0" + Integer.toHexString(255 - Integer.parseInt(d)); } else { return Integer.toHexString(255 - Integer.parseInt(d)); } } } ///////////////////////////////////////////////////////////////////////////////////// static String mailHost; static String sourceEmail; static String destinationEmail; static String subjectString; static String ccString; static String bodyString; static boolean debugFlag; static String h; static String w; } // end of class BizVizWiz0