001 package videoautomat.contentcreator; 002 003 import javax.swing.BoxLayout; 004 import javax.swing.JComponent; 005 import javax.swing.JLabel; 006 import javax.swing.JPanel; 007 008 import sale.FormSheet; 009 import sale.FormSheetContentCreator; 010 import sale.UIGate; 011 import videoautomat.SaleProcessRent; 012 import videoautomat.contentcreator.stdactions.CommitAction; 013 import data.MoneyBag; 014 import data.stdforms.SingleTableFormSheet; 015 016 /** 017 * <code>ContentCreator</code> which changes the existing <code>FormSheet</code> 018 * to an addidtional table with the change money and some additional labels 019 * @author Tobias Ruch 020 */ 021 public class RentConfirmFSContentCreator extends FormSheetContentCreator { 022 023 /** Sales Proecess in which the content creator is used */ 024 private SaleProcessRent processRent; 025 /** <code>UIGate</code> of the FormSheet for the secound FormSheet */ 026 private UIGate gate; 027 028 /** 029 * Constructs a new <code>RentConfirmFSContentCreator</code>. 030 * @param process - <code>SaleProcessRent</code> in which the content creator is used. 031 * @param gate - <code>UIGate</code> for the additional <code>SingleTableFormSheet</code> 032 */ 033 public RentConfirmFSContentCreator(SaleProcessRent process, UIGate gate){ 034 this.processRent = process; 035 this.gate = gate; 036 } 037 /** 038 * Creates additional content to the given FormSheet. 039 * Creates another table, some labels and the commit action to the ok button. 040 * @param fs - FormSheet which should be changed 041 */ 042 protected void createFormSheetContent(FormSheet fs) { 043 SingleTableFormSheet stfs_money = 044 SingleTableFormSheet.create("", (MoneyBag)processRent.getContext().getProcessData(SaleProcessRent.MB_TEMP_KEY), gate, processRent.getBasket()); 045 046 JComponent jc = new JPanel(); 047 jc.setLayout(new BoxLayout(jc, BoxLayout.Y_AXIS)); 048 jc.add(new JLabel("All your rented videos:")); 049 jc.add(fs.getComponent()); 050 jc.add(new JLabel("The money you`ll get back:")); 051 jc.add(stfs_money.getComponent()); 052 jc.add(new JLabel("Please, click Ok to confirm the transaction!")); 053 fs.setComponent(jc); 054 fs.removeButton(FormSheet.BTNID_CANCEL); 055 056 fs.getButton(FormSheet.BTNID_OK).setAction(new CommitAction()); 057 058 } 059 060 }