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    }