/*
* Created on 2004-okt-13
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package se.idega.idegaweb.ehealth.presentation;
import java.util.ArrayList;
import java.util.Iterator;
import javax.faces.component.UIComponent;
import se.idega.util.PIDChecker;
import com.idega.business.IBOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Layer;
import com.idega.presentation.Page;
import com.idega.presentation.Script;
import com.idega.presentation.Table;
import com.idega.presentation.text.Break;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.GenericButton;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.User;
import com.idega.util.Age;
/**
* @author Malin
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class MyInbox extends EHealthBlock {
private String prefix = "patient_";
private String prmForm = "form_inbox";
private String prmCase = prefix + "case";
private String prmDate= prefix + "date";
private String prmReceiver = prefix + "receiver";
private String prmSender = prefix + "sender";
private String prmCareUnit = prefix + "care_unit";
private String prmReply = prefix + "reply";
private String prmClear = prefix + "clear";
private String prmDelete = prefix + "delete";
private String prmSend = prefix + "send";
private String keyReply1U1 = prefix + "repl1U1";
private String keyReply2U1 = prefix + "repl2U1";
private String keyReply3U1 = prefix + "repl3U1";
private String keyReply4U1 = prefix + "repl4U1";
private String keyReply5U1 = prefix + "repl5U1";
private String keyReply1U2 = prefix + "repl1U2";
private String keyReply2U2 = prefix + "repl2U2";
private String keyReply3U2 = prefix + "repl3U2";
private String keyReply4U2 = prefix + "repl4U2";
private String keyReply5U2 = prefix + "repl5U2";
private String keyMessage1U1 = prefix + "mess1U1";
private String keyMessage3U1 = prefix + "mess3U1";
private String keyMessage5U1 = prefix + "mess5U1";
private String keyMessage2U2 = prefix + "mess2U2";
private String keyMessage4U2 = prefix + "mess4U2";
private int userID = -1;
private User user;
IWContext _iwc = null;
Age age = null;
public String name = null;
public void main(IWContext iwc) throws Exception {
_iwc = iwc;
userID = iwc.getUserId();
if (userID > 0) {
user = ((UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class)).getUser(userID);
name = user.getFirstName() + " " + user.getLastName();
}
else
name = "-";
if (user != null && user.getDateOfBirth() != null)
age = new Age(user.getDateOfBirth());
else if (user != null && user.getPersonalID() != null)
age = new Age(PIDChecker.getInstance().getDateFromPersonalID(user.getPersonalID()));
add(getAppointmentHistoryForm());
}
public UIComponent getAppointmentHistoryForm(){
Form myForm = new Form();
myForm.setName(prmForm);
Table T = new Table(1, 4);
T.setCellpadding(0);
T.setCellspacing(0);
T.setBorder(0);
T.setBorderColor("#000000");
T.setVerticalAlignment(1, 3, Table.VERTICAL_ALIGN_TOP);
T.setVerticalAlignment(1, 4, Table.VERTICAL_ALIGN_BOTTOM);
T.add(getHeadingTable(), 1, 1);
T.add(getInfoLayer(), 1, 2);
T.add(getTableButtons(), 1, 4);
T.add(new Break(), 1, 3);
T.setHeight(1, 3, "130");
T.setHeight(1, 4, "90");
myForm.add(T);
Page pVisit = this.getParentPage();
if (pVisit != null) {
Script S = pVisit.getAssociatedScript();
pVisit.setOnLoad("setRowColor(document.getElementById('lay1_1'));");
S.addFunction("setRowColor(obj)", setRowColorScript());
Script timeScript = myForm.getAssociatedFormScript();
if (timeScript == null) {
timeScript = new Script();
myForm.setAssociatedFormScript(timeScript);
}
}
ArrayList info = new ArrayList();
if (user !=null && userID == 45 || userID == 46) {
info.add(localize(keyMessage1U1, "Message"));
info.add(localize(keyMessage2U2, "Message"));
info.add(localize(keyMessage3U1, "Message"));
info.add(localize(keyMessage4U2, "Message"));
info.add(localize(keyMessage5U1, "Message"));
}
else if (age != null && age.getYears() >= 70){
info.add(localize(keyReply1U1, "Reply"));
info.add(localize(keyReply2U1, "Reply"));
info.add(localize(keyReply3U1, "Reply"));
info.add(localize(keyReply4U1, "Reply"));
info.add(localize(keyReply5U1, "Reply"));
}
else {
info.add(localize(keyReply1U2, "Reply"));
info.add(localize(keyReply2U2, "Reply"));
info.add(localize(keyReply3U2, "Reply"));
info.add(localize(keyReply4U2, "Reply"));
info.add(localize(keyReply5U2, "Reply"));
}
Layer layer = new Layer(Layer.DIV);
layer.setVisibility("hidden");
layer.setOverflow("scroll");
layer.setPositionType("absolute");
layer.setWidth("610");
layer.setHeight("150");
layer.setMarkupAttribute("class", "ehealth_div");
int theRow=1;
Iterator iter = info.iterator();
while (iter.hasNext()){
Layer layers = (Layer) layer.clone();
layers.setID("lay" + theRow + "_");
String text = (String) iter.next();
layers.add(text);
T.add(layers, 1, 3);
theRow++;
}
return myForm;
}
private Layer getInfoLayer(){
Layer layerInfo = new Layer(Layer.DIV);
layerInfo.setOverflow("scroll");
layerInfo.setPositionType("relative");
layerInfo.setWidth("610");
layerInfo.setHeight("100");
layerInfo.setMarkupAttribute("class", "ehealth_div");
Table tableInfo = new Table(9, 6);
tableInfo.setNoWrap();
tableInfo.setCellpadding(0);
tableInfo.setCellspacing(0);
tableInfo.setBorder(0);
tableInfo.setWidth(570);
tableInfo.setWidth(1, 1, "100");
tableInfo.setWidth(2, 1, "15");
tableInfo.setWidth(3, 1, "70");
tableInfo.setWidth(4, 1, "15");
tableInfo.setWidth(5, 1, "100");
tableInfo.setWidth(6, 1, "15");
tableInfo.setWidth(7, 1, "120");
tableInfo.setWidth(8, 1, "15");
Image transpImg = Table.getTransparentCell(_iwc);
transpImg.setWidth(15);
transpImg.setHeight(13);
Layer layer = new Layer(Layer.DIV);
layer.setOnMouseOver("setRowColor(this);");
layer.setPositionType("relative");
layer.setHeight(13);
int theRow = 1;
int theColumn = 1;
ArrayList cases = new ArrayList();
ArrayList dates = new ArrayList();
ArrayList receivers = new ArrayList();
ArrayList senders = new ArrayList();
ArrayList careunits = new ArrayList();
if (user !=null && userID == 45 || userID == 46) {
cases.add("Ont i foten");
cases.add("Halsont");
cases.add("B�ld p� smalb..");
cases.add("Feber och huv..");
cases.add("Feber");
dates.add("2004-10-11");
dates.add("2004-10-06");
dates.add("2004-06-15");
dates.add("2004-02-07");
dates.add("2003-12-16");
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
senders.add("Lasse Aronsson");
senders.add("Astrid Axelsson");
senders.add("Lasse Aronsson");
senders.add("Astrid Axelsson");
senders.add("Lasse Aronsson");
careunits.add("Gimo VC");
careunits.add("Gimo VC");
careunits.add("Gimo VC");
careunits.add("Gimo VC");
careunits.add("Gimo VC");
}
else if (age != null && age.getYears() >= 70){
cases.add("Sv:Ont i foten");
cases.add("Sv:Halsont");
cases.add("Sv:B�ld p� sm..");
cases.add("Sv:Feber och..");
cases.add("Sv:Feber");
dates.add("2004-10-12");
dates.add("2004-10-07");
dates.add("2004-06-17");
dates.add("2004-02-08");
dates.add("2003-12-19");
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
senders.add("Dr Magne Syhl");
senders.add("Dr Inga Pren");
senders.add("Dr Alve Don");
senders.add("Dr Inga Pren");
senders.add("Dr Magne Syhl");
careunits.add("Gimo VC");
careunits.add("�stberga VC");
careunits.add("Flogsta VC");
careunits.add("�stberga VC");
careunits.add("Gimo VC");
}
else{
cases.add("Sv:Ont i foten");
cases.add("Sv:Halsont");
cases.add("Sv:B�ld p� sm..");
cases.add("Sv:Feber och..");
cases.add("Sv:Feber");
dates.add("2004-10-12");
dates.add("2004-10-07");
dates.add("2004-06-17");
dates.add("2004-02-08");
dates.add("2003-12-19");
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
receivers.add(name);
senders.add("Dr Magne Syhl");
senders.add("Dr Inga Pren");
senders.add("Dr Alve Don");
senders.add("Dr Inga Pren");
senders.add("Dr Magne Syhl");
careunits.add("Gimo VC");
careunits.add("�stberga VC");
careunits.add("Flogsta VC");
careunits.add("�stberga VC");
careunits.add("Gimo VC");
}
Iterator icases = cases.iterator();
Iterator idates = dates.iterator();
Iterator ireceivers = receivers.iterator();
Iterator isenders = senders.iterator();
Iterator icareunits = careunits.iterator();
while (idates.hasNext()) {
for (theColumn = 1; theColumn <= 9; theColumn++) {
Layer layers = (Layer) layer.clone();
layers.setID("lay" + theRow + "_"+ theColumn);
if (theColumn % 2 == 0){
layers.add(transpImg);
layers.setWidth("15");
}
else if (theColumn == 1){
String theCase = (String) icases.next();
layers.add(theCase);
}
else if (theColumn == 3){
String theDate = (String) idates.next();
layers.add(theDate);
}
else if (theColumn == 5){
String theReceiver = (String) ireceivers.next();
layers.add(theReceiver);
}
else if (theColumn == 7){
String theSender = (String) isenders.next();
layers.add(theSender);
}
else if (theColumn == 9){
String theCU = (String) icareunits.next();
layers.add(theCU);
}
tableInfo.add(layers, theColumn, theRow);
}
theRow++;
}
layerInfo.add(tableInfo);
return layerInfo;
}
private Layer getHeadingTable(){
Layer layerHead = new Layer(Layer.DIV);
layerHead.setMarkupAttribute("class", "ehealth_div_no_border");
Table table = new Table(9, 1);
table.setCellpadding(0);
table.setCellspacing(0);
table.setBorder(0);
table.setWidth(570);
table.setHeight(20);
table.setAlignment(1, 1, Table.HORIZONTAL_ALIGN_LEFT);
table.setWidth(1, 1, "100");
table.setWidth(2, 1, "15");
table.setWidth(3, 1, "70");
table.setWidth(4, 1, "15");
table.setWidth(5, 1, "100");
table.setWidth(6, 1, "15");
table.setWidth(7, 1, "120");
table.setWidth(8, 1, "15");
Text tcase = getLocalizedSmallHeader(prmCase,"Case");
Text date = getLocalizedSmallHeader(prmDate,"Date");
Text receiver = getLocalizedSmallHeader(prmReceiver,"Receiver");
Text sender = getLocalizedSmallHeader(prmSender,"Sender");
Text careunit = getLocalizedSmallHeader(prmCareUnit,"Care unit");
table.add(tcase, 1, 1);
table.add(date, 3, 1);
table.add(receiver, 5, 1);
table.add(sender, 7, 1);
table.add(careunit, 9, 1);
layerHead.add(table);
return layerHead;
}
private String setRowColorScript() {
StringBuffer s = new StringBuffer();
s.append("function setRowColor(obj){").append(" \n\t");
s.append("elementBase = obj.id.substring(0, 5);").append(" \n\t");
s.append("for(i=1;i<document.all.tags('div').length;i++){").append(" \n\t");
s.append("if (document.all.tags('div')[i].id.length == 5){").append(" \n\t");
s.append("document.all.tags('div')[i].style.visibility = 'hidden'");
s.append("}").append("\n\t");
s.append("document.all.tags('div')[i].style.backgroundColor = '#ffffff';");
s.append("}").append("\n\t");
s.append("for (i = 1; i <= 9; i++){").append(" \n\t");
s.append("elementName = eval(elementBase + i);").append(" \n\t");
s.append("document.getElementById(elementName.id).style.backgroundColor = '#CCCCCC';").append(" \n\t");
s.append("}").append("\n\t");
s.append("showlayer = eval(elementBase + '.id');").append(" \n\t");
s.append("document.all(showlayer).style.visibility = 'visible';").append(" \n\t");
s.append("}").append("\n\t\t\t");
return s.toString();
}
private Table getTableButtons() {
Table table = new Table(5, 2);
table.setCellpadding(0);
table.setCellspacing(0);
table.setBorder(0);
table.setHeight(20);
table.setAlignment(1, 1, Table.HORIZONTAL_ALIGN_LEFT);
table.setVerticalAlignment(1, 2, Table.VERTICAL_ALIGN_BOTTOM);
table.setWidth(2, 1, "10");
table.setWidth(4, 1, "10");
table.setHeight(1, 2, "25");
table.mergeCells(1, 2, 2, 2);
GenericButton reply = getButton(new GenericButton("reply", localize(prmReply, "Reply")));
GenericButton clear = getButton(new GenericButton("clear", localize(prmClear, "Clear")));
GenericButton send = getButton(new GenericButton("send", localize(prmSend, "Send")));
GenericButton delete = getButton(new GenericButton("delete", localize(prmDelete, "Delete")));
table.add(reply, 1, 1);
table.add(clear, 3, 1);
table.add(send, 5, 1);
table.add(delete, 1, 2);
return table;
}
}