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 }