001 package market.stdform; 002 003 import java.awt.GridBagConstraints; 004 import java.awt.GridBagLayout; 005 import java.awt.GridLayout; 006 007 import javax.swing.Box; 008 import javax.swing.BoxLayout; 009 import javax.swing.JLabel; 010 import javax.swing.JPanel; 011 012 import market.Conversions; 013 import market.SMarket; 014 import market.VCPositiveDouble; 015 import market.VCPositiveInteger; 016 import market.swing.ComponentFactory; 017 import market.swing.JTFCheckable; 018 import sale.FormSheet; 019 import sale.FormSheetContentCreator; 020 021 /** 022 * This FormSheet is used by the manager to set special calculation variables such as the maximal discount 023 * for customers or the monthly costs of the market. 024 */ 025 public class FSManagerOptions extends FormSheet { 026 027 public static final int JTFC_DISCOUNT_RANGE = 0; 028 public static final int JTFC_DISCOUNT_VALUE = 1; 029 public static final int JTFC_MAX_DISCOUNT = 2; 030 public static final int JTFC_FRACTION_OF_WAGES = 3; 031 public static final int JTFC_SENIORITY = 4; 032 public static final int JTFC_COSTS = 5; 033 034 private JTFCheckable jtfcDiscountRange = new JTFCheckable( 035 JTFC_DISCOUNT_RANGE, new VCPositiveInteger("Anrechnung"), 10); 036 private JTFCheckable jtfcDiscountValue = new JTFCheckable( 037 JTFC_DISCOUNT_VALUE, new VCPositiveInteger("Umsatz"), 10); 038 private JTFCheckable jtfcMaxDiscount = new JTFCheckable( 039 JTFC_MAX_DISCOUNT, new VCPositiveDouble("Maximaler Rabatt"), 10); 040 private JTFCheckable jtfcFractionOfWages = new JTFCheckable( 041 JTFC_FRACTION_OF_WAGES, new VCPositiveDouble("Lohnanteil"), 10); 042 private JTFCheckable jtfcSeniority = new JTFCheckable( 043 JTFC_SENIORITY, new VCPositiveDouble("Betriebszugehörigkeit"), 10); 044 private JTFCheckable jtfcCosts = new JTFCheckable( 045 JTFC_COSTS, new VCPositiveDouble("Sonstige Kosten"), 10); 046 047 public FSManagerOptions() { 048 super("Einstellungen", null); 049 addContentCreator(new FormSheetContentCreator() {protected void createFormSheetContent(FormSheet fs) { 050 //define components 051 JPanel jpMain = new JPanel(); 052 JPanel jpData = new JPanel(); 053 JPanel jpDiscount = new JPanel(); 054 JPanel jpEmployees = new JPanel(); 055 JPanel jpCostCentres = new JPanel(); 056 GridBagLayout gridBag = new GridBagLayout(); 057 GridBagConstraints c = new GridBagConstraints(); 058 jpMain.setLayout(gridBag); 059 c.weighty = 1; 060 c.anchor = GridBagConstraints.CENTER; 061 gridBag.setConstraints(jpData, c); 062 063 jpMain.add(jpData); 064 jpData.setLayout(new BoxLayout(jpData, BoxLayout.Y_AXIS)); 065 jpData.add(jpDiscount); 066 jpDiscount.setLayout(new BoxLayout(jpDiscount, BoxLayout.Y_AXIS)); 067 jpDiscount.setBorder(ComponentFactory.createInsetBorder("Kundenrabatt")); 068 jpDiscount.setLayout(new GridLayout(3, 3)); 069 jpDiscount.add(new JLabel("Anrechnung: ")); 070 jpDiscount.add(jtfcDiscountRange); 071 jpDiscount.add(new JLabel(" Monate")); 072 jpDiscount.add(new JLabel("Umsatz für 1% Rabatt: ")); 073 jpDiscount.add(jtfcDiscountValue); 074 jpDiscount.add(new JLabel(" Euro")); 075 jpDiscount.add(new JLabel("Maximaler Rabatt: ")); 076 jpDiscount.add(jtfcMaxDiscount); 077 jpDiscount.add(new JLabel(" Prozent")); 078 jpData.add(Box.createVerticalStrut(10)); 079 jpData.add(jpEmployees); 080 jpEmployees.setLayout(new GridLayout(2, 3)); 081 jpEmployees.setBorder(ComponentFactory.createInsetBorder( 082 "Faktoren zur Berechnung des Entlassungsausgleichs")); 083 jpEmployees.add(new JLabel("Lohnanteil: ")); 084 jpEmployees.add(jtfcFractionOfWages); 085 jpEmployees.add(new JLabel(" Prozent")); 086 jpEmployees.add(new JLabel("Betriebszugehörigkeit: ")); 087 jpEmployees.add(jtfcSeniority); 088 jpEmployees.add(new JLabel(" Prozent")); 089 jpData.add(Box.createVerticalStrut(10)); 090 jpData.add(jpCostCentres); 091 jpCostCentres.setBorder(ComponentFactory.createInsetBorder("Kostenstellen")); 092 jpCostCentres.setLayout(new GridLayout(1, 3)); 093 jpCostCentres.add(new JLabel("Sonstige Kosten: ")); 094 jpCostCentres.add(jtfcCosts); 095 jpCostCentres.add(new JLabel(" Euro")); 096 097 fs.setComponent(jpMain); 098 fs.removeAllButtons(); 099 fs.addButton("Übernehmen", ButtonIDs.BTN_ACCEPT, null); 100 101 jtfcDiscountRange.setText(Integer.toString(SMarket.getOptions().getDiscountRange())); 102 jtfcDiscountValue.setText(Integer.toString(SMarket.getOptions().getDiscountValue())); 103 jtfcMaxDiscount.setText(Conversions.fixedDecimal(100 * SMarket.getOptions().getMaxDiscount(), 3)); 104 jtfcFractionOfWages.setText(Conversions.fixedDecimal(100 * SMarket.getOptions(). 105 getFractionOfWages(), 3)); 106 jtfcSeniority.setText(Conversions.fixedDecimal(100 * SMarket.getOptions().getTimeOfEmployment(), 3)); 107 jtfcCosts.setText(Conversions.doubleToCurrency(SMarket.getMonthlySalesStats().getCosts())); 108 }}); 109 } 110 111 }