/*
* Created on 12.7.2004
*
* Copyright (C) 2004 Idega hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package is.idega.idegaweb.campus.block.application.presentation;
import is.idega.idegaweb.campus.block.application.data.Priority;
import is.idega.idegaweb.campus.presentation.CampusBlock;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.FinderException;
import com.idega.builder.handler.ColorHandler;
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.DataTable;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
/**
* @author aron
*
* PriorityManager TODO Describe this type
*/
public class PriorityManager extends CampusBlock {
private static final String PRIORITY_COLOR = "prior_subj_extra";
private static final String PRIORITY_DESC = "prior_subj_desc";
private Priority priority = null;
private static final String PRIORITY_ID = "prior_priority_id";
public void main(IWContext iwc){
if(iwc.hasEditPermission(this)){
if(iwc.isParameterSet(PRIORITY_ID)){
try {
String id = iwc.getParameter(PRIORITY_ID);
priority = getApplicationService(iwc).getPriorityHome().findByPrimaryKey(id);
}
catch (Exception ex) {
}
}
if(iwc.isParameterSet("save")||iwc.isParameterSet("save.x")){
doUpdate(iwc);
}
else if(iwc.isParameterSet("delete")){
doDelete(iwc);
}
Table T = new Table();
T.setVerticalAlignment(1,1,"top");
T.setVerticalAlignment(2,1,"top");
T.add(getFormTable(iwc),1,1);
T.add(getTable(iwc),2,1);
add(T);
}
else
this.add(getNoAccessObject(iwc));
}
private PresentationObject getTable(IWContext iwc){
Collection L = null;
try {
L = getApplicationService(iwc).getPriorityHome().findAll();
}
catch (RemoteException e) {
e.printStackTrace();
}
catch (FinderException e) {
e.printStackTrace();
}
DataTable dTable = new DataTable();
dTable.setTitlesHorizontal(true);
dTable.addTitle(localize("priorities","Priorities"));
dTable.add(getHeader(localize("priority_code","Priority Code")),1,1);
dTable.add(getHeader(localize("description", "Description")),2,1);
dTable.add(getHeader(localize("hex_color", "Hex color")),3,1);
if(L != null){
int a = 2;
for (Iterator iter = L.iterator(); iter.hasNext();) {
Priority AS = (Priority) iter.next();
dTable.add(getSubjectLink(AS),1,a);
dTable.add(getText(AS.getDescription()),2,a);
if(AS.getHexColor()!=null)
dTable.add(getText(AS.getHexColor()),3,a);
dTable.add((getDeleteLink(AS)),4,a);
a++;
}
}
return dTable;
}
private PresentationObject getFormTable(IWContext iwc){
DataTable dTable = new DataTable();
dTable.setTitlesHorizontal(true);
dTable.addTitle(localize("new_priority","New priority"));
TextInput code = getTextInput(PRIORITY_ID);
TextInput Description = getTextInput(PRIORITY_DESC);
code.setLength(4);
code.setMaxlength(4);
String color = "";
if(priority !=null){
code.setContent(priority.getPrimaryKey().toString());
Description.setContent(priority.getDescription());
if(priority.getHexColor()!=null)
color = (priority.getHexColor());
if(color==null)
color = "";
dTable.add(new HiddenInput(PRIORITY_ID,priority.getPrimaryKey().toString()));
}
dTable.add(getHeader(localize("priority_code","Priority Code")),1,1);
dTable.add(getHeader(localize("description", "Description")),2,1);
dTable.add(getHeader(localize("hex_color", "Hex color")),3,1);
dTable.add(code,1,2);
dTable.add(Description,2,2);
ColorHandler colorHandler = new ColorHandler();
PresentationObject handlerObject = colorHandler.getHandlerObject(PRIORITY_COLOR,color,iwc);
dTable.add(handlerObject,3,2);
dTable.addButton((SubmitButton)getSaveButton("save"));
Form F = new Form();
F.add(dTable);
return F;
}
public Link getDeleteLink(Priority AS){
Link L = new Link("X");
L.addParameter("delete",AS.getPrimaryKey().toString());
return L;
}
public Link getSubjectLink(Priority AS){
Link L = new Link(AS.getPriority());
L.addParameter(PRIORITY_ID,AS.getPrimaryKey().toString());
return L;
}
public void doDelete(IWContext iwc){
String id = (iwc.getParameter("delete"));
try {
getApplicationService(iwc).removePriority(id);
}
catch (RemoteException e) {
e.printStackTrace();
}
}
public void doUpdate(IWContext iwc){
String desc= iwc.getParameter(PRIORITY_DESC).trim();
String extra = iwc.getParameter(PRIORITY_COLOR);
String id = iwc.getParameter(PRIORITY_ID);
try {
getApplicationService(iwc).storePriority(id,desc,extra);
}
catch (RemoteException e) {
e.printStackTrace();
}
}
}