/* * 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