diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8b8c81d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+target/
+dependency-reduced-pom.xml
diff --git a/.vscode/eclipse-formatter.xml b/.vscode/eclipse-formatter.xml
new file mode 100644
index 0000000..f57441a
--- /dev/null
+++ b/.vscode/eclipse-formatter.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..89a04f7
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,7 @@
+{
+ "recommendations": [
+ "vscjava.vscode-java-pack",
+ "vscjava.vscode-maven",
+ "redhat.java"
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..25e126f
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,20 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Run jFxKasse",
+ "request": "launch",
+ "mainClass": "com.jFxKasse.application.JavaFX11Main",
+ "projectName": "jFxKasse",
+ "vmArgs": "--module-path ${env:PATH_TO_FX} --add-modules javafx.controls,javafx.fxml --add-opens javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED"
+ },
+ {
+ "type": "java",
+ "name": "Run jFxKasse (Maven)",
+ "request": "launch",
+ "mainClass": "com.jFxKasse.application.JavaFX11Main",
+ "projectName": "jFxKasse"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..53b3455
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,18 @@
+{
+ "java.project.sourcePaths": [
+ "src/main/java"
+ ],
+ "java.project.outputPath": "target/classes",
+ "java.project.referencedLibraries": [],
+ "java.configuration.updateBuildConfiguration": "automatic",
+ "java.compile.nullAnalysis.mode": "automatic",
+ "editor.formatOnSave": true,
+ "files.encoding": "utf8",
+
+ // Java formatter: point to workspace-local Eclipse formatter profile
+ "java.format.settings.url": ".vscode/eclipse-formatter.xml",
+ "java.format.settings.profile": "jFxKasse",
+ "[java]": {
+ "editor.defaultFormatter": "redhat.java"
+ }
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..6c6b9bf
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,51 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "mvn compile",
+ "type": "shell",
+ "command": "mvn compile",
+ "group": "build",
+ "problemMatcher": [
+ "$javac"
+ ]
+ },
+ {
+ "label": "mvn package",
+ "type": "shell",
+ "command": "mvn package -DskipTests",
+ "group": {
+ "kind": "build",
+ "isDefault": true
+ },
+ "problemMatcher": [
+ "$javac"
+ ]
+ },
+ {
+ "label": "mvn clean",
+ "type": "shell",
+ "command": "mvn clean",
+ "group": "build",
+ "problemMatcher": []
+ },
+ {
+ "label": "mvn javafx:run",
+ "type": "shell",
+ "command": "mvn javafx:run",
+ "group": "build",
+ "problemMatcher": [
+ "$javac"
+ ]
+ },
+ {
+ "label": "mvn test",
+ "type": "shell",
+ "command": "mvn test",
+ "group": "test",
+ "problemMatcher": [
+ "$javac"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index b6ca634..b25b795 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,60 @@
# jFxKasse
-easy payment system for small to middel sized events with a sales slip printer
-Simples Kassensystem für kleine bis mittlere Veranstaltungen mit Bon-Drucker
+Simple POS (Point of Sale) system for small to medium-sized events with receipt printer support.
+
+## Requirements
+
+- Java JDK 21+
+- Maven 3.9+
+- Display >= 1366x768
## Video Tutorials (German | Deutsch)
[YouTube Video: jFxKasse - Kassensystem - Kurzanleitung](https://www.youtube.com/watch?v=DV9DDESw40I)
[YouTube Video: jFxKasse - Kassensystem - Installieren](https://www.youtube.com/watch?v=IY1bqRjwh0Q)
+## Setup (VSCode on openSUSE Tumbleweed)
+
+### 1. Install dependencies
+
+```bash
+sudo zypper install java-21-openjdk java-21-openjdk-devel maven
+```
+
+### 2. Install VSCode extensions
+
+Open the project in VSCode. You will be prompted to install the recommended extensions:
+
+- **Extension Pack for Java** (`vscjava.vscode-java-pack`)
+- **Maven for Java** (`vscjava.vscode-maven`)
+- **Language Support for Java** (`redhat.java`)
+
+### 3. Build & Run
+
+```bash
+# Compile
+mvn compile
+
+# Run via Maven
+mvn javafx:run
+
+# Package as fat JAR
+mvn package
+java -jar target/jFxKasse-shaded.jar
+```
+
+Or use the preconfigured VSCode tasks (`Ctrl+Shift+B`) and launch configurations (`F5`).
+
## Screenshots
-### Main View | Hauptansicht
-
+| Main View | Jobs | Positions | Settings |
+|-----------|------|-----------|----------|
+|  |  |  |  |
-### Jobs | Auftäge
-
+## Hardware
-### Positions | Positionen
-
+Tested with: [Epson TM T20II](https://www.epson.de/products/sd/pos-printer/epson-tm-t20ii). Other receipt printers should work as well.
-### Settings | Einstellungen
-
+## License
-
-## Requirements | Anforderungen
-
-### Software
-
-* Java JRE 11
-* Display/Bildschirm > 1366px X 768px
-* Windoofs, Mac, GNU/Linux (openSuse tested)
-
-### Hardware
-
-I used this printer: [Epson TM T20II](https://www.epson.de/products/sd/pos-printer/epson-tm-t20ii)
-
-Other sales slip printer are possible.
\ No newline at end of file
+GPL-3.0
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 458f967..d890a64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,42 +1,49 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com
jFxKasse
- 0.3.2
+ 0.4.0
jFxKasse
+
+ UTF-8
+ 21
+ 21
+ 21
+ 23.0.1
+
+
- junit
- junit
- 4.12
+ org.junit.jupiter
+ junit-jupiter
+ 6.0.3
test
org.openjfx
javafx-controls
- 11
+ ${javafx.version}
org.openjfx
javafx-fxml
- 11
+ ${javafx.version}
com.jfoenix
jfoenix
- 9.0.8
+ 9.0.10
org.xerial
sqlite-jdbc
- 3.23.1
+ 3.51.2.0
@@ -46,11 +53,11 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
+ 3.15.0
- 11
- 11
-
+ 21
+ 21
+ 21
true
true
@@ -59,7 +66,7 @@
org.codehaus.mojo
exec-maven-plugin
- 1.6.0
+ 3.6.3
@@ -71,17 +78,16 @@
com.jFxKasse.application.Main
-
+
org.apache.maven.plugins
maven-shade-plugin
- 3.2.1
+ 3.6.1
jFxKasse
true
-
+
com.jFxKasse.application.JavaFX11Main
@@ -95,7 +101,16 @@
-
+
+
+ org.openjfx
+ javafx-maven-plugin
+ 0.0.8
+
+ com.jFxKasse.application.JavaFX11Main
+
+
+
-
+
\ No newline at end of file
diff --git a/src/main/java/com/jFxKasse/application/JavaFX11Main.java b/src/main/java/com/jFxKasse/application/JavaFX11Main.java
index 57af2b3..5f24c6a 100644
--- a/src/main/java/com/jFxKasse/application/JavaFX11Main.java
+++ b/src/main/java/com/jFxKasse/application/JavaFX11Main.java
@@ -1,12 +1,8 @@
package com.jFxKasse.application;
-import com.jFxKasse.application.Main;
+public class JavaFX11Main {
-public class JavaFX11Main
-{
-
- public static void main(String[] args)
- {
- Main.main(args);
+ public static void main(String[] args) {
+ Main.main(args);
}
}
diff --git a/src/main/java/com/jFxKasse/application/Main.java b/src/main/java/com/jFxKasse/application/Main.java
index 3044e0a..4df91f9 100644
--- a/src/main/java/com/jFxKasse/application/Main.java
+++ b/src/main/java/com/jFxKasse/application/Main.java
@@ -1,129 +1,153 @@
-package com.jFxKasse.application;
-
-import javafx.application.Application;
-import javafx.event.EventHandler;
-
-import java.io.File;
-import javafx.animation.Animation;
-import javafx.animation.KeyFrame;
-import javafx.animation.Timeline;
-import javafx.fxml.FXMLLoader;
-import javafx.stage.Stage;
-import javafx.util.Duration;
-import com.jFxKasse.controller.MainWindowController;
-import com.jFxKasse.controller.PrinterController;
-import com.jFxKasse.controller.XMLController;
-import com.jFxKasse.controller.DBController;
-import com.jFxKasse.controller.KeyController;
-
-import javafx.scene.Scene;
-import javafx.scene.input.KeyEvent;
-import javafx.scene.layout.AnchorPane;
-
-public class Main extends Application
-{
- // path to config.xml and the database
- public static String filepath;
-
- private static String osName = System.getProperty("os.name");
-
- private static String userHome = System.getProperty("user.home");
-
- private MainWindowController mwc;
-
- private XMLController xmlc = new XMLController(filepath);
-
- private DBController dbc = new DBController(filepath);
-
- private PrinterController pc = new PrinterController();
-
- private KeyController kc;
-
- private Stage primaryStage;
-
- @Override
- public void start(Stage primaryStage)
- {
- this.primaryStage = primaryStage;
- System.out.println("\nstarting jFxKasse\n");
- mainWindow();
- }
-
- private void mainWindow()
- {
- try {
- FXMLLoader loader = new FXMLLoader(
- getClass().getResource("/fxml/MainWindow.fxml"));
-
- AnchorPane pane = loader.load();
- primaryStage.setTitle("jFxKasse"); // Title of window
-
- mwc = loader.getController(); // set the mwc as the JavaFx
- // MainWindowController
- pc.searchPrinters(); // search for available printers
- mwc.setMain(this, dbc, xmlc, pc); // set the created instances to the
- // mwc
-
- firstStart(); // test if this is the first run
-
- Scene scene = new Scene(pane);
- scene.getStylesheets().add(
- Main.class.getResource("/css/application.css").toExternalForm());
- primaryStage.setScene(scene);
- primaryStage.show(); // shows the stage
-
- //attach the KeyController
- kc = new KeyController(scene, mwc);
-
- Timeline timeline = new Timeline(
- new KeyFrame(Duration.seconds(1), ev -> {
- mwc.updateTimeLabel(); // update time label on UI
- }));
- timeline.setCycleCount(Animation.INDEFINITE);
- timeline.play();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args)
- {
- if (osName.contains("Windows")) {
- System.out.println("FCK Windows");
- filepath = userHome + "/Documents/jFxKasse/";
- } else {
- filepath = userHome + "/jFxKasse/";
- }
- launch(args);
- }
-
- /**
- * Checks if the config.xml is preset.
- */
- private void firstStart() throws Exception
- {
- if (xmlc.loadSettings()) {
- // config.xml found, app starting normal
- System.out.println("XML found!");
- mwc.initUI(); // Starting the UI elements
- mwc.setDBLabel(); // Set database labels
- dbc.setDbname(xmlc.getDatabaseName()); // handover database name
- dbc.connectDatabase(); // estabishing DB conection
- mwc.fillTablePositionen(); // fill TreeTable 'Positionen'
- mwc.fillCategory();
- mwc.fillPrinterSettings();
- mwc.fillTableJobs();
- mwc.loadGridButtons();
- mwc.getSelectedCat(); // Load DB entries in Chois Box
- mwc.createNewJob();
- } else {
- // config.xml NOT found, first start of app
- System.out.println("no XML found!");
- xmlc.initXML(); // set default values
- mwc.blockUI(true); // disable UI elements that need DB
- mwc.blockUnlock();
- File dir = new File(filepath);
- dir.mkdir(); // Create new Subfolder
- }
- }
-}
+package com.jFxKasse.application;
+
+import com.jFxKasse.controller.MainWindowController;
+import com.jFxKasse.controller.PrinterController;
+import com.jFxKasse.controller.XMLController;
+import com.jFxKasse.controller.DBController;
+import com.jFxKasse.controller.KeyController;
+
+import javafx.application.Application;
+import java.io.File;
+import javafx.animation.Animation;
+import javafx.animation.KeyFrame;
+import javafx.animation.Timeline;
+import javafx.fxml.FXMLLoader;
+import javafx.stage.Stage;
+import javafx.util.Duration;
+import javafx.scene.Scene;
+import javafx.scene.layout.AnchorPane;
+
+public class Main extends Application {
+ // Path to config.xml and the database
+ public static String filepath;
+
+ private static String osName = System.getProperty("os.name");
+
+ private static String userHome = System.getProperty("user.home");
+
+ private MainWindowController mwc;
+
+ // Initialized in start() after filepath is set by main()
+ private XMLController xmlc;
+
+ private DBController dbc;
+
+ private PrinterController pc = new PrinterController();
+
+ private KeyController kc;
+
+ private Stage primaryStage;
+
+ @Override
+ public void start(Stage primaryStage) {
+ this.primaryStage = primaryStage;
+ // filepath is set by main() before launch(); initialize controllers here
+ xmlc = new XMLController(filepath);
+ dbc = new DBController(filepath);
+ System.out.println("\nstarting jFxKasse\n");
+ mainWindow();
+ }
+
+ private void mainWindow() {
+ try {
+ FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/MainWindow.fxml"));
+
+ AnchorPane pane = loader.load();
+ primaryStage.setTitle("jFxKasse"); // Window title
+
+ mwc = loader.getController(); // Set the MainWindowController
+ pc.searchPrinters(); // Search for available printers
+ mwc.setMain(this, dbc, xmlc, pc); // Pass instances to the controller
+
+ firstStart(); // Check if this is the first run
+
+ Scene scene = new Scene(pane);
+ scene.getStylesheets().add(Main.class.getResource("/css/application.css").toExternalForm());
+ primaryStage.setScene(scene);
+ primaryStage.show(); // Show the stage
+
+ // Attach the KeyController
+ kc = new KeyController(scene, mwc);
+
+ Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(1), ev -> {
+ mwc.updateTimeLabel(); // Update time label on UI
+ }));
+ timeline.setCycleCount(Animation.INDEFINITE);
+ timeline.play();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args) {
+ if (osName.contains("Windows")) {
+ System.out.println("FCK Windows");
+ filepath = userHome + "/Documents/jFxKasse/";
+ }
+ else {
+ filepath = userHome + "/jFxKasse/";
+ }
+ launch(args);
+ }
+
+ /**
+ * Checks if the config.xml is present and initializes accordingly.
+ */
+ private void firstStart() throws Exception {
+ if (xmlc.loadSettings()) {
+ // config.xml found, app starting normally
+ System.out.println("XML found!");
+ mwc.initUI(); // Initialize the UI elements
+ mwc.setDBLabel(); // Set database labels
+ dbc.setDbname(xmlc.getDatabaseName()); // Pass database name
+ try {
+ dbc.connectDatabase(); // Establish DB connection
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ showErrorDialog("Datenbankfehler", "Die Datenbank konnte nicht geöffnet werden.",
+ "Datei: " + xmlc.getDatabaseName() + ".db\n\n"
+ + "Bitte prüfen Sie, ob die Datei vorhanden und nicht beschädigt ist.\n"
+ + "Fehlermeldung: " + e.getMessage());
+ return;
+ }
+ mwc.fillTablePositionen(); // Fill TreeTable 'Positions'
+ mwc.fillCategory();
+ mwc.fillPrinterSettings();
+ mwc.fillTableJobs();
+ mwc.loadGridButtons();
+ mwc.getSelectedCat(); // Load DB entries in ChoiceBox
+ mwc.createNewJob();
+ }
+ else {
+ // config.xml NOT found — first start of app
+ System.out.println("no XML found!");
+ xmlc.initXML(); // Set default values in memory
+ File dir = new File(filepath);
+ dir.mkdir(); // Create config directory
+ try {
+ xmlc.saveSettings(); // Persist defaults immediately so next start is normal
+ System.out.println("Default config.xml written.");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ showErrorDialog("Konfigurationsfehler", "Die Konfigurationsdatei konnte nicht geschrieben werden.",
+ "Pfad: " + filepath + "config.xml\n\n" + "Bitte prüfen Sie die Schreibrechte.\n"
+ + "Fehlermeldung: " + e.getMessage());
+ }
+ mwc.blockUI(true); // Disable UI elements that need a DB
+ mwc.blockUnlock(); // Show first-start hint, disable lock button
+ }
+ }
+
+ /** Shows a modal error alert dialog on the JavaFX thread. */
+ private void showErrorDialog(String title, String header, String content) {
+ javafx.scene.control.Alert alert = new javafx.scene.control.Alert(javafx.scene.control.Alert.AlertType.ERROR);
+ alert.setTitle(title);
+ alert.setHeaderText(header);
+ alert.setContentText(content);
+ alert.setResizable(true);
+ alert.showAndWait();
+ }
+}
diff --git a/src/main/java/com/jFxKasse/application/PrintJob.java b/src/main/java/com/jFxKasse/application/PrintJob.java
index 95b0dcf..2fa792a 100644
--- a/src/main/java/com/jFxKasse/application/PrintJob.java
+++ b/src/main/java/com/jFxKasse/application/PrintJob.java
@@ -16,25 +16,20 @@ import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.util.Pair;
-public class PrintJob
-{
+public class PrintJob {
private TimeDate timedate = new TimeDate();
- public void printJob(int jobID, XMLController xmlc, DBController dbc,
- PrinterController pc)
- {
+ public void printJob(int jobID, XMLController xmlc, DBController dbc, PrinterController pc) {
- if ((xmlc.getPrintername().equals("Drucker auswählen")
- || xmlc.getPrintername() == null)) {
- // no printer selected
- System.out.println("Kein Drucker eingestellt!!!");
+ if ((xmlc.getPrintername().equals("Drucker auswählen") || xmlc.getPrintername() == null)) {
+ // No printer selected
+ System.out.println("No printer configured!");
// creates a dialog
Dialog> dialog = new Dialog<>();
dialog.setTitle("Kein Drucker");
- dialog.setHeaderText("Es ist kein Drucker einestellt.\n"
- + "In den Einstellungen einen Drucker auswählen.");
+ dialog.setHeaderText("Es ist kein Drucker einestellt.\n" + "In den Einstellungen einen Drucker auswählen.");
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK);
@@ -43,30 +38,29 @@ public class PrintJob
grid.setVgap(10);
grid.setPadding(new Insets(20, 150, 10, 10));
- grid.add(new Label("Tipp:\n"
- + "Es kann ein virtueller Drucker installiert werden: \n\n"
- + "www.cups-pdf.de"), 0, 0);
+ grid.add(
+ new Label(
+ "Tipp:\n" + "Es kann ein virtueller Drucker installiert werden: \n\n" + "www.cups-pdf.de"),
+ 0, 0);
dialog.getDialogPane().setContent(grid);
dialog.setResizable(true);
dialog.showAndWait();
- } else {
- // printer selected
+ }
+ else {
+ // Printer selected
pc.selectPrinter(xmlc.getPrintername());
- /* Single bill or splitted */
+ /* Single bill or split by category */
if (xmlc.getCategorySplitted()) {
- // split the bills
+ // Split the bills
- PrintDataSplitted pdsplitted = new PrintDataSplitted(
- xmlc.getLinebreak(), xmlc.getOffsetHeader(),
- xmlc.getOffsetFooter(),
- timedate.getSystemTime() + " " + timedate.getSystemDate(),
+ PrintDataSplitted pdsplitted = new PrintDataSplitted(xmlc.getLinebreak(), xmlc.getOffsetHeader(),
+ xmlc.getOffsetFooter(), timedate.getSystemTime() + " " + timedate.getSystemDate(),
xmlc.getHeader(), xmlc.getFooter());
- pdsplitted.setData(Integer.toString(jobID), dbc.getTime_Job(jobID),
- dbc.getQuantity_Job(jobID), dbc.getName_Job(jobID),
- dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID),
+ pdsplitted.setData(Integer.toString(jobID), dbc.getTime_Job(jobID), dbc.getQuantity_Job(jobID),
+ dbc.getName_Job(jobID), dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID),
dbc.getJobValue_Job(jobID));
System.out.println("Printing job ...");
@@ -77,16 +71,15 @@ public class PrintJob
pc.printString(printString.get(i));
}
- } else {
- // one single bills
- PrintDataSimple pds = new PrintDataSimple(xmlc.getLinebreak(),
- xmlc.getOffsetHeader(), xmlc.getOffsetFooter(),
- timedate.getSystemTime() + " " + timedate.getSystemDate(),
+ }
+ else {
+ // Single bill
+ PrintDataSimple pds = new PrintDataSimple(xmlc.getLinebreak(), xmlc.getOffsetHeader(),
+ xmlc.getOffsetFooter(), timedate.getSystemTime() + " " + timedate.getSystemDate(),
xmlc.getHeader(), xmlc.getFooter());
- pds.setData(Integer.toString(jobID), dbc.getTime_Job(jobID),
- dbc.getQuantity_Job(jobID), dbc.getName_Job(jobID),
- dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID),
+ pds.setData(Integer.toString(jobID), dbc.getTime_Job(jobID), dbc.getQuantity_Job(jobID),
+ dbc.getName_Job(jobID), dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID),
dbc.getJobValue_Job(jobID));
System.out.println("Printing job ...");
pc.printString(pds.getPrintString());
diff --git a/src/main/java/com/jFxKasse/application/TimeDate.java b/src/main/java/com/jFxKasse/application/TimeDate.java
index 4aa49bc..ac488de 100644
--- a/src/main/java/com/jFxKasse/application/TimeDate.java
+++ b/src/main/java/com/jFxKasse/application/TimeDate.java
@@ -4,18 +4,15 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-public class TimeDate
-{
- public String getSystemTime()
- {
+public class TimeDate {
+ public String getSystemTime() {
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date date = new Date();
String time = dateFormat.format(date);
return time;
}
- public String getSystemDate()
- {
+ public String getSystemDate() {
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Date date = new Date();
String dateStr = dateFormat.format(date);
diff --git a/src/main/java/com/jFxKasse/controller/DBController.java b/src/main/java/com/jFxKasse/controller/DBController.java
index ee276cc..e7a0ffc 100644
--- a/src/main/java/com/jFxKasse/controller/DBController.java
+++ b/src/main/java/com/jFxKasse/controller/DBController.java
@@ -11,83 +11,77 @@ import com.jFxKasse.datatypes.tableDataJob;
import com.jFxKasse.datatypes.tableDataPositionen;
import java.io.File;
-public class DBController
-{
+public class DBController {
private Connection connection;
private String DB_PATH;
private String dbname;
- public void main()
- {
+ public void main() {
try {
- connection = DriverManager
- .getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
- } catch (SQLException e) {
+ connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
+ }
+ catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
- public DBController(String path)
- {
+ public DBController(String path) {
this.DB_PATH = path;
}
- public void setDbname(String dbname)
- {
+ public void setDbname(String dbname) {
this.dbname = dbname;
}
- public void connectDatabase()
- { // connect to database
+ public void connectDatabase() { // Connect to database
System.out.println("Connecting... DB name: " + dbname);
try {
if (connection != null)
return;
- connection = DriverManager
- .getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
+ connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
if (!connection.isClosed())
System.out.println("DB connection established");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
throw new RuntimeException(e);
}
Runtime.getRuntime().addShutdownHook(new Thread() {
- public void run()
- {
+ public void run() {
try {
if (!connection.isClosed() && connection != null) {
connection.close();
if (connection.isClosed())
System.out.println();
}
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
e.printStackTrace();
}
}
});
}
- public boolean existDB(String pPfad)
- { // does the DB exists?
+ public boolean existDB(String pPfad) { // Check if the DB exists
File varTmpDir = new File(pPfad);
if (!varTmpDir.exists()) {
return false;
- } else {
+ }
+ else {
return true;
}
}
- public String getCategoryNameFromPositionen(int pID)
- {
+ public String getCategoryNameFromPositionen(int pID) {
int catInPos = 0;
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT posid, cat FROM positionen "
- + "WHERE posid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT posid, cat FROM positionen " + "WHERE posid = " + pID + ";");
catInPos = rs.getInt("cat");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
@@ -97,10 +91,11 @@ public class DBController
}
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT catid, catname FROM category "
- + "WHERE catid = " + catInPos + ";");
+ ResultSet rs = stmt
+ .executeQuery("SELECT catid, catname FROM category " + "WHERE catid = " + catInPos + ";");
return rs.getString("catname");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "keine Kategorie";
@@ -108,34 +103,31 @@ public class DBController
}
- // table Position section //
- public void createTablePositionen()
- { // create table position
+ // Table 'Positionen' section //
+ public void createTablePositionen() { // Create table 'positionen'
System.out.println("Creating table Positionen");
try {
Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS positionen;");
- stmt.executeUpdate(
- "CREATE TABLE positionen (posid, name, value, cat, color);");
- } catch (SQLException e) {
+ stmt.executeUpdate("CREATE TABLE positionen (posid, name, value, cat, color);");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
- // create 25 demo/default data entries
+ // Create 25 demo/default data entries
for (int i = 0; i < 25; i++) {
- fillPositionen_Positionen(i + 1, "Noch frei", (float) 0.00, 6,
- "#ad0000");
+ fillPositionen_Positionen(i + 1, "Noch frei", (float) 0.00, 6, "#ad0000");
}
}
- public void fillPositionen_Positionen(int pID, String pName, float pValue,
- int pCat, String pColor)
- { // create new data in table
+ public void fillPositionen_Positionen(int pID, String pName, float pValue, int pCat, String pColor) { // Create new
+ // entry in
+ // table
System.out.println("Creating new positionen entry");
try {
- PreparedStatement ps = connection.prepareStatement(
- "INSERT INTO positionen VALUES (?, ?, ?, ?, ?);");
+ PreparedStatement ps = connection.prepareStatement("INSERT INTO positionen VALUES (?, ?, ?, ?, ?);");
ps.setInt(1, pID); // primary
ps.setString(2, pName);
ps.setFloat(3, pValue);
@@ -146,144 +138,134 @@ public class DBController
connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution
connection.setAutoCommit(true);
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public String getName_Positionen(int pID)
- {
+ public String getName_Positionen(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT posid, name FROM positionen WHERE posid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT posid, name FROM positionen WHERE posid = " + pID + ";");
return rs.getString("name");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "Error 404";
}
}
- public String getValue_Positionen(int pID)
- {
+ public String getValue_Positionen(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT posid, value FROM positionen WHERE posid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT posid, value FROM positionen WHERE posid = " + pID + ";");
return rs.getString("value");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "Error 404";
}
}
- public int getCat_Positionen(int pID)
- {
+ public int getCat_Positionen(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT catid, cat FROM positionen WHERE catid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT catid, cat FROM positionen WHERE catid = " + pID + ";");
System.out.println("getCarTet: " + rs.getInt("cat"));
return rs.getInt("cat");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return 0;
}
}
- public String getColor_Positionen(int pID)
- {
+ public String getColor_Positionen(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT posid, color FROM positionen WHERE posid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT posid, color FROM positionen WHERE posid = " + pID + ";");
return rs.getString("color");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "Error 404";
}
}
- public void setName_Positionen(int pID, String pName)
- {
+ public void setName_Positionen(int pID, String pName) {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE positionen SET name = '" + pName
- + "'WHERE posid =" + pID + ";");
- } catch (SQLException e) {
+ stmt.executeUpdate("UPDATE positionen SET name = '" + pName + "'WHERE posid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public void setValue_Positionen(int pID, String pValue)
- {
+ public void setValue_Positionen(int pID, String pValue) {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE positionen SET value = '" + pValue
- + "'WHERE posid =" + pID + ";");
- } catch (SQLException e) {
+ stmt.executeUpdate("UPDATE positionen SET value = '" + pValue + "'WHERE posid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public void setCat_Positionen(int pID, int pCat)
- {
+ public void setCat_Positionen(int pID, int pCat) {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE positionen SET cat = '" + pCat
- + "'WHERE posid =" + pID + ";");
- } catch (SQLException e) {
+ stmt.executeUpdate("UPDATE positionen SET cat = '" + pCat + "'WHERE posid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public void setColor_Positionen(int pID, String pColor)
- {
+ public void setColor_Positionen(int pID, String pColor) {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE positionen SET color = '" + pColor
- + "'WHERE posid =" + pID + ";");
- } catch (SQLException e) {
+ stmt.executeUpdate("UPDATE positionen SET color = '" + pColor + "'WHERE posid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public ArrayList ladeTabellePositionen()
- {
+ public ArrayList ladeTabellePositionen() {
ArrayList daten = new ArrayList<>();
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM positionen;");
while (rs.next()) {
try {
- daten.add(new tableDataPositionen(rs.getInt("posid"),
- rs.getString("name"), rs.getString("value"),
+ daten.add(new tableDataPositionen(rs.getInt("posid"), rs.getString("name"), rs.getString("value"),
rs.getString("cat"), rs.getString("color")));
- } catch (Exception e) {
+ }
+ catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
return daten;
}
- public void ausgebenSysoPositionen()
- {
+ public void ausgebenSysoPositionen() {
System.out.println("Print positionen");
try {
Statement stmt = connection.createStatement();
@@ -296,21 +278,22 @@ public class DBController
System.out.println(" ");
}
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- // table Category section //
- public void createTableCategory()
- { // create table position
- System.out.println("Erstelle Tabelle Kategorie");
+ // Table 'Category' section //
+ public void createTableCategory() { // Create table 'category'
+ System.out.println("Creating table Category");
try {
Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS category;");
stmt.executeUpdate("CREATE TABLE category (catid, catname);");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
@@ -323,76 +306,71 @@ public class DBController
}
- public void setName_Category(int pID, String pName)
- {
+ public void setName_Category(int pID, String pName) {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE category SET catname = '" + pName
- + "'WHERE catid =" + pID + ";");
- } catch (SQLException e) {
+ stmt.executeUpdate("UPDATE category SET catname = '" + pName + "'WHERE catid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public void fillCategory_Category(int pID, String pName)
- {
+ public void fillCategory_Category(int pID, String pName) {
- System.out.println("Erstelle neuen Kategorie Eintrag");
+ System.out.println("Creating new category entry");
try {
- PreparedStatement ps = connection
- .prepareStatement("INSERT INTO category VALUES (?, ?);");
+ PreparedStatement ps = connection.prepareStatement("INSERT INTO category VALUES (?, ?);");
ps.setInt(1, pID); // primary
ps.setString(2, pName);
ps.addBatch();
connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution
connection.setAutoCommit(true);
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public String getName_Category(int pID)
- {
+ public String getName_Category(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT catid, catname FROM category WHERE catid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT catid, catname FROM category WHERE catid = " + pID + ";");
return rs.getString("catname");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "Error 404";
}
}
- // table Jobs section //
- public void erstelleTabelleJobs()
- { // create table jobs
+ // Table 'Jobs' section //
+ public void erstelleTabelleJobs() { // Create table 'jobs'
System.out.println("Creating table Jobs");
try {
Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS jobs;");
stmt.executeUpdate(
"CREATE TABLE jobs (jobid, time, positionen_quantity, positionen_name, positionen_value, positionen_cat, state, jobvalue);");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public int getLatestJobNumber_Job()
- {
+ public int getLatestJobNumber_Job() {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid from jobs ORDER BY jobid DESC LIMIT 1;");
+ ResultSet rs = stmt.executeQuery("SELECT jobid from jobs ORDER BY jobid DESC LIMIT 1;");
return rs.getInt("jobid");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
// System.err.println("Couldn't handle DB-Query");
// e.printStackTrace();
@@ -400,152 +378,138 @@ public class DBController
return 0;
}
- public String getTime_Job(int pID)
- {
+ public String getTime_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, time FROM jobs WHERE jobid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, time FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("time");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getQuantity_Job(int pID)
- {
+ public String getQuantity_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, positionen_quantity FROM jobs WHERE jobid = "
- + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_quantity FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("positionen_quantity");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getName_Job(int pID)
- {
+ public String getName_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, positionen_name FROM jobs WHERE jobid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_name FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("positionen_name");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getValue_Job(int pID)
- {
+ public String getValue_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, positionen_value FROM jobs WHERE jobid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_value FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("positionen_value");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getCategory_Job(int pID)
- {
+ public String getCategory_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, positionen_cat FROM jobs WHERE jobid = " + pID
- + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_cat FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("positionen_cat");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getState_Job(int pID)
- {
+ public String getState_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, state FROM jobs WHERE jobid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, state FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("state");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getJobValue_Job(int pID)
- {
+ public String getJobValue_Job(int pID) {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT jobid, jobvalue FROM jobs WHERE jobid = " + pID + ";");
+ ResultSet rs = stmt.executeQuery("SELECT jobid, jobvalue FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("jobvalue");
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "404";
}
}
- public String getAllJobValue_Job()
- {
+ public String getAllJobValue_Job() {
try {
Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT state, jobvalue, SUM(jobvalue) AS ALLVALUE FROM jobs WHERE state = "
- + '"' + "verbucht" + '"' + ";");
- return rs.getString("ALLVALUE");
- } catch (SQLException e) {
- System.err.println("Couldn't handle DB-Query");
- e.printStackTrace();
- return "0";
- }
- }
-
- public String getJobCount()
- {
- try {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(
- "SELECT count(*) AS JOBCOUNT FROM jobs WHERE state = " + '"'
+ ResultSet rs = stmt
+ .executeQuery("SELECT state, jobvalue, SUM(jobvalue) AS ALLVALUE FROM jobs WHERE state = " + '"'
+ "verbucht" + '"' + ";");
- return rs.getString("JOBCOUNT");
- } catch (SQLException e) {
+ return rs.getString("ALLVALUE");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
return "0";
}
}
- public void setStatus_Jobs(int pID, String pStatus)
- {
+ public String getJobCount() {
try {
Statement stmt = connection.createStatement();
- stmt.executeUpdate("UPDATE jobs SET state = '" + pStatus
- + "'WHERE jobid =" + pID + ";");
- } catch (SQLException e) {
+ ResultSet rs = stmt.executeQuery(
+ "SELECT count(*) AS JOBCOUNT FROM jobs WHERE state = " + '"' + "verbucht" + '"' + ";");
+ return rs.getString("JOBCOUNT");
+ }
+ catch (SQLException e) {
+ System.err.println("Couldn't handle DB-Query");
+ e.printStackTrace();
+ return "0";
+ }
+ }
+
+ public void setStatus_Jobs(int pID, String pStatus) {
+ try {
+ Statement stmt = connection.createStatement();
+ stmt.executeUpdate("UPDATE jobs SET state = '" + pStatus + "'WHERE jobid =" + pID + ";");
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- public ArrayList loadTableJobs_Job()
- {
+ public ArrayList loadTableJobs_Job() {
ArrayList tmp = new ArrayList();
try {
@@ -557,31 +521,29 @@ public class DBController
String tablePosition = rs.getString("positionen_name");
- tableDataJob data = new tableDataJob(rs.getInt("jobid"),
- rs.getString("time"), tablePosition, rs.getString("state"),
- rs.getString("jobvalue"));
+ tableDataJob data = new tableDataJob(rs.getInt("jobid"), rs.getString("time"), tablePosition,
+ rs.getString("state"), rs.getString("jobvalue"));
tmp.add(data);
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
}
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
return tmp;
}
- public void fillJobs_Jobs(int pID, String pTime, String pPositionen_quantity,
- String pPositionen_name, String pPositionen_value,
- String pPositionen_cat, String pState, String pJobvalue)
- {
- System.out.println("Create new Job Entry");
+ public void fillJobs_Jobs(int pID, String pTime, String pPositionen_quantity, String pPositionen_name,
+ String pPositionen_value, String pPositionen_cat, String pState, String pJobvalue) {
+ System.out.println("Creating new job entry");
try {
- PreparedStatement ps = connection.prepareStatement(
- "INSERT INTO jobs VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
+ PreparedStatement ps = connection.prepareStatement("INSERT INTO jobs VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
ps.setInt(1, pID); // primary
ps.setString(2, pTime);
ps.setString(3, pPositionen_quantity);
@@ -594,7 +556,8 @@ public class DBController
connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution
connection.setAutoCommit(true);
- } catch (SQLException e) {
+ }
+ catch (SQLException e) {
System.err.println("Couldn't handle DB-Query");
e.printStackTrace();
}
diff --git a/src/main/java/com/jFxKasse/controller/KeyController.java b/src/main/java/com/jFxKasse/controller/KeyController.java
index 6fc67c6..6dfd8ca 100644
--- a/src/main/java/com/jFxKasse/controller/KeyController.java
+++ b/src/main/java/com/jFxKasse/controller/KeyController.java
@@ -5,18 +5,15 @@ import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
-public class KeyController
-{
+public class KeyController {
private MainWindowController mwc;
- public KeyController(Scene scene, MainWindowController mwc)
- {
+ public KeyController(Scene scene, MainWindowController mwc) {
this.mwc = mwc;
scene.setOnKeyPressed(new EventHandler() {
@Override
- public void handle(KeyEvent keyEvent)
- {
+ public void handle(KeyEvent keyEvent) {
switch (mwc.getActiveTab()) {
case 0:
handleTabNewJob(keyEvent);
@@ -42,10 +39,8 @@ public class KeyController
}
- private void handleTabNewJob(KeyEvent key)
- {
- if ((key.getCode() == KeyCode.ENTER)
- && (!mwc.btnPrintBill.isDisabled())) {
+ private void handleTabNewJob(KeyEvent key) {
+ if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnPrintBill.isDisabled())) {
mwc.btnPrintBillAction(null);
}
@@ -53,8 +48,7 @@ public class KeyController
mwc.btnLockAction(null);
}
- if ((key.getCode() == KeyCode.DELETE)
- && (!mwc.btnDeleteSelectedPosition.isDisabled())) {
+ if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnDeleteSelectedPosition.isDisabled())) {
mwc.btnDeleteSelectedPositionAction(null);
}
@@ -62,15 +56,12 @@ public class KeyController
}
- private void handleTabJobs(KeyEvent key)
- {
- if ((key.getCode() == KeyCode.ENTER)
- && (!mwc.btnReprintJob.isDisabled())) {
+ private void handleTabJobs(KeyEvent key) {
+ if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnReprintJob.isDisabled())) {
mwc.btnReprintJobAction(null);
}
- if ((key.getCode() == KeyCode.DELETE)
- && (!mwc.btnCancelJob.isDisabled())) {
+ if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnCancelJob.isDisabled())) {
mwc.btnCancelJobAction(null);
}
@@ -79,23 +70,18 @@ public class KeyController
}
}
- private void handleTabPosEdit(KeyEvent key)
- {
- if ((key.getCode() == KeyCode.ENTER)
- && (!mwc.btnSaveEntry.isDisabled())) {
+ private void handleTabPosEdit(KeyEvent key) {
+ if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnSaveEntry.isDisabled())) {
mwc.btnSaveEntryAction(null);
}
- if ((key.getCode() == KeyCode.DELETE)
- && (!mwc.btnClearEntry.isDisabled())) {
+ if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnClearEntry.isDisabled())) {
mwc.btnClearEntryAction(null);
}
}
- private void handleTabSettings(KeyEvent key)
- {
- if ((key.getCode() == KeyCode.ENTER)
- && (!mwc.btnSavePrinter.isDisabled())) {
+ private void handleTabSettings(KeyEvent key) {
+ if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnSavePrinter.isDisabled())) {
mwc.btnSavePrinterAction(null);
}
@@ -103,18 +89,17 @@ public class KeyController
mwc.btnSaveCatAction(null);
}
- if ((key.getCode() == KeyCode.ENTER)
- && (!mwc.btnCreateNewDatabase.isDisabled())) {
+ if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnCreateNewDatabase.isDisabled())) {
try {
mwc.btnCreateNewDatabaseAction(null);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
e.printStackTrace();
}
}
}
- void handelGridButtons(KeyEvent key)
- {
+ void handelGridButtons(KeyEvent key) {
switch (key.getCode()) {
case Q:
diff --git a/src/main/java/com/jFxKasse/controller/MainWindowController.java b/src/main/java/com/jFxKasse/controller/MainWindowController.java
index 7f062e1..140050b 100644
--- a/src/main/java/com/jFxKasse/controller/MainWindowController.java
+++ b/src/main/java/com/jFxKasse/controller/MainWindowController.java
@@ -1,1504 +1,1432 @@
-package com.jFxKasse.controller;
-
-import javafx.fxml.FXML;
-import javafx.geometry.Insets;
-import javafx.scene.control.Button;
-import javafx.scene.control.ButtonType;
-import javafx.scene.control.Dialog;
-import javafx.scene.control.TreeTableColumn;
-import javafx.scene.control.TreeTableView;
-import javafx.scene.control.TextField;
-import javafx.scene.control.TreeItem;
-import javafx.scene.control.TitledPane;
-import javafx.scene.control.Tooltip;
-import javafx.scene.control.ChoiceBox;
-
-import java.awt.Desktop;
-import java.io.File;
-import java.io.IOException;
-import com.jfoenix.controls.JFXTextField;
-import com.jfoenix.controls.JFXToggleButton;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
-import javafx.event.ActionEvent;
-import javafx.scene.control.Label;
-import javafx.scene.control.Spinner;
-import javafx.scene.control.SpinnerValueFactory;
-import javafx.scene.control.Tab;
-import javafx.scene.layout.AnchorPane;
-import javafx.scene.layout.GridPane;
-import javafx.util.Pair;
-import com.jFxKasse.application.Main;
-import com.jFxKasse.application.PrintJob;
-import com.jFxKasse.application.TimeDate;
-import com.jFxKasse.datatypes.Job;
-import com.jFxKasse.datatypes.tableDataCurrentOrder;
-import com.jFxKasse.datatypes.tableDataJob;
-import com.jFxKasse.datatypes.tableDataPositionen;
-
-public class MainWindowController
-{
- @FXML
- private AnchorPane mainAnchorpane;
-
- @FXML
- private AnchorPane paneDB;
-
- @FXML
- private Tab tapNewJob;
-
- @FXML
- private Tab tapJobs;
-
- @FXML
- private Tab tapPosEdit;
-
- @FXML
- private Tab tapSettings;
-
- @FXML
- private TreeTableView tableCurrentOrder;
-
- @FXML
- private TreeTableColumn columnQuantity;
-
- @FXML
- private TreeTableColumn columnPosition;
-
- @FXML
- private TreeTableColumn idSpalte01 = new TreeTableColumn<>(
- "tableCurrentOrder");
-
- @FXML
- private TreeTableView jobsTreeTable;
-
- @FXML
- private TreeTableColumn columnJobValue;
-
- @FXML
- private TreeTableColumn columnState;
-
- @FXML
- private TreeTableColumn columnPositions;
-
- @FXML
- private TreeTableColumn columnTime;
-
- @FXML
- private TreeTableColumn columnJobNumber;
-
- @FXML
- private TreeTableColumn idSpalte02 = new TreeTableColumn<>(
- "jobsTreeTable");
-
- @FXML
- private TreeTableView entryTreeTable;
-
- @FXML
- private TreeTableColumn columnColor;
-
- @FXML
- private TreeTableColumn columnCat;
-
- @FXML
- private TreeTableColumn columnPrize;
-
- @FXML
- private TreeTableColumn columnPositionsEdit;
-
- @FXML
- private TreeTableColumn columnPosnumber;
-
- @FXML
- private ChoiceBox colorChoise;
-
- @FXML
- private ChoiceBox catChoise;
-
- @FXML
- private ChoiceBox printerChoise;
-
- @FXML
- private Spinner linesSpinner;
-
- @FXML
- private Spinner offsetHeaderSpinner;
-
- @FXML
- private Spinner offsetFooterSpinner;
-
- @FXML
- private Button ueberbtn;
-
- @FXML
- private Button gridButton01;
-
- @FXML
- private Button gridButton02;
-
- @FXML
- private Button gridButton03;
-
- @FXML
- private Button gridButton04;
-
- @FXML
- private Button gridButton05;
-
- @FXML
- private Button gridButton06;
-
- @FXML
- private Button gridButton07;
-
- @FXML
- private Button gridButton08;
-
- @FXML
- private Button gridButton09;
-
- @FXML
- private Button gridButton10;
-
- @FXML
- private Button gridButton11;
-
- @FXML
- private Button gridButton12;
-
- @FXML
- private Button gridButton13;
-
- @FXML
- private Button gridButton14;
-
- @FXML
- private Button gridButton15;
-
- @FXML
- private Button gridButton16;
-
- @FXML
- private Button gridButton17;
-
- @FXML
- private Button gridButton18;
-
- @FXML
- private Button gridButton19;
-
- @FXML
- private Button gridButton20;
-
- @FXML
- private Button gridButton21;
-
- @FXML
- private Button gridButton22;
-
- @FXML
- private Button gridButton23;
-
- @FXML
- private Button gridButton24;
-
- @FXML
- private Button gridButton25;
-
- @FXML
- public Button btnSavePrinter;
-
- @FXML
- public Button btnDeleteSelectedPosition;
-
- @FXML
- public Button btnPrintBill;
-
- @FXML
- public Button btnLock;
-
- @FXML
- public Button btnReprintJob;
-
- @FXML
- public Button btnCancelJob;
-
- @FXML
- public Button btnCalcStats;
-
- @FXML
- public Button btnSaveEntry;
-
- @FXML
- public Button btnClearEntry;
-
- @FXML
- public Button btnCreateNewDatabase;
-
- @FXML
- private Button btnOpenFolder;
-
- @FXML
- private Label labelCat01;
-
- @FXML
- private Label labelCat02;
-
- @FXML
- private Label labelCat05;
-
- @FXML
- private Label labelCat04;
-
- @FXML
- private Label labelCat03;
-
- @FXML
- private JFXTextField tftfooter;
-
- @FXML
- private JFXTextField tftheader;
-
- @FXML
- private JFXTextField tftKat01;
-
- @FXML
- private JFXTextField tftKat02;
-
- @FXML
- private JFXTextField tftKat03;
-
- @FXML
- private JFXTextField tftKat04;
-
- @FXML
- private JFXTextField tftKat05;
-
- @FXML
- public Button btnSaveCat;
-
- @FXML
- private Label labelAllPrize;
-
- @FXML
- private Label labelJobCounter;
-
- @FXML
- private Label labelTime;
-
- @FXML
- private Label labelJobCount;
-
- @FXML
- private Label labelAvgJob;
-
- @FXML
- private Label labelAllValue;
-
- @FXML
- private Label labelSelectCat;
-
- @FXML
- private Label labelNewPosition;
-
- @FXML
- private Label labelNewValue;
-
- @FXML
- private Label labelNewColor;
-
- @FXML
- private Label labelDBStatus;
-
- @FXML
- private Label labelDBName;
-
- @FXML
- private TitledPane titlePaneStats;
-
- @FXML
- private TitledPane titlePaneCat;
-
- @FXML
- private TitledPane titledPaneEntry;
-
- @FXML
- private TitledPane titlePanePrint;
-
- @FXML
- private TextField tftNewPosition;
-
- @FXML
- private TextField tftNewValue;
-
- @FXML
- private TextField tftNewDBName;
-
- @FXML
- private JFXToggleButton switchSeparate;
-
- @SuppressWarnings("unused")
- private Main main;
-
- private DBController dbc;
-
- private XMLController xmlc;
-
- private PrinterController pc;
-
- private TimeDate timedate = new TimeDate();
-
- private PrintJob pj = new PrintJob();
-
- private int idPositionen = 0;
-
- private String selectedColorName;
-
- private String selectedCatName;
-
- private boolean lockState = false;
-
- private boolean isPrintBtnDisabled = true;
-
- private Job currentJob = null;
-
- private String currentOrderPosName;
-
- private int selectedJobId;
-
- @FXML
- TreeItem rootCurrentJob = new TreeItem<>(
- new tableDataCurrentOrder("0", 0));
-
- @FXML
- TreeItem rootJobs = new TreeItem<>(
- new tableDataJob(0, "0", "0", "0", "0"));
-
- @FXML
- TreeItem rootPositionen = new TreeItem<>(
- new tableDataPositionen(0, "0", "0", "0", "0"));
-
- @FXML
- public void ueberbtnAction(ActionEvent event)
- { // opens the 'Über' dialog
-
- // creates a dialog
- Dialog> dialog = new Dialog<>();
- dialog.setTitle("Über jFxKasse");
- dialog.setHeaderText("Informationen und Lizenzen - Version 0.3.2");
-
- dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK);
-
- GridPane grid = new GridPane();
- grid.setHgap(10);
- grid.setVgap(10);
- grid.setPadding(new Insets(20, 150, 10, 10));
-
- grid.add(new Label(
- "Einfaches Kassensystem für kleine bis mittel große Veranstaltungen mit Bon-Drucker\n"
- + "\nUnter Lizenz GPL-3.0 abrufbar auf https://git.mosad.xyz/localhorst/jFxKasse\n"
- + "\nDatenbank: sqlite.org - Public Domain"
- + " \nUI Design01: eclipse.org/efxclipse/install.html - Eclipse Public License 1.0"
- + " \nUI Design02: http://www.jfoenix.com/ - Apache License 2.0"
- + " \nUI - Datenbank Integration: basierend auf Project-HomeFlix - github.com/Seil0/Project-HomeFlix - GPLv3 \n"
- + " \nMaintainer: hendrik.schutter@coptersicht.de"
- + " \n(c) 2018 Hendrik Schutter"),
- 0, 0);
-
- dialog.getDialogPane().setContent(grid);
- dialog.setResizable(true);
- dialog.showAndWait();
- }
-
- @FXML
- public void btnOpenFolderAction(ActionEvent event) throws IOException
- {
-
- if (System.getProperty("os.name").contains("Windows")) {
- System.out.println("FCK Windows");
- File file = new File(Main.filepath);
- Desktop desktop = Desktop.getDesktop();
- desktop.open(file);
- } else {
- Runtime.getRuntime().exec("xdg-open " + Main.filepath);
- }
- }
-
- @FXML
- public void btnCreateNewDatabaseAction(ActionEvent event) throws Exception
- {
-
- if (!(tftNewDBName.getText().equals(""))) {
-
- xmlc.setDatabaseName(tftNewDBName.getText());
-
- dbc.setDbname(xmlc.getDatabaseName());
- dbc.connectDatabase(); // establish DB connection
- dbc.createTablePositionen(); // Create new table
- dbc.erstelleTabelleJobs(); // Create new table
- dbc.createTableCategory(); // Create new table
- try {
- // saveSettings(getDatabaseName());
- xmlc.saveSettings();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- setDBLabel(); // Set new databese labels
- blockUI(false); // unlock UI elements that need DB
- fillTablePositionen(); // fill TreeTable 'Positionen'
- fillCategory();
- fillPrinterSettings();
- initUI(); // Starting the UI elements
- getSelectedCat();
- createNewJob();
-
- btnLock.setDisable(false);
- }
- }
-
- @FXML
- public void btnSaveEntryAction(ActionEvent event)
- {
- dbc.setName_Positionen(idPositionen, tftNewPosition.getText());
- dbc.setValue_Positionen(idPositionen, tftNewValue.getText());
- dbc.setColor_Positionen(idPositionen, getColorCodes(selectedColorName));
-
- dbc.setCat_Positionen(idPositionen, getSelectedCat());
-
- fillTablePositionen(); // fill TreeTable 'Positionen'
- loadGridButtons();
-
- }
-
- @FXML
- public void btnClearEntryAction(ActionEvent event)
- {
- // set default values
- dbc.setName_Positionen(idPositionen, "Noch frei");
- dbc.setValue_Positionen(idPositionen, "0.00");
- dbc.setColor_Positionen(idPositionen, "#FAF0E6");
- dbc.setCat_Positionen(idPositionen, 6);
-
- fillTablePositionen(); // fill TreeTable 'Positionen'
- }
-
- @FXML
- public void btnCalcStatsAction(ActionEvent event)
- {
- int allActiveJobs = Integer.valueOf(dbc.getJobCount());
-
- if (dbc.getAllJobValue_Job() != null) {
-
- // summed up values of all jobs that are active
- float allValue = Float.valueOf(dbc.getAllJobValue_Job());
-
- // count of all jobs that are active
-
- float avgJobValue = ((float) allValue / allActiveJobs);
-
- setJobStatLabel(allActiveJobs, avgJobValue, allValue);
- } else {
- setJobStatLabel(allActiveJobs, 0, 0);
- }
- titlePaneStats.setVisible(true);
- }
-
- @FXML
- public void btnSavePrinterAction(ActionEvent event)
- {
- System.out.println("btnSavePrinterAction");
-
- xmlc.setPrintername(
- printerChoise.getSelectionModel().getSelectedItem().toString());
- xmlc.setLinebreak(linesSpinner.getValue());
- xmlc.setOffsetHeader(offsetHeaderSpinner.getValue());
- xmlc.setOffsetFooter(offsetFooterSpinner.getValue());
- xmlc.setHeader(tftheader.getText());
- xmlc.setFooter(tftfooter.getText());
- xmlc.setCategorySplitted(switchSeparate.isSelected());
-
- try {
- xmlc.saveSettings();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- // e.printStackTrace();
- }
- fillPrinterSettings();
- }
-
- @FXML
- public void btnCancelJobAction(ActionEvent event)
- {
- dbc.setStatus_Jobs(selectedJobId + 1, "storniert");
- fillTableJobs();
- btnCancelJob.setDisable(true);
- btnReprintJob.setDisable(true);
- }
-
- @FXML
- public void btnLockAction(ActionEvent event)
- {
- lockState = !lockState;
- blockUI(lockState);
-
- if (lockState) {
- btnLock.setText("Kasse entsperren");
- } else {
- btnLock.setText("Kasse sperren");
- }
- }
-
- @FXML
- public void btnSaveCatAction(ActionEvent event)
- {
- dbc.setName_Category(1, tftKat01.getText());
- dbc.setName_Category(2, tftKat02.getText());
- dbc.setName_Category(3, tftKat03.getText());
- dbc.setName_Category(4, tftKat04.getText());
- dbc.setName_Category(5, tftKat05.getText());
-
- fillCategory();
- fillTablePositionen();
- getSelectedCat();
- }
-
- @FXML
- public void btnDeleteSelectedPositionAction(ActionEvent event)
- {
- currentJob.deletePosName(currentOrderPosName);
- rootCurrentJob.getChildren().remove(0,
- rootCurrentJob.getChildren().size());
-
- for (int i = 0; i < currentJob.getCurrentJobPositionen().size(); i++) {
- rootCurrentJob.getChildren().add(new TreeItem(
- currentJob.getCurrentJobPositionen().get(i)));
-
- }
- setJobPrizeLabel(currentJob.getJobValue());
-
- if (rootCurrentJob.getChildren().size() == 0) {
- btnPrintBill.setDisable(true);
- isPrintBtnDisabled = true;
- tapPosEdit.setDisable(false);
- btnDeleteSelectedPosition.setDisable(true);
- }
-
- if (!currentJob.existsPosName(currentOrderPosName)) {
- btnDeleteSelectedPosition.setDisable(true);
- }
- }
-
- @FXML
- public void btnPrintBillAction(ActionEvent event)
- {
- btnPrintBill.setDisable(true);
- tapPosEdit.setDisable(false);
- btnDeleteSelectedPosition.setDisable(true);
- isPrintBtnDisabled = true;
- tapJobs.setDisable(false);
-
- setJobPrizeLabel(0);
-
- currentJob.setJobtime(
- timedate.getSystemTime() + " " + timedate.getSystemDate());
-
- rootCurrentJob.getChildren().remove(0,
- rootCurrentJob.getChildren().size());
-
- dbc.fillJobs_Jobs(currentJob.getJobnumber(), currentJob.getJobtime(),
- currentJob.createPosQuantityDBString(),
- currentJob.createPosNameDBString(),
- currentJob.createPosValueDBString(),
- currentJob.createPosCatDBString(), "verbucht",
- String.valueOf(currentJob.getJobValue()));
-
- pj.printJob(currentJob.getJobnumber(), xmlc, dbc, pc);
-
- fillTableJobs();
-
- currentJob = null;
-
- createNewJob();
-
- }
-
- @FXML
- public void btnReprintJobAction(ActionEvent event)
- {
- System.out.println("reprint job");
- pj.printJob((selectedJobId + 1), xmlc, dbc, pc);
- }
-
- @FXML
- public void gridButton01Action(ActionEvent event)
- {
- handleGridButtons(1);
- }
-
- @FXML
- public void gridButton02Action(ActionEvent event)
- {
- handleGridButtons(2);
- }
-
- @FXML
- public void gridButton03Action(ActionEvent event)
- {
- handleGridButtons(3);
- }
-
- @FXML
- public void gridButton04Action(ActionEvent event)
- {
- handleGridButtons(4);
- }
-
- @FXML
- public void gridButton05Action(ActionEvent event)
- {
- handleGridButtons(5);
- }
-
- @FXML
- public void gridButton06Action(ActionEvent event)
- {
- handleGridButtons(6);
- }
-
- @FXML
- public void gridButton07Action(ActionEvent event)
- {
- handleGridButtons(7);
- }
-
- @FXML
- public void gridButton08Action(ActionEvent event)
- {
- handleGridButtons(8);
- }
-
- @FXML
- public void gridButton09Action(ActionEvent event)
- {
- handleGridButtons(9);
- }
-
- @FXML
- public void gridButton10Action(ActionEvent event)
- {
- handleGridButtons(10);
- }
-
- @FXML
- public void gridButton11Action(ActionEvent event)
- {
- handleGridButtons(11);
- }
-
- @FXML
- public void gridButton12Action(ActionEvent event)
- {
- handleGridButtons(12);
- }
-
- @FXML
- public void gridButton13Action(ActionEvent event)
- {
- handleGridButtons(13);
- }
-
- @FXML
- public void gridButton14Action(ActionEvent event)
- {
- handleGridButtons(14);
- }
-
- @FXML
- public void gridButton15Action(ActionEvent event)
- {
- handleGridButtons(15);
- }
-
- @FXML
- public void gridButton16Action(ActionEvent event)
- {
- handleGridButtons(16);
- }
-
- @FXML
- public void gridButton17Action(ActionEvent event)
- {
- handleGridButtons(17);
- }
-
- @FXML
- public void gridButton18Action(ActionEvent event)
- {
- handleGridButtons(18);
- }
-
- @FXML
- public void gridButton19Action(ActionEvent event)
- {
- handleGridButtons(19);
- }
-
- @FXML
- public void gridButton20Action(ActionEvent event)
- {
- handleGridButtons(20);
- }
-
- @FXML
- public void gridButton21Action(ActionEvent event)
- {
- handleGridButtons(21);
- }
-
- @FXML
- public void gridButton22Action(ActionEvent event)
- {
- handleGridButtons(22);
- }
-
- @FXML
- public void gridButton23Action(ActionEvent event)
- {
- handleGridButtons(23);
- }
-
- @FXML
- public void gridButton24Action(ActionEvent event)
- {
- handleGridButtons(24);
- }
-
- @FXML
- public void gridButton25Action(ActionEvent event)
- {
- handleGridButtons(25);
- }
-
- @FXML
- public void fillTablePositionen()
- { // loads the table in the TreeTableView
-
- rootPositionen.getChildren().remove(0,
- rootPositionen.getChildren().size());
-
- for (int i = 0; i < dbc.ladeTabellePositionen().size(); i++) {
-
- float fValue = Float
- .valueOf(dbc.ladeTabellePositionen().get(i).getValue());
-
- String strValue = String.format("%.02f", fValue);
-
- strValue.replace('.', ',');
-
- tableDataPositionen helpTableData = new tableDataPositionen(
- dbc.ladeTabellePositionen().get(i).getID(),
- dbc.ladeTabellePositionen().get(i).getName(), (strValue + "€"),
- dbc.getCategoryNameFromPositionen(i + 1),
- getColorNames(dbc.ladeTabellePositionen().get(i).getColor()));
- rootPositionen.getChildren()
- .add(new TreeItem(helpTableData));
- }
- }
-
- public void initUI()
- {
- System.out.println("initUI");
- for (int i = 0; i < 25; i++) {
- getButtonByID(i).setVisible(false);
- }
- tftNewDBName.setText(xmlc.getDatabaseName());
- tftKat05.setDisable(true);
- titlePaneStats.setVisible(false);
- btnPrintBill.setDisable(true);
- btnReprintJob.setDisable(true);
- btnCancelJob.setDisable(true);
- btnDeleteSelectedPosition.setDisable(true);
- tapJobs.setDisable(true);
- btnOpenFolder.setFocusTraversable(false);
- switchSeparate.setFocusTraversable(false);
- ueberbtn.setFocusTraversable(false);
- isPrintBtnDisabled = true;
- btnPrintBill
- .setStyle("-fx-background-color: #2ac8fc; -fx-text-fill: black;");
- btnLock.setFocusTraversable(false);
- initPositionen();
- initCurrentOrderTreeTableView();
- initJobTreeTableView();
-
- }
-
- public int getSelectedCat()
- {
- ObservableList cats = FXCollections.observableArrayList();
-
- for (int i = 1; i < 5; i++) {
- if (dbc.getName_Category(i).equals("Standard")) {
- } else {
- cats.add(dbc.getName_Category(i));
- }
- }
-
- cats.add(dbc.getName_Category(5));
-
- catChoise.setItems(cats);
- catChoise.getSelectionModel().selectedIndexProperty()
- .addListener(new ChangeListener() {
- @Override
- public void changed(ObservableValue extends Number> ov,
- Number value, Number new_value)
- {
- try {
- selectedCatName = catChoise.getItems().get((int) new_value)
- .toString();
- } catch (Exception e) {
- }
- }
- });
-
- for (int i = 1; i < 6; i++) {
- if (dbc.getName_Category(i).equals(selectedCatName)) {
- return i;
- }
- }
- return 5;
- }
-
- public void fillPrinterSettings()
- {
- System.out.println("Fill printer Settings");
-
- ObservableList printers = FXCollections
- .observableArrayList(pc.getAvailablePrinters());
- printers.add("Drucker auswählen");
- printerChoise.setItems(printers);
-
- boolean printerFound = false;
- int index = 0;
- for (String currentPrinter : printers) {
- if (xmlc.getPrintername().equals(currentPrinter)) {
- // saved printer is available
- printerFound = true;
- // select saved printer in UI
- printerChoise.getSelectionModel().select(index);
- }
- index++;
- }
-
- if (!printerFound) {
- // saved printer is not available
- printerChoise.getSelectionModel().select(printers.size() - 1);
- System.out.println("no printer found");
- }
-
- SpinnerValueFactory valueFactoryLines = //
- new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 99,
- xmlc.getLinebreak());
-
- linesSpinner.setValueFactory(valueFactoryLines);
-
- SpinnerValueFactory valueFactoryHeader = //
- new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 99,
- xmlc.getOffsetHeader());
-
- offsetHeaderSpinner.setValueFactory(valueFactoryHeader);
-
- SpinnerValueFactory valueFactoryFooter = //
- new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 99,
- xmlc.getOffsetFooter());
-
- offsetFooterSpinner.setValueFactory(valueFactoryFooter);
-
- tftheader.setText(xmlc.getHeader());
-
- tftfooter.setText(xmlc.getFooter());
-
- switchSeparate.setSelected(xmlc.getCategorySplitted());
-
- }
-
- public void fillCategory()
- {
- tftKat01.setText(dbc.getName_Category(1));
- tftKat02.setText(dbc.getName_Category(2));
- tftKat03.setText(dbc.getName_Category(3));
- tftKat04.setText(dbc.getName_Category(4));
- tftKat05.setText(dbc.getName_Category(5));
- }
-
- private void initPositionen()
- {
- entryTreeTable.setRoot(rootPositionen);
- entryTreeTable.setShowRoot(false);
- entryTreeTable.setEditable(false);
-
- columnPosnumber
- .setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
- columnPositionsEdit
- .setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
- columnPrize.setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
- columnCat.setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
- columnColor.setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
-
- ObservableList color = FXCollections.observableArrayList("Rot",
- "Orange", "Braun", "Weiß", "Gelb", "Gr\u00fcn", "Blau", "Indigo");
- colorChoise.setItems(color);
- colorChoise.getSelectionModel().selectedIndexProperty()
- .addListener(new ChangeListener() {
- @Override
- public void changed(ObservableValue extends Number> ov,
- Number value, Number new_value)
- {
- selectedColorName = colorChoise.getItems()
- .get((int) new_value).toString();
- }
- });
-
- columnPosnumber.setCellValueFactory(
- cellData -> cellData.getValue().getValue().idProperty().asObject());
-
- columnPositionsEdit.setCellValueFactory(
- cellData -> cellData.getValue().getValue().nameProperty());
-
- columnPrize.setCellValueFactory(
- cellData -> cellData.getValue().getValue().valueProperty());
-
- columnCat.setCellValueFactory(
- cellData -> cellData.getValue().getValue().catProperty());
-
- columnColor.setCellValueFactory(
- cellData -> cellData.getValue().getValue().colorProperty());
-
- entryTreeTable.getSelectionModel().selectedItemProperty()
- .addListener(new ChangeListener