/*
* 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();
}
}