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 }