/* $Log$ Revision 1.8 2005/03/22 12:50:17 heto Working with moving all export files to a new package: se.arexis.agdb.util.FileExport Revision 1.7 2004/03/30 14:21:38 wali Changed Analyses to export. Revision 1.6 2003/12/19 15:32:59 wali Extended so that CreateFgIndLink is called in DbFileGeneration. Used when results are saved. Revision 1.5 2003/05/02 07:58:45 heto Changed the package structure from se.prevas.arexis.XYZ to se.arexis.agdb.XYZ Modified configuration and source files according to package change. Revision 1.4 2003/04/25 12:14:46 heto Changed all references to axDefault.css Source layout fixes. Revision 1.3 2002/12/13 15:02:52 heto Moved function to ArexisServlet Revision 1.2 2002/11/13 09:06:06 heto Migration to tomcat. ServletContext Revision 1.1.1.1 2002/10/16 18:14:04 heto Import of aGDB 1.5 L3 from Prevas CVS-tree. This version of aGDB is migrated to Tomcat from JServ by Tobias Hermansson Revision 1.14 2002/01/29 18:03:08 roca Changes by roca (se funktionsbskrivnig for LF025) Revision 1.13 2001/06/20 13:18:13 roca Temporarily removed postmakeped format in linkage Added special views in genoMenu Added parental,child and group view for genotypes Revision 1.12 2001/06/15 07:21:22 roca First attemp at LINKAGE post Makeped A family view avaliable in viewGeno Revision 1.11 2001/06/11 09:25:57 roca fixed Multi linkage without desease locus. Revision 1.10 2001/06/07 13:19:46 roca added function TO_POSITIVE_NUMBER_ELSE_NULL in api_misc changed buttons to Finish/cancel on som generation pages Fixed bug (when alelename=0) in Genlinkage Tried to implement Linkage without locus Revision 1.9 2001/05/31 12:09:05 roca changed backbutton to cancelbutton Revision 1.8 2001/05/21 08:17:07 roca Roca fixed nullreplacement for files, privs not displayed and counter in phenotypes Revision 1.7 2001/05/11 09:17:27 frob Changed some key-names in Errors.properties which affected these files. Revision 1.6 2001/05/10 06:55:44 frob Minor bugfixes. Revision 1.5 2001/05/10 05:41:08 frob Changed all calls to writeError() to the general writeErrorPage(). The original writeError() was removed. Revision 1.4 2001/05/09 09:31:09 frob Indented the file and added log header. */ package se.arexis.agdb.servlet; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import com.oreilly.servlet.MultipartRequest; // For file uploads import se.arexis.agdb.db.*; import se.arexis.agdb.util.*; import se.arexis.agdb.util.FileExport.GenLINKAGE; public class startLinkage extends SecureArexisServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet(req, res); } /** * This method dispatches the request to the corresponding * method. The servlet handles the surrounding frameset, * the top frame, the bottom frame and methods for creation of * new groupings. */ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); if ( !authorized(req, res) ) { // The user does not have the privileges to view the requested page. // The method pageLocked has already written an error message // to the output stream, and that's why we safely can return here. return; } String extPath = req.getPathInfo(); if (extPath == null || extPath.equals("") || extPath.equals("/")) { // The first page is requested writeStep1(req, res); } else if (extPath.equals("/step1")) { writeStep1(req, res); } else if (extPath.equals("/step2Single")) { writeStep2Single(req, res); } else if (extPath.equals("/step3Single")) { writeStep3Single(req, res); } else if (extPath.equals("/startSingle")) { startSingle(req, res); } else if (extPath.equals("/step2")) { ; //writeStep2(req, res); } else if (extPath.equals("/step2Multi")) { writeStep2Multi(req, res); } else if (extPath.equals("/step3Multi")) { writeStep3Multi(req, res); } else if (extPath.equals("/startMulti")) { startMulti(req, res); } } private void writeStep1(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String name = req.getParameter("n"); HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; try { stmt = conn.createStatement(); System.err.println("SELECT NAME FROM V_DATA_FILES_1 WHERE NAME='"+name+"'"); rset = stmt.executeQuery("SELECT NAME FROM V_FILE_GENERATIONS_1 WHERE NAME='"+name+"'" ); if(rset.next()) { writeErrorPage(req, res, "Generations.Start.Linkage", "The name you have choosen already exists!", "viewFile/start" + "?"); return; } else { System.err.println("else"); } } catch (SQLException ignored) { } String mode = req.getParameter("m"); if ("M".equals(mode)) { // Multi sampling unit mode writeStep1Multi(req, res); // res.sendError(res.SC_NOT_IMPLEMENTED); } else { // Single mode writeStep1Single(req, res); } } private void writeStep1Multi(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String sql; String params=""; String pid, oper, item; String type, name, comm, sid; // String suid = ""; String new_suid; Vector suids = null; // Sampling units try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); if (oper == null || oper.trim().equals("")) oper = ""; type = req.getParameter("t"); name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); //System.err.println("step1:"+req.getQueryString()); new_suid = req.getParameter("new_suid"); if (sid == null || sid.trim().equals("")) sid = "-1"; Enumeration e = req.getParameterNames(); String pn; suids = new Vector(); while (e.hasMoreElements() ) { pn = (String) e.nextElement(); if (pn.startsWith("suid")) { suids.addElement(pn.substring("suid".length() ) ); } } // Add new sampling unit? if (oper.equals("ADD_SU")) { if (new_suid != null && !new_suid.trim().equals("")) { suids.addElement(new_suid); } } else if (oper.equals("REMOVE")) { // Remove sampling unit? String rem_suid = req.getParameter("rem_suid"); if (rem_suid != null && !rem_suid.trim().equals("")) { int index; for (index = 0; index < suids.size(); index++) if (rem_suid.equals((String) suids.elementAt(index))) break; suids.removeElementAt(index); } } out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); writeStartTabDelScript(out); out.println("<title>Start Linkage generation</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Analyses - File Generation (multi) - Start - Linkage 1(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + getServletPath("startLinkage/step1") + "\">"); /* out.println("<form method=post action=\"" + getServletPath("startTabDel/step2Multi") + "\">"); */ out.println("<table width=500 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); // General data from previously pages out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>" + type + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Multiple Sampling Units</td>"); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); // Sampling units out.println("<tr><td colspan=2>"); out.println("<table width=250 border=0 cellpading=0 cellspacing=0>"); out.println("<tr bgcolor=\"#008B8B\"><td width=150 nowrap>Sampling unit</td><td width=100> </td></tr>"); String suname; for (int i = 0; i < suids.size(); i++) { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_ENABLED_SAMPLING_UNITS_2 WHERE SUID=" + (String) suids.elementAt(i) ); rset.next(); suname = rset.getString("NAME"); rset.close(); stmt.close(); out.println("<tr>"); out.println("<td>" + suname + "</td>"); out.println("<td>"); out.println("<input type=button value=\"Remove\" width=100 style=\"WIDTH: 100px\"" + " onClick='valForm(\"REMOVE\", \"" + (String) suids.elementAt(i) + "\");'>"); out.println("</td>"); out.println("</tr>"); rset.close(); stmt.close(); } out.println("</table>"); out.println("</td>"); out.println("</tr>"); // Add sampling unit stmt = conn.createStatement(); sql = "SELECT SUID, NAME FROM V_ENABLED_SAMPLING_UNITS_2 WHERE " + "PID=" + pid + " AND SID=" + sid; if (suids.size() > 0) { sql = sql + " AND SUID NOT IN("; for (int i = 0; i < suids.size() - 1; i++) { sql = sql + (String) suids.elementAt(i) + ", "; } sql = sql + (String) suids.lastElement() + ")"; } sql = sql + " ORDER BY NAME"; rset = stmt.executeQuery(sql); out.println("<tr>"); out.println("<td>Sampling unit<br>"); out.println("<select name=new_suid width=100 style=\"WIDTH: 100px\">"); while(rset.next()) { out.println("<option value=\"" + rset.getString("SUID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</td>"); out.println("<td>"); out.println("<input type=button value=\"Add\" width=100 style=\"WIDTH: 100px\"" + " onClick='valForm(\"ADD_SU\", \"\");'>"); out.println("</td>"); out.println("</tr>"); // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); // out.println("<td><input type=button value=\"next\" " + // "width=100 style=\"WIDTH: 100px\" " + // "onClick='next();'>"); // add a the "static" parameters params="&t="+type; params+="&n="+name; params+="&c="+comm; params+="&s="+sid; // add all suid's as parameter-names for (int i=0; i < suids.size(); i++) { params += "&suid" + (String) suids.elementAt(i)+"="; } // System.err.println("params="+params); // must choose sampling -unit first... if(suids.size()> 0) { out.println("<td><input type=button value=\"next\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("startLinkage/step2Multi?") +params +"\"';>"); } else { out.println("<td><input type=button disabled value=\"next\" " + "width=100 style=\"WIDTH: 100px\" " /*"onClick='JavaScript:location.href=\"" + getServletPath("startTabDel/step2Multi?") +params + "\"'*/+";>"); } out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); out.println("<input type=hidden name=rem_suid value=\"\">"); out.println("<input type=hidden name=oper value=\"\">"); out.println("<input type=hidden name=t value=\"" + type + "\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); out.println("<input type=hidden name=m value=\"M\">"); for (int i=0; i < suids.size(); i++) out.println("<input type=hidden name=\"suid" + (String) suids.elementAt(i) + "\" value=\"\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } private void writeStep2Multi(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; Statement stmt_grps = null; Statement stmt_filt = null; ResultSet rset = null; ResultSet rset_grps = null; ResultSet rset_filt = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String pid, oper, item; String name, comm, sid, type; String suid; String fid=null; String gsid=null; boolean filtersFound=false; boolean allGrpsFound =false; boolean oneGrpFound=false; Vector suids = null; // Sampling units try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); if (oper == null || oper.trim().equals("")) oper = ""; name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); //nej!!fid = req.getParameter("fid"); //suid = req.getParameter("suid"); // nej!!gsid = req.getParameter("gsid"); type = req.getParameter("t"); // System.err.println(req.getQueryString()); // System.err.println("st2:params:"+type+name+comm+sid); if (sid == null) sid = "-1"; //if (fid == null) fid = "-1"; //if (suid == null) suid = "-1"; Enumeration e = req.getParameterNames(); String pn; suids = new Vector(); while (e.hasMoreElements() ) { pn = (String) e.nextElement(); if (pn.startsWith("suid")) { System.err.println("suid:"+pn.substring("suid".length())); suids.addElement(pn.substring("suid".length() ) ); } } out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); // writeStartTabDelScript(out); out.println("<title>multi delimited generation 2</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Analyses - File Generation (multi)- Linkage 2(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + // getServletPath("startTabDel/step3Single") + "\">"); getServletPath("startLinkage/step3Multi") + "\">"); out.println("<table width=700 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); // general data from previous page out.println("<table border=0 cellpading=0 cellspacing=0>"); out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>Linkage</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Multiple Sampling Units</td>"); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); out.println("<tr><td>Unified Marker set<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT UMSID, NAME FROM V_U_MARKER_SETS_1 WHERE SID=" + sid + " AND PID="+pid+" ORDER BY NAME"); out.println("<select name=umsid width=200 style=\"WIDTH: 200px\">"); out.println("<option selected value=\"-1\">(None)</option>"); while (rset.next()) { out.println("<option value=\"" + rset.getString("UMSID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); //----------- // Variable Sets out.println("<td>Disease loci<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT UVID, NAME FROM V_U_VARIABLES_1 WHERE TYPE='E' AND PID="+pid+" ORDER BY NAME"); out.println("<select name=uvid width=200 style=\"WIDTH: 200px\">"); // boolean missingVid = true; while (rset.next()) { // missingVid = false; out.println("<option selected value=\"-1\">(None)</option>"); out.println("<option value=\"" + rset.getString("UVID") + "\">" + rset.getString("NAME") + "</option>"); } /* if (missingVid) out.println("<option selected>Error (Missing variable)</option>"); */ out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); //-------- // Variable Sets /* out.println("<td>Unified Variable set<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT UVSID, NAME FROM V_U_VARIABLE_SETS_1 WHERE SID=" + sid + " AND PID="+pid+" ORDER BY NAME"); out.println("<select name=uvsid width=200 style=\"WIDTH: 200px\">"); out.println("<option selected value=\"-1\">(None)</option>"); while (rset.next()) { out.println("<option value=\"" + rset.getString("UVSID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td>");*/ //out.println("</tr>"); out.println("</tr></table>"); // sampling-units from previous page - choose gsid and fid out.println("<table border=0 cellpading=0 cellspaing=0>"); out.println("<tr><td></td></tr>"); out.println("<tr><td></td></tr>"); out.println("<tr><td width=200 bgcolor=\"#008B8B\">Sampling units</td>"); out.println("<td width=200 bgcolor=\"#008B8B\">Grouping</td>"); out.println("<td width=200 bgcolor=\"#008B8B\">Filter</td></tr>"); // all choosen su's //groupingFound= true; allGrpsFound= true; for (int i=0; i < suids.size(); i++) { // take a suid and find name String curr_suid=(String) suids.elementAt(i); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_SAMPLING_UNITS_1 WHERE SUID=" + curr_suid); if (rset.next()) { oneGrpFound = false; out.println("<tr><td width=200>" + rset.getString("NAME") + "</td>"); // get all available groupings, // the select box is named gsid_"suid" to identify the correlation between // sampling-unit and gsid. stmt_grps = conn.createStatement(); rset_grps=stmt_grps.executeQuery("SELECT NAME,GSID FROM V_GROUPINGS_1 WHERE SUID=" + curr_suid); out.println("<td><select name=\"gsid"+curr_suid+"\" style=\"HEIGHT: 24px; WIDTH: 200px\" size=1>"); while (rset_grps.next()) { oneGrpFound=true; if (gsid != null && gsid.equals(rset.getString("GSID"))){ out.println("<option selected value=\"" + rset_grps.getString("GSID") + "\">" + rset_grps.getString("NAME")); } else{ if(gsid == null || "".equalsIgnoreCase(gsid) || gsid.equalsIgnoreCase("-1")){ out.println("<option selected value=\"" + rset_grps.getString("GSID") + "\">" + rset_grps.getString("NAME")); suid = rset_grps.getString("GSID"); } else{ out.println("<option value=\"" + rset_grps.getString("GSID") + "\">" + rset_grps.getString("NAME")); } } } rset_grps.close(); stmt_grps.close(); out.println("</select></td>"); // check if groups was found for this sampling unit if(!oneGrpFound) { allGrpsFound=false; } // all available filters stmt_filt = conn.createStatement(); rset_filt= stmt_filt.executeQuery("SELECT NAME,FID FROM V_FILTERS_1 WHERE SID=" + sid +" AND PID="+pid); out.println("<td><select name=\"fid"+curr_suid+"\" style=\"HEIGHT: 24px; WIDTH: 200px\" size=1>"); filtersFound = false; while (rset_filt.next()) { filtersFound=true; if (fid != null && fid.equalsIgnoreCase(rset_filt.getString("FID"))) out.println("<OPTION selected value=\"" + rset_filt.getString("FID") + "\">" + rset_filt.getString("NAME")); else out.println("<OPTION value=\"" + rset_filt.getString("FID") + "\">" + rset_filt.getString("NAME")); } out.println("</select></td></tr>"); rset_filt.close(); stmt_filt.close(); } //out.println(" out.println("</tr>"); rset.close(); stmt.close(); } //out.println("<td width=300>Error!!!</td>"); // out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); if(!filtersFound) { out.println("<tr><td> Error! No filters found. Create filters first.</td></tr>"); } else { if(!allGrpsFound) { out.println("<tr><td> Error! Groupings missing.</td></tr>"); } } out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<table border=0 cellpading=0 cellspaing=0>"); // Marker Sets /* out.println("<tr><td>Marker set<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT MSID, NAME FROM V_MARKER_SETS_1 WHERE SUID=" + suid + " ORDER BY NAME"); out.println("<select name=msid width=200 style=\"WIDTH: 200px\">"); out.println("<option selected value=\"-1\">(None)</option>"); while (rset.next()) { out.println("<option value=\"" + rset.getString("MSID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td></tr>"); // Variable Sets out.println("<tr><td>Variable set<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT VSID, NAME FROM V_VARIABLE_SETS_1 WHERE SUID=" + suid + " ORDER BY NAME"); out.println("<select name=vsid width=200 style=\"WIDTH: 200px\">"); out.println("<option selected value=\"-1\">(None)</option>"); while (rset.next()) { out.println("<option value=\"" + rset.getString("VSID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); out.println("</tr>"); */ // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); // we cannot allow user to proceed unless a filter is choosen if (filtersFound && allGrpsFound) { out.println("<td><input type=button value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='javascript:document.forms[0].submit();'>"); } else { out.println("<td><input type=button disabled value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " + /*"onClick='javascript:document.forms[0].submit();'*/">"); } out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); // System.err.println("size="+suids.size()); // out.println("<input type=hidden name=oper value=\"\">"); // add all suid's as parameter-names for (int i=0; i < suids.size(); i++) { // System.err.println((String) suids.elementAt(i)); out.println("<input type=hidden name=suid"+(String) suids.elementAt(i) +" value=\"\">"); } // out.println("<input type=hidden name=rem_suid value=\"\">"); out.println("<input type=hidden name=oper value=\"\">"); // out.println("<input type=hidden name=t value=\"" + type + "\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); //out.println("<input type=hidden name=suid value=\"" + suid + "\">"); //out.println("<input type=hidden name=fid value=\"" + fid + "\">"); out.println("<input type=hidden name=m value=\"S\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } private void writeStep3Multi(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String pid, oper, item; String name, comm, sid; String umsid, uvsid; String uvid=null; String vid=null; String suid=null; Vector suids = null; // Sampling units try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); // find all choosen suid's Enumeration e = req.getParameterNames(); String pn; suids = new Vector(); while (e.hasMoreElements() ) { pn = (String) e.nextElement(); if (pn.startsWith("suid")) { System.err.println("suid:"+pn.substring("suid".length())); suids.addElement(pn.substring("suid".length() ) ); } } if (oper == null || oper.trim().equals("")) oper = ""; name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); umsid = req.getParameter("umsid"); uvsid = req.getParameter("uvsid"); uvid = req.getParameter("uvid"); if (sid == null) sid = "-1"; if (umsid == null) umsid = "-1"; if (uvsid == null) uvsid = "-1"; out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); writeStartTabDelScript(out); out.println("<title>Start Linkage generation</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Analyses - File Generation (multi) - Start - Linkage 3(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + getServletPath("startLinkage/startMulti") + "\">"); out.println("<table width=500 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); // General data from previous pages out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>Linkage</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Multiple Sampling Units</td>"); out.println("</tr>"); out.println("<td width=200>Unified Marker set</td>"); if (umsid.equals("-1")) { out.println("<td>None</td>"); } else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_U_MARKER_SETS_1 WHERE UMSID=" + umsid );//+ " AND PID="+pid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); } out.println("</tr>"); /* out.println("<tr>"); out.println("<td width=200>Unified Variable set</td>"); if (uvsid.equals("-1")) { out.println("<td>None</td>"); } else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_U_VARIABLE_SETS_1 WHERE UVSID=" + uvsid );// + " AND PID="+pid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); } out.println("</tr>"); */ out.println("<tr>"); out.println("<td width=200>Desease loci</td>"); stmt = conn.createStatement(); if(uvid.equalsIgnoreCase("-1")) // no locus { out.println("<td width=300>NONE</td>"); } else { rset = stmt.executeQuery("SELECT NAME FROM V_U_VARIABLES_1 WHERE UVID=" + uvid +" AND PID="+pid); if (rset.next()) { out.println("<td width=300>" + rset.getString("NAME") + "</td>"); } else { out.println("<td width=300>Error!!!</td>"); } rset.close(); stmt.close(); } out.println("<td width=300></td>"); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<hr>"); out.println("<tr><td> </td><td>"); // choosen data out.println("<table border=0 cellpading=0 cellspaing=0>"); out.println("<tr>"); out.println("<td colspan=2>"); out.println("Choosen data"); out.println("</td></tr>"); out.println("<tr><td width=200 bgcolor=\"#008B8B\">Sampling units</td>"); out.println("<td width=200 bgcolor=\"#008B8B\">Grouping</td>"); out.println("<td width=200 bgcolor=\"#008B8B\">Filter</td></tr>"); // diplay all choosen sampling-units, with grouping and filter for each for (int i=0; i < suids.size(); i++) { // take a suid and find name String curr_suid=(String) suids.elementAt(i); String curr_gsid =null; String curr_fid=null; stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_SAMPLING_UNITS_1 WHERE SUID=" + curr_suid); if (rset.next()) { out.println("<tr><td width=200>" + rset.getString("NAME") + "</td>"); // find corresponding gsid in parameters Enumeration sent = req.getParameterNames(); String tmpName; while (sent.hasMoreElements() ) { tmpName = (String) sent.nextElement(); if (tmpName.startsWith("gsid")) { System.err.println("paramName:"+tmpName); // is this the one corresponding with current suid? if(tmpName.substring("gsid".length()).equals(curr_suid)) { curr_gsid=req.getParameter(tmpName); System.err.println("GSID:"+curr_gsid); }//if }//if }//while //ok, got gsid, now use it.. rset = stmt.executeQuery("SELECT NAME FROM V_GROUPINGS_1 WHERE GSID=" + curr_gsid); if(rset.next()) { out.println("<td width=200>" + rset.getString("NAME") + "</td>"); out.println("<input type=hidden name=gsid"+curr_suid+" value=\"" + curr_gsid + "\">"); } // find corresponding fid in parameters sent = req.getParameterNames(); tmpName= null; while (sent.hasMoreElements() ) { tmpName = (String) sent.nextElement(); if (tmpName.startsWith("fid")) { // is this the one corresponding with current suid? if(tmpName.substring("fid".length()).equals(curr_suid)) { curr_fid=req.getParameter(tmpName); } } } //ok, got fid, now use it.. rset = stmt.executeQuery("SELECT NAME FROM V_FILTERS_1 WHERE FID=" + curr_fid); if(rset.next()) { out.println("<td width=200>" + rset.getString("NAME") + "</td></tr>"); out.println("<input type=hidden name=fid"+curr_suid+" value=\"" + curr_fid + "\">"); } } } rset.close(); stmt.close(); out.println("</table>"); out.println("<hr>"); out.println("<tr><td> </td><td>"); /* out.println("<table border=0 cellpading=0 cellspaing=0>"); //Likage type out.println("<tr>"); out.println("<td>Type<br>"); out.println("<select name=type width=200 style=\"WIDTH: 200px\">"); out.println("<OPTION selected value=\"pre\" > Pre MAKEPED </option>"); out.println("<option value=\"post\" > Post MAKEPED </option>"); out.println("</td></tr>"); out.println("</table>"); */ if (!uvid.equalsIgnoreCase("-1")) { // ok try to find phenotype for a unified variable.... out.println("<table border=0 cellpading=0 cellspaing=0>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT VID,SUID FROM V_R_UVID_VID_1 WHERE UVID=" + uvid +" AND PID="+pid); if (rset.next()) { vid=rset.getString("VID"); suid=rset.getString("SUID"); } // Affected loci out.println("<tr>"); out.println("<td>Phenotype for affected<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT DISTINCT VALUE FROM V_PHENOTYPES_1 WHERE " + "SUID=" + suid + " AND VID=" + vid + " ORDER BY VALUE"); boolean missingAffect = true; out.println("<select name=affected width=200 style=\"WIDTH: 200px\">"); while (rset.next()) { missingAffect = false; out.println("<option value=\"" + rset.getString("VALUE") + "\">" + rset.getString("VALUE") + "</option>"); } if (missingAffect) out.println("<option selected>Error (Missing values)</option>"); out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); //</tr>"); // Unaffected value //out.println("<tr>"); out.println("<td>Phenotype for unaffected<br>"); out.println("<select name=unaffected width=200 style=\"WIDTH: 200px\">"); if (missingAffect) out.println("<option selected>Error (Missing values)</option>"); else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT DISTINCT VALUE FROM V_PHENOTYPES_1 WHERE " + "SUID=" + suid + " AND VID=" + vid + " ORDER BY VALUE"); while (rset.next()) { out.println("<option value=\"" + rset.getString("VALUE") + "\">" + rset.getString("VALUE") + "</option>"); } rset.close(); stmt.close(); } out.println("</td>"); //</tr>"); // Gene frequecy // out.println("<tr>"); out.println("<td>Gene frequency<br>"); out.println("<input type=text name=geneFreq value=\"0.99\" width=200 style=\"WIDTH: 200px\">"); out.println("</td></tr>"); out.println("</table>"); } // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); out.println("<td><input type=button value=\"Finish\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='javascript:document.forms[0].submit();'>"); out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); // send all suid's as hidden.... for (int i=0; i < suids.size(); i++) { // System.err.println((String) suids.elementAt(i)); out.println("<input type=hidden name=suid"+(String) suids.elementAt(i) +" value=\"\">"); } // out.println("<input type=hidden name=rem_suid value=\"\">"); out.println("<input type=hidden name=oper value=\"\">"); // out.println("<input type=hidden name=t value=\"" + type + "\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); // out.println("<input type=hidden name=suid value=\"" + suid + "\">"); // out.println("<input type=hidden name=fid value=\"" + fid + "\">"); out.println("<input type=hidden name=umsid value=\"" + umsid + "\">"); out.println("<input type=hidden name=uvid value=\"" + uvid + "\">"); out.println("<input type=hidden name=uvsid value=\"" + uvsid + "\">"); out.println("<input type=hidden name=uvid value=\"" + uvid + "\">"); out.println("<input type=hidden name=m value=\"M\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } private void writeStep1Single(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String sql; String pid, oper, item; String type, name, comm, sid; boolean filtersFound=false; try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); if (oper == null || oper.trim().equals("")) oper = ""; type = req.getParameter("t"); name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); if (sid == null || sid.trim().equals("")) sid = "-1"; out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); writeStartTabDelScript(out); out.println("<title>Start Linkage generation</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Export file - Start - Linkage 1(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + getServletPath("startLinkage/step2Single") + "\">"); out.println("<table width=500 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); // General data from previously pages out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>Linkage</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Single sampling unit</td>"); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<table border=0 cellpading=0 cellspaing=0>"); // Filters out.println("<tr><td>Filter<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT FID, NAME FROM V_FILTERS_2 WHERE PID=" + pid + " AND SID=" + sid + " ORDER BY NAME"); filtersFound = false; out.println("<select name=fid width=200 style=\"WIDTH: 200px\">"); while (rset.next()) { filtersFound=true; out.println("<option value=\"" + rset.getString("FID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td></tr>"); // Sampling units out.println("<tr><td>Sampling unit<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT SUID, NAME FROM V_ENABLED_SAMPLING_UNITS_2 WHERE PID=" + pid + " AND SID=" + sid + " ORDER BY NAME"); out.println("<select name=suid width=200 style=\"WIDTH: 200px\">"); while (rset.next()) { out.println("<option value=\"" + rset.getString("SUID") + "\">" + rset.getString("NAME") + "</option>"); } out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); out.println("</tr>"); if(!filtersFound) { out.println("<tr><td>Error! no filters found. Create filters first.</td></tr>"); } // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); if(filtersFound) { out.println("<td><input type=button value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='javascript:document.forms[0].submit();'>"); } else { out.println("<td><input type=button disabled value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " /*"onClick='javascript:document.forms[0].submit();'*/+">"); } out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); // out.println("<input type=hidden name=rem_suid value=\"\">"); out.println("<input type=hidden name=oper value=\"\">"); // out.println("<input type=hidden name=t value=\"" + type + "\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); out.println("<input type=hidden name=m value=\"S\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } private void writeStep2Single(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String pid, oper, item; String name, comm, sid; String suid; String fid; try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); if (oper == null || oper.trim().equals("")) oper = ""; name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); fid = req.getParameter("fid"); suid = req.getParameter("suid"); if (sid == null) sid = "-1"; if (fid == null) fid = "-1"; if (suid == null) suid = "-1"; out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); writeStartScript(out); out.println("<title>Start Linkage generation</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Export file - Start - Linkage 2(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + getServletPath("startLinkage/step3Single") + "\">"); out.println("<table width=500 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); // General data from previously pages out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>Linkage</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Single sampling unit</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Filter</td>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_FILTERS_1 WHERE FID=" + fid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Sampling unit</td>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_SAMPLING_UNITS_1 WHERE SUID=" + suid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<table border=0 cellpading=0 cellspaing=0>"); // Marker Sets out.println("<tr><td>Marker set<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT MSID, NAME FROM V_MARKER_SETS_1 WHERE SUID=" + suid + " ORDER BY NAME"); out.println("<select name=msid width=200 style=\"WIDTH: 200px\">"); // out.println("<option selected value=\"-1\">(None)</option>"); boolean missingMsid = true; while (rset.next()) { missingMsid = false; out.println("<option value=\"" + rset.getString("MSID") + "\">" + rset.getString("NAME") + "</option>"); } if (missingMsid) out.println("<option selected>Error (Missing value)</option>"); out.println("</select>"); rset.close(); stmt.close(); out.println("</td></tr>"); // Disease loci (Variables) out.println("<tr><td>Disease loci<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT VID, NAME FROM V_VARIABLES_1 WHERE SUID=" + suid + " AND TYPE='E' ORDER BY NAME"); out.println("<select name=vid width=200 style=\"WIDTH: 200px\">"); //-- out.println("<option selected value=\"-1\">(None)</option>"); //-- boolean missingVid = true; while (rset.next()) { missingVid = false; out.println("<option value=\"" + rset.getString("VID") + "\">" + rset.getString("NAME") + "</option>"); } // if (missingVid) // out.println("<option selected>Error (Missing variable)</option>"); out.println("</select>"); rset.close(); stmt.close(); out.println("</td>"); out.println("</tr>"); // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='JavaScript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); /* out.println("<td><input type=button value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " + (missingMsid || missingVid ? "disabled" : "onClick='javascript:document.forms[0].submit();'") + ">"); */ out.println("<td><input type=button value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " +"onClick='javascript:document.forms[0].submit();'" + ">"); out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); // out.println("<input type=hidden name=rem_suid value=\"\">"); out.println("<input type=hidden name=oper value=\"\">"); // out.println("<input type=hidden name=t value=\"" + type + "\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); out.println("<input type=hidden name=suid value=\"" + suid + "\">"); out.println("<input type=hidden name=fid value=\"" + fid + "\">"); out.println("<input type=hidden name=m value=\"S\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } private void writeStep3Single(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); Connection conn = (Connection) session.getValue("conn"); Statement stmt = null; ResultSet rset = null; res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); String pid, oper, item; String name, comm, sid; String suid; String fid; String msid, vid; try { conn = (Connection) session.getValue("conn"); pid = (String) session.getValue("PID"); oper = req.getParameter("oper"); if (oper == null || oper.trim().equals("")) oper = ""; name = req.getParameter("n"); comm = req.getParameter("c"); sid = req.getParameter("s"); fid = req.getParameter("fid"); suid = req.getParameter("suid"); msid = req.getParameter("msid"); vid = req.getParameter("vid"); if (sid == null) sid = "-1"; if (fid == null) fid = "-1"; if (suid == null) suid = "-1"; if (msid == null) msid = "-1"; if (vid == null) vid = "-1"; out.println("<html>"); out.println("<head>"); HTMLWriter.css(out,getURL("style/axDefault.css")); writeStartScript(out); out.println("<title>Start Linkage generation</title>"); out.println("</head>"); out.println("<body>"); out.println("<table width=846 border=0 cellspacing=0 cellpadding=0 valign=top>"); out.println("<tr>"); out.println("<td width=14 rowspan=3></td>"); out.println("<td width=736 colspan=2 height=15>"); out.println("<center>" + "<b style=\"font-size: 15pt\">Export file - Start - Linkage 3(3)</b></center>"); out.println("</td></tr>"); out.println("<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>"); out.println("</tr></table>"); out.println("<form method=post action=\"" + getServletPath("startLinkage/startSingle") + "\">"); out.println("<table width=500 border=0 cellSpacing=0 cellPading=5>"); out.println("<tr><td width=10 style=\"WIDTH: 10px\"> </td><td>"); out.println("<table border=0 cellpading=0 cellspacing=0>"); // General data from previously pages out.println("<tr>"); out.println("<td width=200>Name</td>"); out.println("<td width=300>" + name + "</td>"); out.println("<tr>"); out.println("<td width=200>Comment</td>"); out.println("<td width=300>" + formatOutput(session, comm, 20) + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Type</td>"); out.println("<td width=300>Linkage</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Mode</td>"); out.println("<td width=300>Single sampling unit</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Filter</td>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_FILTERS_1 WHERE FID=" + fid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); out.println("</tr>"); out.println("<tr>"); out.println("<td width=200>Sampling unit</td>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_SAMPLING_UNITS_1 WHERE SUID=" + suid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); rset.close(); stmt.close(); out.println("</tr>"); // Marker set out.println("<tr>"); out.println("<td width=200>Marker set</td>"); if (msid.equals("-1")) { out.println("<td>None</td>"); } else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_MARKER_SETS_1 WHERE MSID=" + msid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); } rset.close(); stmt.close(); out.println("</tr>"); // Disease loci out.println("<tr>"); out.println("<td width=200>Disease loci</td>"); if (vid.equals("-1")) { out.println("<td>None</td>"); } else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT NAME FROM V_VARIABLES_1 WHERE VID=" + vid); if (rset.next()) out.println("<td width=300>" + rset.getString("NAME") + "</td>"); else out.println("<td width=300>Error!!!</td>"); } rset.close(); stmt.close(); out.println("</tr>"); out.println("<tr><td></td><td></td></tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("<tr><td> </td><td>"); out.println("<table border=0 cellpading=0 cellspaing=0>"); /* //Likage type out.println("<tr>"); out.println("<td>Type<br>"); out.println("<select name=type width=200 style=\"WIDTH: 200px\">"); out.println("<OPTION selected value=\"pre\" > \"Pre MAKEPED\" </option>"); out.println("<option value=\"post\" > \"Post MAKEPED\" </option>"); out.println("</td></tr>"); */ // Grouping out.println("<tr>"); out.println("<td>Grouping<br>"); stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT GSID, NAME FROM V_GROUPINGS_1 WHERE " + "SUID=" + suid + " ORDER BY NAME"); boolean missingGsid = true; out.println("<select name=gsid width=200 style=\"WIDTH: 200px\">"); while (rset.next()) { missingGsid = false; out.println("<option value=\"" + rset.getString("GSID") + "\">" + rset.getString("NAME") + "</option>"); } if (missingGsid) out.println("<option selected>Error (Missing values)</option>"); out.println("</select>"); rset.close(); stmt.close(); out.println("</td></tr>"); // Affected loci out.println("<tr>"); out.println("<td>Phenotype for affected<br>"); boolean missingAffect = true; if(!vid.equalsIgnoreCase("-1")) { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT DISTINCT VALUE FROM V_PHENOTYPES_1 WHERE " + "SUID=" + suid + " AND VID=" + vid + " ORDER BY VALUE"); out.println("<select name=affected width=200 style=\"WIDTH: 200px\">"); while (rset.next()) { missingAffect = false; out.println("<option value=\"" + rset.getString("VALUE") + "\">" + rset.getString("VALUE") + "</option>"); } rset.close(); stmt.close(); if (missingAffect) out.println("<option selected>Error (Missing values)</option>"); } else // vid = "-1" no disease loci { out.println("<select name=affected width=200 style=\"WIDTH: 200px\">"); out.println("<option selected>(NONE)</option>"); } out.println("</select>"); out.println("</td></tr>"); // Unaffected value out.println("<tr>"); out.println("<td>Phenotype for unaffected<br>"); out.println("<select name=unaffected width=200 style=\"WIDTH: 200px\">"); if( vid.equalsIgnoreCase("-1"))// vid = "-1" no disease loci { out.println("<option selected>(NONE)</option>"); } else { if (missingAffect) out.println("<option selected>Error (Missing values)</option>"); else { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT DISTINCT VALUE FROM V_PHENOTYPES_1 WHERE " + "SUID=" + suid + " AND VID=" + vid + " ORDER BY VALUE"); while (rset.next()) { out.println("<option value=\"" + rset.getString("VALUE") + "\">" + rset.getString("VALUE") + "</option>"); } rset.close(); stmt.close(); } } out.println("</select>"); out.println("</td></tr>"); // Gene frequecy out.println("<tr>"); out.println("<td>Gene frequency<br>"); if( vid.equalsIgnoreCase("-1"))// vid = "-1" no disease loci { out.println("<input type=text name=geneFreq value=\"(NONE)\" width=200 style=\"WIDTH: 200px\">"); } else { out.println("<input type=text name=geneFreq value=\"0.99\" width=200 style=\"WIDTH: 200px\">"); } out.println("</td></tr>"); out.println("</table>"); // Some buttons out.println("<tr><td></td><td></td></tr>"); out.println("<tr>"); out.println("<td colspan=3>"); out.println("<table border=0 cellspacing=0 cellpading=0>"); out.println("<tr>"); out.println("<td><input type=button value=\"Cancel\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='javascript:location.href=\"" + getServletPath("viewFile/start") + "\"';>"); out.println(" </td>"); /* out.println("<td><input type=button value=\"Next\" " + "width=100 style=\"WIDTH: 100px\" " + (missingAffect ? "disabled" : "onClick='document.forms[0].submit();'") + ">"); */ out.println("<td><input type=button value=\"Finish\" " + "width=100 style=\"WIDTH: 100px\" " + "onClick='document.forms[0].submit();'" + ">"); out.println(" </td>"); out.println("</tr>"); out.println("</table>"); out.println("</td></tr>"); out.println("</table>"); out.println("<input type=hidden name=oper value=\"\">"); out.println("<input type=hidden name=n value=\"" + name + "\">"); out.println("<input type=hidden name=c value=\"" + comm + "\">"); out.println("<input type=hidden name=s value=\"" + sid + "\">"); out.println("<input type=hidden name=suid value=\"" + suid + "\">"); out.println("<input type=hidden name=fid value=\"" + fid + "\">"); out.println("<input type=hidden name=msid value=\"" + msid + "\">"); out.println("<input type=hidden name=vid value=\"" + vid + "\">"); out.println("<input type=hidden name=m value=\"S\">"); out.println("</td></tr></table>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); } catch (SQLException ignored) { } } } void startSingle(HttpServletRequest req, HttpServletResponse res) throws IOException { HttpSession session = req.getSession(true); String absFileame; String name; String comm; String mode; String filter; String msid; String vid; String affected, unaffected, geneFreq; String fid; String expression; String pid; String suid; String gsid; String sid; String UserID; //String type; int fgid=0; boolean ok = true; GqlTranslator gqltr = null; // GenPostLINKAGE gptl =null; GenLINKAGE gtl = null; Connection conn = null; CallableStatement cstmt = null; Statement stmt = null; ResultSet rset = null; msid = req.getParameter("msid"); vid = req.getParameter("vid"); affected = req.getParameter("affected"); unaffected = req.getParameter("unaffected"); geneFreq = req.getParameter("geneFreq"); name = req.getParameter("n"); comm = req.getParameter("c"); mode = req.getParameter("m"); suid = req.getParameter("suid"); gsid = req.getParameter("gsid"); fid = req.getParameter("fid"); pid = (String) session.getValue("PID"); // type = req.getParameter("type"); // System.err.println("type="+type); // This is just a lazy and uggly way of getting away // from form validation. Of course this parameter // should have been validated before the form was // submited! try { Float.parseFloat(geneFreq); } catch (NumberFormatException nfe) { geneFreq = "0.99"; } conn = (Connection) session.getValue("conn"); UserID = (String) session.getValue("UserID"); try { stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT EXPRESSION, PID, SID FROM V_FILTERS_1 WHERE FID=" + fid); if (rset.next()) { expression = rset.getString("EXPRESSION"); sid = rset.getString("SID"); } else { expression = ""; // ??? sid = "-1"; } gqltr = new GqlTranslator(pid, sid, expression, conn); gqltr.translate(); filter = gqltr.getFilter(); ServletContext conf = super.getServletContext(); String nullRepl = getFileNullReplacement(session); String absPath = conf.getInitParameter("fileGeneratePath"); String dburl = conf.getInitParameter("dburl"); String uid = conf.getInitParameter("uid"); String pwd = conf.getInitParameter("pwd"); /* procedure Create_File_Generation( p_fgid in out FILE_GENERATIONS.FGID%TYPE, p_name in FILE_GENERATIONS.NAME%TYPE, p_mode in FILE_GENERATIONS.MODE_%TYPE, p_type in FILE_GENERATIONS.TYPE_%TYPE, p_msid in FILE_GENERATIONS.MSID%TYPE, p_vsid in FILE_GENERATIONS.VSID%TYPE, p_comm in FILE_GENERATIONS.COMM%TYPE, p_pid in FILE_GENERATIONS.PID%TYPE, p_id in FILE_GENERATIONS.ID%TYPE, p_message in out varchar2) IS */ if (dburl == null || uid == null || pwd == null || absPath == null) { System.err.println("Unable to read initialization parameters needed by startLinkage"); ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", Errors.keyValue("Generations.Start.Linkage.ReadInitParams.Error.Msg"), "viewFile/start"); } else { // Create the neccesary databas objects! cstmt = conn.prepareCall("{call gdbp.Create_File_Generation(?,?,?,?,?,?,?,?,?,?)}"); cstmt.registerOutParameter(1, java.sql.Types.NUMERIC); // FGID cstmt.registerOutParameter(10, java.sql.Types.VARCHAR); // Message cstmt.setString(2, name); cstmt.setString(3, mode); cstmt.setString(4, "Linkage"); cstmt.setInt(5, Integer.parseInt(msid) ); cstmt.setNull(6, java.sql.Types.NUMERIC); // We don't support variable set in this version. if (comm != null && !comm.trim().equals("")) cstmt.setString(7, comm); else cstmt.setNull(7, java.sql.Types.VARCHAR); cstmt.setInt(8, Integer.parseInt(pid) ); cstmt.setInt(9, Integer.parseInt(UserID) ); cstmt.execute(); String message = cstmt.getString(10); if (message != null && !message.trim().equals("")) { ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", message, "viewFile/start"); throw new Exception("Call to PL/SQL-procedure failed."); } fgid = cstmt.getInt(1); /* procedure Create_FG_FLT_Link( p_fgid in R_FG_FLT.FGID%TYPE, p_suid in R_FG_FLT.SUID%TYPE, p_fid in R_FG_FLT.FID%TYPE, p_gsid in R_FG_FLT.GSID%TYPE, p_message in out varchar2) IS */ cstmt.close(); cstmt = conn.prepareCall("{call gdbp.Create_FG_FLT_Link(?,?,?,?,?)}"); cstmt.registerOutParameter(5, java.sql.Types.VARCHAR); cstmt.setInt(1, fgid); cstmt.setInt(2, Integer.parseInt(suid) ); cstmt.setInt(3, Integer.parseInt(fid) ); // if (gsid == null) // cstmt.setNull(4, java.sql.Types.NUMERIC); // else cstmt.setInt(4, Integer.parseInt(gsid)); cstmt.execute(); message = cstmt.getString(5); if (message != null && !message.trim().equals("")) { ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", message, "viewFile/start"); throw new Exception(); } //Insert values in the r_fgid_ind table DbFileGeneration DbFG = new DbFileGeneration(); DbFG.CreateFgIndLink(conn, fgid, suid, pid, gsid, fid); // Everything is set -> Let's start the generation ! absPath = absPath + "/" + pid + "/" + fgid + "/"; if (!createPath(absPath)) { writeErrorPage(req, res, "Generations.Start.Linkage", Errors.keyValue("Generations.Start.Linkage.CreateDir.Error.Msg"), "viewFile/start"); ok = false; throw new Exception("Call to PL/SQL-procedure failed."); } // Everything seems fine so far! // We better commit our changes to make them visible // for the genLINKAGE object (it has it's own database connection) conn.commit(); /* if(type.equalsIgnoreCase("post")) { gptl = new GenPostLINKAGE(fgid, Float.parseFloat(geneFreq), Integer.parseInt(vid), affected, unaffected, absPath, dburl, uid, pwd); // No rush. We don't want to overload the server with time consuming tasks gptl.setPriority(Thread.NORM_PRIORITY - 2); gptl.start(); } */ gtl = new GenLINKAGE(fgid, Float.parseFloat(geneFreq), Integer.parseInt(vid), affected, unaffected, absPath, dburl, uid, pwd); // No rush. We don't want to overload the server with time consuming tasks gtl.setPriority(Thread.NORM_PRIORITY - 2); gtl.start(); } } catch (SQLException sqle) { ok = false; sqle.printStackTrace(System.err); } catch (Exception e) { ok = false; e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); if (cstmt != null) cstmt.close(); } catch (SQLException ignored) {} } /* if (ok) res.sendRedirect(getServletPath("viewFile") ); */ if (ok && fgid!=0) res.sendRedirect(getServletPath("viewFile/files?fgid="+fgid) ); } void startMulti(HttpServletRequest req, HttpServletResponse res) throws IOException { HttpSession session = req.getSession(true); String absFileame; String name; String comm; String mode; String filter; String umsid; String uvsid; //String type =null; int uvid = 0; // String fid; String expression; String pid; // String suid; // String gsid; Vector suids = null; // Sampling units String sid; String UserID; float geneFreq=0; String unaffected=null; String affected = null; int field_mask = 0; int fgid=0; boolean includeRaw ; boolean ok = true; GqlTranslator gqltr = null; GenLINKAGE gnl = null; // GenPostLINKAGE gpnl =null; Connection conn = null; CallableStatement cstmt = null; Statement stmt = null; ResultSet rset = null; //type = req.getParameter("type"); // System.err.println("link/multi:type="+type); umsid = req.getParameter("umsid"); if (umsid != null && Integer.parseInt(umsid) < 0) umsid = null; uvsid = req.getParameter("uvsid"); if (uvsid != null && Integer.parseInt(uvsid) < 0) uvsid = null; name = req.getParameter("n"); comm = req.getParameter("c"); mode = req.getParameter("m"); uvid = Integer.parseInt(req.getParameter("uvid")); if(uvid == -1)// no loci { unaffected = "None"; affected = "None"; geneFreq = 0; } else { unaffected = req.getParameter("unaffected"); affected = req.getParameter("affected"); geneFreq = Float.parseFloat(req.getParameter("geneFreq")); } pid = (String) session.getValue("PID"); conn = (Connection) session.getValue("conn"); UserID = (String) session.getValue("UserID"); try { /* why this?? stmt = conn.createStatement(); rset = stmt.executeQuery("SELECT EXPRESSION, PID, SID FROM V_FILTERS_1 WHERE FID=" + fid); if (rset.next()) { expression = rset.getString("EXPRESSION"); sid = rset.getString("SID"); } else { expression = ""; // ??? sid = "-1"; } gqltr = new GqlTranslator(pid, sid, expression, conn); gqltr.translate(); filter = gqltr.getFilter(); */ // System.err.println(req.getQueryString()); // find all choosen suid's Enumeration e = req.getParameterNames(); String pn; suids = new Vector(); while (e.hasMoreElements() ) { pn = (String) e.nextElement(); if (pn.startsWith("suid")) { suids.addElement(pn.substring("suid".length() ) ); } } ServletContext conf = super.getServletContext(); String nullRepl = getFileNullReplacement(session); String absPath = conf.getInitParameter("fileGeneratePath"); String dburl = conf.getInitParameter("dburl"); String uid = conf.getInitParameter("uid"); String pwd = conf.getInitParameter("pwd"); /* procedure Create_File_Generation( p_fgid in out FILE_GENERATIONS.FGID%TYPE, p_name in FILE_GENERATIONS.NAME%TYPE, p_mode in FILE_GENERATIONS.MODE_%TYPE, p_type in FILE_GENERATIONS.TYPE_%TYPE, p_msid in FILE_GENERATIONS.MSID%TYPE, p_vsid in FILE_GENERATIONS.VSID%TYPE, p_comm in FILE_GENERATIONS.COMM%TYPE, p_pid in FILE_GENERATIONS.PID%TYPE, p_id in FILE_GENERATIONS.ID%TYPE, p_message in out varchar2) IS */ if (dburl == null || uid == null || pwd == null || absPath == null) { System.err.println("Unable to read initialization parameters needed by startLinkage"); ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", Errors.keyValue("Generations.Start.Linkage.ReadInitParams.Error.Msg"), "viewFile/start"); } else { // Create the neccesary database objects! cstmt = conn.prepareCall("{call gdbp.Create_File_Generation(?,?,?,?,?,?,?,?,?,?)}"); cstmt.registerOutParameter(1, java.sql.Types.NUMERIC); // FGID cstmt.registerOutParameter(10, java.sql.Types.VARCHAR); // Message cstmt.setString(2, name); cstmt.setString(3, mode); cstmt.setString(4, "Linkage"); if (umsid == null) cstmt.setNull(5, java.sql.Types.NUMERIC); else cstmt.setInt(5, Integer.parseInt(umsid) ); if (uvsid == null) cstmt.setNull(6, java.sql.Types.NUMERIC); else cstmt.setInt(6, Integer.parseInt(uvsid) ); if (comm != null && !comm.trim().equals("")) cstmt.setString(7, comm); else cstmt.setNull(7, java.sql.Types.VARCHAR); cstmt.setInt(8, Integer.parseInt(pid) ); cstmt.setInt(9, Integer.parseInt(UserID) ); cstmt.execute(); String message = cstmt.getString(10); if (message != null && !message.trim().equals("")) { ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", message, "viewFile/start"); throw new Exception(); } fgid = cstmt.getInt(1); /* procedure Create_FG_FLT_Link( p_fgid in R_FG_FLT.FGID%TYPE, p_suid in R_FG_FLT.SUID%TYPE, p_fid in R_FG_FLT.FID%TYPE, p_gsid in R_FG_FLT.GSID%TYPE, p_message in out varchar2) IS */ //Used for insertion into r_fg_ind DbFileGeneration DbFG = new DbFileGeneration(); // for all sampling_units: for (int i=0; i < suids.size(); i++) { String curr_suid=(String) suids.elementAt(i); String curr_gsid =null; String curr_fid=null; // find corresponding gsid in parameters Enumeration sent = req.getParameterNames(); String tmpName; while (sent.hasMoreElements() ) { tmpName = (String) sent.nextElement(); if (tmpName.startsWith("gsid")) { // is this the one corresponding with current suid? if(tmpName.substring("gsid".length()).equals(curr_suid)) { curr_gsid=req.getParameter(tmpName); }//if }//if }//while // find corresponding fid sent = req.getParameterNames(); tmpName=null; while (sent.hasMoreElements() ) { tmpName = (String) sent.nextElement(); if (tmpName.startsWith("fid")) { // is this the one corresponding with current suid? if(tmpName.substring("fid".length()).equals(curr_suid)) { curr_fid=req.getParameter(tmpName); }//if }//if }//while cstmt.close(); cstmt = conn.prepareCall("{call gdbp.Create_FG_FLT_Link(?,?,?,?,?)}"); cstmt.registerOutParameter(5, java.sql.Types.VARCHAR); cstmt.setInt(1, fgid); cstmt.setInt(2, Integer.parseInt(curr_suid) ); cstmt.setInt(3, Integer.parseInt(curr_fid) ); if (curr_gsid == null) cstmt.setNull(4, java.sql.Types.NUMERIC); else cstmt.setInt(4, Integer.parseInt(curr_gsid)); cstmt.execute(); message = cstmt.getString(5); if (message != null && !message.trim().equals("")) { ok = false; writeErrorPage(req, res, "Generations.Start.Linkage", message, "viewFile/start"); throw new Exception(); } //Insert values in the r_fgid_ind table DbFG.CreateFgIndLink(conn, fgid, curr_suid, pid, curr_gsid, curr_fid); }// end for all sampling units // ALL SAMPLING UNITS HANDLED // Everything is set -> Let's start the generation ! absPath = absPath + "/" + pid + "/" + fgid + "/"; if (!createPath(absPath)) { writeErrorPage(req, res, "Generations.Start.Linkage", Errors.keyValue("Generations.Start.Linkage.CreateDir.Error.Msg"), "viewFile/start"); ok = false; throw new Exception(); } /* public GenLINKAGE(int fgid, float geneFreq, int vid, String disease_present, String disease_absent, String directory, String dburl, String uid, String pwd) */ /* if (type.equalsIgnoreCase("post")) { gpnl = new GenPostLINKAGE(fgid, geneFreq, uvid, affected, unaffected, absPath, dburl, uid, pwd); // No rush. We don't want to overload the server with time consuming tasks gpnl.setPriority(Thread.NORM_PRIORITY - 2); gpnl.start(); } */ gnl = new GenLINKAGE(fgid, geneFreq, uvid, affected, unaffected, absPath, dburl, uid, pwd); // No rush. We don't want to overload the server with time consuming tasks gnl.setPriority(Thread.NORM_PRIORITY - 2); gnl.start(); } } catch (SQLException sqle) { sqle.printStackTrace(System.err); } catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (rset != null) rset.close(); if (stmt != null) stmt.close(); if (cstmt != null) cstmt.close(); } catch (SQLException ignored) {} } /* if (ok) res.sendRedirect(getServletPath("viewFile") ); */ if (ok && fgid!=0) res.sendRedirect(getServletPath("viewFile/files?fgid="+fgid) ); } private void writeStartScript(PrintWriter out) { out.println("<script language=\"JavaScript\">"); out.println("<!--"); out.println("function selChanged(item) {"); out.println(" document.forms[0].item.value = \"\" + item;"); out.println(" document.forms[0].oper.value = \"SEL_CHANGED\";"); out.println(" document.forms[0].submit();"); out.println("}"); out.println("function valForm() {"); out.println(" "); out.println(" var rc = 1;"); out.println(" if ( (\"\" + document.forms[0].c.value) != \"\" &&"); out.println(" document.forms[0].c.value.length > 255) {"); out.println(" alert('Comment must be less than 255 characters!');"); out.println(" rc = 0;"); out.println(" }"); out.println(" if ( (\"\" + document.forms[0].n.value) == \"\") {"); out.println(" rc = 0;"); out.println(" }"); out.println(" "); out.println(" "); out.println(" if (rc) {"); out.println("// if (confirm('Are you sure that you want to create the filter?')) {"); out.println(" document.forms[0].oper.value = ''"); out.println(" document.forms[0].submit();"); out.println("// }"); out.println(" }"); out.println(" "); out.println(" "); out.println("}"); out.println("function valFloat(contr) {"); out.println(" if (0.0 < parseFloat(contr.value) || 1.0 > parseFloat(contr.value)) {"); out.println(" alert('Gene frequency must be a floating point\\n' +"); out.println(" 'number in the range 0 to 1.');"); out.println(" return false;"); out.println(" } else {"); out.println(" return true;"); out.println(" }"); out.println("}"); out.println("//-->"); out.println("</script>"); } private void writeStartTabDelScript(PrintWriter out) { out.println("<script language=\"JavaScript\">"); out.println("<!--"); out.println("function valForm(action, suid) {"); out.println(" "); out.println(" var rc = 1;"); out.println(" if ('ADD_SU' == action.toUpperCase()) {"); out.println(" document.forms[0].oper.value='ADD_SU';"); out.println(" rc = 0;"); out.println(" "); out.println(" } else if ('REMOVE' == action.toUpperCase()) {"); out.println(" document.forms[0].oper.value='REMOVE';"); out.println(" document.forms[0].rem_suid.value=suid;"); out.println(" rc = 0;"); out.println(" } else {"); out.println(" document.forms[0].oper.value='';"); out.println(" }"); out.println(" "); out.println(" if (rc == 0) {"); out.println(" document.forms[0].submit();"); out.println(" return true;"); out.println(" }"); out.println(" return false;"); out.println(" "); out.println("}"); out.println("function start() {"); out.println(" "); out.println(" document.forms[0].oper.value='START';"); out.println(" document.forms[0].submit();"); out.println(" return true;"); out.println(" "); out.println("}"); out.println("//-->"); out.println("</script>"); } private boolean authorized(HttpServletRequest req, HttpServletResponse res) { HttpSession session = req.getSession(true); String extPath = req.getPathInfo(); boolean ok = true; String title = ""; int privileges[] = (int[]) session.getValue("PRIVILEGES"); try { if (extPath == null || extPath.trim().equals("") ) extPath = "/"; if (extPath.equals("/") || extPath.equals("/bottom") || extPath.equals("/middle") || extPath.equals("/top") ) { // We neew the privilege FLT_R for all these title = "Analyses - Filters - View & Edit"; if ( privDependentString(privileges, ANA_R, "", null) == null ) ok = false; } else if (extPath.equals("/details") ) { // We neew the privilege FLT_R for all these title = "Analyses - Filters - Details"; if ( privDependentString(privileges, FLT_R, "", null) == null ) ok = false; } else if (extPath.equals("/edit") ) { // We neew the privilege FLT_W title = "Analyses - Filters - Edit"; if ( privDependentString(privileges, FLT_W, "", null) == null) ok = false; } else if (extPath.equals("/new") ) { // We neew the privilege FLT_W title = "Analyses - Filters - New"; if ( privDependentString(privileges, FLT_W, "", null) == null) ok = false; } if (!ok) writeUnauthorizedPage(res, title); } catch (Exception e) { e.printStackTrace(System.err); ok = false; } return ok; } private void writeUnauthorizedPage(HttpServletResponse res, String title) { try { res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); res.setHeader("Cache-Control", "no-cache"); PrintWriter out = res.getWriter(); out.println("<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">"); out.println("<html>"); out.println("<head>"); out.println("<title>Unauthorized user</title>"); HTMLWriter.css(out,getURL("style/axDefault.css")); out.println("</head>"); out.println("<body>"); out.println("<table width=\"846\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" valign=\"top\">" + "<tr>" + "<td width=\"14\" rowspan=\"3\"></td>" + "<td width=\"736\" colspan=\"2\" height=\"15\">"); out.println("<center>" + "<b style=\"font-size: 15pt\">"); out.println(title); out.println("</b></center>" + "</font></td></tr>" + "<tr><td width=\"736\" colspan=\"2\" height=\"2\" bgcolor=\"#008B8B\"> </td>" + "</tr></table>"); out.println("<table cellspacing=0 cellpadding=0><tr>" + "<td width=15></td><td>"); out.println("<p>"); out.println("<b>"); out.println("You are not authorized to view this page."); out.println("</b>"); out.println("</td></tr>"); out.println("<tr><td></td><td></td></tr><td></td><td>"); out.println("</td></tr></table>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(System.err); } finally { ; } } }