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    }