From b527d9cb775a5a69f2d564c99bfb6327a9a0f2dc Mon Sep 17 00:00:00 2001 From: Ronaldo Christnawan Date: Fri, 24 Jan 2020 10:18:46 +0700 Subject: [PATCH] Membuat Shortcut, Bug Fix * Shortcut F8: Checkout * Shortcut F1-F4: Navigasi Tab * Bug Fix: Styling Add Class tertambahkan berulang kali sehingga isi class menjadi memiliki duplikat --- .../amigogroup/posterminal/FormConstanta.java | 1 + .../amigogroup/posterminal/FormFactory.java | 13 +-- .../posterminal/FormUtamaController.java | 30 ++++++- .../pos/FormTransaksiController.java | 84 ++++++++++++++----- .../amigogroup/posterminal/util/Fucout.java | 5 ++ src/main/resources/fxml/FormUtama.fxml | 2 +- 6 files changed, 106 insertions(+), 29 deletions(-) diff --git a/src/main/java/id/amigogroup/posterminal/FormConstanta.java b/src/main/java/id/amigogroup/posterminal/FormConstanta.java index 5268bdd..4ec6f6f 100644 --- a/src/main/java/id/amigogroup/posterminal/FormConstanta.java +++ b/src/main/java/id/amigogroup/posterminal/FormConstanta.java @@ -4,4 +4,5 @@ public class FormConstanta { //daftarkan halaman disini public static final String TRANSAKSI = "Transaksi"; + public static final String BAYAR = "Bayar"; } diff --git a/src/main/java/id/amigogroup/posterminal/FormFactory.java b/src/main/java/id/amigogroup/posterminal/FormFactory.java index 8616356..efe2a81 100644 --- a/src/main/java/id/amigogroup/posterminal/FormFactory.java +++ b/src/main/java/id/amigogroup/posterminal/FormFactory.java @@ -1,5 +1,6 @@ package id.amigogroup.posterminal; +import id.amigogroup.posterminal.bayar.FormBayarController; import id.amigogroup.posterminal.pos.FormTransaksiController; import java.io.IOException; import java.util.logging.Level; @@ -17,14 +18,16 @@ public class FormFactory { //daftarkan halaman yang implement mainContenInterface disini case FormConstanta.TRANSAKSI: loader.setLocation(getClass().getResource("/fxml/FormTransaksi.fxml")); - { - node = loader.load(); - - } + node = loader.load(); FormTransaksiController fetc = loader.getController(); // fetc.initData(parent); break; - + case FormConstanta.BAYAR: + loader.setLocation(getClass().getResource("/fxml/FormBayar.fxml")); + node = loader.load(); + FormBayarController fbc = loader.getController(); +// fetc.initData(parent); + break; } } catch (IOException ex) { Logger.getLogger(FormFactory.class.getName()).log(Level.SEVERE, null, ex); diff --git a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java index 5f5b0a1..35f8699 100644 --- a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java +++ b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java @@ -1,32 +1,58 @@ package id.amigogroup.posterminal; import java.net.URL; +import java.util.HashMap; +import java.util.Map; import java.util.ResourceBundle; import java.util.logging.Level; import java.util.logging.Logger; +import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.Node; import javafx.scene.control.ScrollPane; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; +import javafx.scene.layout.BorderPane; public class FormUtamaController implements Initializable { + + @FXML + private BorderPane bpMain; @FXML private ScrollPane spMainContent; private FormFactory formFactory = new FormFactory(); + /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { setContent(formFactory.getForm(FormConstanta.TRANSAKSI, this)); + + initShorcuts(); } - + + public void initShorcuts() { + Map listShortcuts = new HashMap<>(); + + KeyCombination kcCheckout = new KeyCodeCombination(KeyCode.F8); + Runnable rnCheckout = () -> System.out.println("Checkout"); + listShortcuts.put(kcCheckout, rnCheckout); + + Platform.runLater(() -> { + bpMain.getScene().getAccelerators().putAll(listShortcuts); + }); + } + public void setContent(Node node) { try { spMainContent.setContent(node); } catch (NullPointerException npe) { - Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, npe); + Logger.getLogger(FormUtamaController.class + .getName()).log(Level.SEVERE, null, npe); // AlertGenerate.getAlert(AlertGenerate.FXML_FAIL).show(); } } diff --git a/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java b/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java index 43cc1f8..04a3dc0 100644 --- a/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java +++ b/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java @@ -7,14 +7,19 @@ package id.amigogroup.posterminal.pos; import java.net.URL; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.ResourceBundle; +import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; import javafx.scene.text.Text; @@ -42,6 +47,7 @@ public class FormTransaksiController implements Initializable { private final String BTN_BAWA_DULU = "bawa dulu"; private final String BTN_BON = "bon"; private final String BTN_RETUR = "retur"; + private String tableState = BTN_TUNAI; private List