26 Commits

Author SHA1 Message Date
ed648a2740 add clear all positions in order draft 2026-03-07 20:33:13 +01:00
6330d7fd51 fix missing xml config 2026-03-01 19:10:07 +01:00
c241964a8b Configure auto Print or manual Print 2026-03-01 18:52:19 +01:00
f3e0da2689 fix ArrayIndexOutOfBoundsException 2026-02-25 22:02:46 +01:00
4421075bec update version 2026-02-25 21:43:52 +01:00
71c79575c8 update dependencies 2026-02-25 21:41:14 +01:00
1866782111 update java.math.RoundingMode 2026-02-25 21:18:04 +01:00
a7e76e00d3 remove dead code 2026-02-25 21:13:21 +01:00
1cadfe5bfc code formatter 2026-02-21 18:32:20 +01:00
c40be1c203 fix first start 2026-02-21 18:22:25 +01:00
02026633ed update to new versions and build system 2026-02-17 19:04:16 +01:00
c4297a4be2 fixed spelling mistakes 2019-01-10 21:54:46 +01:00
fd52d3df6d added yt link for Kurzanleitung 2019-01-09 22:53:07 +01:00
c320ef615d added yt link and fixed some spelling errors 2019-01-09 18:39:47 +01:00
2a20ea7bdb spelling errors fixed 2019-01-06 17:44:25 +01:00
a56ad43852 Merge branch 'master' of https://git.mosad.xyz/localhorst/jFxKasse 2018-12-08 13:21:35 +01:00
188214dfbe bug fix 2018-12-08 13:21:14 +01:00
cdbe2cccc0 „README.md“ ändern 2018-12-07 23:45:41 +01:00
5152846478 added screenshots 2018-12-07 23:31:12 +01:00
f5c5d546c5 added kiy input 2018-12-07 23:23:48 +01:00
5c9d54dabf ui fixes and bill layout improvements 2018-12-07 11:25:45 +01:00
96d5968fef code cleanup and ui fixes 2018-12-06 23:59:01 +01:00
88b39820ca bill splitted 2018-12-06 23:15:06 +01:00
25bedae873 scroll bar is now on right side 2018-12-06 20:44:54 +01:00
1ec02d74a3 fixed issue with jobtime 2018-12-06 20:34:44 +01:00
783d9f9bc0 fixed issue #1 2018-12-06 20:29:38 +01:00
31 changed files with 3195 additions and 2624 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
target/
dependency-reduced-pom.xml

26
.vscode/eclipse-formatter.xml vendored Normal file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="21">
<profile kind="CodeFormatterProfile" name="jFxKasse" version="21">
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
</profile>
</profiles>

7
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"recommendations": [
"vscjava.vscode-java-pack",
"vscjava.vscode-maven",
"redhat.java"
]
}

20
.vscode/launch.json vendored Normal file
View File

@ -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"
}
]
}

18
.vscode/settings.json vendored Normal file
View File

@ -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"
}
}

51
.vscode/tasks.json vendored Normal file
View File

@ -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"
]
}
]
}

View File

@ -1,2 +1,60 @@
# jFxKasse # jFxKasse
easy payment system for small to middel sized events with a sales slip printer
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 | Jobs | Positions | Settings |
|-----------|------|-----------|----------|
| ![](screenshots/newjob) | ![](screenshots/jobs) | ![](screenshots/positions) | ![](screenshots/settings) |
## Hardware
Tested with: [Epson TM T20II](https://www.epson.de/products/sd/pos-printer/epson-tm-t20ii). Other receipt printers should work as well.
## License
GPL-3.0

57
pom.xml
View File

@ -1,42 +1,49 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com</groupId> <groupId>com</groupId>
<artifactId>jFxKasse</artifactId> <artifactId>jFxKasse</artifactId>
<version>0.2.0</version> <version>0.4.0</version>
<name>jFxKasse</name> <name>jFxKasse</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<javafx.version>23.0.1</javafx.version>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit</artifactId> <artifactId>junit-jupiter</artifactId>
<version>4.12</version> <version>6.0.3</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.openjfx</groupId> <groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId> <artifactId>javafx-controls</artifactId>
<version>11</version> <version>${javafx.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.openjfx</groupId> <groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId> <artifactId>javafx-fxml</artifactId>
<version>11</version> <version>${javafx.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jfoenix</groupId> <groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId> <artifactId>jfoenix</artifactId>
<version>9.0.8</version> <version>9.0.10</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.xerial</groupId> <groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId> <artifactId>sqlite-jdbc</artifactId>
<version>3.23.1</version> <version>3.51.2.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
@ -46,11 +53,11 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version> <version>3.15.0</version>
<configuration> <configuration>
<source>11</source> <source>21</source>
<target>11</target> <target>21</target>
<!--<release>11</release> --> <release>21</release>
<showWarnings>true</showWarnings> <showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation> <showDeprecation>true</showDeprecation>
</configuration> </configuration>
@ -59,7 +66,7 @@
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId> <artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version> <version>3.6.3</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
@ -71,17 +78,16 @@
<mainClass>com.jFxKasse.application.Main</mainClass> <mainClass>com.jFxKasse.application.Main</mainClass>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version> <version>3.6.1</version>
<configuration> <configuration>
<finalName>jFxKasse</finalName> <finalName>jFxKasse</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached> <shadedArtifactAttached>true</shadedArtifactAttached>
<transformers> <transformers>
<transformer <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.jFxKasse.application.JavaFX11Main</mainClass> <mainClass>com.jFxKasse.application.JavaFX11Main</mainClass>
</transformer> </transformer>
</transformers> </transformers>
@ -95,7 +101,16 @@
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<configuration>
<mainClass>com.jFxKasse.application.JavaFX11Main</mainClass>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

BIN
screenshots/jobs Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
screenshots/newjob Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

BIN
screenshots/positions Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
screenshots/settings Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -1,12 +1,8 @@
package com.jFxKasse.application; 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);
} }
} }

View File

@ -1,119 +1,153 @@
package com.jFxKasse.application; package com.jFxKasse.application;
import javafx.application.Application; import com.jFxKasse.controller.MainWindowController;
import java.io.File; import com.jFxKasse.controller.PrinterController;
import javafx.animation.Animation; import com.jFxKasse.controller.XMLController;
import javafx.animation.KeyFrame; import com.jFxKasse.controller.DBController;
import javafx.animation.Timeline; import com.jFxKasse.controller.KeyController;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage; import javafx.application.Application;
import javafx.util.Duration; import java.io.File;
import com.jFxKasse.controller.MainWindowController; import javafx.animation.Animation;
import com.jFxKasse.controller.PrinterController; import javafx.animation.KeyFrame;
import com.jFxKasse.controller.XMLController; import javafx.animation.Timeline;
import com.jFxKasse.controller.DBController; import javafx.fxml.FXMLLoader;
import javafx.scene.Scene; import javafx.stage.Stage;
import javafx.scene.layout.AnchorPane; import javafx.util.Duration;
import javafx.scene.Scene;
public class Main extends Application import javafx.scene.layout.AnchorPane;
{
// path to config.xml and the database public class Main extends Application {
public static String filepath; // Path to config.xml and the database
public static String filepath;
private static String osName = System.getProperty("os.name");
private static String osName = System.getProperty("os.name");
private static String userHome = System.getProperty("user.home");
private static String userHome = System.getProperty("user.home");
private MainWindowController mwc;
private MainWindowController mwc;
private XMLController xmlc = new XMLController(filepath);
// Initialized in start() after filepath is set by main()
private DBController dbc = new DBController(filepath); private XMLController xmlc;
private PrinterController pc = new PrinterController(); private DBController dbc;
private Stage primaryStage; private PrinterController pc = new PrinterController();
@Override private KeyController kc;
public void start(Stage primaryStage)
{ private Stage primaryStage;
this.primaryStage = primaryStage;
System.out.println("\nstarting jFxKasse\n"); @Override
mainWindow(); public void start(Stage primaryStage) {
} this.primaryStage = primaryStage;
// filepath is set by main() before launch(); initialize controllers here
private void mainWindow() xmlc = new XMLController(filepath);
{ dbc = new DBController(filepath);
try { System.out.println("\nstarting jFxKasse\n");
FXMLLoader loader = new FXMLLoader( mainWindow();
getClass().getResource("/fxml/MainWindow.fxml")); }
AnchorPane pane = loader.load(); private void mainWindow() {
primaryStage.setTitle("jFxKasse"); // Title of window try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/MainWindow.fxml"));
mwc = loader.getController(); // set the mwc as the JavaFx
// MainWindowController AnchorPane pane = loader.load();
pc.searchPrinters(); // search for available printers primaryStage.setTitle("jFxKasse"); // Window title
mwc.setMain(this, dbc, xmlc, pc); // set the created instances to the
// mwc mwc = loader.getController(); // Set the MainWindowController
pc.searchPrinters(); // Search for available printers
firstStart(); // test if this is the first run mwc.setMain(this, dbc, xmlc, pc); // Pass instances to the controller
Scene scene = new Scene(pane); firstStart(); // Check if this is the first run
scene.getStylesheets().add(
Main.class.getResource("/css/application.css").toExternalForm()); Scene scene = new Scene(pane);
primaryStage.setScene(scene); scene.getStylesheets().add(Main.class.getResource("/css/application.css").toExternalForm());
primaryStage.show(); // shows the stage primaryStage.setScene(scene);
primaryStage.show(); // Show the stage
Timeline timeline = new Timeline(
new KeyFrame(Duration.seconds(1), ev -> { // Attach the KeyController
mwc.updateTimeLabel(); // update time label on UI kc = new KeyController(scene, mwc);
}));
timeline.setCycleCount(Animation.INDEFINITE); Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(1), ev -> {
timeline.play(); mwc.updateTimeLabel(); // Update time label on UI
} catch (Exception e) { }));
e.printStackTrace(); timeline.setCycleCount(Animation.INDEFINITE);
} timeline.play();
} }
catch (Exception e) {
public static void main(String[] args) e.printStackTrace();
{ }
if (osName.contains("Windows")) { }
System.out.println("FCK Windows");
filepath = userHome + "/Documents/jFxKasse/"; public static void main(String[] args) {
} else { if (osName.contains("Windows")) {
filepath = userHome + "/jFxKasse/"; System.out.println("FCK Windows");
} filepath = userHome + "/Documents/jFxKasse/";
launch(args); }
} else {
filepath = userHome + "/jFxKasse/";
/** }
* Checks if the config.xml is preset. launch(args);
*/ }
private void firstStart() throws Exception
{ /**
if (xmlc.loadSettings()) { * Checks if the config.xml is present and initializes accordingly.
// config.xml found, app starting normal */
System.out.println("XML found!"); private void firstStart() throws Exception {
mwc.initUI(); // Starting the UI elements if (xmlc.loadSettings()) {
mwc.setDBLabel(); // Set databese labels // config.xml found, app starting normally
dbc.setDbname(xmlc.getDatabaseName()); // handover database name System.out.println("XML found!");
dbc.connectDatabase(); // estabishing DB conection mwc.initUI(); // Initialize the UI elements
mwc.fillTablePositionen(); // fill TreeTable 'Positionen' mwc.setDBLabel(); // Set database labels
mwc.fillCategory(); dbc.setDbname(xmlc.getDatabaseName()); // Pass database name
mwc.fillPrinterSettings(); try {
mwc.fillTableJobs(); dbc.connectDatabase(); // Establish DB connection
mwc.loadGridButtons(); }
mwc.getSelectedCat(); // Load DB entries in Chois Box catch (Exception e) {
mwc.createNewJob(); e.printStackTrace();
} else { showErrorDialog("Datenbankfehler", "Die Datenbank konnte nicht geöffnet werden.",
// config.xml NOT found, first start of app "Datei: " + xmlc.getDatabaseName() + ".db\n\n"
System.out.println("no XML found!"); + "Bitte prüfen Sie, ob die Datei vorhanden und nicht beschädigt ist.\n"
xmlc.initXML(); // set default values + "Fehlermeldung: " + e.getMessage());
mwc.blockUI(true); // disable UI elements that need DB return;
mwc.blockUnlock(); }
File dir = new File(filepath); mwc.fillTablePositionen(); // Fill TreeTable 'Positions'
dir.mkdir(); // Create new Subfolder 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();
}
}

View File

@ -1,10 +1,13 @@
package com.jFxKasse.application; package com.jFxKasse.application;
import java.util.ArrayList;
import com.jFxKasse.controller.DBController; import com.jFxKasse.controller.DBController;
import com.jFxKasse.controller.PrinterController; import com.jFxKasse.controller.PrinterController;
import com.jFxKasse.controller.XMLController; import com.jFxKasse.controller.XMLController;
import com.jFxKasse.datatypes.PrintDataSimple; import com.jFxKasse.datatypes.PrintDataSimple;
import com.jFxKasse.datatypes.PrintDataSplitted;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.scene.control.ButtonType; import javafx.scene.control.ButtonType;
@ -13,25 +16,20 @@ import javafx.scene.control.Label;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import javafx.util.Pair; import javafx.util.Pair;
public class PrintJob public class PrintJob {
{
private TimeDate timedate = new TimeDate(); private TimeDate timedate = new TimeDate();
public void printJob(int jobID, XMLController xmlc, DBController dbc, public void printJob(int jobID, XMLController xmlc, DBController dbc, PrinterController pc) {
PrinterController pc)
{
if ((xmlc.getPrintername().equals("Drucker auswählen") if ((xmlc.getPrintername().equals("Drucker auswählen") || xmlc.getPrintername() == null)) {
|| xmlc.getPrintername() == null)) { // No printer selected
// no printer selected System.out.println("No printer configured!");
System.out.println("Kein Drucker eingestellt!!!");
// creates a dialog // creates a dialog
Dialog<Pair<String, String>> dialog = new Dialog<>(); Dialog<Pair<String, String>> dialog = new Dialog<>();
dialog.setTitle("Kein Drucker"); dialog.setTitle("Kein Drucker");
dialog.setHeaderText("Es ist kein Drucker einestellt.\n" dialog.setHeaderText("Es ist kein Drucker einestellt.\n" + "In den Einstellungen einen Drucker auswählen.");
+ "In den Einstellungen einen Drucker auswählen.");
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK); dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK);
@ -40,32 +38,48 @@ public class PrintJob
grid.setVgap(10); grid.setVgap(10);
grid.setPadding(new Insets(20, 150, 10, 10)); grid.setPadding(new Insets(20, 150, 10, 10));
grid.add(new Label("Tipp:\n" grid.add(
+ "Es kann ein virtueller Drucker installiert werden: \n\n" new Label(
+ "www.cups-pdf.de"), 0, 0); "Tipp:\n" + "Es kann ein virtueller Drucker installiert werden: \n\n" + "www.cups-pdf.de"),
0, 0);
dialog.getDialogPane().setContent(grid); dialog.getDialogPane().setContent(grid);
dialog.setResizable(true); dialog.setResizable(true);
dialog.showAndWait(); dialog.showAndWait();
} else { }
// printer selected else {
// Printer selected
pc.selectPrinter(xmlc.getPrintername()); pc.selectPrinter(xmlc.getPrintername());
/* Single bill or split by category */
if (xmlc.getCategorySplitted()) { if (xmlc.getCategorySplitted()) {
// split the bills // Split the bills
// TODO PrintDataSplitted pdsplitted = new PrintDataSplitted(xmlc.getLinebreak(), xmlc.getOffsetHeader(),
xmlc.getOffsetFooter(), timedate.getSystemTime() + " " + timedate.getSystemDate(),
} else {
// one single bills
PrintDataSimple pds = new PrintDataSimple(xmlc.getLinebreak(),
xmlc.getOffsetHeader(), xmlc.getOffsetFooter(),
timedate.getSystemTime() + " " + timedate.getSystemDate(),
xmlc.getHeader(), xmlc.getFooter()); xmlc.getHeader(), xmlc.getFooter());
pds.setData(Integer.toString(jobID), dbc.getTime_Job(jobID), pdsplitted.setData(Integer.toString(jobID), dbc.getTime_Job(jobID), dbc.getQuantity_Job(jobID),
dbc.getQuantity_Job(jobID), dbc.getName_Job(jobID), dbc.getName_Job(jobID), dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID),
dbc.getValue_Job(jobID), dbc.getCategory_Job(jobID), dbc.getJobValue_Job(jobID));
System.out.println("Printing job ...");
ArrayList<String> printString = pdsplitted.getPrintStrings();
for (int i = 0; i < printString.size(); i++) {
pc.printString(printString.get(i));
}
}
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),
dbc.getJobValue_Job(jobID)); dbc.getJobValue_Job(jobID));
System.out.println("Printing job ..."); System.out.println("Printing job ...");
pc.printString(pds.getPrintString()); pc.printString(pds.getPrintString());

View File

@ -4,23 +4,18 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
public class TimeDate public class TimeDate {
{ public String getSystemTime() {
public String getSystemTime()
{
DateFormat dateFormat = new SimpleDateFormat("HH:mm"); DateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date date = new Date(); Date date = new Date();
String time = dateFormat.format(date); String time = dateFormat.format(date);
return time; return time;
} }
public String getSystemDate() public String getSystemDate() {
{
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Date date = new Date(); Date date = new Date();
String dateStr = dateFormat.format(date); String dateStr = dateFormat.format(date);
return dateStr; return dateStr;
} }
} }

View File

@ -11,83 +11,77 @@ import com.jFxKasse.datatypes.tableDataJob;
import com.jFxKasse.datatypes.tableDataPositionen; import com.jFxKasse.datatypes.tableDataPositionen;
import java.io.File; import java.io.File;
public class DBController public class DBController {
{
private Connection connection; private Connection connection;
private String DB_PATH; private String DB_PATH;
private String dbname; private String dbname;
public void main() public void main() {
{
try { try {
connection = DriverManager connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db"); }
} catch (SQLException e) { catch (SQLException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
public DBController(String path) public DBController(String path) {
{
this.DB_PATH = path; this.DB_PATH = path;
} }
public void setDbname(String dbname) public void setDbname(String dbname) {
{
this.dbname = dbname; this.dbname = dbname;
} }
public void connectDatabase() public void connectDatabase() { // Connect to database
{ // connect to database
System.out.println("Connecting... DB name: " + dbname); System.out.println("Connecting... DB name: " + dbname);
try { try {
if (connection != null) if (connection != null)
return; return;
connection = DriverManager connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
.getConnection("jdbc:sqlite:" + DB_PATH + dbname + ".db");
if (!connection.isClosed()) if (!connection.isClosed())
System.out.println("DB connection established"); System.out.println("DB connection established");
} catch (SQLException e) { }
catch (SQLException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
Runtime.getRuntime().addShutdownHook(new Thread() { Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() public void run() {
{
try { try {
if (!connection.isClosed() && connection != null) { if (!connection.isClosed() && connection != null) {
connection.close(); connection.close();
if (connection.isClosed()) if (connection.isClosed())
System.out.println(); System.out.println();
} }
} catch (SQLException e) { }
catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
}); });
} }
public boolean existDB(String pPfad) public boolean existDB(String pPfad) { // Check if the DB exists
{ // does the DB exists?
File varTmpDir = new File(pPfad); File varTmpDir = new File(pPfad);
if (!varTmpDir.exists()) { if (!varTmpDir.exists()) {
return false; return false;
} else { }
else {
return true; return true;
} }
} }
public String getCategoryNameFromPositionen(int pID) public String getCategoryNameFromPositionen(int pID) {
{
int catInPos = 0; int catInPos = 0;
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT posid, cat FROM positionen " ResultSet rs = stmt.executeQuery("SELECT posid, cat FROM positionen " + "WHERE posid = " + pID + ";");
+ "WHERE posid = " + pID + ";");
catInPos = rs.getInt("cat"); catInPos = rs.getInt("cat");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
@ -97,10 +91,11 @@ public class DBController
} }
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT catid, catname FROM category " ResultSet rs = stmt
+ "WHERE catid = " + catInPos + ";"); .executeQuery("SELECT catid, catname FROM category " + "WHERE catid = " + catInPos + ";");
return rs.getString("catname"); return rs.getString("catname");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "keine Kategorie"; return "keine Kategorie";
@ -108,34 +103,31 @@ public class DBController
} }
// table Position section // // Table 'Positionen' section //
public void createTablePositionen() public void createTablePositionen() { // Create table 'positionen'
{ // create table position
System.out.println("Creating table Positionen"); System.out.println("Creating table Positionen");
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS positionen;"); stmt.executeUpdate("DROP TABLE IF EXISTS positionen;");
stmt.executeUpdate( stmt.executeUpdate("CREATE TABLE positionen (posid, name, value, cat, color);");
"CREATE TABLE positionen (posid, name, value, cat, color);"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
// create 25 demo/default data entries // Create 25 demo/default data entries
for (int i = 0; i < 25; i++) { for (int i = 0; i < 25; i++) {
fillPositionen_Positionen(i + 1, "Noch frei", (float) 0.00, 6, fillPositionen_Positionen(i + 1, "Noch frei", (float) 0.00, 6, "#ad0000");
"#ad0000");
} }
} }
public void fillPositionen_Positionen(int pID, String pName, float pValue, public void fillPositionen_Positionen(int pID, String pName, float pValue, int pCat, String pColor) { // Create new
int pCat, String pColor) // entry in
{ // create new data in table // table
System.out.println("Creating new positionen entry"); System.out.println("Creating new positionen entry");
try { try {
PreparedStatement ps = connection.prepareStatement( PreparedStatement ps = connection.prepareStatement("INSERT INTO positionen VALUES (?, ?, ?, ?, ?);");
"INSERT INTO positionen VALUES (?, ?, ?, ?, ?);");
ps.setInt(1, pID); // primary ps.setInt(1, pID); // primary
ps.setString(2, pName); ps.setString(2, pName);
ps.setFloat(3, pValue); ps.setFloat(3, pValue);
@ -146,144 +138,134 @@ public class DBController
connection.setAutoCommit(false); connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution ps.executeBatch(); // SQL execution
connection.setAutoCommit(true); connection.setAutoCommit(true);
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public String getName_Positionen(int pID) public String getName_Positionen(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT posid, name FROM positionen WHERE posid = " + pID + ";");
"SELECT posid, name FROM positionen WHERE posid = " + pID + ";");
return rs.getString("name"); return rs.getString("name");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "Error 404"; return "Error 404";
} }
} }
public String getValue_Positionen(int pID) public String getValue_Positionen(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT posid, value FROM positionen WHERE posid = " + pID + ";");
"SELECT posid, value FROM positionen WHERE posid = " + pID
+ ";");
return rs.getString("value"); return rs.getString("value");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "Error 404"; return "Error 404";
} }
} }
public int getCat_Positionen(int pID) public int getCat_Positionen(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT catid, cat FROM positionen WHERE catid = " + pID + ";");
"SELECT catid, cat FROM positionen WHERE catid = " + pID + ";");
System.out.println("getCarTet: " + rs.getInt("cat")); System.out.println("getCarTet: " + rs.getInt("cat"));
return rs.getInt("cat"); return rs.getInt("cat");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return 0; return 0;
} }
} }
public String getColor_Positionen(int pID) public String getColor_Positionen(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT posid, color FROM positionen WHERE posid = " + pID + ";");
"SELECT posid, color FROM positionen WHERE posid = " + pID
+ ";");
return rs.getString("color"); return rs.getString("color");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "Error 404"; return "Error 404";
} }
} }
public void setName_Positionen(int pID, String pName) public void setName_Positionen(int pID, String pName) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE positionen SET name = '" + pName stmt.executeUpdate("UPDATE positionen SET name = '" + pName + "'WHERE posid =" + pID + ";");
+ "'WHERE posid =" + pID + ";"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public void setValue_Positionen(int pID, String pValue) public void setValue_Positionen(int pID, String pValue) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE positionen SET value = '" + pValue stmt.executeUpdate("UPDATE positionen SET value = '" + pValue + "'WHERE posid =" + pID + ";");
+ "'WHERE posid =" + pID + ";"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public void setCat_Positionen(int pID, int pCat) public void setCat_Positionen(int pID, int pCat) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE positionen SET cat = '" + pCat stmt.executeUpdate("UPDATE positionen SET cat = '" + pCat + "'WHERE posid =" + pID + ";");
+ "'WHERE posid =" + pID + ";"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public void setColor_Positionen(int pID, String pColor) public void setColor_Positionen(int pID, String pColor) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE positionen SET color = '" + pColor stmt.executeUpdate("UPDATE positionen SET color = '" + pColor + "'WHERE posid =" + pID + ";");
+ "'WHERE posid =" + pID + ";"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public ArrayList<tableDataPositionen> ladeTabellePositionen() public ArrayList<tableDataPositionen> ladeTabellePositionen() {
{
ArrayList<tableDataPositionen> daten = new ArrayList<>(); ArrayList<tableDataPositionen> daten = new ArrayList<>();
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM positionen;"); ResultSet rs = stmt.executeQuery("SELECT * FROM positionen;");
while (rs.next()) { while (rs.next()) {
try { try {
daten.add(new tableDataPositionen(rs.getInt("posid"), daten.add(new tableDataPositionen(rs.getInt("posid"), rs.getString("name"), rs.getString("value"),
rs.getString("name"), rs.getString("value"),
rs.getString("cat"), rs.getString("color"))); rs.getString("cat"), rs.getString("color")));
} catch (Exception e) { }
catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
return daten; return daten;
} }
public void ausgebenSysoPositionen() public void ausgebenSysoPositionen() {
{
System.out.println("Print positionen"); System.out.println("Print positionen");
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
@ -296,21 +278,22 @@ public class DBController
System.out.println(" "); System.out.println(" ");
} }
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
// table Category section // // Table 'Category' section //
public void createTableCategory() public void createTableCategory() { // Create table 'category'
{ // create table position System.out.println("Creating table Category");
System.out.println("Erstelle Tabelle Kategorie");
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS category;"); stmt.executeUpdate("DROP TABLE IF EXISTS category;");
stmt.executeUpdate("CREATE TABLE category (catid, catname);"); stmt.executeUpdate("CREATE TABLE category (catid, catname);");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); 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 { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE category SET catname = '" + pName stmt.executeUpdate("UPDATE category SET catname = '" + pName + "'WHERE catid =" + pID + ";");
+ "'WHERE catid =" + pID + ";"); }
} catch (SQLException e) { catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); 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 { try {
PreparedStatement ps = connection PreparedStatement ps = connection.prepareStatement("INSERT INTO category VALUES (?, ?);");
.prepareStatement("INSERT INTO category VALUES (?, ?);");
ps.setInt(1, pID); // primary ps.setInt(1, pID); // primary
ps.setString(2, pName); ps.setString(2, pName);
ps.addBatch(); ps.addBatch();
connection.setAutoCommit(false); connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution ps.executeBatch(); // SQL execution
connection.setAutoCommit(true); connection.setAutoCommit(true);
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public String getName_Category(int pID) public String getName_Category(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT catid, catname FROM category WHERE catid = " + pID + ";");
"SELECT catid, catname FROM category WHERE catid = " + pID
+ ";");
return rs.getString("catname"); return rs.getString("catname");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "Error 404"; return "Error 404";
} }
} }
// table Jobs section // // Table 'Jobs' section //
public void erstelleTabelleJobs() public void erstelleTabelleJobs() { // Create table 'jobs'
{ // create table jobs
System.out.println("Creating table Jobs"); System.out.println("Creating table Jobs");
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS jobs;"); stmt.executeUpdate("DROP TABLE IF EXISTS jobs;");
stmt.executeUpdate( stmt.executeUpdate(
"CREATE TABLE jobs (jobid, time, positionen_quantity, positionen_name, positionen_value, positionen_cat, state, jobvalue);"); "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"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public int getLatestJobNumber_Job() public int getLatestJobNumber_Job() {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid from jobs ORDER BY jobid DESC LIMIT 1;");
"SELECT jobid from jobs ORDER BY jobid DESC LIMIT 1;");
return rs.getInt("jobid"); return rs.getInt("jobid");
} catch (SQLException e) { }
catch (SQLException e) {
// System.err.println("Couldn't handle DB-Query"); // System.err.println("Couldn't handle DB-Query");
// e.printStackTrace(); // e.printStackTrace();
@ -400,152 +378,138 @@ public class DBController
return 0; return 0;
} }
public String getTime_Job(int pID) public String getTime_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, time FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, time FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("time"); return rs.getString("time");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getQuantity_Job(int pID) public String getQuantity_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_quantity FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, positionen_quantity FROM jobs WHERE jobid = "
+ pID + ";");
return rs.getString("positionen_quantity"); return rs.getString("positionen_quantity");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getName_Job(int pID) public String getName_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_name FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, positionen_name FROM jobs WHERE jobid = " + pID
+ ";");
return rs.getString("positionen_name"); return rs.getString("positionen_name");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getValue_Job(int pID) public String getValue_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_value FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, positionen_value FROM jobs WHERE jobid = " + pID
+ ";");
return rs.getString("positionen_value"); return rs.getString("positionen_value");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getCategory_Job(int pID) public String getCategory_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, positionen_cat FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, positionen_cat FROM jobs WHERE jobid = " + pID
+ ";");
return rs.getString("positionen_cat"); return rs.getString("positionen_cat");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getState_Job(int pID) public String getState_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, state FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, state FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("state"); return rs.getString("state");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getJobValue_Job(int pID) public String getJobValue_Job(int pID) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery("SELECT jobid, jobvalue FROM jobs WHERE jobid = " + pID + ";");
"SELECT jobid, jobvalue FROM jobs WHERE jobid = " + pID + ";");
return rs.getString("jobvalue"); return rs.getString("jobvalue");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "404"; return "404";
} }
} }
public String getAllJobValue_Job() public String getAllJobValue_Job() {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt
"SELECT state, jobvalue, SUM(jobvalue) AS ALLVALUE FROM jobs WHERE state = " .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 = " + '"'
+ "verbucht" + '"' + ";"); + "verbucht" + '"' + ";");
return rs.getString("JOBCOUNT"); return rs.getString("ALLVALUE");
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
return "0"; return "0";
} }
} }
public void setStatus_Jobs(int pID, String pStatus) public String getJobCount() {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE jobs SET state = '" + pStatus ResultSet rs = stmt.executeQuery(
+ "'WHERE jobid =" + pID + ";"); "SELECT count(*) AS JOBCOUNT FROM jobs WHERE state = " + '"' + "verbucht" + '"' + ";");
} catch (SQLException e) { 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"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
public ArrayList<tableDataJob> loadTableJobs_Job() public ArrayList<tableDataJob> loadTableJobs_Job() {
{
ArrayList<tableDataJob> tmp = new ArrayList<tableDataJob>(); ArrayList<tableDataJob> tmp = new ArrayList<tableDataJob>();
try { try {
@ -557,31 +521,29 @@ public class DBController
String tablePosition = rs.getString("positionen_name"); String tablePosition = rs.getString("positionen_name");
tableDataJob data = new tableDataJob(rs.getInt("jobid"), tableDataJob data = new tableDataJob(rs.getInt("jobid"), rs.getString("time"), tablePosition,
rs.getString("time"), tablePosition, rs.getString("state"), rs.getString("state"), rs.getString("jobvalue"));
rs.getString("jobvalue"));
tmp.add(data); tmp.add(data);
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
} }
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }
return tmp; return tmp;
} }
public void fillJobs_Jobs(int pID, String pTime, String pPositionen_quantity, public void fillJobs_Jobs(int pID, String pTime, String pPositionen_quantity, String pPositionen_name,
String pPositionen_name, String pPositionen_value, String pPositionen_value, String pPositionen_cat, String pState, String pJobvalue) {
String pPositionen_cat, String pState, String pJobvalue) System.out.println("Creating new job entry");
{
System.out.println("Create new Job Entry");
try { try {
PreparedStatement ps = connection.prepareStatement( PreparedStatement ps = connection.prepareStatement("INSERT INTO jobs VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
"INSERT INTO jobs VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
ps.setInt(1, pID); // primary ps.setInt(1, pID); // primary
ps.setString(2, pTime); ps.setString(2, pTime);
ps.setString(3, pPositionen_quantity); ps.setString(3, pPositionen_quantity);
@ -594,7 +556,8 @@ public class DBController
connection.setAutoCommit(false); connection.setAutoCommit(false);
ps.executeBatch(); // SQL execution ps.executeBatch(); // SQL execution
connection.setAutoCommit(true); connection.setAutoCommit(true);
} catch (SQLException e) { }
catch (SQLException e) {
System.err.println("Couldn't handle DB-Query"); System.err.println("Couldn't handle DB-Query");
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -0,0 +1,212 @@
package com.jFxKasse.controller;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
public class KeyController {
private MainWindowController mwc;
public KeyController(Scene scene, MainWindowController mwc) {
this.mwc = mwc;
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent keyEvent) {
switch (mwc.getActiveTab()) {
case 0:
handleTabNewJob(keyEvent);
break;
case 1:
handleTabJobs(keyEvent);
break;
case 2:
handleTabPosEdit(keyEvent);
break;
case 3:
handleTabSettings(keyEvent);
break;
default:
}
}
});
}
private void handleTabNewJob(KeyEvent key) {
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnPrintBill.isDisabled())) {
mwc.btnPrintBillAction(null);
}
if ((key.getCode() == KeyCode.ESCAPE) && (!mwc.btnLock.isDisabled())) {
mwc.btnLockAction(null);
}
if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnDeleteSelectedPosition.isDisabled())) {
mwc.btnDeleteSelectedPositionAction(null);
}
handelGridButtons(key);
}
private void handleTabJobs(KeyEvent key) {
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnReprintJob.isDisabled())) {
mwc.btnReprintJobAction(null);
}
if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnCancelJob.isDisabled())) {
mwc.btnCancelJobAction(null);
}
if ((key.getCode() == KeyCode.S) && (!mwc.btnCalcStats.isDisabled())) {
mwc.btnCalcStatsAction(null);
}
}
private void handleTabPosEdit(KeyEvent key) {
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnSaveEntry.isDisabled())) {
mwc.btnSaveEntryAction(null);
}
if ((key.getCode() == KeyCode.DELETE) && (!mwc.btnClearEntry.isDisabled())) {
mwc.btnClearEntryAction(null);
}
}
private void handleTabSettings(KeyEvent key) {
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnSavePrinter.isDisabled())) {
mwc.btnSavePrinterAction(null);
}
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnSaveCat.isDisabled())) {
mwc.btnSaveCatAction(null);
}
if ((key.getCode() == KeyCode.ENTER) && (!mwc.btnCreateNewDatabase.isDisabled())) {
try {
mwc.btnCreateNewDatabaseAction(null);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
void handelGridButtons(KeyEvent key) {
switch (key.getCode()) {
case Q:
mwc.gridButton01Action(null);
break;
case W:
mwc.gridButton02Action(null);
break;
case E:
mwc.gridButton03Action(null);
break;
case R:
mwc.gridButton04Action(null);
break;
case T:
mwc.gridButton05Action(null);
break;
case Z:
mwc.gridButton06Action(null);
break;
case U:
mwc.gridButton07Action(null);
break;
case I:
mwc.gridButton08Action(null);
break;
case O:
mwc.gridButton09Action(null);
break;
case P:
mwc.gridButton10Action(null);
break;
case A:
mwc.gridButton11Action(null);
break;
case S:
mwc.gridButton12Action(null);
break;
case D:
mwc.gridButton13Action(null);
break;
case F:
mwc.gridButton14Action(null);
break;
case G:
mwc.gridButton15Action(null);
break;
case H:
mwc.gridButton16Action(null);
break;
case J:
mwc.gridButton17Action(null);
break;
case K:
mwc.gridButton18Action(null);
break;
case L:
mwc.gridButton19Action(null);
break;
case Y:
mwc.gridButton20Action(null);
break;
case X:
mwc.gridButton21Action(null);
break;
case C:
mwc.gridButton22Action(null);
break;
case V:
mwc.gridButton23Action(null);
break;
case B:
mwc.gridButton24Action(null);
break;
case N:
mwc.gridButton25Action(null);
break;
default:
break;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/** /**
* some parts are from http://www.mets-blog.com/java-pos-thermal-printer-example/ * Some parts are from http://www.mets-blog.com/java-pos-thermal-printer-example/
*/ */
package com.jFxKasse.controller; package com.jFxKasse.controller;
@ -21,26 +21,23 @@ import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet;
public class PrinterController implements Printable public class PrinterController implements Printable {
{ // All available printers on this system
// All available Printers on this system
private PrintService[] printService; private PrintService[] printService;
// selected printer // Selected printer
private PrintService selectedPrinter; private PrintService selectedPrinter;
private DocFlavor flavor; private DocFlavor flavor;
public PrinterController() public PrinterController() {
{
flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE; flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
} }
/** /**
* @return A String array with all available printers * @return A String array with all available printers
*/ */
public String[] getAvailablePrinters() public String[] getAvailablePrinters() {
{
int printerSize = PrinterJob.lookupPrintServices().length; int printerSize = PrinterJob.lookupPrintServices().length;
String printers[] = new String[printerSize]; String printers[] = new String[printerSize];
@ -51,10 +48,9 @@ public class PrinterController implements Printable
} }
/** /**
* searchs connected printers on the system * Searches for connected printers on the system
*/ */
public void searchPrinters() public void searchPrinters() {
{
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
this.printService = PrintServiceLookup.lookupPrintServices(flavor, pras); this.printService = PrintServiceLookup.lookupPrintServices(flavor, pras);
String printers[] = getAvailablePrinters(); String printers[] = getAvailablePrinters();
@ -67,11 +63,11 @@ public class PrinterController implements Printable
} }
/** /**
* Selects the printer via its name * Selects the printer by its name
*
* @param printerName * @param printerName
*/ */
public void selectPrinter(String printerName) public void selectPrinter(String printerName) {
{
String printers[] = getAvailablePrinters(); String printers[] = getAvailablePrinters();
for (int i = 0; i < printers.length; i++) { for (int i = 0; i < printers.length; i++) {
@ -83,13 +79,12 @@ public class PrinterController implements Printable
} }
} }
/** /**
* Prints a string to the selected printer
* *
* @param input data as String * @param text data as String
*/ */
public void printString(String text) public void printString(String text) {
{
PrintService service = selectedPrinter; PrintService service = selectedPrinter;
DocPrintJob job = service.createPrintJob(); DocPrintJob job = service.createPrintJob();
@ -98,21 +93,21 @@ public class PrinterController implements Printable
bytes = text.getBytes(StandardCharsets.UTF_8); bytes = text.getBytes(StandardCharsets.UTF_8);
Doc doc = new SimpleDoc(bytes, flavor, null); Doc doc = new SimpleDoc(bytes, flavor, null);
job.print(doc, null); job.print(doc, null);
} catch (Exception e) { }
catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
public int print(Graphics g, PageFormat pf, int page) throws PrinterException public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
{
if (page > 0) { /* We have only one page, and 'page' is zero-based */ if (page > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE; return NO_SUCH_PAGE;
} }
/* /*
* User (0,0) is typically outside the imageable area, so we must * User (0,0) is typically outside the imageable area, so we must translate by
* translate by the X and Y values in the PageFormat to avoid clipping * the X and Y values in the PageFormat to avoid clipping
*/ */
Graphics2D g2d = (Graphics2D) g; Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY()); g2d.translate(pf.getImageableX(), pf.getImageableY());
@ -120,21 +115,20 @@ public class PrinterController implements Printable
return PAGE_EXISTS; return PAGE_EXISTS;
} }
public void printBytes(byte[] bytes) public void printBytes(byte[] bytes) {
{
PrintService service = selectedPrinter; PrintService service = selectedPrinter;
DocPrintJob job = service.createPrintJob(); DocPrintJob job = service.createPrintJob();
try { try {
Doc doc = new SimpleDoc(bytes, flavor, null); Doc doc = new SimpleDoc(bytes, flavor, null);
job.print(doc, null); job.print(doc, null);
} catch (Exception e) { }
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
public void cutPaper() public void cutPaper() {
{
byte[] cutP = new byte[] { 0x1d, 'V', 1 }; byte[] cutP = new byte[] { 0x1d, 'V', 1 };
printBytes(cutP); printBytes(cutP);
} }

View File

@ -7,9 +7,7 @@ import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.Properties; import java.util.Properties;
public class XMLController public class XMLController {
{
private String databaseName = null; private String databaseName = null;
private String printername = null; private String printername = null;
@ -26,18 +24,18 @@ public class XMLController
private boolean categorySplitted; private boolean categorySplitted;
private boolean autoPrintBill;
private String filePath = null; private String filePath = null;
private Properties props = null; private Properties props = null;
public XMLController(String filePath) public XMLController(String filePath) {
{
this.filePath = filePath + "config.xml"; this.filePath = filePath + "config.xml";
props = new Properties(); props = new Properties();
} }
public void saveSettings() throws Exception public void saveSettings() throws Exception { // Save settings to config.xml
{ // Save settings to config.xml
System.out.println("Saving XML"); System.out.println("Saving XML");
@ -51,10 +49,20 @@ public class XMLController
if (this.categorySplitted) { if (this.categorySplitted) {
categorySplitted = "true"; categorySplitted = "true";
} else { }
else {
categorySplitted = "false"; categorySplitted = "false";
} }
String autoPrintBill = null;
if (this.autoPrintBill) {
autoPrintBill = "true";
}
else {
autoPrintBill = "false";
}
try { try {
props.setProperty("databasename", this.databaseName); props.setProperty("databasename", this.databaseName);
props.setProperty("printername", this.printername); props.setProperty("printername", this.printername);
@ -64,16 +72,17 @@ public class XMLController
props.setProperty("header", this.header); props.setProperty("header", this.header);
props.setProperty("footer", this.footer); props.setProperty("footer", this.footer);
props.setProperty("categorySplitted", categorySplitted); props.setProperty("categorySplitted", categorySplitted);
props.setProperty("autoPrintBill", autoPrintBill);
outputStream = new FileOutputStream(filePath); outputStream = new FileOutputStream(filePath);
props.storeToXML(outputStream, "jFxKasse settings"); props.storeToXML(outputStream, "jFxKasse settings");
outputStream.close(); outputStream.close();
} catch (IOException e) { }
catch (IOException e) {
} }
} }
public boolean loadSettings() throws Exception public boolean loadSettings() throws Exception { // Read settings from config.xml
{ // reads the settings from config.xml
InputStream inputStream; InputStream inputStream;
try { try {
inputStream = new FileInputStream(filePath); inputStream = new FileInputStream(filePath);
@ -83,21 +92,22 @@ public class XMLController
try { try {
this.linebreak = Integer.valueOf(props.getProperty("linebreak")); this.linebreak = Integer.valueOf(props.getProperty("linebreak"));
} catch (Exception e) { }
catch (Exception e) {
this.linebreak = 28; this.linebreak = 28;
} }
try { try {
this.offsetHeader = Integer this.offsetHeader = Integer.valueOf(props.getProperty("offsetHeader"));
.valueOf(props.getProperty("offsetHeader")); }
} catch (Exception e) { catch (Exception e) {
this.offsetHeader = 1; this.offsetHeader = 1;
} }
try { try {
this.offsetFooter = Integer this.offsetFooter = Integer.valueOf(props.getProperty("offsetFooter"));
.valueOf(props.getProperty("offsetFooter")); }
} catch (Exception e) { catch (Exception e) {
this.offsetFooter = 2; this.offsetFooter = 2;
} }
@ -107,23 +117,37 @@ public class XMLController
try { try {
if (props.getProperty("categorySplitted").equals("true")) { if (props.getProperty("categorySplitted").equals("true")) {
this.categorySplitted = true; this.categorySplitted = true;
} else { }
else {
this.categorySplitted = false; this.categorySplitted = false;
} }
} catch (Exception e) { }
catch (Exception e) {
this.categorySplitted = false; this.categorySplitted = false;
} }
try {
if (props.getProperty("autoPrintBill").equals("true")) {
this.autoPrintBill = true;
}
else {
this.autoPrintBill = false;
}
}
catch (Exception e) {
this.autoPrintBill = false;
}
inputStream.close(); inputStream.close();
return true; return true;
} catch (IOException e) { }
catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
} }
public void initXML() public void initXML() {
{
this.printername = "Drucker auswählen"; this.printername = "Drucker auswählen";
this.offsetHeader = 1; this.offsetHeader = 1;
@ -133,88 +157,82 @@ public class XMLController
this.categorySplitted = false; this.categorySplitted = false;
this.autoPrintBill = false;
this.header = "XYZ GmbH"; this.header = "XYZ GmbH";
this.footer = "Vielen Dank für den Einkauf"; this.footer = "Vielen Dank für den Einkauf";
} }
public String getDatabaseName() public String getDatabaseName() {
{
return databaseName; return databaseName;
} }
public void setDatabaseName(String databaseName) public void setDatabaseName(String databaseName) {
{
this.databaseName = databaseName; this.databaseName = databaseName;
} }
public String getPrintername() public String getPrintername() {
{
return printername; return printername;
} }
public void setPrintername(String printername) public void setPrintername(String printername) {
{
this.printername = printername; this.printername = printername;
} }
public int getLinebreak() public int getLinebreak() {
{
return linebreak; return linebreak;
} }
public void setLinebreak(int linebreak) public void setLinebreak(int linebreak) {
{
this.linebreak = linebreak; this.linebreak = linebreak;
} }
public int getOffsetHeader() public int getOffsetHeader() {
{
return offsetHeader; return offsetHeader;
} }
public void setOffsetHeader(int offsetHeader) public void setOffsetHeader(int offsetHeader) {
{
this.offsetHeader = offsetHeader; this.offsetHeader = offsetHeader;
} }
public int getOffsetFooter() public int getOffsetFooter() {
{
return offsetFooter; return offsetFooter;
} }
public void setOffsetFooter(int offsetFooter) public void setOffsetFooter(int offsetFooter) {
{
this.offsetFooter = offsetFooter; this.offsetFooter = offsetFooter;
} }
public String getHeader() public String getHeader() {
{
return header; return header;
} }
public void setHeader(String header) public void setHeader(String header) {
{
this.header = header; this.header = header;
} }
public String getFooter() public String getFooter() {
{
return footer; return footer;
} }
public void setFooter(String footer) public void setFooter(String footer) {
{
this.footer = footer; this.footer = footer;
} }
public boolean getCategorySplitted() public boolean getCategorySplitted() {
{
return categorySplitted; return categorySplitted;
} }
public void setCategorySplitted(boolean categorySplitted) public void setCategorySplitted(boolean categorySplitted) {
{
this.categorySplitted = categorySplitted; this.categorySplitted = categorySplitted;
} }
public boolean getAutoPrintBill() {
return autoPrintBill;
}
public void setAutoPrintBill(boolean autoPrintBill) {
this.autoPrintBill = autoPrintBill;
}
} }

View File

@ -0,0 +1,25 @@
package com.jFxKasse.datatypes;
public class Category {
private String categoryName;
private String positionsString = "\n";
public Category(String categoryName) {
this.categoryName = categoryName;
}
public String getCategoryName() {
return categoryName;
}
public void addPosition(int quantity, String name, String value, PrintData pd) {
for (int i = 0; i < quantity; i++) {
positionsString = positionsString + pd.setRight(pd.breakLines(name), value + "") + "\n";
}
}
public String getPositionsString() {
return positionsString;
}
}

View File

@ -1,10 +1,10 @@
package com.jFxKasse.datatypes; package com.jFxKasse.datatypes;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
public class Job public class Job {
{
private int jobnumber; private int jobnumber;
private float jobvalue; private float jobvalue;
@ -19,48 +19,39 @@ public class Job
private ArrayList<String> positionenCat; private ArrayList<String> positionenCat;
public Job(int pJobnumber, String pTime) public Job(int pJobnumber) {
{
this.jobnumber = pJobnumber; this.jobnumber = pJobnumber;
this.jobtime = pTime;
positionenQuantity = new ArrayList<Integer>(); positionenQuantity = new ArrayList<Integer>();
positionenName = new ArrayList<String>(); positionenName = new ArrayList<String>();
positionenValue = new ArrayList<Float>(); positionenValue = new ArrayList<Float>();
positionenCat = new ArrayList<String>(); positionenCat = new ArrayList<String>();
// System.out.println("Größe: " + positionenName.size());
} }
public int getJobnumber() public void setJobtime(String jobtime) {
{ this.jobtime = jobtime;
}
public int getJobnumber() {
return this.jobnumber; return this.jobnumber;
} }
public String getJobtime() public String getJobtime() {
{
return this.jobtime; return this.jobtime;
} }
public float getJobValue() public float getJobValue() {
{
calcJobValue(); calcJobValue();
return this.jobvalue; return this.jobvalue;
} }
public void addPosition(String pPositionenName, float pPositionenValue, public void addPosition(String pPositionenName, float pPositionenValue, String pPositionenCat) {
String pPositionenCat)
{
// System.out.println("addName");
for (int i = 0; i < positionenName.size(); i++) { for (int i = 0; i < positionenName.size(); i++) {
if (positionenName.get(i).equals(pPositionenName)) { if (positionenName.get(i).equals(pPositionenName)) {
// Item is already in list, increase quantity // Item is already in list, increase quantity
positionenQuantity.set(i, positionenQuantity.get(i) + 1); positionenQuantity.set(i, positionenQuantity.get(i) + 1);
// System.out.println("Item exists, increasing quantity");
return; return;
} }
} }
@ -73,65 +64,44 @@ public class Job
calcJobValue(); calcJobValue();
} }
public void printJobOnConsole() public void printJobOnConsole() {
{
System.out.println("---------------------------------------------"); System.out.println("---------------------------------------------");
System.out.println("JobNummer: " + jobnumber); System.out.println("JobNummer: " + jobnumber);
System.out.println("---------------------------------------------"); System.out.println("---------------------------------------------");
// System.out.println("Größe: " + positionenName.size());
for (int i = 0; i < positionenName.size(); i++) { for (int i = 0; i < positionenName.size(); i++) {
System.out.println( System.out.println(positionenQuantity.get(i) + " " + positionenName.get(i) + " " + positionenValue.get(i)
positionenQuantity.get(i) + " " + positionenName.get(i) + " " + " " + positionenCat.get(i));
+ positionenValue.get(i) + " " + positionenCat.get(i));
/*
* System.out.println("i is: " + i);
* System.out.println(positionenName.get(i));
* System.out.println(positionenQuantity.get(i));
*/
} }
System.out.println("---------------------------------------------"); System.out.println("---------------------------------------------");
} }
public ArrayList<tableDataCurrentOrder> getCurrentJobPositionen() public ArrayList<tableDataCurrentOrder> getCurrentJobPositionen() {
{
ArrayList<tableDataCurrentOrder> jobitems = new ArrayList<tableDataCurrentOrder>(); ArrayList<tableDataCurrentOrder> jobitems = new ArrayList<tableDataCurrentOrder>();
for (int i = 0; i < positionenName.size(); i++) { for (int i = 0; i < positionenName.size(); i++) {
tableDataCurrentOrder tmp = new tableDataCurrentOrder( tableDataCurrentOrder tmp = new tableDataCurrentOrder(positionenName.get(i), positionenQuantity.get(i));
positionenName.get(i), positionenQuantity.get(i));
jobitems.add(tmp); jobitems.add(tmp);
} }
return jobitems; return jobitems;
} }
private void calcJobValue() private void calcJobValue() {
{
jobvalue = 0; jobvalue = 0;
for (int i = 0; i < positionenValue.size(); i++) { for (int i = 0; i < positionenValue.size(); i++) {
jobvalue = jobvalue + (positionenQuantity.get(i) * positionenValue.get(i));
jobvalue = jobvalue
+ (positionenQuantity.get(i) * positionenValue.get(i));
} }
// Round to two decimal places
jobvalue = BigDecimal.valueOf(jobvalue).setScale(2, RoundingMode.HALF_UP).floatValue();
} }
public String createPosQuantityDBString() public String createPosQuantityDBString() {
{
String tmp = String.valueOf(positionenQuantity.get(0)); String tmp = String.valueOf(positionenQuantity.get(0));
for (int i = 1; i < positionenName.size(); i++) { for (int i = 1; i < positionenName.size(); i++) {
@ -140,8 +110,7 @@ public class Job
return tmp; return tmp;
} }
public String createPosNameDBString() public String createPosNameDBString() {
{
String tmp = positionenName.get(0); String tmp = positionenName.get(0);
for (int i = 1; i < positionenName.size(); i++) { for (int i = 1; i < positionenName.size(); i++) {
@ -150,8 +119,7 @@ public class Job
return tmp; return tmp;
} }
public String createPosValueDBString() public String createPosValueDBString() {
{
String tmp = String.valueOf(positionenValue.get(0)); String tmp = String.valueOf(positionenValue.get(0));
for (int i = 1; i < positionenName.size(); i++) { for (int i = 1; i < positionenName.size(); i++) {
@ -160,8 +128,7 @@ public class Job
return tmp; return tmp;
} }
public String createPosCatDBString() public String createPosCatDBString() {
{
String tmp = positionenCat.get(0); String tmp = positionenCat.get(0);
for (int i = 1; i < positionenName.size(); i++) { for (int i = 1; i < positionenName.size(); i++) {
@ -170,8 +137,7 @@ public class Job
return tmp; return tmp;
} }
public void deletePosName(String pPosName) public void deletePosName(String pPosName) {
{
for (int i = 0; i < positionenName.size(); i++) { for (int i = 0; i < positionenName.size(); i++) {
@ -179,7 +145,8 @@ public class Job
if (positionenQuantity.get(i) > 1) { if (positionenQuantity.get(i) > 1) {
positionenQuantity.set(i, positionenQuantity.get(i) - 1); positionenQuantity.set(i, positionenQuantity.get(i) - 1);
} else { }
else {
positionenQuantity.remove(i); positionenQuantity.remove(i);
positionenName.remove(i); positionenName.remove(i);
@ -194,8 +161,15 @@ public class Job
} }
public boolean existsPosName(String pPosName) public void clearAllPositions() {
{ positionenQuantity.clear();
positionenName.clear();
positionenValue.clear();
positionenCat.clear();
jobvalue = 0;
}
public boolean existsPosName(String pPosName) {
for (int i = 0; i < positionenName.size(); i++) { for (int i = 0; i < positionenName.size(); i++) {
if (positionenName.get(i).equals(pPosName)) { if (positionenName.get(i).equals(pPosName)) {
return true; return true;

View File

@ -1,7 +1,6 @@
package com.jFxKasse.datatypes; package com.jFxKasse.datatypes;
public abstract class PrintData public abstract class PrintData {
{
protected int headerSpace; protected int headerSpace;
@ -13,13 +12,13 @@ public abstract class PrintData
protected String footer; protected String footer;
protected String positionenQuantity; protected String positionsQuantity;
protected String positionenName; protected String positionsName;
protected String positionenValue; protected String positionsValue;
protected String positionenCategory; protected String positionsCategory;
protected String jobID; protected String jobID;
@ -30,7 +29,8 @@ public abstract class PrintData
protected String jobValue; protected String jobValue;
/** /**
* Constructor with all data that is not in the DB * Constructor with all data that is not stored in the DB
*
* @param lineBreak * @param lineBreak
* @param headerSpace * @param headerSpace
* @param footerSpace * @param footerSpace
@ -38,9 +38,8 @@ public abstract class PrintData
* @param header * @param header
* @param footer * @param footer
*/ */
public PrintData(int lineBreak, int headerSpace, int footerSpace, public PrintData(int lineBreak, int headerSpace, int footerSpace, String timeAndDatePrint, String header,
String timeAndDatePrint, String header, String footer) String footer) {
{
this.lineBreak = lineBreak; this.lineBreak = lineBreak;
this.headerSpace = headerSpace; this.headerSpace = headerSpace;
this.footerSpace = footerSpace; this.footerSpace = footerSpace;
@ -50,7 +49,8 @@ public abstract class PrintData
} }
/** /**
* set all Data that is in the DB * Set all data that is stored in the DB
*
* @param jobID * @param jobID
* @param timeAndDateOrder * @param timeAndDateOrder
* @param positionenQuantity * @param positionenQuantity
@ -59,40 +59,38 @@ public abstract class PrintData
* @param positionenCategory * @param positionenCategory
* @param jobValue * @param jobValue
*/ */
public void setData(String jobID, String timeAndDateOrder, public void setData(String jobID, String timeAndDateOrder, String positionsQuantity, String positionsName,
String positionenQuantity, String positionenName, String positionsValue, String positionsCategory, String jobValue) {
String positionenValue, String positionenCategory, String jobValue)
{
this.jobID = jobID; this.jobID = jobID;
this.timeAndDateOrder = timeAndDateOrder; this.timeAndDateOrder = timeAndDateOrder;
this.positionenQuantity = positionenQuantity; this.positionsQuantity = positionsQuantity;
this.positionenName = positionenName; this.positionsName = positionsName;
this.positionenValue = positionenValue; this.positionsValue = positionsValue;
this.positionenCategory = positionenCategory; this.positionsCategory = positionsCategory;
this.jobValue = jobValue; this.jobValue = jobValue;
} }
/** /**
* Breaks a string with newlines after the max line length
* *
* @param data String * @param data String
* @return same String splitted with \n after the max. line lenght * @return the same String split with \n after max line length
*/ */
protected String breakLines(String data) protected String breakLines(String data) {
{
boolean next = false; boolean next = false;
int count = lineBreak; int count = lineBreak;
if (data.length() > lineBreak) { if (data.length() > lineBreak) {
// Needs to be splitted // Needs to be split
next = true; next = true;
} else { }
// No need to be splitted else {
// No need to split
return data; return data;
} }
// first part // First part
String tmp = data.substring(0, lineBreak); String tmp = data.substring(0, lineBreak);
while (next) { while (next) {
@ -100,22 +98,22 @@ public abstract class PrintData
try { try {
tmp = tmp + "\n" + data.substring(count, lineBreak + count); tmp = tmp + "\n" + data.substring(count, lineBreak + count);
count = count + lineBreak; count = count + lineBreak;
} catch (Exception e) { }
// data string not long enough catch (Exception e) {
// Data string not long enough
next = false; next = false;
} }
} }
// add the last part // Add the last part
return tmp + "\n" + data.substring(count); return tmp + "\n" + data.substring(count);
} }
/** /**
* prints a line of '--------' * Prints a line of dashes '--------'
* @return *
* @return separator line
*/ */
protected String getSeparator() protected String getSeparator() {
{
String tmp = "-"; String tmp = "-";
for (int i = 1; i < lineBreak; i++) { for (int i = 1; i < lineBreak; i++) {
@ -125,12 +123,12 @@ public abstract class PrintData
} }
/** /**
* sets a String into the center * Centers a string within the line width
*
* @param data * @param data
* @return the centered String * @return the centered string
*/ */
protected String setCenter(String data) protected String setCenter(String data) {
{
int dataLenght = data.length(); int dataLenght = data.length();
int prefix = ((lineBreak - dataLenght) / 2); int prefix = ((lineBreak - dataLenght) / 2);
String tmp = " "; String tmp = " ";
@ -139,18 +137,18 @@ public abstract class PrintData
tmp = tmp + " "; tmp = tmp + " ";
} }
tmp = tmp + data; tmp = tmp + data;
return breakLines(tmp); return breakLines(tmp);
} }
/** /**
* sets a String right-justified after an prefix * Right-justifies a string after a prefix
*
* @param prefix * @param prefix
* @param data * @param data
* @return the right-justified String * @return the right-justified string
*/ */
protected String setRight(String prefix, String data) protected String setRight(String prefix, String data) {
{
int prefixLenght = prefix.length(); int prefixLenght = prefix.length();
@ -175,7 +173,7 @@ public abstract class PrintData
} }
/** /**
* How the print String or Strings are made * Defines how the print string(s) are generated
*/ */
abstract protected void generatePrintString(); abstract protected void generatePrintString();

View File

@ -1,12 +1,12 @@
package com.jFxKasse.datatypes; package com.jFxKasse.datatypes;
public class PrintDataSimple extends PrintData public class PrintDataSimple extends PrintData {
{
private String printString; private String printString;
/** /**
* Constructor with all data that is not in the DB * Constructor with all data that is not stored in the DB
*
* @param lineBreak * @param lineBreak
* @param headerSpace * @param headerSpace
* @param footerSpace * @param footerSpace
@ -14,28 +14,25 @@ public class PrintDataSimple extends PrintData
* @param header * @param header
* @param footer * @param footer
*/ */
public PrintDataSimple(int lineBreak, int headerSpace, int footerSpace, public PrintDataSimple(int lineBreak, int headerSpace, int footerSpace, String timeAndDatePrint, String header,
String timeAndDatePrint, String header, String footer) String footer) {
{ super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header, footer);
super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header,
footer);
} }
/** /**
* Generates the String * Generates the print string
* @return the final Print String *
* @return the final print string
*/ */
public String getPrintString() public String getPrintString() {
{
generatePrintString(); generatePrintString();
return this.printString; return this.printString;
} }
@Override @Override
protected void generatePrintString() protected void generatePrintString() {
{
/* Header */ /* Header */
String header = "\n"; String header = " ";
for (int i = 1; i < headerSpace; i++) { for (int i = 1; i < headerSpace; i++) {
header = header + "\n"; header = header + "\n";
} }
@ -45,28 +42,25 @@ public class PrintDataSimple extends PrintData
/* Info */ /* Info */
String info = setRight("Bestellung: ", timeAndDateOrder) + "\n" String info = setRight("Bestellung: ", timeAndDateOrder) + "\n" + setRight("Druck: ", timeAndDatePrint) + "\n"
+ setRight("Druck: ", timeAndDatePrint) + "\n"
+ setRight("Bestellnummer: ", jobID); + setRight("Bestellnummer: ", jobID);
/* Positionen */ /* Positionen */
String positionen = "\n"; String positionen = "\n";
int posCount = positionenQuantity.length() int posCount = positionsQuantity.length() - positionsQuantity.replace(";", "").length() + 1;
- positionenQuantity.replace(";", "").length() + 1;
String[] positionQuantity = positionenQuantity.split(";"); String[] positionQuantity = positionsQuantity.split(";");
String[] positionName = positionenName.split(";"); String[] positionName = positionsName.split(";");
String[] positionValue = positionenValue.split(";"); String[] positionValue = positionsValue.split(";");
for (int i = 0; i < posCount; i++) { //All different posNames for (int i = 0; i < posCount; i++) { // All different posNames
int quantity = Integer.parseInt(positionQuantity[i]); int quantity = Integer.parseInt(positionQuantity[i]);
for (int j = 0; j < quantity; j++) { //quantities for (int j = 0; j < quantity; j++) { // quantities
positionen = positionen + setRight(breakLines(positionName[i]), positionen = positionen + setRight(breakLines(positionName[i]), positionValue[i] + "") + "\n";
positionValue[i] + "") + "\n";
} }
} }
@ -85,9 +79,8 @@ public class PrintDataSimple extends PrintData
/* Build final Print String */ /* Build final Print String */
printString = header + "\n" + getSeparator() + "\n" + info + "\n" printString = header + "\n" + getSeparator() + "\n" + info + "\n" + getSeparator() + "\n" + positionen + "\n"
+ getSeparator() + "\n" + positionen + "\n" + getSeparator() + "\n" + getSeparator() + "\n" + price + "\n" + getSeparator() + "\n" + footer;
+ price + "\n" + getSeparator() + "\n" + footer;
} }
} }

View File

@ -0,0 +1,157 @@
package com.jFxKasse.datatypes;
import java.util.ArrayList;
public class PrintDataSplitted extends PrintData {
private ArrayList<String> printString = new ArrayList<String>();
private ArrayList<Category> categories = new ArrayList<Category>();
private int categoryCount = 0;
/**
* Constructor with all data that is not stored in the DB
*
* @param lineBreak
* @param headerSpace
* @param footerSpace
* @param timeAndDatePrint
* @param header
* @param footer
*/
public PrintDataSplitted(int lineBreak, int headerSpace, int footerSpace, String timeAndDatePrint, String header,
String footer) {
super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header, footer);
}
/**
* Generates the print strings
*
* @return the final array of print strings
*/
public ArrayList<String> getPrintStrings() {
generatePrintString();
return printString;
}
@Override
protected void generatePrintString() {
String firstBill;
/* Header */
String header = "-";
for (int i = 1; i < headerSpace; i++) {
header = header + "\n";
}
// This is the final header
header = header + setCenter(this.header);
/* Info */
String info = setRight("Bestellung: ", timeAndDateOrder) + "\n" + setRight("Druck: ", timeAndDatePrint) + "\n"
+ setRight("Bestellnummer: ", jobID);
/* Splitted Bills by Category */
/* Price */
String price = setRight("Gesamt: ", (jobValue + ""));
/* Footer */
String footer = setCenter(this.footer);
for (int i = 1; i < footerSpace; i++) {
footer = footer + "\n";
}
footer = footer + "_";
/* Build first Print String */
firstBill = header + "\n" + getSeparator() + "\n" + info + "\n" + getSeparator() + "\n"
+ setCenter("Bon wurde aufgeteilt") + "\n" + getSeparator() + "\n" + price + "\n" + getSeparator()
+ "\n" + footer;
printString.add(firstBill);
/* First bill ends here */
/* Category-specific extra bills */
String positions = null;
int posCount = positionsQuantity.length() - positionsQuantity.replace(";", "").length() + 1;
String[] positionQuantity = positionsQuantity.split(";");
String[] positionName = positionsName.split(";");
String[] positionValue = positionsValue.split(";");
String[] positionCategory = positionsCategory.split(";");
for (int i = 0; i < posCount; i++) { // All different posNames
int quantity = Integer.parseInt(positionQuantity[i]);
insertToCategory(quantity, positionName[i], positionValue[i], positionCategory[i]);
}
// Loops through all categories
for (int i = 0; i < categories.size(); i++) {
String thisBill;
/* Header */
header = " ";
for (int o = 1; o < headerSpace; o++) {
header = header + "\n";
}
// This is the final header
header = header + setCenter(this.header);
/* Info */
info = setRight("Bestellung: ", timeAndDateOrder) + "\n" + setRight("Druck: ", timeAndDatePrint) + "\n"
+ setRight("Bestellnummer: ", jobID);
/* Positions */
positions = categories.get(i).getPositionsString();
/* Footer */
footer = "\n";
for (int o = 2; o < footerSpace; o++) {
footer = footer + "\n";
}
footer = footer + "_";
thisBill = header + "\n" + getSeparator() + "\n" + info + "\n" + getSeparator() + "\n"
+ setCenter(categories.get(i).getCategoryName()) + "\n" + getSeparator() + positions + "\n"
+ getSeparator() + "\n" + footer;
printString.add(thisBill);
}
}
private void insertToCategory(int quantity, String name, String value, String category) {
boolean createNewCategorie = true;
for (int i = 0; i < categoryCount; i++) {
if (category.equals(categories.get(i).getCategoryName())) {
categories.get(i).addPosition(quantity, name, value, this);
createNewCategorie = false;
}
}
if (createNewCategorie) {
// Position has a new category
categories.add(new Category(category));
categories.get(categoryCount).addPosition(quantity, name, value, this);
categoryCount++;
}
}
}

View File

@ -5,47 +5,38 @@ import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
public class tableDataCurrentOrder public class tableDataCurrentOrder {
{
private final StringProperty position = new SimpleStringProperty(); private final StringProperty position = new SimpleStringProperty();
private final IntegerProperty quantity = new SimpleIntegerProperty(); private final IntegerProperty quantity = new SimpleIntegerProperty();
public tableDataCurrentOrder(final String pPosition, final Integer pQuantity) public tableDataCurrentOrder(final String pPosition, final Integer pQuantity) {
{
this.position.set(pPosition); this.position.set(pPosition);
this.quantity.set(pQuantity); this.quantity.set(pQuantity);
} }
public StringProperty positionProperty() public StringProperty positionProperty() {
{
return position; return position;
} }
public IntegerProperty quantityProperty() public IntegerProperty quantityProperty() {
{
return quantity; return quantity;
} }
public String getPosition() public String getPosition() {
{
return positionProperty().get(); return positionProperty().get();
} }
public Integer getQuantity() public Integer getQuantity() {
{
return quantityProperty().get(); return quantityProperty().get();
} }
public final void setPosition(String pPosition) public final void setPosition(String pPosition) {
{
positionProperty().set(pPosition); positionProperty().set(pPosition);
} }
public final void setQuantity(int pQuantity) public final void setQuantity(int pQuantity) {
{
quantityProperty().set(pQuantity); quantityProperty().set(pQuantity);
} }
} }

View File

@ -5,8 +5,7 @@ import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
public class tableDataJob public class tableDataJob {
{
private final IntegerProperty number = new SimpleIntegerProperty(); private final IntegerProperty number = new SimpleIntegerProperty();
@ -18,9 +17,8 @@ public class tableDataJob
private final StringProperty value = new SimpleStringProperty(); private final StringProperty value = new SimpleStringProperty();
public tableDataJob(final Integer pNumber, final String pTime, public tableDataJob(final Integer pNumber, final String pTime, final String pPositionen, final String pStatus,
final String pPositionen, final String pStatus, final String pValue) final String pValue) {
{
this.number.set(pNumber); this.number.set(pNumber);
this.time.set(pTime); this.time.set(pTime);
this.positionen.set(pPositionen); this.positionen.set(pPositionen);
@ -29,78 +27,63 @@ public class tableDataJob
} }
public IntegerProperty numberProperty() public IntegerProperty numberProperty() {
{
return number; return number;
} }
public StringProperty timeProperty() public StringProperty timeProperty() {
{
return time; return time;
} }
public StringProperty positionProperty() public StringProperty positionProperty() {
{
return positionen; return positionen;
} }
public StringProperty statusProperty() public StringProperty statusProperty() {
{
return status; return status;
} }
public StringProperty valueProperty() public StringProperty valueProperty() {
{
return value; return value;
} }
public Integer getNumber() public Integer getNumber() {
{
return numberProperty().get(); return numberProperty().get();
} }
public String getTime() public String getTime() {
{
return timeProperty().get(); return timeProperty().get();
} }
public String getPosition() public String getPosition() {
{
return positionProperty().get(); return positionProperty().get();
} }
public String getStatus() public String getStatus() {
{
return statusProperty().get(); return statusProperty().get();
} }
public String getValue() public String getValue() {
{
return valueProperty().get(); return valueProperty().get();
} }
public final void setNumber(int pNumber) public final void setNumber(int pNumber) {
{
numberProperty().set(pNumber); numberProperty().set(pNumber);
} }
public final void setTime(String pTime) public final void setTime(String pTime) {
{
timeProperty().set(pTime); timeProperty().set(pTime);
} }
public final void setPosition(String pPosition) public final void setPosition(String pPosition) {
{
positionProperty().set(pPosition); positionProperty().set(pPosition);
} }
public final void setStatus(String pStatus) public final void setStatus(String pStatus) {
{
statusProperty().set(pStatus); statusProperty().set(pStatus);
} }
public final void setValue(String pValue) public final void setValue(String pValue) {
{
valueProperty().set(pValue); valueProperty().set(pValue);
} }

View File

@ -5,21 +5,20 @@ import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
public class tableDataPositionen public class tableDataPositionen { // Data object with id, name, value, color
{ // data-object with id, name, value, color
private final IntegerProperty id = new SimpleIntegerProperty(); private final IntegerProperty id = new SimpleIntegerProperty();
private final StringProperty name = new SimpleStringProperty(); private final StringProperty name = new SimpleStringProperty();
private final StringProperty value = new SimpleStringProperty(); private final StringProperty value = new SimpleStringProperty();
private final StringProperty cat = new SimpleStringProperty(); private final StringProperty cat = new SimpleStringProperty();
private final StringProperty color = new SimpleStringProperty(); private final StringProperty color = new SimpleStringProperty();
public tableDataPositionen(final int id, final String name, final String value, final String cat, final String color) public tableDataPositionen(final int id, final String name, final String value, final String cat,
{ final String color) {
this.id.set(id); this.id.set(id);
this.name.set(name); this.name.set(name);
this.value.set(value); this.value.set(value);
@ -27,75 +26,63 @@ public class tableDataPositionen
this.color.set(color); this.color.set(color);
} }
public IntegerProperty idProperty() public IntegerProperty idProperty() {
{
return id; return id;
} }
public StringProperty nameProperty() public StringProperty nameProperty() {
{
return name; return name;
} }
public StringProperty valueProperty() public StringProperty valueProperty() {
{
return value; return value;
} }
public StringProperty catProperty() { public StringProperty catProperty() {
return cat; return cat;
} }
public StringProperty colorProperty() public StringProperty colorProperty() {
{
return color; return color;
} }
public int getID() public int getID() {
{
return idProperty().get(); return idProperty().get();
} }
public String getName() public String getName() {
{
return nameProperty().get(); return nameProperty().get();
} }
public String getValue() public String getValue() {
{
return valueProperty().get(); return valueProperty().get();
} }
public String getCat() { public String getCat() {
return catProperty().get(); return catProperty().get();
} }
public String getColor() public String getColor() {
{
return colorProperty().get(); return colorProperty().get();
} }
public final void setID(int id) public final void setID(int id) {
{
idProperty().set(id); idProperty().set(id);
} }
public final void setName(String name) public final void setName(String name) {
{
nameProperty().set(name); nameProperty().set(name);
} }
public final void setValue(String value) public final void setValue(String value) {
{
valueProperty().set(value); valueProperty().set(value);
} }
public final void setCat(String cat) { public final void setCat(String cat) {
catProperty().set(cat); catProperty().set(cat);
} }
public final void setColor(String color) public final void setColor(String color) {
{
colorProperty().set(color); colorProperty().set(color);
} }
} }

View File

@ -1 +1 @@
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */ /* JavaFX CSS - Leave this comment until you have at least one rule which uses -fx-Property */

File diff suppressed because it is too large Load Diff