Browse Source

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
pull/1/head
Ronaldo Christnawan 5 years ago
parent
commit
b527d9cb77
6 changed files with 106 additions and 29 deletions
  1. +1
    -0
      src/main/java/id/amigogroup/posterminal/FormConstanta.java
  2. +8
    -5
      src/main/java/id/amigogroup/posterminal/FormFactory.java
  3. +28
    -2
      src/main/java/id/amigogroup/posterminal/FormUtamaController.java
  4. +63
    -21
      src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java
  5. +5
    -0
      src/main/java/id/amigogroup/posterminal/util/Fucout.java
  6. +1
    -1
      src/main/resources/fxml/FormUtama.fxml

+ 1
- 0
src/main/java/id/amigogroup/posterminal/FormConstanta.java View File

@@ -4,4 +4,5 @@ public class FormConstanta {


//daftarkan halaman disini //daftarkan halaman disini
public static final String TRANSAKSI = "Transaksi"; public static final String TRANSAKSI = "Transaksi";
public static final String BAYAR = "Bayar";
} }

+ 8
- 5
src/main/java/id/amigogroup/posterminal/FormFactory.java View File

@@ -1,5 +1,6 @@
package id.amigogroup.posterminal; package id.amigogroup.posterminal;


import id.amigogroup.posterminal.bayar.FormBayarController;
import id.amigogroup.posterminal.pos.FormTransaksiController; import id.amigogroup.posterminal.pos.FormTransaksiController;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Level; import java.util.logging.Level;
@@ -17,14 +18,16 @@ public class FormFactory {
//daftarkan halaman yang implement mainContenInterface disini //daftarkan halaman yang implement mainContenInterface disini
case FormConstanta.TRANSAKSI: case FormConstanta.TRANSAKSI:
loader.setLocation(getClass().getResource("/fxml/FormTransaksi.fxml")); loader.setLocation(getClass().getResource("/fxml/FormTransaksi.fxml"));
{
node = loader.load();

}
node = loader.load();
FormTransaksiController fetc = loader.getController(); FormTransaksiController fetc = loader.getController();
// fetc.initData(parent); // fetc.initData(parent);
break; 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) { } catch (IOException ex) {
Logger.getLogger(FormFactory.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(FormFactory.class.getName()).log(Level.SEVERE, null, ex);


+ 28
- 2
src/main/java/id/amigogroup/posterminal/FormUtamaController.java View File

@@ -1,32 +1,58 @@
package id.amigogroup.posterminal; package id.amigogroup.posterminal;


import java.net.URL; import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javafx.application.Platform;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.ScrollPane; 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 { public class FormUtamaController implements Initializable {

@FXML
private BorderPane bpMain;
@FXML @FXML
private ScrollPane spMainContent; private ScrollPane spMainContent;


private FormFactory formFactory = new FormFactory(); private FormFactory formFactory = new FormFactory();

/** /**
* Initializes the controller class. * Initializes the controller class.
*/ */
@Override @Override
public void initialize(URL url, ResourceBundle rb) { public void initialize(URL url, ResourceBundle rb) {
setContent(formFactory.getForm(FormConstanta.TRANSAKSI, this)); setContent(formFactory.getForm(FormConstanta.TRANSAKSI, this));

initShorcuts();
} }

public void initShorcuts() {
Map<KeyCombination,Runnable> 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) { public void setContent(Node node) {
try { try {
spMainContent.setContent(node); spMainContent.setContent(node);
} catch (NullPointerException npe) { } 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(); // AlertGenerate.getAlert(AlertGenerate.FXML_FAIL).show();
} }
} }


+ 63
- 21
src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java View File

@@ -7,14 +7,19 @@ package id.amigogroup.posterminal.pos;


import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyEvent; import javafx.scene.input.KeyEvent;
import javafx.scene.text.Text; 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_BAWA_DULU = "bawa dulu";
private final String BTN_BON = "bon"; private final String BTN_BON = "bon";
private final String BTN_RETUR = "retur"; private final String BTN_RETUR = "retur";
private String tableState = BTN_TUNAI;


private List<Button> navigasi = new ArrayList<>(); private List<Button> navigasi = new ArrayList<>();


@@ -54,44 +60,80 @@ public class FormTransaksiController implements Initializable {
navigasi.add(btnBawaDulu); navigasi.add(btnBawaDulu);
navigasi.add(btnBon); navigasi.add(btnBon);
navigasi.add(btnRetur); navigasi.add(btnRetur);

initShortcuts();
}

public void initShortcuts() {
Map<KeyCombination, Runnable> listShortcuts = new HashMap<>();

KeyCombination kcBtnTunai = new KeyCodeCombination(KeyCode.S);
Runnable rnBtnTunai = () -> btnTunai.fire();
listShortcuts.put(kcBtnTunai, rnBtnTunai);

KeyCombination kcBtnBawa = new KeyCodeCombination(KeyCode.F2);
Runnable rnBtnBawa = () -> btnBawaDulu.fire();
listShortcuts.put(kcBtnBawa, rnBtnBawa);

KeyCombination kcBon = new KeyCodeCombination(KeyCode.F3);
Runnable rnBon = () -> btnBon.fire();
listShortcuts.put(kcBon, rnBon);

KeyCombination kcRetur = new KeyCodeCombination(KeyCode.F4);
Runnable rnRetur = () -> btnRetur.fire();
listShortcuts.put(kcRetur, rnRetur);

Platform.runLater(() -> {
fldScan.getScene().getAccelerators().putAll(listShortcuts);
});
} }


@FXML @FXML
void btnNavigasiOnAction(ActionEvent event) { void btnNavigasiOnAction(ActionEvent event) {
Button buttonSource = (Button) event.getSource(); Button buttonSource = (Button) event.getSource();
switch (buttonSource.getText().toLowerCase()) {
case BTN_TUNAI:
//ambil data tunai
System.out.println("ambil data tunai");
break;
case BTN_BAWA_DULU:
//ambil data bawa dulu
System.out.println("ambil data bawa dulu");
break;
case BTN_BON:
//ambil data bon
System.out.println("ambil data bon");
break;
case BTN_RETUR:
//ambil data retur
System.out.println("ambil data retur");
break;
if (!tableState.equals(buttonSource.getText().toLowerCase())) {
switch (buttonSource.getText().toLowerCase()) {
case BTN_TUNAI:
//ambil data tunai
tableState = BTN_TUNAI;
System.out.println("ambil data tunai");
break;
case BTN_BAWA_DULU:
//ambil data bawa dulu
tableState = BTN_BAWA_DULU;
System.out.println("ambil data bawa dulu");
break;
case BTN_BON:
//ambil data bon
tableState = BTN_BON;
System.out.println("ambil data bon");
break;
case BTN_RETUR:
//ambil data retur
tableState = BTN_RETUR;
System.out.println("ambil data retur");
break;
}
} }


for (Button button : navigasi) { for (Button button : navigasi) {
if (button.equals(buttonSource)) { if (button.equals(buttonSource)) {
button.getStyleClass().add("button-navigasi-transaksi-selected");
if (!button.getStyleClass().contains("button-navigasi-transaksi-selected")) {
button.getStyleClass().add("button-navigasi-transaksi-selected");
}
} else { } else {
button.getStyleClass().remove("button-navigasi-transaksi-selected");
if (button.getStyleClass().contains("button-navigasi-transaksi-selected")) {
button.getStyleClass().remove("button-navigasi-transaksi-selected");
}
} }
} }
fldScan.requestFocus(); fldScan.requestFocus();
} }


@FXML @FXML
void fldScanOnKeyPressed(KeyEvent event) { void fldScanOnKeyPressed(KeyEvent event) {
if(event.getCode() == KeyCode.ENTER){
if (event.getCode() == KeyCode.ENTER) {
//proses scan //proses scan
System.out.println("Scan"); System.out.println("Scan");
} }


+ 5
- 0
src/main/java/id/amigogroup/posterminal/util/Fucout.java View File

@@ -5,6 +5,10 @@
*/ */
package id.amigogroup.posterminal.util; package id.amigogroup.posterminal.util;


import java.util.HashMap;
import java.util.Map;
import javafx.scene.input.KeyCodeCombination;

/** /**
* *
* @author ronal * @author ronal
@@ -15,4 +19,5 @@ public class Fucout {
//IMAGES URL //IMAGES URL
public static final String APP_ICON = "/assets/logo-mini-squared.png"; public static final String APP_ICON = "/assets/logo-mini-squared.png";
} }

+ 1
- 1
src/main/resources/fxml/FormUtama.fxml View File

@@ -16,7 +16,7 @@
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>


<BorderPane prefHeight="550.0" prefWidth="1000.0" stylesheets="@../styles/pos_styles.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.amigogroup.posterminal.FormUtamaController">
<BorderPane fx:id="bpMain" prefHeight="550.0" prefWidth="1000.0" stylesheets="@../styles/pos_styles.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.amigogroup.posterminal.FormUtamaController">
<top> <top>
<AnchorPane id="header" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="750.0"> <AnchorPane id="header" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="750.0">
<children> <children>


Loading…
Cancel
Save