001    import data.*;
002    import sale.*;
003    
004    import javax.swing.*;
005    
006    /**
007     * FormSheetContentCreator, der den Inhalt der Standard-FormSheets von
008     * Office erzeugt
009     */
010    public class DefaultOfficeFormCreator extends FormSheetContentCreator
011    {
012    
013      //// attributes ////////////////////////////////////////////////////////////
014    
015      private Office officeOwner;
016    
017    
018      //// constructor ///////////////////////////////////////////////////////////
019    
020      /**
021       * Konstruktor. Erzeugt ein neues Objekt vom Typ
022       * <CODE>DefaultOfficeFormCreator</CODE>.
023       */
024      public DefaultOfficeFormCreator(Office officeOwner)
025      {
026        super();
027        this.officeOwner = officeOwner;
028      }
029    
030    
031      //// public methods ///////////////////////////////////////////////////////
032    
033      /**
034       * Erzeugt den Inhalt des übergebenen FormSheets.
035       */
036      public void createFormSheetContent (FormSheet fsToCreate)
037      {
038        // JPanel erzeugen und vertikales BoxLayout setzen
039        JPanel jpFSComponent = new JPanel();
040        
041        jpFSComponent.setLayout (new BoxLayout (jpFSComponent, BoxLayout.Y_AXIS));
042        
043        // Label mit der aktuellen Zeit ins JPanel einfuegen
044        jpFSComponent.add(new JLabel("Turn : " +
045          Shop.getTheShop().getTimer().getTime()));
046    
047        // Geldbestand holen
048        Stock coinSlot = Shop.getTheShop().getStock("coin slot");
049    
050        // verwendete Waehrung holen
051        Currency currency = (Currency)Shop.getTheShop().getCatalog("DM");
052    
053        // Geldbestand aufsummieren und Label mit der Summe ins JPanel einfuegen
054        IntegerValue money = (IntegerValue)coinSlot.sumStock(null,
055          new CatalogItemValue(), new IntegerValue (0));
056    
057        jpFSComponent.add (new JLabel("Money : " + currency.toString(money)));
058    
059        // Komponente ins FormSheet einfuegen
060        fsToCreate.setComponent (jpFSComponent);
061    
062        // Alle vorhandenen Buttons entfernen
063        fsToCreate.removeAllButtons();
064    
065         // Button zum Schliessen eibauen
066        fsToCreate.addButton ("Close", 1, new sale.Action() {
067          public void doAction (SaleProcess p, SalesPoint sp) {
068            officeOwner.quit();
069          }
070        });
071      }
072    
073    }