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 * @param uc the customer whose statistics are to be displayed. 025 */ 026 public FSManagerCustomerStatsDetail(final UCustomer uc) { 027 super("Kundenstatistik - Details", null); 028 this.addContentCreator(new FormSheetContentCreator() {public void createFormSheetContent(final FormSheet fs) { 029 JPanel jpMain = new JPanel(); 030 JPanel jpData = new JPanel(); 031 032 GridBagConstraints c = new GridBagConstraints(); 033 GridBagLayout gridbag = new GridBagLayout(); 034 jpMain.setLayout(gridbag); 035 c.gridy = 0; 036 c.weightx = 1; 037 c.weighty = 0.1; 038 c.insets = new Insets(10,0,0,0); 039 c.anchor = GridBagConstraints.CENTER; 040 gridbag.setConstraints(jpData, c); 041 042 jpData.setLayout(new GridLayout(7, 2, 10, 10)); 043 jpData.setBorder(ComponentFactory.createInsetBorder("Kundenstatistik")); 044 jpData.add(new JLabel("Name: ")); 045 jpData.add(ComponentFactory.createTextField(uc.getFullName(), 10, false, ComponentFactory.RIGHT, 046 false)); 047 jpData.add(new JLabel("Firma: ")); 048 jpData.add(ComponentFactory.createTextField(uc.getCompany(), 10, false, ComponentFactory.RIGHT, 049 false)); 050 jpData.add(new JLabel("Mitglied seit: ")); 051 jpData.add(ComponentFactory.createTextField(uc.getDayOfRegistration().toString(), 052 10, false, ComponentFactory.RIGHT, false)); 053 jpData.add(new JLabel("Mitgliedsdauer: ")); 054 jpData.add(ComponentFactory.createTextField(uc.getMonthsOfMembership() + " Monate", 10, false, 055 ComponentFactory.RIGHT, false)); 056 jpData.add(new JLabel("Gesamtumsatz: ")); 057 jpData.add(ComponentFactory.createTextField( 058 Conversions.doubleToCurrency(Statistics.getCompleteCustomerRevenue(uc), " Euro"), 059 10, false, ComponentFactory.RIGHT, false)); 060 jpData.add(new JLabel("Auf Rabatt anrechenbarer Umsatz: ")); 061 jpData.add(ComponentFactory.createTextField( 062 Conversions.doubleToCurrency(Statistics.getAllowableCustomerRevenue(uc), " Euro"), 063 10, false, ComponentFactory.RIGHT, false)); 064 jpData.add(new JLabel("Rabatt: ")); 065 jpData.add(ComponentFactory.createTextField( 066 Conversions.fixedDecimal(100 * uc.getDiscount(), 3) + " %", 067 10, false, ComponentFactory.RIGHT, false)); 068 jpMain.add(jpData); 069 fs.removeAllButtons(); 070 fs.addButton("Statistikübersicht", ButtonIDs.BTN_BACK, null); 071 fs.setComponent(jpMain); 072 }}); 073 } 074 }