From 6f04d280262216a5abd8dba404fcc37016a1662a Mon Sep 17 00:00:00 2001 From: Ronaldo Christnawan Date: Thu, 23 Jan 2020 12:57:53 +0700 Subject: [PATCH] Inisialisasi Kerangka Program POS * Halaman utama * Sub-halaman daftar barang di dalam nota * Logic UI untuk perubahan tab * Aset-aset awal * Styling button menjadi seperti tab untuk sub halaman daftar barang --- nbactions.xml | 17 ++ pom.xml | 96 +++++++ .../java/id/amigogroup/posterminal/App.java | 44 +++ .../amigogroup/posterminal/FormConstanta.java | 7 + .../amigogroup/posterminal/FormFactory.java | 34 +++ .../posterminal/FormUtamaController.java | 33 +++ .../id/amigogroup/posterminal/ShadeApp.java | 16 ++ .../id/amigogroup/posterminal/SystemInfo.java | 13 + .../pos/FormTransaksiController.java | 99 +++++++ .../amigogroup/posterminal/util/Fucout.java | 18 ++ .../resources/assets/account-circle-gray.png | Bin 0 -> 8759 bytes .../resources/assets/logo-mini-squared.png | Bin 0 -> 32154 bytes src/main/resources/assets/logo-mini.png | Bin 0 -> 29292 bytes src/main/resources/assets/logo.png | Bin 0 -> 50532 bytes src/main/resources/fxml/FormTransaksi.fxml | 269 ++++++++++++++++++ src/main/resources/fxml/FormUtama.fxml | 204 +++++++++++++ src/main/resources/styles/pos_styles.css | 50 ++++ 17 files changed, 900 insertions(+) create mode 100644 nbactions.xml create mode 100644 pom.xml create mode 100644 src/main/java/id/amigogroup/posterminal/App.java create mode 100644 src/main/java/id/amigogroup/posterminal/FormConstanta.java create mode 100644 src/main/java/id/amigogroup/posterminal/FormFactory.java create mode 100644 src/main/java/id/amigogroup/posterminal/FormUtamaController.java create mode 100644 src/main/java/id/amigogroup/posterminal/ShadeApp.java create mode 100644 src/main/java/id/amigogroup/posterminal/SystemInfo.java create mode 100644 src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java create mode 100644 src/main/java/id/amigogroup/posterminal/util/Fucout.java create mode 100644 src/main/resources/assets/account-circle-gray.png create mode 100644 src/main/resources/assets/logo-mini-squared.png create mode 100644 src/main/resources/assets/logo-mini.png create mode 100644 src/main/resources/assets/logo.png create mode 100644 src/main/resources/fxml/FormTransaksi.fxml create mode 100644 src/main/resources/fxml/FormUtama.fxml create mode 100644 src/main/resources/styles/pos_styles.css diff --git a/nbactions.xml b/nbactions.xml new file mode 100644 index 0000000..6c3593c --- /dev/null +++ b/nbactions.xml @@ -0,0 +1,17 @@ + + + + run + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:1.5.0:exec + + + -classpath %classpath id.amigogroup.posterminal.ShadeApp + java + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..02bdc5c --- /dev/null +++ b/pom.xml @@ -0,0 +1,96 @@ + + 4.0.0 + id.amigogroup + PosTerminal + 1.0.0 + + UTF-8 + 11 + 11 + 11.0.2 + id.amigogroup.posterminal.ShadeApp + + + + org.openjfx + javafx-controls + ${javafx.version} + + + org.openjfx + javafx-fxml + ${javafx.version} + + + org.openjfx + javafx-graphics + ${javafx.version} + win + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + + package + + shade + + + + + + ${mainClass} + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 11 + + + + org.openjfx + javafx-maven-plugin + 0.0.3 + + ${mainClass} + + + + + \ No newline at end of file diff --git a/src/main/java/id/amigogroup/posterminal/App.java b/src/main/java/id/amigogroup/posterminal/App.java new file mode 100644 index 0000000..7e73312 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/App.java @@ -0,0 +1,44 @@ +package id.amigogroup.posterminal; + +import id.amigogroup.posterminal.util.Fucout; +import java.util.Locale; +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.layout.StackPane; +import javafx.stage.Stage; + +/** + * JavaFX App + */ +public class App extends Application { + + @Override + public void start(Stage stage) throws Exception { +// var javaVersion = SystemInfo.javaVersion(); +// var javafxVersion = SystemInfo.javafxVersion(); +// +// var label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); + Locale.setDefault(Locale.forLanguageTag("in-ID")); + + Parent root = FXMLLoader.load(getClass().getResource("/fxml/FormUtama.fxml")); + + Scene scene = new Scene(root); + + stage.setScene(scene); + stage.setTitle(Fucout.APP_TITLE); + stage.getIcons().add(new Image(Fucout.APP_ICON)); + stage.show(); + +// var scene = new Scene(new StackPane(label), 640, 480); +// stage.setScene(scene); +// stage.show(); + } + + public static void main(String[] args) { + launch(); + } + +} \ No newline at end of file diff --git a/src/main/java/id/amigogroup/posterminal/FormConstanta.java b/src/main/java/id/amigogroup/posterminal/FormConstanta.java new file mode 100644 index 0000000..5268bdd --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/FormConstanta.java @@ -0,0 +1,7 @@ +package id.amigogroup.posterminal; + +public class FormConstanta { + + //daftarkan halaman disini + public static final String TRANSAKSI = "Transaksi"; +} diff --git a/src/main/java/id/amigogroup/posterminal/FormFactory.java b/src/main/java/id/amigogroup/posterminal/FormFactory.java new file mode 100644 index 0000000..8616356 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/FormFactory.java @@ -0,0 +1,34 @@ +package id.amigogroup.posterminal; + +import id.amigogroup.posterminal.pos.FormTransaksiController; +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; +import javafx.fxml.FXMLLoader; +import javafx.scene.Node; + +public class FormFactory { + + public Node getForm(String form, FormUtamaController parent) { + Node node = null; + FXMLLoader loader = new FXMLLoader(); + try { + switch (form) { + //daftarkan halaman yang implement mainContenInterface disini + case FormConstanta.TRANSAKSI: + loader.setLocation(getClass().getResource("/fxml/FormTransaksi.fxml")); + { + node = loader.load(); + + } + FormTransaksiController fetc = loader.getController(); +// fetc.initData(parent); + break; + + } + } catch (IOException ex) { + Logger.getLogger(FormFactory.class.getName()).log(Level.SEVERE, null, ex); + } + return node; + } +} diff --git a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java new file mode 100644 index 0000000..5f5b0a1 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java @@ -0,0 +1,33 @@ +package id.amigogroup.posterminal; + +import java.net.URL; +import java.util.ResourceBundle; +import java.util.logging.Level; +import java.util.logging.Logger; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.Node; +import javafx.scene.control.ScrollPane; + +public class FormUtamaController implements Initializable { + @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)); + } + + public void setContent(Node node) { + try { + spMainContent.setContent(node); + } catch (NullPointerException 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/ShadeApp.java b/src/main/java/id/amigogroup/posterminal/ShadeApp.java new file mode 100644 index 0000000..53d6197 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/ShadeApp.java @@ -0,0 +1,16 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package id.amigogroup.posterminal; + +/** + * + * @author ronal + */ +public class ShadeApp { + public static void main(String[] args) { + App.main(args); + } +} diff --git a/src/main/java/id/amigogroup/posterminal/SystemInfo.java b/src/main/java/id/amigogroup/posterminal/SystemInfo.java new file mode 100644 index 0000000..48ffff1 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/SystemInfo.java @@ -0,0 +1,13 @@ +package id.amigogroup.posterminal; + +public class SystemInfo { + + public static String javaVersion() { + return System.getProperty("java.version"); + } + + public static String javafxVersion() { + return System.getProperty("javafx.version"); + } + +} \ No newline at end of file diff --git a/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java b/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java new file mode 100644 index 0000000..43cc1f8 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/pos/FormTransaksiController.java @@ -0,0 +1,99 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package id.amigogroup.posterminal.pos; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.ResourceBundle; +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.KeyEvent; +import javafx.scene.text.Text; + +/** + * FXML Controller class + * + * @author ronal + */ +public class FormTransaksiController implements Initializable { + + @FXML + private TextField fldScan; + @FXML + private Button btnTunai; + @FXML + private Button btnBawaDulu; + @FXML + private Button btnBon; + @FXML + private Button btnRetur; + @FXML + private Text lblGrandTotal; + + private final String BTN_TUNAI = "tunai"; + private final String BTN_BAWA_DULU = "bawa dulu"; + private final String BTN_BON = "bon"; + private final String BTN_RETUR = "retur"; + + private List + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/fxml/FormUtama.fxml b/src/main/resources/fxml/FormUtama.fxml new file mode 100644 index 0000000..8383f55 --- /dev/null +++ b/src/main/resources/fxml/FormUtama.fxml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/styles/pos_styles.css b/src/main/resources/styles/pos_styles.css new file mode 100644 index 0000000..e32fb6f --- /dev/null +++ b/src/main/resources/styles/pos_styles.css @@ -0,0 +1,50 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : Jan 21, 2020, 10:53:03 AM + Author : ronal +*/ +.button-navigasi-transaksi{ + -fx-border-color: #4488ff; + -fx-border-width: 0 1 1.5 1; + -fx-border-radius: 0 0 8% 8%; + /*-fx-background-color: #99ccff;*/ + -fx-background-color: + linear-gradient(#caf6fd 0%, #a5f0fc 49%, #a5f0fc 50%, #8aafff 100%); + -fx-background-insets: 0,1,2; + -fx-background-radius: 0 0 8% 8%,0 0 8% 8%,0 0 8% 8%; + -fx-cursor: hand; +} +.button-navigasi-transaksi:hover{ + /*-fx-background-color: #bbeeff;*/ + -fx-background-color: + linear-gradient(#d5f6fd 0%, #cae0ff 49%, #cae0ff 50%, #ffffff 100%);} + +.button-navigasi-transaksi-selected{ + /*-fx-background-color: #33aaff;*/ + -fx-background-color: + linear-gradient(#abf6fd 0%, #8aa6fd 49%, #8aa6dd 50%, #50a6dd 100%); +} + +#header{ + -fx-border-style: solid; + -fx-border-color: black; + -fx-border-width: 0 0 2 0; +} + +#shortcut-box{ + -fx-border-style: solid; + -fx-border-color: black; + -fx-border-width: 0 0 0 2; +} + +#shortcut-background{ + -fx-background-color: lightgray; +} + +#price-background{ + -fx-background-color: black; +}