SalesPoints

SalesPoint hinzufügen

Um einen SalesPoint anzuzeigen ist dieser erst zu erzeugen, danach mittels addSalesPoint(SalesPoint) zu starten.

Mit setSalesPointFrameBounds(Rectangle) kann man analog zum Shop die Position und Größe des Fensters festlegen.

import sale.Shop; 
import java.awt.Rectangle;

public class MainClass {

  public static void main(String[] args) {
    SalesPointApplication spa = new SalesPointApplication();
    Shop.setTheShop(spa);
    spa.start();
    MySalesPoint msp = new MySalesPoint("Mein SalesPoint");
    msp.setSalesPointFrameBounds(new Rectangle(100,200,400,300));
    spa.addSalesPoint(msp);
  }
}
import sale.Shop;

public class SalesPointApplication extends Shop {

  public SalesPointApplication() {
    super();
  }

  public void quit() {
    if (shutdown (false)) {
      System.exit(0);
    }
  }
}
import sale.SalesPoint;

public class MySalesPoint extends SalesPoint {

  public MySalesPoint(String name) {
    super(name);
  }
}

Verhalten beim Schließen

Beim Schließen eines SalesPoints muss standardmäßig eine Sicherheitsabfrage bestätigt werden. Um dies zu ändern überschreibt man die Methode onCanQuit().

import sale.SalesPoint;

public class MySalesPoint extends SalesPoint {

  public MySalesPoint(String name) {
    super(name);
  }

  //SalesPoint wird geschlossen, wenn kein Prozess auf ihm läuft
  protected boolean onCanQuit() {
    return getCurrentProcess() == null;
  }
}

Das DefaultFormSheet

Um seinem SalesPoint eine andere Fassade zu verpassen überschreibt man die Methode getDefaultFormSheet(). (siehe auch: FormSheets)
Das DefaultFormSheet wird nur angezeigt solange kein Prozess auf dem SalesPoint läuft.

import sale.*; //SalesPoint, FormSheet, FormSheetContentCreator

public class MySalesPoint extends SalesPoint {

  public MySalesPoint(String name) {
    super(name);
  }

  //SalesPoint wird geschlossen, wenn kein Prozess auf ihm läuft
  protected boolean onCanQuit() {
    return getCurrentProcess() == null;
  }

  protected FormSheet getDefaultFormSheet() {
    return new FormSheet("DefaultFormSheet",
      new FormSheetContentCreator() {
        public void createFormSheetContent(final FormSheet fs) {}
      }, false);
  }
}

Das DefaultMenuSheet

Analog dazu lässt sich auch das Menu erzeugen. Man überschreibt die Methode getDefaultMenuSheet(). (siehe auch: Menus)
Wie das DefaultFormSheet sieht man auch das DefaultMenuSheet nur wenn kein Prozess läuft.

import sale.*; //SalesPoint, FormSheet, FormSheetContentCreator, MenuSheet, MenuSheetItem

public class MySalesPoint extends SalesPoint {

  public MySalesPoint(String name) {
    super(name);
  }

  //SalesPoint wird geschlossen, wenn kein Prozess auf ihm läuft
  protected boolean onCanQuit() {
    return getCurrentProcess() == null;
  }

  protected FormSheet getDefaultFormSheet() {
    return new FormSheet("StandardFormSheet",
      new FormSheetContentCreator() {
        public void createFormSheetContent(final FormSheet fs) {
        }
      }, false);
  }

  protected MenuSheet getDefaultMenuSheet() {
    MenuSheet msMenuBar = new MenuSheet("MenuBar");
    MenuSheet msMenu1 = new MenuSheet("NeuesMenu");
    MenuSheetItem msiItem1 = new MenuSheetItem("MenuItem 1", null);
    msMenuBar.add(msMenu1);
    msMenu1.add(msiItem1);
    return msMenuBar;
  }
}