package is.idega.idegaweb.campus.block.application.presentation;
import is.idega.idegaweb.campus.presentation.CampusBlock;
import is.idega.idegaweb.campus.presentation.Edit;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.block.application.data.ApplicationSubject;
import com.idega.presentation.IWContext;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.ui.DateInput;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
import com.idega.util.IWTimestamp;
import com.idega.util.LocaleUtil;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author <a href="mailto:aron@idega.is">aron@idega.is
* @version 1.0
*/
public class SubjectMaker extends CampusBlock{
private final String strAction = "fin_action";
protected boolean isAdmin = false;
public String getLocalizedNameKey(){
return "subjects";
}
public String getLocalizedNameValue(){
return "Subjects";
}
protected void control(IWContext iwc){
if(isAdmin){
if(iwc.getParameter("save") != null){
doUpdate(iwc);
}
else if(iwc.getParameter("delete")!= null){
doDelete(iwc);
}
this.add(makeInputTable(iwc));
}
else
this.add(getNoAccessObject(iwc));
}
public PresentationObject makeLinkTable(int menuNr){
Table LinkTable = new Table(6,1);
return LinkTable;
}
public PresentationObject makeInputTable(IWContext iwc){
Table Frame = new Table(3,2);
Frame.setCellpadding(0);
Frame.setCellspacing(0);
Table Left = new Table();
Left.setCellpadding(0);
Left.setCellspacing(0);
Table Right = new Table();
Right.setCellpadding(0);
Right.setCellspacing(0);
Frame.add(Left,1,1);
Frame.add(Right,3,1);
Collection L = null;
try {
L = getApplicationService(iwc).getSubjectHome().findAll();
}
catch (RemoteException e) {
e.printStackTrace();
}
catch (FinderException e) {
e.printStackTrace();
} //List L = ApplicationFinder.listOfSubject();
Table T = new Table();
TextInput Description = new TextInput("app_subj_desc");
DateInput ExpireDate = new DateInput("app_subj_xdate",true);
ExpireDate.setDate(IWTimestamp.RightNow().getDate());
SubmitButton SaveButton = new SubmitButton("save","Save");
T.add(getHeader(localize("description", "Description")) +" :",1,1);
T.add(getHeader(localize("expiredate", "Expiredate")) +" :",2,1);
T.add(Description,1,2);
T.add(ExpireDate,2,2);
T.add(SaveButton,3,2);
if(L != null){
int a = 3;
for (Iterator iter = L.iterator(); iter.hasNext();) {
ApplicationSubject AS = (ApplicationSubject) iter.next();
T.add(Edit.formatText(AS.getDescription()),1,a);
T.add(Edit.formatText(new IWTimestamp(AS.getExpires()).getLocaleDate(LocaleUtil.getIcelandicLocale())),2,a);
T.add((getDeleteLink(AS)),3,a);
a++;
}
}
Form F = new Form();
F.add(T);
Right.add(F);
return Frame;
}
public Link getDeleteLink(ApplicationSubject AS){
Link L = new Link("X");
L.addParameter("delete",AS.getPrimaryKey().toString());
return L;
}
public void doDelete(IWContext iwc){
try {
int id = Integer.parseInt(iwc.getParameter("delete"));
ApplicationSubject AS = getApplicationService(iwc).getSubjectHome().findByPrimaryKey(new Integer(id));
AS.remove();
}
catch (Exception ex) {
}
}
public void doUpdate(IWContext iwc){
String sDesc= iwc.getParameter("app_subj_desc").trim();
String sDate = iwc.getParameter("app_subj_xdate");
if(sDesc.length() > 0){
try {
getApplicationService(iwc).storeApplicationSubject(sDesc,new IWTimestamp(sDate));
}
catch (RemoteException e) {
e.printStackTrace();
}
catch (CreateException e) {
e.printStackTrace();
}
}
}
public void main(IWContext iwc){
isAdmin = iwc.hasEditPermission(this);
control(iwc);
}
}