/* * $Id:$ * * Copyright (C) 2002 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.presentation; import is.idega.idegaweb.campus.block.allocation.data.Contract; import is.idega.idegaweb.campus.block.allocation.presentation.ContractFiler; import java.rmi.RemoteException; import java.text.DateFormat; import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import javax.ejb.FinderException; import com.idega.block.application.data.Applicant; import com.idega.block.application.data.ApplicantHome; import com.idega.block.building.data.Apartment; import com.idega.block.building.data.ApartmentHome; import com.idega.block.building.data.ApartmentView; import com.idega.block.building.data.Building; import com.idega.block.building.data.Complex; import com.idega.block.building.data.Floor; import com.idega.data.EntityFinder; import com.idega.data.IDOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.ui.DataTable; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; import com.idega.user.data.User; import com.idega.user.data.UserHome; /** * @author <a href="mailto:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class ContractsPerApartment extends CampusBlock { private int iSubjectId = -1; private String sGlobalStatus = "C"; private String sCLBU = "-1"; private String sCLFL = "-1"; private String sCLCX = "-1"; private String sCLTP = "-1"; private String sCLCT = "-1"; private String sORDER = "-1"; private ListIterator iterator = null; private LinkedList linkedlist = null; private final String prmCx = "cl_clx"; private final String prmBu = "cl_bu"; private final String prmFl = "cl_fl"; private final String prmCt = "cl_ct"; private final String prmTp = "cl_tp"; private final String prmOrder = "ct_or"; private final String sessCx = "s_clx"; private final String sessBu = "s_bu"; private final String sessFl = "s_fl"; private final String sessCt = "s_ct"; private final String sessTp = "s_tp"; private final String sessOrder = "s_or"; private String[] prmArray = { prmCx, prmBu, prmFl, prmCt, prmTp, prmOrder }; private String[] sessArray = { sessCx, sessBu, sessFl, sessCt, sessTp, sessOrder }; private String[] sValues = { sCLBU, sCLFL, sCLCX, sCLCT, sCLTP, sORDER }; protected boolean isAdmin = false; private String conPrm = "contract_status"; private String sessConPrm = "sess_con_status"; private String aprtName = null; public String getLocalizedNameKey() { return "contracts"; } public String getLocalizedNameValue() { return "Contracts"; } protected void control(IWContext iwc) { for (int i = 0; i < prmArray.length; i++) { if (iwc.getParameter(prmArray[i]) != null) { sValues[i] = (iwc.getParameter(prmArray[i])); iwc.setSessionAttribute(sessArray[i], sValues[i]); } else if (iwc.getSessionAttribute(sessArray[i]) != null) { sValues[i] = ((String) iwc.getSessionAttribute(sessArray[i])); } } if (iwc.getParameter(conPrm) != null) { this.sGlobalStatus = (iwc.getParameter(conPrm)); iwc.setSessionAttribute(sessConPrm, sGlobalStatus); } else if (iwc.getSessionAttribute(sessConPrm) != null) { this.sGlobalStatus = ((String) iwc.getSessionAttribute(sessConPrm)); } if (iwc.isParameterSet("apartment")) { aprtName = iwc.getParameter("apartment"); } else { aprtName = null; } if (isAdmin) { try { add(statusForm()); add(getContractTable(iwc)); } catch (RemoteException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } else { add(getNoAccessObject(iwc)); } } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } private Form statusForm() throws RemoteException, FinderException { Form myForm = new Form(); DropdownMenu complex = drpLodgings(Complex.class, prmArray[0], "--", sValues[0]); DropdownMenu building = drpLodgings(Building.class, prmArray[1], "--", sValues[1]); TextInput apartment = getTextInput("apartment"); if (aprtName != null) { apartment.setValue(aprtName); } Edit.setStyle(complex); Edit.setStyle(building); Edit.setStyle(apartment); DataTable T = getDataTable(); T.addTitle(localize("filter", "Filter")); T.setTitlesHorizontal(true); T.setBottomHeight(3); T.add(getHeader(localize("complex", "Complex")), 1, 1); T.add(getHeader(localize("building", "Building")), 2, 1); T.add(getHeader(localize("apartment", "Apartment")), 3, 1); T.add(complex, 1, 2); T.add(building, 2, 2); T.add(apartment, 3, 2); SubmitButton get = (SubmitButton) getSubmitButton("conget", "true", "Get", "get"); T.add(get, 4, 2); myForm.add(T); return myForm; } private DropdownMenu drpLodgings(Class lodgings, String name, String display, String selected) { Collection lods = null; try { lods = EntityFinder.getInstance().findAll(lodgings); } catch (Exception e) { } DropdownMenu drp = new DropdownMenu(lods, name); if (!"".equals(display)) { drp.addMenuElement("-1", display); } /*for (Iterator iter = lods.iterator(); iter.hasNext();) { BuildingEntity entity = (BuildingEntity) iter.next(); drp.addMenuElement(entity.getPrimaryKey().toString(), entity .getName()); }*/ if (!"".equalsIgnoreCase(selected)) { drp.setSelectedElement(selected); } return drp; } private PresentationObject getContractTable(IWContext iwc) throws Exception { Integer complex = Integer.valueOf(sValues[0]); Integer building = Integer.valueOf(sValues[1]); if (aprtName == null) { DataTable err1 = new DataTable(); err1.add(iwrb.getLocalizedString("cpa_error_select_apartment", "You have to select an apartment")); return err1; } Collection L = null; if (complex != null && complex.intValue() != -1) { if (building != null && building.intValue() != -1) { L = getContractService(iwc).getContractHome() .findByComplexAndBuildingAndApartmentName(complex, building, aprtName); } else { DataTable err1 = new DataTable(); err1.add(iwrb.getLocalizedString("cpa_error_select_building", "You have to select a building")); return err1; } } else { if (building != null && building.intValue() != -1) { L = getContractService(iwc).getContractHome() .findByBuildingAndApartmentName(building, aprtName); } else { L = getContractService(iwc).getContractHome() .findByApartmentName(aprtName); } } DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, iwc .getCurrentLocale()); Contract C = null; User U = null; Applicant Ap = null; ApartmentView A = null; Building B = null; Floor F = null; Complex CX = null; Image keyImage = getBundle().getImage("/key.gif"); Image nokeyImage = getBundle().getImage("/nokey.gif"); boolean garbage = false; int row = 1; int col = 1; DataTable T = new DataTable(); T.addTitle(localize("contracts", "Contracts")); T.setTitlesHorizontal(true); T.setWidth("100%"); T.add(getHeader(localize("name", "Name")), col++, 1); T.add(getHeader(localize("ssn", "Socialnumber")), col++, 1); T.add(getHeader(localize("apartment", "Apartment")), col++, 1); T.add(getHeader(localize("validfrom", "Valid from")), col++, 1); T.add(getHeader(localize("validto", "Valid To")), col++, 1); T.add(getHeader(localize("rented", "Rented")), col++, 1); T.add(keyImage, col++, 1); row++; if (L != null) { int len = L.size(); StringBuffer sbIDs = new StringBuffer(); for (Iterator iter = L.iterator(); iter.hasNext();) { col = 1; try { C = (Contract) iter.next(); String status = C.getStatus(); sbIDs.append(C.getPrimaryKey().toString()); sbIDs.append(ContractFiler.prmSeperator); U = ((UserHome) IDOLookup.getHome(User.class)) .findByPrimaryKey(C.getUserId()); Ap = ((ApplicantHome) IDOLookup.getHome(Applicant.class)) .findByPrimaryKey(C.getApplicantId()); Apartment Aprt = ((ApartmentHome) IDOLookup .getHome(Apartment.class)).findByPrimaryKey(C .getApartmentId()); T.add(getText(Ap.getFullName()), col++, row); T.add(getText(Ap.getSSN()), col++, row); T.add((getApartmentTable(Aprt)), col++, row); T.add(getText(df.format(C.getValidFrom())), col++, row); T.add(getText(df.format(C.getValidTo())), col++, row); if (C.getIsRented()) { T.add(keyImage, col++, row); } else { T.add(nokeyImage, col++, row); } row++; col = 1; } catch (Exception ex) { ex.printStackTrace(); } } } return T; } private PresentationObject getApartmentTable(Apartment A) { Table T = new Table(); Floor F = A.getFloor(); Building B = F.getBuilding(); Complex C = B.getComplex(); T.add(getText(A.getName()), 1, 1); T.add(getText(F.getName()), 2, 1); T.add(getText(B.getName()), 3, 1); T.add(getText(C.getName()), 4, 1); return T; } public void main(IWContext iwc) { isAdmin = iwc.hasEditPermission(this); control(iwc); } }