/*
$Log$
Revision 1.9 2005/03/24 15:12:44 heto
Working with removing oracle dep.
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:15 wali
Changed Analyses to export.
Revision 1.6 2003/12/19 15:32:51 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:38 heto
Moved function to ArexisServlet
Revision 1.2 2002/11/13 09:05:46 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.12 2002/02/01 15:47:18 roca
removed variable set choiche for crimap.
Revision 1.11 2002/01/29 18:03:07 roca
Changes by roca (se funktionsbskrivnig for LF025)
Revision 1.10 2001/06/26 12:08:17 roca
Changed names on buttons (finish/cancel) in alnalyse pages
Generations changed to Export format
Corrected counters in Filter/File views
Bugfix in GenChrimap
Revision 1.9 2001/06/07 13:19:45 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.8 2001/05/31 12:09:04 roca
changed backbutton to cancelbutton
Revision 1.7 2001/05/21 08:17:06 roca
Roca fixed nullreplacement for files, privs not displayed and counter in phenotypes
Revision 1.6 2001/05/11 09:17:26 frob
Changed some key-names in Errors.properties which affected these files.
Revision 1.5 2001/05/09 09:15:35 frob
Changed all calls to writeError() to the general writeErrorPage(). The original
writeError is removed.
Revision 1.4 2001/05/09 06:49:01 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 se.arexis.agdb.db.*;
import se.arexis.agdb.util.*;
import se.arexis.agdb.util.FileExport.GenCRIMAP;
public class startCrimap 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();
rset = stmt.executeQuery("SELECT NAME FROM V_FILE_GENERATIONS_1 WHERE NAME='"+name+"'" );
if(rset.next())
{
writeErrorPage(req, res, "Generations.Start.Crimap", "The name you have choosen already exists!",
"viewFile/start" + "?");
return;
}
}
catch (SQLException ignored)
{
}
String mode = req.getParameter("m");
if ("M".equals(mode)) {
// Multi sampling unit mode
writeStep1Multi(req, res);
} 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 Crimap 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 - Crimap 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("startCrimap/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("startCrimap/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) - Start - Crimap 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("startCrimap/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>Crimap</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>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 suid;
//String fid;
String umsid, uvsid;
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");
//System.err.println("p:"+req.getQueryString());
// fid = req.getParameter("fid");
// suid = req.getParameter("suid");
umsid = req.getParameter("umsid");
uvsid = req.getParameter("uvsid");
if (sid == null) sid = "-1";
// if (fid == null) fid = "-1";
// if (suid == null) suid = "-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 Crimap 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 - Crimap 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("startCrimap/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>Crimap</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><td></td><td></td></tr>");
out.println("</table>");
out.println("</td></tr>");
out.println("<tr><td> </td><td>");
// out.println("<table border=0 width = 200 cellpading=0 cellspaing=0>");
// out.println("<tr><td width=200 bgcolor=\"#008B8B\" height= 2><U> </U></td></tr>");
// out.println("</table>");
out.println("<hr>");
/*
out.println("<table border=0 cellpading=0 cellspaing=0>");
out.println("<tr>");
out.println("<td colspan=2>");
out.println("<U>Included fields</U>");
out.println("</td></tr>");
out.println("<tr><td><input type=checkbox name=sampling_unit checked></td><td>Sampling unit</td>");
out.println("<td><input type=checkbox name=identity checked></td><td>Identity</td>");
out.println("<td><input type=checkbox name=alias checked></td><td>Alias</td></tr>");
out.println("<tr><td><input type=checkbox name=sex checked></td><td>Sex</td>");
out.println("<td><input type=checkbox name=father checked></td><td>Father</td>");
out.println("<td><input type=checkbox name=mother checked></td><td>Mother</td></tr>");
out.println("<tr><td><input type=checkbox name=birth_date checked></td><td>Birth date</td>");
//out.println("<td colspan=2> </td></tr>");
out.println("<td><input type=checkbox name=raw checked></td><td>Raw data</td></tr>");
out.println("</table>");
*/
out.println("<tr><td> </td><td>");
// out.println("<hr>");
// 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"))
{
// System.err.println("paramName:"+tmpName);
// is this the one corresponding with current suid?
if(tmpName.substring("fid".length()).equals(curr_suid))
{
curr_fid=req.getParameter(tmpName);
// System.err.println("FID:"+curr_fid);
}
}
}
//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("<table border=0 cellpading=0 cellspacing=0>");
out.println("<tr>");
out.println("<br>");
out.println("<td><input type=checkbox name=fileChoice ></td><td>All data in one file</td>");
out.println("</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=uvsid value=\"" + uvsid + "\">");
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;
String suid=null,fid=null,gsid=null, old_suid=null;
boolean filtersFound=false;
// String suid = "";
// String new_suid;
// Vector suids = null; // Sampling units
// Vector gsids = null; // Groupings
try {
conn = (Connection) session.getValue("conn");
pid = (String) session.getValue("PID");
oper = req.getParameter("oper");
// if ("START".equals(oper)) {
// // Start the generation
// return;
// }
if (oper == null || oper.trim().equals("")) oper = "";
type = req.getParameter("t");
name = req.getParameter("n");
comm = req.getParameter("c");
sid = req.getParameter("s");
suid = req.getParameter("suid");
old_suid =req.getParameter("old_suid");
fid=req.getParameter("fid");
gsid=req.getParameter("gsid");
// System.err.println("GSID="+gsid);
// System.err.println(req.getQueryString());
// new_suid = req.getParameter("new_suid");
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 Crimap 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 - Crimap 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=get action=\"" +
// getServletPath("startCrimap/step2Single") + "\">");
getServletPath("startCrimap/step1") + "\">");
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>Crimap</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 onChange='document.forms[0].submit()' width=200 style=\"WIDTH: 200px\">");
out.println("<select name=fid onChange='document.forms[0].submit()' width=200 style=\"WIDTH: 200px\">");
while (rset.next()) {
filtersFound=true;
if( fid==null || fid.equalsIgnoreCase("") || fid.equalsIgnoreCase("null"))
{
out.println("<OPTION selected value=\"" + rset.getString("FID") + "\">" +
rset.getString("NAME")+ "</option>\n");
fid=rset.getString("FID");
}
else
{
if (fid != null && fid.equalsIgnoreCase(rset.getString("FID")))
{
out.println("<OPTION selected value=\"" + rset.getString("FID") + "\">" +
rset.getString("NAME")+ "</option>\n");
}
else
{
out.println("<OPTION value=\"" + rset.getString("FID") + "\">" + rset.getString("NAME")+"</option>\n");
}
}
}
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 onChange='document.forms[0].submit()'width=200 style=\"WIDTH: 200px\">");
//name=\"suid\"onChange='document.forms[0].submit()'>");
// SUID has changed, reset..
if(suid != null && !suid.equals(old_suid))
{
gsid=null;
}
while (rset.next())
{
// NO SU COOSEN YET
if( suid==null || suid.equalsIgnoreCase("") || suid.equalsIgnoreCase("null"))
{
out.println("<OPTION selected value=\"" + rset.getString("SUID") + "\">" +
rset.getString("NAME")+ "</option>\n");
suid=rset.getString("SUID");
old_suid=suid;
gsid=null;
}
else
{
if (suid != null && suid.equalsIgnoreCase(rset.getString("SUID")))
{
out.println("<OPTION selected value=\"" + rset.getString("SUID") + "\">" +
rset.getString("NAME")+ "</option>\n");
old_suid=rset.getString("SUID");
// gsid=null;
}
else
{
out.println("<OPTION value=\"" + rset.getString("SUID") + "\">" + rset.getString("NAME")+"</option>\n");
}
}
}
out.println("</select></td></tr>");
// Groupings
out.println("<tr><td>Grouping<br>");
stmt = conn.createStatement();
rset = stmt.executeQuery("SELECT GSID, NAME FROM V_GROUPINGS_2 WHERE PID=" +
pid + " AND SUID=" + suid + " ORDER BY NAME");
// out.println("<select name=gsid onChange='document.forms[0].submit()' width=200 style=\"WIDTH: 200px\">");
out.println("<select name=gsid onChange='document.forms[0].submit()' width=200 style=\"WIDTH: 200px\">");
while (rset.next()) {
// NO GSID COOSEN YET
if( gsid==null || gsid.equalsIgnoreCase("") || gsid.equalsIgnoreCase("null"))
{
out.println("<OPTION selected value=\"" + rset.getString("GSID") + "\">" +
rset.getString("NAME")+ "</option>\n");
gsid=rset.getString("GSID");
}
else // we have gsid choosen
{
// find the already choosen option
if (gsid != null && gsid.equalsIgnoreCase(rset.getString("GSID")))
{
out.println("<OPTION selected value=\"" + rset.getString("GSID") + "\">" +
rset.getString("NAME")+ "</option>\n");
}
else // write the rest (the non choosen options)
{
out.println("<OPTION value=\"" + rset.getString("GSID") + "\">" + rset.getString("NAME")+"</option>\n");
}
}
}
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();'>");
"onClick='JavaScript:location.href=\"" + getServletPath("startCrimap/step2Single?")
+"&suid="+suid +"&fid="+fid +"&gsid="+gsid+"&n="+name+"&c="+comm+ "\"';>");
}
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=old_suid value=\"" + old_suid + "\">");
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;
String gsid;
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");
gsid = req.getParameter("gsid");
// System.err.println("step1:gsid="+gsid);
if (sid == null) sid = "-1";
if (fid == null) fid = "-1";
if (suid == null) suid = "-1";
if (gsid == null) gsid = "-1";
out.println("<html>");
out.println("<head>");
HTMLWriter.css(out,getURL("style/axDefault.css"));
writeStartTabDelScript(out);
out.println("<title>Start Crimap 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 - Crimap 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("startCrimap/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>Crimap</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>");
out.println("<td width=200>Grouping</td>");
stmt = conn.createStatement();
rset = stmt.executeQuery("SELECT NAME FROM V_GROUPINGS_1 WHERE GSID=" + gsid);
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>");
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>");
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=gsid value=\"" + gsid + "\">");
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, gsid;
String suid;
String fid;
String msid, vsid;
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");
vsid = req.getParameter("vsid");
gsid = req.getParameter("gsid");
if (sid == null) sid = "-1";
if (fid == null) fid = "-1";
if (suid == null) suid = "-1";
if (msid == null) msid = "-1";
if (vsid == null) vsid = "-1";
if (gsid == null) gsid = "-1";
out.println("<html>");
out.println("<head>");
HTMLWriter.css(out,getURL("style/axDefault.css"));
writeStartTabDelScript(out);
out.println("<title>Start Crimap 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 - Crimap 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("startCrimap/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>Crimap</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>");
out.println("<td width=200>Grouping</td>");
stmt = conn.createStatement();
rset = stmt.executeQuery("SELECT NAME FROM V_GROUPINGS_1 WHERE GSID=" + gsid);
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("<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>");
out.println("<tr>");
out.println("<td width=200>Variable set</td>");
if (vsid.equals("-1")) {
out.println("<td>None</td>");
} else {
stmt = conn.createStatement();
rset = stmt.executeQuery("SELECT NAME FROM V_VARIABLE_SETS_1 WHERE VSID=" + vsid);
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("<table border=0 cellpading=0 cellspacing=0>");
out.println("<tr>");
out.println("<br>");
out.println("<td><input type=checkbox name=fileChoice ></td><td>All data in one file</td>");
out.println("</tr>");
out.println("</table>");
out.println("</td></tr>");
out.println("<tr><td> </td><td>");
// out.println("<table border=0 cellpading=0 cellspaing=0>");
// out.println("<tr>");
// out.println("<td colspan=2>");
// out.println("<U>Included fields</U>");
// out.println("</td></tr>");
/* out.println("<tr><td><input type=checkbox name=sampling_unit checked></td><td>Sampling unit</td></tr>");
out.println("<tr><td><input type=checkbox name=identity checked></td><td>Identity</td></tr>");
out.println("<tr><td><input type=checkbox name=alias checked></td><td>Alias</td></tr>");
out.println("<tr><td><input type=checkbox name=sex checked></td><td>Sex</td></tr>");
out.println("<tr><td><input type=checkbox name=father checked></td><td>Father</td></tr>");
out.println("<tr><td><input type=checkbox name=mother checked></td><td>Mother</td></tr>");
out.println("<tr><td><input type=checkbox name=birth_date checked></td><td>Birth date</td></tr>");
out.println("<tr><td colspan=2> </td></tr>");
out.println("<tr><td><input type=checkbox name=raw checked></td><td>Raw data</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>");
// 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=msid value=\"" + msid + "\">");
out.println("<input type=hidden name=vsid value=\"" + vsid + "\">");
out.println("<input type=hidden name=gsid value=\"" + gsid + "\">");
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 vsid;
String fid;
String expression;
String pid;
String suid;
String gsid;
String sid;
String UserID;
boolean multiFiles;
int field_mask = 0;
int fgid=0;
boolean includeRaw ;
boolean ok = true;
GqlTranslator gqltr = null;
GenCRIMAP gCri = null;
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
msid = req.getParameter("msid");
if (msid != null && Integer.parseInt(msid) < 0) msid = null;
vsid = req.getParameter("vsid");
if (vsid != null && Integer.parseInt(vsid) < 0) vsid = null;
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");
// if fid, filenname etc...
if (req.getParameter("sampling_unit") != null)
field_mask += 1;
if (req.getParameter("identity") != null)
field_mask += 2;
if (req.getParameter("alias") != null)
field_mask += 4;
if (req.getParameter("sex") != null)
field_mask += 8;
if (req.getParameter("birth_date") != null)
field_mask += 16;
if (req.getParameter("father") != null)
field_mask += 32;
if (req.getParameter("mother") != null)
field_mask += 64;
if (req.getParameter("raw") != null)
includeRaw = true;
else
includeRaw = false;
if (req.getParameter("fileChoice") != null)
multiFiles = false;
else
multiFiles = true;
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();
//ServletConfig conf = super.getServletConfig();
ServletContext conf = super.getServletContext();
String nullRepl = getFileNullReplacement(session);
String absPath = conf.getInitParameter("fileGeneratePath");
String dbdriver = conf.getInitParameter("driver");
String dburl = conf.getInitParameter("dburl");
String uid = conf.getInitParameter("uid");
String pwd = conf.getInitParameter("pwd");
if (dburl == null || uid == null || pwd == null || absPath == null)
{
System.err.println("Unable to read initialization parameters needed by startCrimap");
ok = false;
writeErrorPage(req, res, "Generations.Start.Crimap",
Errors.keyValue("Generations.Start.Crimap." +
"ReadInitParams.Error.Msg"),
"viewFile/start");
}
else
{
// Create the neccesary databas objects!
DbFileGeneration dbFG = new DbFileGeneration();
//CreateSingleFileGeneration(conn, msid, vsid, String s_gsid, String type, String name, String comm, int pid, int suid, int fid, int id)
fgid = dbFG.CreateSingleFileGeneration(conn, msid, vsid, gsid, "CRIMAP", name, comm, Integer.valueOf(pid), Integer.valueOf(suid), Integer.valueOf(fid), Integer.valueOf(UserID));
//Insert values in the r_fgid_ind table
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.Crimap",
Errors.keyValue("Generations.Start.Crimap.CreateDir.Error.Msg"),
"viewFile/start");
ok = false;
throw new Exception();
}
// public GenCRIMAP(int fgid, String directory,
// String dburl, String uid, String pwd)
System.err.println(req.getQueryString());
gCri = new GenCRIMAP(fgid, absPath, dbdriver, dburl, uid, pwd, multiFiles);// nullRepl, field_mask, includeRaw);
// No rush. We don't want to overload the server with time consuming tasks
gCri.setPriority(Thread.NORM_PRIORITY - 2);
gCri.start();
}
} catch (SQLException sqle) {
sqle.printStackTrace(System.err);
} catch (Exception e) {
ok=false;
e.printStackTrace(System.err);
}
// Commit or rollback the changes
try {
if (ok) {
conn.commit();
} else {
conn.rollback();
}
} catch (SQLException ignored) {
} 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) );
}
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 fid;
String expression;
String pid;
// String suid;
// String gsid;
Vector suids = null; // Sampling units
String sid;
String UserID;
boolean multiFiles=false;
int field_mask = 0;
int fgid=0;
boolean includeRaw ;
boolean ok = true;
GqlTranslator gqltr = null;
GenCRIMAP gCri = null;
Connection conn = null;
CallableStatement cstmt = null;
Statement stmt = null;
ResultSet rset = null;
// System.err.println("QS="+req.getQueryString());
umsid = req.getParameter("umsid");
// System.err.println("UMSID="+umsid);
if (umsid != null && Integer.parseInt(umsid) < 0) umsid = null;
uvsid = req.getParameter("uvsid");
// System.err.println("UVSID="+uvsid);
if (uvsid != null && Integer.parseInt(uvsid) < 0) uvsid = null;
name = req.getParameter("n");
comm = req.getParameter("c");
mode = req.getParameter("m");
//suid = req.getParameter("suid");
//gsid = req.getParameter("gsid");
//fid = req.getParameter("fid");
// System.err.println("Got:"+name+comm+mode);
pid = (String) session.getValue("PID");
// if fid, filenname etc...
/*
if (req.getParameter("sampling_unit") != null)
field_mask += 1;
if (req.getParameter("identity") != null)
field_mask += 2;
if (req.getParameter("alias") != null)
field_mask += 4;
if (req.getParameter("sex") != null)
field_mask += 8;
if (req.getParameter("birth_date") != null)
field_mask += 16;
if (req.getParameter("father") != null)
field_mask += 32;
if (req.getParameter("mother") != null)
field_mask += 64;
if (req.getParameter("raw") != null)
includeRaw = true;
else
includeRaw = false;
*/
if (req.getParameter("fileChoice") != null)
multiFiles = false;
else
multiFiles = true;
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();
// System.err.println(pn);
if (pn.startsWith("suid")) {
// System.err.println("suid:"+pn.substring("suid".length()));
suids.addElement(pn.substring("suid".length() ) );
}
}
ServletContext conf = super.getServletContext();
String nullRepl = getFileNullReplacement(session);
String absPath = conf.getInitParameter("fileGeneratePath");
String dbdriver = conf.getInitParameter("driver");
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 startCrimap");
ok = false;
writeErrorPage(req, res, "Generations.Start.Crimap",
Errors.keyValue("Generations.Start.Crimap.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, "Crimap");
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.Crimap", message,
"viewFile/start");
throw new Exception();
}
fgid = cstmt.getInt(1);
// System.err.println("fgid="+fgid);
/*
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
*/
// for all sampling_units:
// System.err.println("size="+suids.size());
// Used for insertion into r_fg_ind
DbFileGeneration DbFG = new DbFileGeneration();
for (int i=0; i < suids.size(); i++)
{
String curr_suid=(String) suids.elementAt(i);
String curr_gsid =null;
String curr_fid=null;
// System.err.println("suid="+curr_suid);
// 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("SUD:"+curr_suid+"|"+"GSID:"+curr_gsid);
}//if
}//if
}//while
// find corresponding fid
sent = req.getParameterNames();
tmpName=null;
while (sent.hasMoreElements() )
{
tmpName = (String) sent.nextElement();
if (tmpName.startsWith("fid"))
{
// System.err.println("paramName:"+tmpName);
// is this the one corresponding with current suid?
if(tmpName.substring("fid".length()).equals(curr_suid))
{
curr_fid=req.getParameter(tmpName);
// System.err.println("SUD:"+curr_suid+"|" +"FID:"+curr_fid);
}//if
}//if
}//while
cstmt.close();
// System.err.println("gsid:"+curr_gsid);
// System.err.println("FID:"+curr_fid);
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);
// System.err.println("mess="+message);
if (message != null && !message.trim().equals("")) {
ok = false;
writeErrorPage(req, res, "Generations.Start.Crimap",
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.Crimap",
Errors.keyValue("Generations.Start.Crimap.CreateDir.Error.Msg"),
"viewFile/start" );
ok = false;
throw new Exception();
}
// System.err.println("start generation..");
// System.err.println(req.getQueryString());
gCri = new GenCRIMAP(fgid, absPath, dbdriver, dburl, uid, pwd, multiFiles);
// No rush. We don't want to overload the server with time consuming tasks
gCri.setPriority(Thread.NORM_PRIORITY - 2);
gCri.start();
}
} catch (SQLException sqle) {
sqle.printStackTrace(System.err);
} catch (Exception e) {
ok=false;
e.printStackTrace(System.err);
}
// Commit or rollback the changes
try {
if (ok) {
conn.commit();
} else {
conn.rollback();
}
} catch (SQLException ignored) {
} 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) );
}
/*
} catch (SQLException sqle) {
sqle.printStackTrace(System.err);
} catch (Exception e) {
;
} 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") );
}
*/
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("//-->");
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 {
;
}
}
}