/*
* HtmlQuestiongroup.java
*
* Created on 3. toukokuuta 2003, 14:15
*/
package kottarainenbeans;
import java.beans.*;
import kotkabeans.*;
import kiurubeans.HtmlBean;
import kottarainenbeans.*;
import java.sql.*;
import java.util.*;
import javax.servlet.http.*;
/**
*
* @author sampsa
*/
public class HtmlQuestiongroup extends Questiongroup
implements java.io.Serializable {
private String htmtTemplatePath;
private TemplateHandler htmlTH;
private String printType;
public HtmlQuestiongroup(String JSPvid, String templatePath) {
super(JSPvid,templatePath);
setLabel("Kysymysryhmä");
}
public String getHtmtTemplatePath() {
return this.htmtTemplatePath;
}
public void setHtmtTemplatePath(String htmtTemplatePath) {
this.htmtTemplatePath = htmtTemplatePath;
}
public void setHtmlTH() {
this.htmlTH =
new TemplateHandler(getHtmtTemplatePath()+"/Questiongroup.htmt");
}
public String getPrintType() {
return this.printType;
}
public void setPrintType(String printType) {
this.printType = printType;
if (printType.equals("for_answering"))
setPrintTypeForSubElements(printType);
if (printType.equals("subelements"))
setPrintTypeForSubElements("edit");
}
//same as in Questionnaire-class
public String getEditMetaHtml(){
Properties varTable=new Properties();
Enumeration en = getMetaElements().elements();
String html="";
while(en.hasMoreElements()) {
Metadata meta=(Metadata)en.nextElement();
varTable.setProperty("parametertypename",meta.getParameterTypeName());
varTable.setProperty("value",meta.getValue());
varTable.setProperty("metaJSPvid",meta.getJSPvid());
html = html + htmlTH.CompleteTemplate("metadata",varTable);
}
return html;
}
/** returns html code that is build. opens also db-connection
*
*/
public String getHtml() {
DB db=new DB("Haetaan gethtml:n kautta");
String get="";
try{
db.connect();
get=getHtml(db);
}finally{
db.disconnect();
return get;
}
}
public String getHtml(DB db) {
Properties variableTable = getHtmlValues(db);
if (getPrintType().equals("edit")) {
variableTable.setProperty("metadatas",getEditMetaHtml());
return htmlTH.CompleteTemplate("edit_questiongroup",variableTable);
}
if (getPrintType().equals("for_answering")) {
variableTable.setProperty("subelements",getSubElementsHtml(db));
return htmlTH.CompleteTemplate(""+
"for_answering_questiongroup", variableTable);
}
if (getPrintType().equals("subelements")) {
variableTable.setProperty("subelements",getSubElementsHtml(db));
return htmlTH.CompleteTemplate("edit_questions",variableTable);
}
else {
return "";
}
}
// This method sets all subElement's printType to prnType
private void setPrintTypeForSubElements(String prnType) {
Enumeration en = subElements.elements();
while(en.hasMoreElements()){
HtmlQuestionasgroup subElement=(HtmlQuestionasgroup)en.nextElement();
if (subElement.isPointerDeleted() == false)
subElement.setPrintType(prnType);
}
}
private String getSubElementsHtml(DB db) {
Enumeration en = subElements.elements();
String print="";
while(en.hasMoreElements()){
HtmlQuestionasgroup subElement=(HtmlQuestionasgroup)en.nextElement();
if (subElement.isDeleted() == false)
print = print + subElement.getHtml(db);
}
return print;
}
public Properties getHtmlValues(DB db) {
Properties variableTable = new Properties();
variableTable.setProperty("label",this.getLabel());
variableTable.setProperty("uri",this.getUri());
variableTable.setProperty("bankgroupid",
Integer.toString(getBankgroupid()));
variableTable.setProperty("bankuserightid",
Integer.toString(getBankuserightid()));
variableTable.setProperty("personid",Integer.toString(getPersonid()));
variableTable.setProperty("deleted", String.valueOf(isDeleted()));
variableTable.setProperty("JSPvid", getJSPvid());
try {
variableTable = makeLists(variableTable, db);
variableTable = makeSubElementLinks(variableTable);
} catch (Exception e) {}
return variableTable;
}
private Properties makeLists(Properties variableTable, DB db)
throws Exception {
RS2 rs;
HtmlBean HB = new HtmlBean();
String SQLsentence =
"SELECT * FROM questionbankgroup WHERE deleted='false'";
rs = DBhandler.bringFromDatabase(db, "QuestionnairesFrDb",
SQLsentence,"HtmlQuestionGroup1");
try {
String list = HB.makeSelectList(getJSPvid()+"_bankgroupid",rs,
"bankgroupid","name",String.valueOf(getBankgroupid()));
variableTable.setProperty("bankgrouplist",list);
} catch (Exception e){}
SQLsentence =
"SELECT * FROM questionbankuseright WHERE deleted='false'";
rs = DBhandler.bringFromDatabase(db, "QuestionnairesFrDb",
SQLsentence,"HtmlQuestionGroup2");
try {
String list = HB.makeSelectList(getJSPvid()+"_bankuserightid",rs,
"bankuserightid","name",String.valueOf(getBankuserightid()));
variableTable.setProperty("bankuserightlist",list);
} catch (Exception e){}
return variableTable;
}
private Properties makeSubElementLinks(Properties variableTable) {
return variableTable;
}
public void update(Properties commonVars){
super.update(commonVars);
setPrintType(commonVars.getProperty(getJSPvid()+"_printtype",""));
}
protected void getSubElementsFromdb(DB db) {
try {
RS2 rs;
Properties macroTable = new Properties();
macroTable.setProperty("questiongroupId",
Integer.toString(getQuestiongroupid()));
String SQLsentence =
TH.CompleteTemplate("get_questiongroup_subitems",macroTable);
rs = DBhandler.bringFromDatabase(db, "QuestiongroupsFrDb",
SQLsentence,"getQuestiongroups");
int i=1;
while(rs.next()) {
subElements.addElement(new HtmlQuestionasgroup(
createSubId("questionasgroup")+i,getTemplatePath()));
HtmlQuestionasgroup qag=
(HtmlQuestionasgroup)subElements.lastElement();
qag.getValuesFromDb(rs.getInt("questiongroupid"), db);
qag.setHtmtTemplatePath(this.getHtmtTemplatePath());
qag.setHtmlTH();
i++;
}
} catch (Exception e){
return;
}
}
public void addSubElements(int howmany) {
int elements;
for (int i=0;i