* 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 barangpull/1/head
| @@ -0,0 +1,17 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <actions> | |||
| <action> | |||
| <actionName>run</actionName> | |||
| <packagings> | |||
| <packaging>jar</packaging> | |||
| </packagings> | |||
| <goals> | |||
| <goal>process-classes</goal> | |||
| <goal>org.codehaus.mojo:exec-maven-plugin:1.5.0:exec</goal> | |||
| </goals> | |||
| <properties> | |||
| <exec.args>-classpath %classpath id.amigogroup.posterminal.ShadeApp</exec.args> | |||
| <exec.executable>java</exec.executable> | |||
| </properties> | |||
| </action> | |||
| </actions> | |||
| @@ -0,0 +1,96 @@ | |||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||
| <modelVersion>4.0.0</modelVersion> | |||
| <groupId>id.amigogroup</groupId> | |||
| <artifactId>PosTerminal</artifactId> | |||
| <version>1.0.0</version> | |||
| <properties> | |||
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
| <maven.compiler.source>11</maven.compiler.source> | |||
| <maven.compiler.target>11</maven.compiler.target> | |||
| <javafx.version>11.0.2</javafx.version> | |||
| <mainClass>id.amigogroup.posterminal.ShadeApp</mainClass> | |||
| </properties> | |||
| <dependencies> | |||
| <dependency> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-controls</artifactId> | |||
| <version>${javafx.version}</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-fxml</artifactId> | |||
| <version>${javafx.version}</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-graphics </artifactId> | |||
| <version>${javafx.version}</version> | |||
| <classifier>win</classifier> | |||
| </dependency> | |||
| <!-- <dependency> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-graphics </artifactId> | |||
| <version>${javafx.version}</version> | |||
| <classifier>linux</classifier> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-graphics </artifactId> | |||
| <version>${javafx.version}</version> | |||
| <classifier>mac</classifier> | |||
| </dependency>--> | |||
| </dependencies> | |||
| <build> | |||
| <plugins><!-- Maven Shade Plugin --> | |||
| <plugin> | |||
| <groupId>org.apache.maven.plugins</groupId> | |||
| <artifactId>maven-shade-plugin</artifactId> | |||
| <version>3.2.1</version> | |||
| <executions> | |||
| <!-- Run shade goal on package phase --> | |||
| <execution> | |||
| <phase>package</phase> | |||
| <goals> | |||
| <goal>shade</goal> | |||
| </goals> | |||
| <configuration> | |||
| <transformers> | |||
| <!-- add Main-Class to manifest file --> | |||
| <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> | |||
| <mainClass>${mainClass}</mainClass> | |||
| </transformer> | |||
| </transformers> | |||
| <filters> | |||
| <filter> | |||
| <artifact>*:*</artifact> | |||
| <excludes> | |||
| <exclude>META-INF/*.SF</exclude> | |||
| <exclude>META-INF/*.DSA</exclude> | |||
| <exclude>META-INF/*.RSA</exclude> | |||
| </excludes> | |||
| </filter> | |||
| </filters> | |||
| </configuration> | |||
| </execution> | |||
| </executions> | |||
| </plugin> | |||
| <plugin> | |||
| <groupId>org.apache.maven.plugins</groupId> | |||
| <artifactId>maven-compiler-plugin</artifactId> | |||
| <version>3.8.0</version> | |||
| <configuration> | |||
| <release>11</release> | |||
| </configuration> | |||
| </plugin> | |||
| <plugin> | |||
| <groupId>org.openjfx</groupId> | |||
| <artifactId>javafx-maven-plugin</artifactId> | |||
| <version>0.0.3</version> | |||
| <configuration> | |||
| <mainClass>${mainClass}</mainClass> | |||
| </configuration> | |||
| </plugin> | |||
| </plugins> | |||
| </build> | |||
| </project> | |||
| @@ -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(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,7 @@ | |||
| package id.amigogroup.posterminal; | |||
| public class FormConstanta { | |||
| //daftarkan halaman disini | |||
| public static final String TRANSAKSI = "Transaksi"; | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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(); | |||
| } | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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"); | |||
| } | |||
| } | |||
| @@ -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<Button> navigasi = new ArrayList<>(); | |||
| /** | |||
| * Initializes the controller class. | |||
| */ | |||
| @Override | |||
| public void initialize(URL url, ResourceBundle rb) { | |||
| navigasi.add(btnTunai); | |||
| navigasi.add(btnBawaDulu); | |||
| navigasi.add(btnBon); | |||
| navigasi.add(btnRetur); | |||
| } | |||
| @FXML | |||
| void btnNavigasiOnAction(ActionEvent event) { | |||
| 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; | |||
| } | |||
| for (Button button : navigasi) { | |||
| if (button.equals(buttonSource)) { | |||
| button.getStyleClass().add("button-navigasi-transaksi-selected"); | |||
| } else { | |||
| button.getStyleClass().remove("button-navigasi-transaksi-selected"); | |||
| } | |||
| } | |||
| fldScan.requestFocus(); | |||
| } | |||
| @FXML | |||
| void fldScanOnKeyPressed(KeyEvent event) { | |||
| if(event.getCode() == KeyCode.ENTER){ | |||
| //proses scan | |||
| System.out.println("Scan"); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,18 @@ | |||
| /* | |||
| * 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.util; | |||
| /** | |||
| * | |||
| * @author ronal | |||
| */ | |||
| public class Fucout { | |||
| //STRINGS | |||
| public static final String APP_TITLE = "Pos Terminal"; | |||
| //IMAGES URL | |||
| public static final String APP_ICON = "/assets/logo-mini-squared.png"; | |||
| } | |||
| @@ -0,0 +1,269 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <?import java.lang.String?> | |||
| <?import javafx.geometry.Insets?> | |||
| <?import javafx.scene.control.Button?> | |||
| <?import javafx.scene.control.Label?> | |||
| <?import javafx.scene.control.Separator?> | |||
| <?import javafx.scene.control.TableColumn?> | |||
| <?import javafx.scene.control.TableView?> | |||
| <?import javafx.scene.control.TextField?> | |||
| <?import javafx.scene.image.Image?> | |||
| <?import javafx.scene.image.ImageView?> | |||
| <?import javafx.scene.layout.AnchorPane?> | |||
| <?import javafx.scene.layout.ColumnConstraints?> | |||
| <?import javafx.scene.layout.GridPane?> | |||
| <?import javafx.scene.layout.HBox?> | |||
| <?import javafx.scene.layout.RowConstraints?> | |||
| <?import javafx.scene.layout.StackPane?> | |||
| <?import javafx.scene.text.Font?> | |||
| <?import javafx.scene.text.Text?> | |||
| <AnchorPane id="AnchorPane" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="800.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.pos.FormTransaksiController"> | |||
| <children> | |||
| <Label layoutX="14.0" layoutY="6.0" text="Scan Kode Tas/Kode Barang" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="14.0" /> | |||
| <TextField fx:id="fldScan" layoutX="14.0" layoutY="32.0" onKeyPressed="#fldScanOnKeyPressed" prefHeight="25.0" prefWidth="622.0" promptText="Masukkan kode tas dan kode barang ATAU scan kode tas dan kode barang" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="164.0" AnchorPane.topAnchor="32.0" /> | |||
| <GridPane layoutX="14.0" layoutY="57.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="57.0"> | |||
| <columnConstraints> | |||
| <ColumnConstraints hgrow="SOMETIMES" percentWidth="33.3333" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" percentWidth="33.3333" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" percentWidth="33.3333" /> | |||
| </columnConstraints> | |||
| <rowConstraints> | |||
| <RowConstraints vgrow="SOMETIMES" /> | |||
| </rowConstraints> | |||
| <children> | |||
| <HBox alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="5.0"> | |||
| <children> | |||
| <Label text="Nomor Nota"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label text=": -"> | |||
| <HBox.margin> | |||
| <Insets /> | |||
| </HBox.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| </children> | |||
| <GridPane.margin> | |||
| <Insets top="5.0" /> | |||
| </GridPane.margin> | |||
| </HBox> | |||
| <HBox alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="5.0" GridPane.columnIndex="1"> | |||
| <children> | |||
| <Label text="Tanggal"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label text=": -"> | |||
| <HBox.margin> | |||
| <Insets /> | |||
| </HBox.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| </children> | |||
| <GridPane.margin> | |||
| <Insets top="5.0" /> | |||
| </GridPane.margin> | |||
| </HBox> | |||
| <HBox alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="5.0" GridPane.columnIndex="2"> | |||
| <children> | |||
| <Label text="Kasir"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label text=": -"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| </children> | |||
| <GridPane.margin> | |||
| <Insets top="5.0" /> | |||
| </GridPane.margin> | |||
| </HBox> | |||
| </children> | |||
| </GridPane> | |||
| <Separator layoutY="88.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="88.0" /> | |||
| <Label layoutX="14.0" layoutY="94.0" text="Pelanggan" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="94.0"> | |||
| <font> | |||
| <Font name="System Bold" size="16.0" /> | |||
| </font> | |||
| </Label> | |||
| <HBox alignment="CENTER" layoutX="14.0" layoutY="119.0" prefHeight="80.0" prefWidth="80.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="119.0"> | |||
| <children> | |||
| <ImageView fitHeight="80.0" fitWidth="80.0" pickOnBounds="true" preserveRatio="true"> | |||
| <image> | |||
| <Image url="@../assets/account-circle-gray.png" /> | |||
| </image> | |||
| </ImageView> | |||
| </children> | |||
| </HBox> | |||
| <GridPane layoutX="94.0" layoutY="119.0" prefHeight="80.0" AnchorPane.leftAnchor="94.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="119.0"> | |||
| <columnConstraints> | |||
| <ColumnConstraints hgrow="NEVER" prefWidth="120.0" /> | |||
| <ColumnConstraints hgrow="ALWAYS" maxWidth="250.0" /> | |||
| <ColumnConstraints hgrow="NEVER" prefWidth="120.0" /> | |||
| <ColumnConstraints hgrow="ALWAYS" maxWidth="1.7976931348623157E308" /> | |||
| </columnConstraints> | |||
| <rowConstraints> | |||
| <RowConstraints /> | |||
| <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> | |||
| <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> | |||
| </rowConstraints> | |||
| <children> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="No Member" wrapText="true" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" left="14.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text=": -" GridPane.columnIndex="1" GridPane.rowIndex="1"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Nama Member" wrapText="true" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" left="14.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text=": -" GridPane.columnIndex="1" GridPane.rowIndex="2"> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Tanggal Lahir" wrapText="true" GridPane.columnIndex="2" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets left="5.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text=": -" GridPane.columnIndex="3" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Alamat" wrapText="true" GridPane.columnIndex="2" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets left="5.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| <Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text=": -" GridPane.columnIndex="3" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.0" top="2.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font size="14.0" /> | |||
| </font> | |||
| </Label> | |||
| </children> | |||
| </GridPane> | |||
| <TableView layoutY="199.0" prefHeight="265.0" prefWidth="800.0" tableMenuButtonVisible="true" AnchorPane.bottomAnchor="55.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="199.0"> | |||
| <columns> | |||
| <TableColumn maxWidth="30.0" minWidth="30.0" prefWidth="30.0" resizable="false" text="No" /> | |||
| <TableColumn prefWidth="75.0" text="Kode Barang" /> | |||
| </columns> | |||
| <columnResizePolicy> | |||
| <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> | |||
| </columnResizePolicy> | |||
| </TableView> | |||
| <GridPane layoutY="406.0" prefHeight="55.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> | |||
| <columnConstraints> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="350.0" percentWidth="60.0" /> | |||
| </columnConstraints> | |||
| <rowConstraints> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| <RowConstraints /> | |||
| <RowConstraints /> | |||
| </rowConstraints> | |||
| <children> | |||
| <Button fx:id="btnTunai" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnNavigasiOnAction" text="TUNAI" textAlignment="CENTER" wrapText="true"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="5.0" right="1.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| <styleClass> | |||
| <String fx:value="button-navigasi-transaksi-selected" /> | |||
| <String fx:value="button-navigasi-transaksi" /> | |||
| </styleClass> | |||
| </Button> | |||
| <Button fx:id="btnBawaDulu" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnNavigasiOnAction" styleClass="button-navigasi-transaksi" text="BAWA DULU" textAlignment="CENTER" wrapText="true" GridPane.columnIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="1.0" right="1.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| </Button> | |||
| <Button fx:id="btnBon" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnNavigasiOnAction" styleClass="button-navigasi-transaksi" text="BON" textAlignment="CENTER" wrapText="true" GridPane.columnIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="1.0" right="1.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| </Button> | |||
| <Button fx:id="btnRetur" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnNavigasiOnAction" styleClass="button-navigasi-transaksi" text="RETUR" textAlignment="CENTER" wrapText="true" GridPane.columnIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="1.0" right="5.0" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| </Button> | |||
| <StackPane id="price-background" alignment="CENTER_RIGHT" maxHeight="1.7976931348623157E308" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowSpan="3"> | |||
| <GridPane.margin> | |||
| <Insets /> | |||
| </GridPane.margin> | |||
| <children> | |||
| <Text fx:id="lblGrandTotal" fill="#fbff00" strokeType="OUTSIDE" strokeWidth="0.0" text="Rp99.999.999,00"> | |||
| <font> | |||
| <Font name="System Bold" size="36.0" /> | |||
| </font> | |||
| <StackPane.margin> | |||
| <Insets right="14.0" /> | |||
| </StackPane.margin> | |||
| </Text> | |||
| </children> | |||
| <opaqueInsets> | |||
| <Insets /> | |||
| </opaqueInsets> | |||
| </StackPane> | |||
| </children> | |||
| </GridPane> | |||
| </children> | |||
| </AnchorPane> | |||
| @@ -0,0 +1,204 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <?import javafx.geometry.Insets?> | |||
| <?import javafx.scene.control.Label?> | |||
| <?import javafx.scene.control.ScrollPane?> | |||
| <?import javafx.scene.control.Separator?> | |||
| <?import javafx.scene.image.Image?> | |||
| <?import javafx.scene.image.ImageView?> | |||
| <?import javafx.scene.layout.AnchorPane?> | |||
| <?import javafx.scene.layout.BorderPane?> | |||
| <?import javafx.scene.layout.ColumnConstraints?> | |||
| <?import javafx.scene.layout.GridPane?> | |||
| <?import javafx.scene.layout.HBox?> | |||
| <?import javafx.scene.layout.RowConstraints?> | |||
| <?import javafx.scene.layout.StackPane?> | |||
| <?import javafx.scene.layout.VBox?> | |||
| <?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"> | |||
| <top> | |||
| <AnchorPane id="header" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="750.0"> | |||
| <children> | |||
| <VBox alignment="CENTER" layoutX="14.0" layoutY="22.0" prefWidth="150.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="0.0"> | |||
| <children> | |||
| <ImageView fitHeight="90.0" fitWidth="140.0" pickOnBounds="true" preserveRatio="true"> | |||
| <image> | |||
| <Image url="@../assets/logo.png" /> | |||
| </image> | |||
| </ImageView> | |||
| </children> | |||
| </VBox> | |||
| <GridPane id="shortcut-box" layoutX="153.0" layoutY="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> | |||
| <columnConstraints> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="20.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | |||
| </columnConstraints> | |||
| <rowConstraints> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| </rowConstraints> | |||
| <children> | |||
| <StackPane id="shortcut-background" prefHeight="150.0" prefWidth="200.0" GridPane.columnSpan="5" GridPane.rowSpan="4" /> | |||
| <Label maxWidth="1.7976931348623157E308" text="F1: TUNAI"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="5.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F6: CARI PELANGGAN" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F11: CARI NOTA BAWA" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+F: CARI NOTA TUNAI" GridPane.rowIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F2: BAWA DULU" GridPane.columnIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="5.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F7: FORM TUNDA" GridPane.columnIndex="1" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F12: CARI NOTA RETUR" GridPane.columnIndex="1" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+P: CETAK ULANG" GridPane.columnIndex="1" GridPane.rowIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F3: BON" GridPane.columnIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="5.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F8: CHECK OUT" GridPane.columnIndex="2" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+E: UN/EDIT ITEM" GridPane.columnIndex="2" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+I: KOMISI PER PERIODE" GridPane.columnIndex="2" GridPane.rowIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F4: RETUR" GridPane.columnIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="5.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F9: BON" GridPane.columnIndex="3" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+T: TUNDA TRANSAKSI" GridPane.columnIndex="3" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+L: LOGOUT" GridPane.columnIndex="3" GridPane.rowIndex="3"> | |||
| <GridPane.margin> | |||
| <Insets bottom="5.0" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F5: CARI BARANG" GridPane.columnIndex="4"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="5.0" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="F10: CETAK NOTA" GridPane.columnIndex="4" GridPane.rowIndex="1"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| </Label> | |||
| <Label maxWidth="1.7976931348623157E308" text="CTRL+Q: TAMBAH TAS" GridPane.columnIndex="4" GridPane.rowIndex="2"> | |||
| <GridPane.margin> | |||
| <Insets bottom="2.5" left="5.0" right="5.0" top="2.5" /> | |||
| </GridPane.margin> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| </Label> | |||
| </children> | |||
| </GridPane> | |||
| </children> | |||
| </AnchorPane> | |||
| </top> | |||
| <center> | |||
| <ScrollPane fx:id="spMainContent" fitToHeight="true" fitToWidth="true" /> | |||
| </center> | |||
| <bottom> | |||
| <GridPane BorderPane.alignment="CENTER"> | |||
| <columnConstraints> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="30.0" /> | |||
| <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="70.0" /> | |||
| </columnConstraints> | |||
| <rowConstraints> | |||
| <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> | |||
| </rowConstraints> | |||
| <children> | |||
| <HBox alignment="CENTER_LEFT" maxHeight="1.7976931348623157E308" prefHeight="20.0"> | |||
| <children> | |||
| <Label text="Login: -"> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| <HBox.margin> | |||
| <Insets left="5.0" /> | |||
| </HBox.margin> | |||
| </Label> | |||
| </children> | |||
| </HBox> | |||
| <HBox alignment="CENTER_RIGHT" prefHeight="20.0" GridPane.columnIndex="1"> | |||
| <children> | |||
| <Label text="<0 ITEM>"> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| <HBox.margin> | |||
| <Insets right="28.0" /> | |||
| </HBox.margin> | |||
| </Label> | |||
| <Separator orientation="VERTICAL" prefHeight="200.0"> | |||
| <HBox.margin> | |||
| <Insets right="5.0" /> | |||
| </HBox.margin> | |||
| </Separator> | |||
| <Label text="21/01/2019 11:55:44"> | |||
| <font> | |||
| <Font name="System Bold" size="12.0" /> | |||
| </font> | |||
| <HBox.margin> | |||
| <Insets right="5.0" /> | |||
| </HBox.margin> | |||
| </Label> | |||
| </children> | |||
| </HBox> | |||
| </children> | |||
| </GridPane> | |||
| </bottom> | |||
| </BorderPane> | |||
| @@ -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; | |||
| } | |||