/* * Created on 21.5.2003 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package se.idega.idegaweb.commune.childcare.presentation; import java.io.StringReader; import java.util.Collection; import java.util.Iterator; import java.util.List; import com.idega.block.contract.business.ContractService; import com.idega.block.contract.data.Contract; import com.idega.block.contract.data.ContractCategory; import com.idega.block.contract.data.ContractCategoryHome; import com.idega.block.contract.data.ContractHome; import com.idega.business.IBOLookup; import com.idega.core.builder.data.ICPage; import com.idega.idegaweb.IWResourceBundle; import com.idega.idegaweb.block.presentation.Builderaware; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.Form; import com.idega.xml.XMLDocument; import com.idega.xml.XMLElement; import com.idega.xml.XMLException; import com.idega.xml.XMLParser; /** * @author Roar * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class ChildCareContractSigner extends Block implements Builderaware{ public final static String PAR_CONTRACT_ID = "ChildCareContractSigner_CONTRACT_ID"; private final static String IW_BUNDLE_IDENTIFIER = "se.idega.idegaweb.commune"; public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } public ChildCareContractSigner() { super(); } public void main(IWContext iwc) { try{ add(makeTableOfContracts(iwc)); // control(iwc); }catch(Exception ex){ ex.printStackTrace(); } } private Form makeTableOfContracts(IWContext iwc) throws Exception{ ContractService service = (ContractService) IBOLookup.getServiceInstance(iwc,ContractService.class); ContractHome home = service.getContractHome(); ContractCategoryHome catHome = service.getContractCategoryHome(); Collection contracts = home.findAllByUser(((Integer)iwc.getCurrentUser().getPrimaryKey()).intValue()); if (contracts == null){ return new Form(); } Iterator i = contracts.iterator(); Table t = new Table(4, contracts.size()); t.setCellpadding(2); t.setCellspacing(2); t.setBorder(0); int row = 1; IWResourceBundle iwrb = getResourceBundle(iwc); while (i.hasNext()){ Contract contract = (Contract) i.next(); System.out.println("Contract.id: " +contract.getPrimaryKey().toString()); String text = contract.getText(); if (text == null){ text = " "; } ContractCategory cat = catHome.findByPrimaryKey(contract.getCategoryId()); t.add(getContractIcon(iwc/*, contract*/), 1, row); t.add(new Text(cat.getName()), 2, row); if (contract.isSigned()) { t.add(new Text(iwrb.getLocalizedString("ccconsign_signed", "Signed ") + contract.getSignedDate()), 4, row); }else { Link signBtn = new Link(iwrb.getLocalizedString("ccconsign_signcon","Sign Contract")); signBtn.setWindowToOpen(ChildCareWindowBig.class); signBtn.addParameter(ChildCareAdminWindow.PARAMETER_METHOD, ChildCareAdminWindow.METHOD_SIGN_CONTRACT); signBtn.setParameter(ChildCareAdminWindow.PARAMETER_CONTRACT_ID, contract.getPrimaryKey().toString()); signBtn.setAsImageButton(true); t.add(signBtn, 3, row); } // t.add(new Text(""+contract.getID()), 2, row); // t.add(new Text(escapeHTML(contract.getXmlSignedData())), 3, row); row ++; } setStyle(this, "font-size:10px"); setStyle(this, "font-family: sans-serif"); Form f = new Form(); f.add(t); return f; } public static void main(String[] aqrgs){ String text = "Dette er en test <dato /> av <xml/> parser"; try { XMLParser parser = new XMLParser(); XMLDocument document = parser.parse(new StringReader("<dummy>" + text + "</dummy>")); XMLElement root = document.getRootElement(); Iterator it = root.getContent().iterator(); while (it.hasNext()){ Object obj = it.next(); if (obj instanceof XMLElement) { System.out.println(((XMLElement) obj).getName()); } // else if (obj instanceof XMLCDATA) { ignore } else if (obj instanceof String) { System.out.println(((String) obj)); } } List fields = root.getChildren(); Iterator i = fields.iterator(); System.out.println(root.getText()); System.out.println(root.getName()); while (i.hasNext()){ XMLElement f = (XMLElement) i.next(); System.out.println(f.getText()); System.out.println(f.getName()); } }catch (XMLException ex){ ex.printStackTrace(); return; } } /** * @param iwc * @param contract * @return */ private PresentationObject getContractIcon(IWContext iwc/*, Contract contract*/) { //TODO Display a PDF link if possible Image image = getBundle(iwc).getImage("contracticon.gif"); return image; } private static ICPage _page; public void setResponsePage(ICPage page){ _page = page; } public ICPage getResponsePage(){ return _page; } public static final String escapeHTML(String s){ if (s == null){ return ""; } StringBuffer sb = new StringBuffer(); int n = s.length(); for (int i = 0; i < n; i++) { char c = s.charAt(i); switch (c) { case '<': sb.append("<"); break; case '>': sb.append(">"); break; case '&': sb.append("&"); break; case '"': sb.append("""); break; case '�': sb.append("à");break; case '�': sb.append("À");break; case '�': sb.append("â");break; case '�': sb.append("Â");break; case '�': sb.append("ä");break; case '�': sb.append("Ä");break; case '�': sb.append("å");break; case '�': sb.append("Å");break; case '�': sb.append("æ");break; case '�': sb.append("Æ");break; case '�': sb.append("ç");break; case '�': sb.append("Ç");break; case '�': sb.append("é");break; case '�': sb.append("É");break; case '�': sb.append("è");break; case '�': sb.append("È");break; case '�': sb.append("ê");break; case '�': sb.append("Ê");break; case '�': sb.append("ë");break; case '�': sb.append("Ë");break; case '�': sb.append("ï");break; case '�': sb.append("Ï");break; case '�': sb.append("ô");break; case '�': sb.append("Ô");break; case '�': sb.append("ö");break; case '�': sb.append("Ö");break; case '�': sb.append("ø");break; case '�': sb.append("Ø");break; case '�': sb.append("ß");break; case '�': sb.append("ù");break; case '�': sb.append("Ù");break; case '�': sb.append("û");break; case '�': sb.append("Û");break; case '�': sb.append("ü");break; case '�': sb.append("Ü");break; case '�': sb.append("®");break; case '�': sb.append("©");break; case '�': sb.append("€"); break; // be carefull with this one (non-breaking whitee space) case ' ': sb.append(" ");break; default: sb.append(c); break; } } return sb.toString(); } }