001 package market.stdform; 002 003 import java.awt.GridBagConstraints; 004 import java.awt.GridBagLayout; 005 import java.awt.GridLayout; 006 import java.awt.Insets; 007 008 import javax.swing.JLabel; 009 import javax.swing.JPanel; 010 011 import market.Conversions; 012 import market.UCustomer; 013 import market.statistics.Statistics; 014 import market.swing.ComponentFactory; 015 import sale.FormSheet; 016 import sale.FormSheetContentCreator; 017 018 /** 019 * This FormSheet displays detailed statistics of a customer. 020 */ 021 public class FSManagerCustomerStatsDetail extends FormSheet { 022 023 /** 024 * ID for serialization. 025 */ 026 private static final long serialVersionUID = 6475595567409419511L; 027 028 /** 029 * @param uc the customer whose statistics are to be displayed. 030 */ 031 public FSManagerCustomerStatsDetail(final UCustomer uc) { 032 super("Kundenstatistik - Details", null); 033 this.addContentCreator(new FormSheetContentCreator() { 034 private static final long serialVersionUID = 7052781663665091208L; 035 public void createFormSheetContent(final FormSheet fs) { 036 JPanel jpMain = new JPanel(); 037 JPanel jpData = new JPanel(); 038 039 GridBagConstraints c = new GridBagConstraints(); 040 GridBagLayout gridbag = new GridBagLayout(); 041 jpMain.setLayout(gridbag); 042 c.gridy = 0; 043 c.weightx = 1; 044 c.weighty = 0.1; 045 c.insets = new Insets(10,0,0,0); 046 c.anchor = GridBagConstraints.CENTER; 047 gridbag.setConstraints(jpData, c); 048 049 jpData.setLayout(new GridLayout(7, 2, 10, 10)); 050 jpData.setBorder(ComponentFactory.createInsetBorder("Kundenstatistik")); 051 jpData.add(new JLabel("Name: ")); 052 jpData.add(ComponentFactory.createTextField(uc.getFullName(), 10, false, ComponentFactory.RIGHT, 053 false)); 054 jpData.add(new JLabel("Firma: ")); 055 jpData.add(ComponentFactory.createTextField(uc.getCompany(), 10, false, ComponentFactory.RIGHT, 056 false)); 057 jpData.add(new JLabel("Mitglied seit: ")); 058 jpData.add(ComponentFactory.createTextField(uc.getDayOfRegistration().toString(), 059 10, false, ComponentFactory.RIGHT, false)); 060 jpData.add(new JLabel("Mitgliedsdauer: ")); 061 jpData.add(ComponentFactory.createTextField(uc.getMonthsOfMembership() + " Monate", 10, false, 062 ComponentFactory.RIGHT, false)); 063 jpData.add(new JLabel("Gesamtumsatz: ")); 064 jpData.add(ComponentFactory.createTextField( 065 Conversions.doubleToCurrency(Statistics.getCompleteCustomerRevenue(uc), " Euro"), 066 10, false, ComponentFactory.RIGHT, false)); 067 jpData.add(new JLabel("Auf Rabatt anrechenbarer Umsatz: ")); 068 jpData.add(ComponentFactory.createTextField( 069 Conversions.doubleToCurrency(Statistics.getAllowableCustomerRevenue(uc), " Euro"), 070 10, false, ComponentFactory.RIGHT, false)); 071 jpData.add(new JLabel("Rabatt: ")); 072 jpData.add(ComponentFactory.createTextField( 073 Conversions.fixedDecimal(100 * uc.getDiscount(), 3) + " %", 074 10, false, ComponentFactory.RIGHT, false)); 075 jpMain.add(jpData); 076 fs.removeAllButtons(); 077 fs.addButton("Statistikübersicht", ButtonIDs.BTN_BACK, null); 078 fs.setComponent(jpMain); 079 } 080 }); 081 } 082 }