package com.idega.block.finance.presentation; import java.rmi.RemoteException; import java.util.Collection; import javax.ejb.CreateException; import javax.ejb.FinderException; import com.idega.block.finance.business.FinanceService; import com.idega.block.finance.data.TariffGroup; import com.idega.business.IBOLookup; import com.idega.idegaweb.IWApplicationContext; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWMainApplication; import com.idega.idegaweb.IWResourceBundle; import com.idega.idegaweb.presentation.IWAdminWindow; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextArea; import com.idega.presentation.ui.TextInput; /** * Title: Description: Copyright: Copyright (c) 2000-2001 idega.is All Rights * Reserved Company: idega * * @author <a href="mailto:aron@idega.is">Aron Birkir</a> * @version 1.1 */ public class TariffGroupWindow extends IWAdminWindow { private final static String IW_BUNDLE_IDENTIFIER = "com.idega.block.finance"; private static final String prefix = "tgrp_"; public static final String prmCategory = prefix + "cat"; public static final String prmGroup = prefix + "group"; private static final String actSave = prefix + "save"; private FinanceService finServ = null; private IWBundle core; private IWResourceBundle iwrb; public TariffGroupWindow() { setWidth(500); setHeight(500); setResizable(true); setUnMerged(); } private void control(IWContext iwc) throws Exception { debugParameters(iwc); Integer iCategoryId = new Integer(Finance.parseCategoryId(iwc)); this.finServ = getFinanceService(iwc); if (iCategoryId.intValue() > 0) { Integer groupId = null; if (iwc.isParameterSet(prmGroup)) { groupId = Integer.valueOf(iwc.getParameter(prmGroup)); } if (iwc.isParameterSet(actSave) || iwc.isParameterSet(actSave + ".x")) { groupId = processCategoryForm(iwc, iCategoryId, groupId); } if (groupId != null && groupId.intValue() != -1) { addCategoryFields(this.finServ.getTariffGroupHome().findByPrimaryKey(groupId), iCategoryId); } else { addCategoryFields(null, iCategoryId); } } else { add("no category "); } } private Integer processCategoryForm(IWContext iwc, Integer categoryID, Integer groupId) { String sName = iwc.getParameter("cat_name"); String sInfo = iwc.getParameter("cat_info"); boolean UseIndex = iwc.isParameterSet("use_index"); Integer handlerId = Integer.valueOf(iwc.getParameter("fhandler")); TariffGroup group = null; try { group = this.finServ.createOrUpdateTariffGroup(groupId, sName, sInfo, handlerId, UseIndex, categoryID); return (Integer) group.getPrimaryKey(); } catch (RemoteException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } return null; } private void addCategoryFields(TariffGroup group, Integer iCategoryId) { String sGroup = this.iwrb.getLocalizedString("tariffgroup", "Tariffgroup"); String sName = this.iwrb.getLocalizedString("name", "Name"); String sDesc = this.iwrb.getLocalizedString("description", "Description"); String sHandlers = this.iwrb.getLocalizedString("handlers", "Handlers"); String sIndex = this.iwrb.getLocalizedString("useindices", "Use indices"); boolean hasCategory = group != null ? true : false; Link newLink = new Link(this.core.getImage("/shared/create.gif")); newLink.addParameter(prmCategory, -1); Collection L = null; Collection L2 = null; try { L = this.finServ.getTariffGroupHome().findByCategory(iCategoryId); L2 = this.finServ.getFinanceHandlerInfoHome().findAll(); } catch (RemoteException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } // FinanceFinder.getInstance().listOfTariffGroups(iCategoryId); DropdownMenu groups = new DropdownMenu(L, prmGroup); groups.addMenuElementFirst("-1", sGroup); groups.setToSubmit(); // FinanceFinder.getInstance().listOfFinanceHandlers(); DropdownMenu handlers = new DropdownMenu(L2, "fhandler"); handlers.addMenuElementFirst("-1", sHandlers); TextInput tiName = new TextInput("cat_name"); tiName.setLength(40); tiName.setMaxlength(255); TextArea taDesc = new TextArea("cat_info", 65, 5); CheckBox useIndexes = new CheckBox("use_index", "true"); Table catTable = new Table(5, 1); catTable.setCellpadding(0); catTable.setCellspacing(0); setStyle(groups); catTable.add(groups, 1, 1); catTable.add(newLink, 3, 1); catTable.setWidth(2, 1, "20"); catTable.setWidth(4, 1, "20"); addLeft(sGroup, catTable, true, false); addLeft(sName, tiName, true); addLeft(sDesc, taDesc, true); setStyle(handlers); addLeft(sIndex, useIndexes, true); addLeft(sDesc, handlers, true); addLeft(Finance.getCategoryParameter(iCategoryId.intValue())); if (hasCategory) { Integer id = (Integer) group.getPrimaryKey(); if (group.getName() != null) { tiName.setContent(group.getName()); } if (group.getInfo() != null) { taDesc.setContent(group.getInfo()); } groups.setSelectedElement(id.toString()); useIndexes.setChecked(group.getUseIndex()); handlers.setSelectedElement(String.valueOf(group.getHandlerId())); } SubmitButton save = new SubmitButton(this.iwrb.getLocalizedImageButton("save", "Save"), actSave); addSubmitButton(save); } public void main(IWContext iwc) throws Exception { super.main(iwc); this.core = iwc.getIWMainApplication().getBundle(IWMainApplication.CORE_BUNDLE_IDENTIFIER); this.iwrb = getResourceBundle(iwc); addTitle(this.iwrb.getLocalizedString("tariff_group_editor", "Tariffgroup Editor")); control(iwc); } public FinanceService getFinanceService(IWApplicationContext iwac) throws RemoteException { return (FinanceService) IBOLookup.getServiceInstance(iwac, FinanceService.class); } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } }