package com.idega.block.finance.presentation; import java.rmi.RemoteException; import java.sql.SQLException; import java.util.Collection; import java.util.Iterator; import javax.ejb.CreateException; import javax.ejb.FinderException; import javax.ejb.RemoveException; import com.idega.block.finance.data.TariffKey; 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.text.Text; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DataTable; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; /** * Title: idegaclasses Description: Copyright: Copyright (c) 2001 Company: * * @author <a href="mailto:aron@idega.is">aron@idega.is * @version 1.0 */ public class TariffKeyEditor extends Finance { public String strAction = "tke_action"; protected final int ACT1 = 1, ACT2 = 2, ACT3 = 3, ACT4 = 4, ACT5 = 5; public String getLocalizedNameKey() { return "tariffkey"; } public String getLocalizedNameValue() { return "Tariffkey"; } protected void control(IWContext iwc) { if (this.isAdmin) { try { PresentationObject MO = new Text(); if (iwc.getParameter(this.strAction) == null) { MO = getMain(iwc); } if (iwc.getParameter(this.strAction) != null) { String sAct = iwc.getParameter(this.strAction); int iAct = Integer.parseInt(sAct); switch (iAct) { case ACT1 : MO = getMain(iwc); break; case ACT2 : MO = getChange(iwc); break; case ACT3 : MO = doUpdate(iwc); break; default : MO = getMain(iwc); break; } } setLocalizedTitle("tariff_key_editor", "Tariff key editor"); setSearchPanel(makeLinkTable(1)); setMainPanel(MO); } catch (Exception S) { S.printStackTrace(); } } else { add(getErrorText(localize("access_denied", "Access denies"))); } } protected PresentationObject makeTabTable(int iCategoryId, int iTariffGroupId) { Table T = new Table(); return T; } protected PresentationObject makeLinkTable(int menuNr) { Table LinkTable = new Table(3, 1); int last = 3; LinkTable.setWidth("100%"); LinkTable.setCellpadding(2); LinkTable.setCellspacing(1); LinkTable.setWidth(last, "100%"); Link Link1 = new Link(getHeader(localize("view", "View"))); Link1.addParameter(this.strAction, String.valueOf(this.ACT1)); //Link1.addParameter(Finance.getCategoryParameter(getFinanceCategoryId())); Link Link2 = new Link(getHeader(localize("change", "Change"))); Link2.addParameter(this.strAction, String.valueOf(this.ACT2)); //Link2.addParameter(Finance.getCategoryParameter(getFinanceCategoryId())); if (this.isAdmin) { LinkTable.add(Link1, 1, 1); LinkTable.add(Link2, 2, 1); } return LinkTable; } protected PresentationObject getMain(IWContext iwc) { Table keyTable = new Table(); //List keys = // FinanceFinder.getInstance().listOfTariffKeys(iCategoryId); Collection keys = null; try { keys = getFinanceService().getTariffKeyHome().findByCategory(getFinanceCategoryId()); } catch (RemoteException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } int count = 0; if (keys != null) { count = keys.size(); } keyTable = new Table(3, count + 1); keyTable.setWidth("100%"); keyTable.setHorizontalZebraColored(getZebraColor1(), getZebraColor2()); keyTable.setRowColor(1, getHeaderColor()); keyTable.setCellpadding(2); keyTable.setCellspacing(1); //keyTable.setColumnAlignment(3, "right"); keyTable.add(getHeader("Nr"), 1, 1); keyTable.add(getHeader(localize("name", "Name")), 2, 1); keyTable.add(getHeader(localize("info", "Info")), 3, 1); if (this.isAdmin) { if (count > 0) { TariffKey key; int row = 2; int rowcount = 1; for (Iterator iter = keys.iterator(); iter.hasNext();) { key = (TariffKey) iter.next(); keyTable.add(getText(String.valueOf(rowcount++)), 1, row); keyTable.add(getText(key.getName()), 2, row); keyTable.add(getText(key.getInfo()), 3, row); row++; } } } return (keyTable); } protected PresentationObject getChange(IWContext iwc) throws SQLException { //myForm.maintainAllParameters(); Collection keys = null; try { keys = getFinanceService().getTariffKeyHome().findByCategory(getFinanceCategoryId()); } catch (RemoteException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } //FinanceFinder.getInstance().listOfTariffKeys(iCategoryId); int count = 0; if (keys != null) { count = keys.size(); } int inputcount = count + 5; DataTable inputTable = getDataTable(); inputTable.setWidth("100%"); inputTable.setUseBottom(false); inputTable.setUseTop(false); inputTable.setTitlesHorizontal(true); inputTable.add(getHeader("Nr"), 1, 1); inputTable.add(getHeader(localize("name", "Name")), 2, 1); inputTable.add(getHeader(localize("info", "Info")), 3, 1); inputTable.add(getHeader(localize("delete", "Delete")), 4, 1); TariffKey key; Iterator iter = keys.iterator(); for (int i = 1; i <= inputcount; i++) { String rownum = String.valueOf(i); TextInput nameInput, infoInput; HiddenInput idInput; CheckBox delCheck; //int pos; if (i <= count && iter.hasNext()) { //pos = i - 1; key = (TariffKey) iter.next(); nameInput = getTextInput("tke_nameinput" + i, key.getName()); infoInput = getTextInput("tke_infoinput" + i, key.getInfo()); idInput = new HiddenInput("tke_idinput" + i, String.valueOf(key.getID())); delCheck = getCheckBox("tke_delcheck" + i, "true"); inputTable.add(delCheck, 4, i + 1); } else { nameInput = getTextInput("tke_nameinput" + i); infoInput = getTextInput("tke_infoinput" + i); idInput = new HiddenInput("tke_idinput" + i, "-1"); } nameInput.setSize(20); infoInput.setSize(40); inputTable.add(getText(String.valueOf(rownum)), 1, i + 1); inputTable.add(nameInput, 2, i + 1); inputTable.add(infoInput, 3, i + 1); inputTable.add(idInput); } inputTable.add(Finance.getCategoryParameter(getFinanceCategoryId().intValue())); inputTable.add(new HiddenInput("tke_count", String.valueOf(inputcount))); inputTable.add(new HiddenInput(this.strAction, String.valueOf(this.ACT3))); SubmitButton save = new SubmitButton(localize("save", "Save")); save = (SubmitButton) setStyle(save,STYLENAME_INTERFACE_BUTTON); inputTable.addButton(save); return (inputTable); } protected PresentationObject doUpdate(IWContext iwc) { int count = Integer.parseInt(iwc.getParameter("tke_count")); String sName, sInfo, sDel; Integer ID; for (int i = 1; i < count + 1; i++) { try { sName = iwc.getParameter("tke_nameinput" + i); sInfo = iwc.getParameter("tke_infoinput" + i); sDel = iwc.getParameter("tke_delcheck" + i); ID = Integer.valueOf(iwc.getParameter("tke_idinput" + i)); if (sDel != null && sDel.equalsIgnoreCase("true")) { //FinanceBusiness.deleteTariffKey(ID); getFinanceService().removeTariffKey(ID); } else if (!"".equals(sName)) { //FinanceBusiness.saveTariffKey(ID,sName,sInfo,iCategoryId); getFinanceService().createOrUpdateTariffKey(ID, sName, sInfo, getFinanceCategoryId()); } } catch (NumberFormatException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } catch (RemoveException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } }// for loop return getMain(iwc); } public void main(IWContext iwc) { control(iwc); } }// class TariffKeyEditor