package com.idega.block.school.presentation;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.block.school.data.SchoolSubArea;
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.Form;
import com.idega.presentation.ui.GenericButton;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
import com.idega.presentation.ui.DropdownMenu;
/**
* <p>
* Title:
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2002
* </p>
* <p>
* Company:
* </p>
*
* @author <br>
* <a href="mailto:aron@idega.is">Aron Birkir </a> <br>
* @version 1.0
*/
public class SchoolSubAreaEditor extends SchoolBlock {
protected void init(IWContext iwc) throws Exception {
Form F = new Form();
if (iwc.isParameterSet("sch_save_subarea")) {
saveArea(iwc);
F.add(getListTable(iwc, null));
}
else if (iwc.isParameterSet("sch_delete_subarea")) {
int id = Integer.parseInt(iwc.getParameter("sch_delete_subarea"));
getBusiness().removeSchoolSubArea(id);
F.add(getListTable(iwc, null));
}
else if (iwc.isParameterSet("sch_school_subarea_id")) {
int id = Integer.parseInt(iwc.getParameter("sch_school_subarea_id"));
F.add(getInput(iwc, id));
}
else if (iwc.isParameterSet("sch_new_subarea")) {
F.add(getInput(iwc, -1));
}
else {
F.add(getListTable(iwc, null));
}
add(F);
}
private PresentationObject getInput(IWContext iwc, int id) throws java.rmi.RemoteException {
return getInputTable(iwc, getBusiness().getSchoolSubArea(new Integer(id)));
}
private void saveArea(IWContext iwc) throws java.rmi.RemoteException {
if (iwc.isParameterSet("sch_save_subarea")) {
String id = iwc.getParameter("sch_school_subarea_id");
String name = iwc.getParameter("sch_subarea_name");
String area = iwc.getParameter("sch_area");
int aid = -1;
if (id != null) {
aid = Integer.parseInt(id);
}
getBusiness().storeSchoolSubArea(aid, name, Integer.parseInt(area));
}
}
public PresentationObject getListTable(IWContext iwc, SchoolSubArea area) {
Table table = new Table();
table.setCellpadding(0);
table.setCellspacing(0);
table.setWidth(Table.HUNDRED_PERCENT);
table.setColumns(3);
table.setWidth(4, 12);
int row = 1;
Collection schoolSubAreas = null;
try {
schoolSubAreas = getBusiness().findAllSchoolSubAreas();
}
catch (RemoteException rex) {
schoolSubAreas = new ArrayList();
}
table.setCellpaddingLeft(1, row, 12);
table.add(getSmallHeader(localize("name", "Name")), 1, row);
table.add(getSmallHeader(localize("area", "Area")), 2, row);
table.setRowStyleClass(row++, getHeaderRowClass());
java.util.Iterator iter = schoolSubAreas.iterator();
SchoolSubArea sarea;
while (iter.hasNext()) {
sarea = (SchoolSubArea) iter.next();
try {
Link L = new Link(getEditIcon(localize("edit", "Edit")));
L.addParameter("sch_school_subarea_id", ((Integer) sarea.getPrimaryKey()).intValue());
table.setCellpaddingLeft(1, row, 12);
table.setCellpaddingRight(table.getColumns(), row, 12);
table.add(getSmallText(sarea.getSchoolSubAreaName()), 1, row);
table.add(getSmallText(sarea.getSchoolAreaName()), 2, row);
table.add(L, 3, row);
if (row % 2 == 0) {
table.setRowStyleClass(row, getDarkRowClass());
}
else {
table.setRowStyleClass(row, getLightRowClass());
}
}
catch (Exception ex) {
ex.printStackTrace();
}
row++;
}
table.setHeight(row++, 12);
table.setCellpaddingLeft(1, row, 12);
table.mergeCells(1, row, table.getColumns(), row);
GenericButton newLink = getButton(new GenericButton("new", localize("subarea.new", "New sub area")));
newLink.setPageToOpen(iwc.getCurrentIBPageID());
newLink.addParameterToPage("sch_new_subarea", "true");
table.add(newLink, 1, row);
return table;
}
public PresentationObject getInputTable(IWContext iwc, SchoolSubArea subarea) {
Table T = new Table(3, 6);
T.mergeCells(1, 1, 3, 1);
T.add(getHeader(localize("school_subarea", "SchoolSubArea")), 1, 1);
T.add(getHeader(localize("name", "Name")), 1, 2);
T.add(getHeader(localize("area", "Area")), 1, 3);
Collection schoolAreas = null;
TextInput inputName = (TextInput) getStyledInterface(new TextInput("sch_subarea_name"));
try{
schoolAreas = getBusiness().getSchoolAreaHome().findAllSchoolAreas();
}catch(FinderException ex){
ex.printStackTrace();
}catch(RemoteException ex){
ex.printStackTrace();
}
DropdownMenu dropdownAreas = (DropdownMenu) getStyledInterface(new DropdownMenu(schoolAreas, "sch_area"));
int subareaId = -1;
if (subarea != null) {
try {
subareaId = ((Integer) subarea.getPrimaryKey()).intValue();
inputName.setContent(subarea.getSchoolSubAreaName());
dropdownAreas.setSelectedElement(subarea.getSchoolAreaId());
T.add(new HiddenInput("sch_school_subarea_id", String.valueOf(subareaId)));
}
catch (Exception ex) {
}
}
T.add(inputName, 3, 2);
T.add(dropdownAreas, 3, 3);
T.add(getButton(new SubmitButton(localize("save", "Save"), "sch_save_subarea", "true")), 3, 5);
GenericButton cancel = getButton(new GenericButton("cancel", localize("cancel", "Cancel")));
cancel.setPageToOpen(iwc.getCurrentIBPageID());
T.add(cancel, 3, 5);
if (subareaId > 0) {
GenericButton delete = getButton(new GenericButton("delete", localize("delete", "Delete")));
delete.setPageToOpen(iwc.getCurrentIBPageID());
delete.addParameterToPage("sch_delete_subarea", subareaId);
T.add(delete, 3, 5);
}
return T;
}
}