示例#1
0
  /** Is called when a purchase has completed. */
  private EventHandler<ActionEvent> sendOrder() {
    return e -> {
      viewDisplay.show(viewDisplay.getView(receiptPane));

      ShoppingCartHandler handler = ShoppingCartHandler.getInstance();
      List<ShoppingItem> items = handler.getCartItems();

      items.forEach(item -> db.getShoppingCart().addItem(item));

      db.placeOrder();
      handler.clearCart();
      db.shutDown();

      // ---------------//
      List<Order> orders = IMatDataHandler.getInstance().getOrders();

      Collections.sort(
          orders,
          (o1, o2) -> {
            return (int) (o2.getDate().getTime() - o1.getDate().getTime());
          });

      float totalPrice = 0;
      for (ShoppingItem item : orders.get(0).getItems()) {
        totalPrice += item.getTotal();
      }

      RecipeController.getInstance().setTitleText(InformationStorage.getFirstName());
      RecipeController.getInstance().setPriceText(totalPrice);
      RecipeController.getInstance().setDeliveryTimeText(InformationStorage.getDelivery());
      RecipeController.getInstance().setPaymentText(InformationStorage.getPaymentType());
    };
  }
示例#2
0
  /**
   * Creates a binding that is true when the active view is the view with "css-id" <code>ID</code>
   */
  private BooleanBinding activeViewBinding(ContentView view) {
    SimpleBooleanProperty isActiveView = new SimpleBooleanProperty(false);
    viewDisplay
        .getCurrentView()
        .addListener(
            (obs, oldValue, newValue) ->
                isActiveView.set(viewDisplay.getCurrentView().get().equals(view)));
    BooleanBinding binding = Bindings.createBooleanBinding(() -> isActiveView.get(), isActiveView);

    return binding;
  }
示例#3
0
  private void setReceiptBinds() {
    ContentView view = viewDisplay.getView(receiptPane);
    BindingGroup group = btnToReceipt.getBindingGroup();
    group.addBinding(purchasePaneController.getBindings().and(PURCHASE_VIEW_ACTIVE));

    view.getBindingGroup().setAll(group.getBinds());
  }
示例#4
0
  private void setPurchaseBinds() {
    ContentView view = viewDisplay.getView(purchasePane);
    BindingGroup group = btnToPurchase.getBindingGroup();
    group.addBindings(
        credentialsPaneController.getBindings().and(CART_NONEMPTY).and(not(RECEIPT_VIEW_ACTIVE)));

    view.getBindingGroup().setAll(group.getBinds());
  }
示例#5
0
  private void setCredentialBinds() {
    ContentView view = viewDisplay.getView(credentialsPane);

    BindingGroup group = btnToCredentials.getBindingGroup();
    group.addBinding(CART_NONEMPTY.and(not(RECEIPT_VIEW_ACTIVE)));
    group
        .getState()
        .addListener(
            (obs, o, n) -> {
              ContentView storeView = viewDisplay.getView(storePane);
              ContentView receiptView = viewDisplay.getView(storePane);
              ContentView currentView = viewDisplay.getCurrentView().getValue();

              if (not(CART_NONEMPTY).get()
                  && !currentView.equals(storeView)
                  && !currentView.equals(receiptView)) viewDisplay.show(storeView);

              btnToCredentials.setDisable(true);
            });

    view.getBindingGroup().setAll(group.getBinds());
  }
示例#6
0
  public void initialize(URL url, ResourceBundle bundle) {
    prevButton.disable();
    nextButton.disable();

    me = this;

    popupShadePane.setMouseTransparent(true);

    // Necessary to disable the last arrow
    btnToReceipt.setUserData("lastButton");

    // Give the popup-system required panes
    ModalPopup.initialize(popupPane, wrapperStackPane, popupShadePane);

    // Start viewDisplay-system
    viewDisplay = new ViewDisplay(contentPane);
    NavigationButton.setViewDisplay(viewDisplay);

    // Create the views,
    ContentView storeView = new ContentView(storePane);
    ContentView credentialsView = new ContentView(credentialsPane);
    ContentView purchaseView = new ContentView(purchasePane);
    ContentView receiptView = new ContentView(receiptPane);
    ContentView dummyView = new ContentView(dummyPane);

    // and add the views to the viewDisplay
    viewDisplay.addView(storeView);
    viewDisplay.addView(credentialsView);
    viewDisplay.addView(purchaseView);
    viewDisplay.addView(receiptView);
    viewDisplay.addView(dummyView);

    // Define necessary bindings
    PURCHASE_VIEW_ACTIVE = activeViewBinding(purchaseView);
    RECEIPT_VIEW_ACTIVE = activeViewBinding(receiptView);

    // Setup bindings that determine how you can move between views
    // setStoreBinds();
    setCredentialBinds();
    setPurchaseBinds();
    setReceiptBinds();

    // Set next & previous relationships
    storeView.setNext(credentialsView);
    credentialsView.setNext(purchaseView);
    credentialsView.setPrevious(storeView);
    purchaseView.setPrevious(credentialsView);
    purchaseView.setNext(receiptView);
    receiptView.setNext(storeView);
    receiptView.setPrevious(null);

    // Set actions for the previous & next buttons
    prevButton.setDirection(Direction.LEFT);
    nextButton.setDirection(Direction.RIGHT);
    prevButton.setOnAction(event -> viewDisplay.previous());
    nextButton.setOnAction(
        event -> {
          // If we are on purchase, going to the next view means finishing the purchase.
          if (viewDisplay.getCurrentView().get().equals(purchaseView)) sendOrder().handle(event);
          else viewDisplay.next();
        });

    // Initialize the navigation buttons
    btnToStore.initialize(storeView, show(storeView), btnToCredentials, storeLabel, null);
    btnToCredentials.initialize(
        credentialsView, show(credentialsView), btnToPurchase, credentialsLabel, fromStoreArrow);
    btnToPurchase.initialize(
        purchaseView, show(purchaseView), btnToReceipt, purchaseLabel, fromCredentialsArrow);
    btnToReceipt.initialize(receiptView, sendOrder(), null, receiptLabel, fromPurchaseArrow);

    shoppingCartController.getShoppingListButton().setOnAction(e -> loadListPopup.show());
    shoppingCartController.getSaveListButton().setOnAction(e -> saveListPopup.show());

    contactButton.setOnAction(e -> contactPopup.show());
    historyButton.setOnAction(
        e -> {
          purchaseHistoryPopupController.update();
          purchaseHistoryPopup.show();
        });
    helpButton.setOnAction(e -> helpPopup.show());

    // Drag & drop:  resizing of window to 'highlight' the shopping cart.
    purchaseHistoryPopup.setOnDragOver(
        e -> {
          popupPane.setMouseTransparent(true);
          removeShadePane.getStyleClass().add("transparent");
        });

    // Show the store
    viewDisplay.show(storeView);

    wrapperStackPane.toFront();
  }
示例#7
0
 /** Event that shows the view <code>view</code> */
 private EventHandler<ActionEvent> show(ContentView view) {
   return e -> viewDisplay.show(view);
 }