Update dependencies and build system #2

Open
localhorst wants to merge 1 commits from feature/revival into master
19 changed files with 575 additions and 630 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
target/

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

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

@ -0,0 +1,11 @@
{
"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"
}

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,38 +1,60 @@
# jFxKasse # jFxKasse
easy payment system for small to middel sized events with a sales slip printer
Simples Kassensystem für kleine bis mittlere Veranstaltungen mit Bon-Drucker Simple POS (Point of Sale) system for small to medium-sized events with receipt printer support.
## Requirements
- Java JDK 17+
- Maven 3.6+
- Display >= 1366x768
## Video Tutorials (German | Deutsch) ## Video Tutorials (German | Deutsch)
[YouTube Video: jFxKasse - Kassensystem - Kurzanleitung](https://www.youtube.com/watch?v=DV9DDESw40I) [YouTube Video: jFxKasse - Kassensystem - Kurzanleitung](https://www.youtube.com/watch?v=DV9DDESw40I)
[YouTube Video: jFxKasse - Kassensystem - Installieren](https://www.youtube.com/watch?v=IY1bqRjwh0Q) [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-17-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 ## Screenshots
### Main View | Hauptansicht | Main View | Jobs | Positions | Settings |
![](https://git.mosad.xyz/localhorst/jFxKasse/raw/branch/master/screenshots/newjob) |-----------|------|-----------|----------|
| ![](screenshots/newjob) | ![](screenshots/jobs) | ![](screenshots/positions) | ![](screenshots/settings) |
### Jobs | Auftäge ## Hardware
![](https://git.mosad.xyz/localhorst/jFxKasse/raw/branch/master/screenshots/jobs)
### Positions | Positionen Tested with: [Epson TM T20II](https://www.epson.de/products/sd/pos-printer/epson-tm-t20ii). Other receipt printers should work as well.
![](https://git.mosad.xyz/localhorst/jFxKasse/raw/branch/master/screenshots/positions)
### Settings | Einstellungen ## License
![](https://git.mosad.xyz/localhorst/jFxKasse/raw/branch/master/screenshots/settings)
GPL-3.0
## Requirements | Anforderungen
### Software
* Java JRE 11
* Display/Bildschirm > 1366px X 768px
* Windoofs, Mac, GNU/Linux (openSuse tested)
### Hardware
I used this printer: [Epson TM T20II](https://www.epson.de/products/sd/pos-printer/epson-tm-t20ii)
Other sales slip printer are possible.

49
pom.xml
View File

@ -1,42 +1,48 @@
<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.3.2</version> <version>0.4.0</version>
<name>jFxKasse</name> <name>jFxKasse</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<javafx.version>21.0.5</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>5.11.4</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.47.1.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
@ -46,11 +52,10 @@
<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.13.0</version>
<configuration> <configuration>
<source>11</source> <source>17</source>
<target>11</target> <target>17</target>
<!--<release>11</release> -->
<showWarnings>true</showWarnings> <showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation> <showDeprecation>true</showDeprecation>
</configuration> </configuration>
@ -59,7 +64,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.5.0</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
@ -75,13 +80,12 @@
<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.0</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>
@ -96,6 +100,15 @@
</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>

View File

@ -20,9 +20,8 @@ import javafx.scene.Scene;
import javafx.scene.input.KeyEvent; import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
public class Main extends Application public class Main extends Application {
{ // Path to config.xml and the database
// path to config.xml and the database
public static String filepath; public static String filepath;
private static String osName = System.getProperty("os.name"); private static String osName = System.getProperty("os.name");
@ -42,42 +41,38 @@ public class Main extends Application
private Stage primaryStage; private Stage primaryStage;
@Override @Override
public void start(Stage primaryStage) public void start(Stage primaryStage) {
{
this.primaryStage = primaryStage; this.primaryStage = primaryStage;
System.out.println("\nstarting jFxKasse\n"); System.out.println("\nstarting jFxKasse\n");
mainWindow(); mainWindow();
} }
private void mainWindow() private void mainWindow() {
{
try { try {
FXMLLoader loader = new FXMLLoader( FXMLLoader loader = new FXMLLoader(
getClass().getResource("/fxml/MainWindow.fxml")); getClass().getResource("/fxml/MainWindow.fxml"));
AnchorPane pane = loader.load(); AnchorPane pane = loader.load();
primaryStage.setTitle("jFxKasse"); // Title of window primaryStage.setTitle("jFxKasse"); // Window title
mwc = loader.getController(); // set the mwc as the JavaFx mwc = loader.getController(); // Set the MainWindowController
// MainWindowController pc.searchPrinters(); // Search for available printers
pc.searchPrinters(); // search for available printers mwc.setMain(this, dbc, xmlc, pc); // Pass instances to the controller
mwc.setMain(this, dbc, xmlc, pc); // set the created instances to the
// mwc
firstStart(); // test if this is the first run firstStart(); // Check if this is the first run
Scene scene = new Scene(pane); Scene scene = new Scene(pane);
scene.getStylesheets().add( scene.getStylesheets().add(
Main.class.getResource("/css/application.css").toExternalForm()); Main.class.getResource("/css/application.css").toExternalForm());
primaryStage.setScene(scene); primaryStage.setScene(scene);
primaryStage.show(); // shows the stage primaryStage.show(); // Show the stage
//attach the KeyController // Attach the KeyController
kc = new KeyController(scene, mwc); kc = new KeyController(scene, mwc);
Timeline timeline = new Timeline( Timeline timeline = new Timeline(
new KeyFrame(Duration.seconds(1), ev -> { new KeyFrame(Duration.seconds(1), ev -> {
mwc.updateTimeLabel(); // update time label on UI mwc.updateTimeLabel(); // Update time label on UI
})); }));
timeline.setCycleCount(Animation.INDEFINITE); timeline.setCycleCount(Animation.INDEFINITE);
timeline.play(); timeline.play();
@ -86,8 +81,7 @@ public class Main extends Application
} }
} }
public static void main(String[] args) public static void main(String[] args) {
{
if (osName.contains("Windows")) { if (osName.contains("Windows")) {
System.out.println("FCK Windows"); System.out.println("FCK Windows");
filepath = userHome + "/Documents/jFxKasse/"; filepath = userHome + "/Documents/jFxKasse/";
@ -100,30 +94,29 @@ public class Main extends Application
/** /**
* Checks if the config.xml is preset. * Checks if the config.xml is preset.
*/ */
private void firstStart() throws Exception private void firstStart() throws Exception {
{
if (xmlc.loadSettings()) { if (xmlc.loadSettings()) {
// config.xml found, app starting normal // config.xml found, app starting normal
System.out.println("XML found!"); System.out.println("XML found!");
mwc.initUI(); // Starting the UI elements mwc.initUI(); // Initialize the UI elements
mwc.setDBLabel(); // Set database labels mwc.setDBLabel(); // Set database labels
dbc.setDbname(xmlc.getDatabaseName()); // handover database name dbc.setDbname(xmlc.getDatabaseName()); // Pass database name
dbc.connectDatabase(); // estabishing DB conection dbc.connectDatabase(); // Establish DB connection
mwc.fillTablePositionen(); // fill TreeTable 'Positionen' mwc.fillTablePositionen(); // Fill TreeTable 'Positions'
mwc.fillCategory(); mwc.fillCategory();
mwc.fillPrinterSettings(); mwc.fillPrinterSettings();
mwc.fillTableJobs(); mwc.fillTableJobs();
mwc.loadGridButtons(); mwc.loadGridButtons();
mwc.getSelectedCat(); // Load DB entries in Chois Box mwc.getSelectedCat(); // Load DB entries in ChoiceBox
mwc.createNewJob(); mwc.createNewJob();
} else { } else {
// config.xml NOT found, first start of app // config.xml NOT found, first start of app
System.out.println("no XML found!"); System.out.println("no XML found!");
xmlc.initXML(); // set default values xmlc.initXML(); // Set default values
mwc.blockUI(true); // disable UI elements that need DB mwc.blockUI(true); // Disable UI elements that need DB
mwc.blockUnlock(); mwc.blockUnlock();
File dir = new File(filepath); File dir = new File(filepath);
dir.mkdir(); // Create new Subfolder dir.mkdir(); // Create new subfolder
} }
} }
} }

View File

@ -16,19 +16,17 @@ 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("Kein Drucker eingestellt!!!"); System.out.println("No printer configured!");
// creates a dialog // creates a dialog
Dialog<Pair<String, String>> dialog = new Dialog<>(); Dialog<Pair<String, String>> dialog = new Dialog<>();
@ -52,11 +50,11 @@ public class PrintJob
dialog.showAndWait(); dialog.showAndWait();
} else { } else {
// printer selected // Printer selected
pc.selectPrinter(xmlc.getPrintername()); pc.selectPrinter(xmlc.getPrintername());
/* Single bill or splitted */ /* Single bill or split by category */
if (xmlc.getCategorySplitted()) { if (xmlc.getCategorySplitted()) {
// split the bills // Split the bills
PrintDataSplitted pdsplitted = new PrintDataSplitted( PrintDataSplitted pdsplitted = new PrintDataSplitted(
xmlc.getLinebreak(), xmlc.getOffsetHeader(), xmlc.getLinebreak(), xmlc.getOffsetHeader(),
@ -78,7 +76,7 @@ public class PrintJob
} }
} else { } else {
// one single bills // Single bill
PrintDataSimple pds = new PrintDataSimple(xmlc.getLinebreak(), PrintDataSimple pds = new PrintDataSimple(xmlc.getLinebreak(),
xmlc.getOffsetHeader(), xmlc.getOffsetFooter(), xmlc.getOffsetHeader(), xmlc.getOffsetFooter(),
timedate.getSystemTime() + " " + timedate.getSystemDate(), timedate.getSystemTime() + " " + timedate.getSystemDate(),

View File

@ -11,16 +11,14 @@ 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");
@ -30,18 +28,15 @@ public class DBController
} }
} }
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)
@ -54,8 +49,7 @@ public class DBController
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();
@ -69,8 +63,7 @@ public class DBController
}); });
} }
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;
@ -79,8 +72,7 @@ public class DBController
} }
} }
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();
@ -108,9 +100,8 @@ 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();
@ -122,7 +113,7 @@ public class DBController
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");
@ -130,8 +121,7 @@ public class DBController
} }
public void fillPositionen_Positionen(int pID, String pName, float pValue, public void fillPositionen_Positionen(int pID, String pName, float pValue,
int pCat, String pColor) int pCat, String pColor) { // Create new entry in table
{ // create new data in 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(
@ -152,8 +142,7 @@ public class DBController
} }
} }
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(
@ -166,8 +155,7 @@ public class DBController
} }
} }
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(
@ -181,8 +169,7 @@ public class DBController
} }
} }
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(
@ -196,8 +183,7 @@ public class DBController
} }
} }
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(
@ -211,8 +197,7 @@ public class DBController
} }
} }
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
@ -223,8 +208,7 @@ public class DBController
} }
} }
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
@ -235,8 +219,7 @@ public class DBController
} }
} }
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
@ -247,8 +230,7 @@ public class DBController
} }
} }
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
@ -259,8 +241,7 @@ public class DBController
} }
} }
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();
@ -282,8 +263,7 @@ public class DBController
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();
@ -302,10 +282,9 @@ public class DBController
} }
} }
// 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;");
@ -323,8 +302,7 @@ 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
@ -335,10 +313,9 @@ public class DBController
} }
} }
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 (?, ?);");
@ -355,8 +332,7 @@ public class DBController
} }
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(
@ -370,9 +346,8 @@ public class DBController
} }
} }
// 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();
@ -385,8 +360,7 @@ public class DBController
} }
} }
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(
@ -400,8 +374,7 @@ 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(
@ -414,8 +387,7 @@ public class DBController
} }
} }
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(
@ -429,8 +401,7 @@ public class DBController
} }
} }
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(
@ -444,8 +415,7 @@ public class DBController
} }
} }
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(
@ -459,8 +429,7 @@ public class DBController
} }
} }
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(
@ -474,8 +443,7 @@ public class DBController
} }
} }
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(
@ -488,8 +456,7 @@ public class DBController
} }
} }
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(
@ -502,8 +469,7 @@ public class DBController
} }
} }
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.executeQuery(
@ -517,8 +483,7 @@ public class DBController
} }
} }
public String getJobCount() public String getJobCount() {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery(
@ -532,8 +497,7 @@ public class DBController
} }
} }
public void setStatus_Jobs(int pID, String pStatus) public void setStatus_Jobs(int pID, String pStatus) {
{
try { try {
Statement stmt = connection.createStatement(); Statement stmt = connection.createStatement();
stmt.executeUpdate("UPDATE jobs SET state = '" + pStatus stmt.executeUpdate("UPDATE jobs SET state = '" + pStatus
@ -544,8 +508,7 @@ public class DBController
} }
} }
public ArrayList<tableDataJob> loadTableJobs_Job() public ArrayList<tableDataJob> loadTableJobs_Job() {
{
ArrayList<tableDataJob> tmp = new ArrayList<tableDataJob>(); ArrayList<tableDataJob> tmp = new ArrayList<tableDataJob>();
try { try {
@ -576,9 +539,8 @@ public class DBController
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_value, String pPositionen_name, 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 (?, ?, ?, ?, ?, ?, ?, ?);");

View File

@ -38,8 +38,7 @@ import com.jFxKasse.datatypes.tableDataCurrentOrder;
import com.jFxKasse.datatypes.tableDataJob; import com.jFxKasse.datatypes.tableDataJob;
import com.jFxKasse.datatypes.tableDataPositionen; import com.jFxKasse.datatypes.tableDataPositionen;
public class MainWindowController public class MainWindowController {
{
@FXML @FXML
private AnchorPane mainAnchorpane; private AnchorPane mainAnchorpane;
@ -381,8 +380,7 @@ public class MainWindowController
new tableDataPositionen(0, "0", "0", "0", "0")); new tableDataPositionen(0, "0", "0", "0", "0"));
@FXML @FXML
public void ueberbtnAction(ActionEvent event) public void ueberbtnAction(ActionEvent event) { // Opens the 'About' dialog
{ // opens the 'Über' dialog
// creates a dialog // creates a dialog
Dialog<Pair<String, String>> dialog = new Dialog<>(); Dialog<Pair<String, String>> dialog = new Dialog<>();
@ -413,8 +411,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnOpenFolderAction(ActionEvent event) throws IOException public void btnOpenFolderAction(ActionEvent event) throws IOException {
{
if (System.getProperty("os.name").contains("Windows")) { if (System.getProperty("os.name").contains("Windows")) {
System.out.println("FCK Windows"); System.out.println("FCK Windows");
@ -427,15 +424,14 @@ public class MainWindowController
} }
@FXML @FXML
public void btnCreateNewDatabaseAction(ActionEvent event) throws Exception public void btnCreateNewDatabaseAction(ActionEvent event) throws Exception {
{
if (!(tftNewDBName.getText().equals(""))) { if (!(tftNewDBName.getText().equals(""))) {
xmlc.setDatabaseName(tftNewDBName.getText()); xmlc.setDatabaseName(tftNewDBName.getText());
dbc.setDbname(xmlc.getDatabaseName()); dbc.setDbname(xmlc.getDatabaseName());
dbc.connectDatabase(); // establish DB connection dbc.connectDatabase(); // Establish DB connection
dbc.createTablePositionen(); // Create new table dbc.createTablePositionen(); // Create new table
dbc.erstelleTabelleJobs(); // Create new table dbc.erstelleTabelleJobs(); // Create new table
dbc.createTableCategory(); // Create new table dbc.createTableCategory(); // Create new table
@ -446,12 +442,12 @@ public class MainWindowController
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
setDBLabel(); // Set new databese labels setDBLabel(); // Set new database labels
blockUI(false); // unlock UI elements that need DB blockUI(false); // Unlock UI elements that need DB
fillTablePositionen(); // fill TreeTable 'Positionen' fillTablePositionen(); // Fill TreeTable 'Positions'
fillCategory(); fillCategory();
fillPrinterSettings(); fillPrinterSettings();
initUI(); // Starting the UI elements initUI(); // Initialize the UI elements
getSelectedCat(); getSelectedCat();
createNewJob(); createNewJob();
@ -460,42 +456,39 @@ public class MainWindowController
} }
@FXML @FXML
public void btnSaveEntryAction(ActionEvent event) public void btnSaveEntryAction(ActionEvent event) {
{
dbc.setName_Positionen(idPositionen, tftNewPosition.getText()); dbc.setName_Positionen(idPositionen, tftNewPosition.getText());
dbc.setValue_Positionen(idPositionen, tftNewValue.getText()); dbc.setValue_Positionen(idPositionen, tftNewValue.getText());
dbc.setColor_Positionen(idPositionen, getColorCodes(selectedColorName)); dbc.setColor_Positionen(idPositionen, getColorCodes(selectedColorName));
dbc.setCat_Positionen(idPositionen, getSelectedCat()); dbc.setCat_Positionen(idPositionen, getSelectedCat());
fillTablePositionen(); // fill TreeTable 'Positionen' fillTablePositionen(); // Fill TreeTable 'Positions'
loadGridButtons(); loadGridButtons();
} }
@FXML @FXML
public void btnClearEntryAction(ActionEvent event) public void btnClearEntryAction(ActionEvent event) {
{ // Set default values
// set default values
dbc.setName_Positionen(idPositionen, "Noch frei"); dbc.setName_Positionen(idPositionen, "Noch frei");
dbc.setValue_Positionen(idPositionen, "0.00"); dbc.setValue_Positionen(idPositionen, "0.00");
dbc.setColor_Positionen(idPositionen, "#FAF0E6"); dbc.setColor_Positionen(idPositionen, "#FAF0E6");
dbc.setCat_Positionen(idPositionen, 6); dbc.setCat_Positionen(idPositionen, 6);
fillTablePositionen(); // fill TreeTable 'Positionen' fillTablePositionen(); // Fill TreeTable 'Positions'
} }
@FXML @FXML
public void btnCalcStatsAction(ActionEvent event) public void btnCalcStatsAction(ActionEvent event) {
{
int allActiveJobs = Integer.valueOf(dbc.getJobCount()); int allActiveJobs = Integer.valueOf(dbc.getJobCount());
if (dbc.getAllJobValue_Job() != null) { if (dbc.getAllJobValue_Job() != null) {
// summed up values of all jobs that are active // Summed up values of all active jobs
float allValue = Float.valueOf(dbc.getAllJobValue_Job()); float allValue = Float.valueOf(dbc.getAllJobValue_Job());
// count of all jobs that are active // Count of all active jobs
float avgJobValue = ((float) allValue / allActiveJobs); float avgJobValue = ((float) allValue / allActiveJobs);
@ -507,8 +500,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnSavePrinterAction(ActionEvent event) public void btnSavePrinterAction(ActionEvent event) {
{
System.out.println("btnSavePrinterAction"); System.out.println("btnSavePrinterAction");
xmlc.setPrintername( xmlc.setPrintername(
@ -530,8 +522,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnCancelJobAction(ActionEvent event) public void btnCancelJobAction(ActionEvent event) {
{
dbc.setStatus_Jobs(selectedJobId + 1, "storniert"); dbc.setStatus_Jobs(selectedJobId + 1, "storniert");
fillTableJobs(); fillTableJobs();
btnCancelJob.setDisable(true); btnCancelJob.setDisable(true);
@ -539,8 +530,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnLockAction(ActionEvent event) public void btnLockAction(ActionEvent event) {
{
lockState = !lockState; lockState = !lockState;
blockUI(lockState); blockUI(lockState);
@ -552,8 +542,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnSaveCatAction(ActionEvent event) public void btnSaveCatAction(ActionEvent event) {
{
dbc.setName_Category(1, tftKat01.getText()); dbc.setName_Category(1, tftKat01.getText());
dbc.setName_Category(2, tftKat02.getText()); dbc.setName_Category(2, tftKat02.getText());
dbc.setName_Category(3, tftKat03.getText()); dbc.setName_Category(3, tftKat03.getText());
@ -566,8 +555,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnDeleteSelectedPositionAction(ActionEvent event) public void btnDeleteSelectedPositionAction(ActionEvent event) {
{
currentJob.deletePosName(currentOrderPosName); currentJob.deletePosName(currentOrderPosName);
rootCurrentJob.getChildren().remove(0, rootCurrentJob.getChildren().remove(0,
rootCurrentJob.getChildren().size()); rootCurrentJob.getChildren().size());
@ -592,8 +580,7 @@ public class MainWindowController
} }
@FXML @FXML
public void btnPrintBillAction(ActionEvent event) public void btnPrintBillAction(ActionEvent event) {
{
btnPrintBill.setDisable(true); btnPrintBill.setDisable(true);
tapPosEdit.setDisable(false); tapPosEdit.setDisable(false);
btnDeleteSelectedPosition.setDisable(true); btnDeleteSelectedPosition.setDisable(true);
@ -626,165 +613,138 @@ public class MainWindowController
} }
@FXML @FXML
public void btnReprintJobAction(ActionEvent event) public void btnReprintJobAction(ActionEvent event) {
{
System.out.println("reprint job"); System.out.println("reprint job");
pj.printJob((selectedJobId + 1), xmlc, dbc, pc); pj.printJob((selectedJobId + 1), xmlc, dbc, pc);
} }
@FXML @FXML
public void gridButton01Action(ActionEvent event) public void gridButton01Action(ActionEvent event) {
{
handleGridButtons(1); handleGridButtons(1);
} }
@FXML @FXML
public void gridButton02Action(ActionEvent event) public void gridButton02Action(ActionEvent event) {
{
handleGridButtons(2); handleGridButtons(2);
} }
@FXML @FXML
public void gridButton03Action(ActionEvent event) public void gridButton03Action(ActionEvent event) {
{
handleGridButtons(3); handleGridButtons(3);
} }
@FXML @FXML
public void gridButton04Action(ActionEvent event) public void gridButton04Action(ActionEvent event) {
{
handleGridButtons(4); handleGridButtons(4);
} }
@FXML @FXML
public void gridButton05Action(ActionEvent event) public void gridButton05Action(ActionEvent event) {
{
handleGridButtons(5); handleGridButtons(5);
} }
@FXML @FXML
public void gridButton06Action(ActionEvent event) public void gridButton06Action(ActionEvent event) {
{
handleGridButtons(6); handleGridButtons(6);
} }
@FXML @FXML
public void gridButton07Action(ActionEvent event) public void gridButton07Action(ActionEvent event) {
{
handleGridButtons(7); handleGridButtons(7);
} }
@FXML @FXML
public void gridButton08Action(ActionEvent event) public void gridButton08Action(ActionEvent event) {
{
handleGridButtons(8); handleGridButtons(8);
} }
@FXML @FXML
public void gridButton09Action(ActionEvent event) public void gridButton09Action(ActionEvent event) {
{
handleGridButtons(9); handleGridButtons(9);
} }
@FXML @FXML
public void gridButton10Action(ActionEvent event) public void gridButton10Action(ActionEvent event) {
{
handleGridButtons(10); handleGridButtons(10);
} }
@FXML @FXML
public void gridButton11Action(ActionEvent event) public void gridButton11Action(ActionEvent event) {
{
handleGridButtons(11); handleGridButtons(11);
} }
@FXML @FXML
public void gridButton12Action(ActionEvent event) public void gridButton12Action(ActionEvent event) {
{
handleGridButtons(12); handleGridButtons(12);
} }
@FXML @FXML
public void gridButton13Action(ActionEvent event) public void gridButton13Action(ActionEvent event) {
{
handleGridButtons(13); handleGridButtons(13);
} }
@FXML @FXML
public void gridButton14Action(ActionEvent event) public void gridButton14Action(ActionEvent event) {
{
handleGridButtons(14); handleGridButtons(14);
} }
@FXML @FXML
public void gridButton15Action(ActionEvent event) public void gridButton15Action(ActionEvent event) {
{
handleGridButtons(15); handleGridButtons(15);
} }
@FXML @FXML
public void gridButton16Action(ActionEvent event) public void gridButton16Action(ActionEvent event) {
{
handleGridButtons(16); handleGridButtons(16);
} }
@FXML @FXML
public void gridButton17Action(ActionEvent event) public void gridButton17Action(ActionEvent event) {
{
handleGridButtons(17); handleGridButtons(17);
} }
@FXML @FXML
public void gridButton18Action(ActionEvent event) public void gridButton18Action(ActionEvent event) {
{
handleGridButtons(18); handleGridButtons(18);
} }
@FXML @FXML
public void gridButton19Action(ActionEvent event) public void gridButton19Action(ActionEvent event) {
{
handleGridButtons(19); handleGridButtons(19);
} }
@FXML @FXML
public void gridButton20Action(ActionEvent event) public void gridButton20Action(ActionEvent event) {
{
handleGridButtons(20); handleGridButtons(20);
} }
@FXML @FXML
public void gridButton21Action(ActionEvent event) public void gridButton21Action(ActionEvent event) {
{
handleGridButtons(21); handleGridButtons(21);
} }
@FXML @FXML
public void gridButton22Action(ActionEvent event) public void gridButton22Action(ActionEvent event) {
{
handleGridButtons(22); handleGridButtons(22);
} }
@FXML @FXML
public void gridButton23Action(ActionEvent event) public void gridButton23Action(ActionEvent event) {
{
handleGridButtons(23); handleGridButtons(23);
} }
@FXML @FXML
public void gridButton24Action(ActionEvent event) public void gridButton24Action(ActionEvent event) {
{
handleGridButtons(24); handleGridButtons(24);
} }
@FXML @FXML
public void gridButton25Action(ActionEvent event) public void gridButton25Action(ActionEvent event) {
{
handleGridButtons(25); handleGridButtons(25);
} }
@FXML @FXML
public void fillTablePositionen() public void fillTablePositionen() { // Load positions into the TreeTableView
{ // loads the table in the TreeTableView
rootPositionen.getChildren().remove(0, rootPositionen.getChildren().remove(0,
rootPositionen.getChildren().size()); rootPositionen.getChildren().size());
@ -808,8 +768,7 @@ public class MainWindowController
} }
} }
public void initUI() public void initUI() {
{
System.out.println("initUI"); System.out.println("initUI");
for (int i = 0; i < 25; i++) { for (int i = 0; i < 25; i++) {
getButtonByID(i).setVisible(false); getButtonByID(i).setVisible(false);
@ -835,8 +794,7 @@ public class MainWindowController
} }
public int getSelectedCat() public int getSelectedCat() {
{
ObservableList<String> cats = FXCollections.observableArrayList(); ObservableList<String> cats = FXCollections.observableArrayList();
for (int i = 1; i < 5; i++) { for (int i = 1; i < 5; i++) {
@ -853,8 +811,7 @@ public class MainWindowController
.addListener(new ChangeListener<Number>() { .addListener(new ChangeListener<Number>() {
@Override @Override
public void changed(ObservableValue<? extends Number> ov, public void changed(ObservableValue<? extends Number> ov,
Number value, Number new_value) Number value, Number new_value) {
{
try { try {
selectedCatName = catChoise.getItems().get((int) new_value) selectedCatName = catChoise.getItems().get((int) new_value)
.toString(); .toString();
@ -871,8 +828,7 @@ public class MainWindowController
return 5; return 5;
} }
public void fillPrinterSettings() public void fillPrinterSettings() {
{
System.out.println("Fill printer Settings"); System.out.println("Fill printer Settings");
ObservableList<String> printers = FXCollections ObservableList<String> printers = FXCollections
@ -884,16 +840,16 @@ public class MainWindowController
int index = 0; int index = 0;
for (String currentPrinter : printers) { for (String currentPrinter : printers) {
if (xmlc.getPrintername().equals(currentPrinter)) { if (xmlc.getPrintername().equals(currentPrinter)) {
// saved printer is available // Saved printer is available
printerFound = true; printerFound = true;
// select saved printer in UI // Select saved printer in UI
printerChoise.getSelectionModel().select(index); printerChoise.getSelectionModel().select(index);
} }
index++; index++;
} }
if (!printerFound) { if (!printerFound) {
// saved printer is not available // Saved printer is not available
printerChoise.getSelectionModel().select(printers.size() - 1); printerChoise.getSelectionModel().select(printers.size() - 1);
System.out.println("no printer found"); System.out.println("no printer found");
} }
@ -924,8 +880,7 @@ public class MainWindowController
} }
public void fillCategory() public void fillCategory() {
{
tftKat01.setText(dbc.getName_Category(1)); tftKat01.setText(dbc.getName_Category(1));
tftKat02.setText(dbc.getName_Category(2)); tftKat02.setText(dbc.getName_Category(2));
tftKat03.setText(dbc.getName_Category(3)); tftKat03.setText(dbc.getName_Category(3));
@ -933,8 +888,7 @@ public class MainWindowController
tftKat05.setText(dbc.getName_Category(5)); tftKat05.setText(dbc.getName_Category(5));
} }
private void initPositionen() private void initPositionen() {
{
entryTreeTable.setRoot(rootPositionen); entryTreeTable.setRoot(rootPositionen);
entryTreeTable.setShowRoot(false); entryTreeTable.setShowRoot(false);
entryTreeTable.setEditable(false); entryTreeTable.setEditable(false);
@ -954,8 +908,7 @@ public class MainWindowController
.addListener(new ChangeListener<Number>() { .addListener(new ChangeListener<Number>() {
@Override @Override
public void changed(ObservableValue<? extends Number> ov, public void changed(ObservableValue<? extends Number> ov,
Number value, Number new_value) Number value, Number new_value) {
{
selectedColorName = colorChoise.getItems() selectedColorName = colorChoise.getItems()
.get((int) new_value).toString(); .get((int) new_value).toString();
} }
@ -980,10 +933,9 @@ public class MainWindowController
.addListener(new ChangeListener<Object>() { .addListener(new ChangeListener<Object>() {
@Override @Override
public void changed(ObservableValue<?> observable, Object oldVal, public void changed(ObservableValue<?> observable, Object oldVal,
Object newVal) Object newVal) {
{
int selected = entryTreeTable.getSelectionModel() int selected = entryTreeTable.getSelectionModel()
.getSelectedIndex(); // get selected item .getSelectedIndex(); // Get selected item
try { try {
idPositionen = columnPosnumber.getCellData(selected); idPositionen = columnPosnumber.getCellData(selected);
@ -1006,8 +958,7 @@ public class MainWindowController
tftNewValue.textProperty().addListener(new ChangeListener<String>() { tftNewValue.textProperty().addListener(new ChangeListener<String>() {
@Override @Override
public void changed(ObservableValue<? extends String> observable, public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) String oldValue, String newValue) {
{
if (!newValue.matches("\\d{0,4}([\\.]\\d{0,2})?")) { if (!newValue.matches("\\d{0,4}([\\.]\\d{0,2})?")) {
tftNewValue.setText(oldValue); tftNewValue.setText(oldValue);
} }
@ -1031,16 +982,14 @@ public class MainWindowController
} }
public void setMain(Main main, DBController dbc, XMLController xmlc, public void setMain(Main main, DBController dbc, XMLController xmlc,
PrinterController pc) PrinterController pc) {
{
this.main = main; this.main = main;
this.dbc = dbc; this.dbc = dbc;
this.xmlc = xmlc; this.xmlc = xmlc;
this.pc = pc; this.pc = pc;
} }
public void setDBLabel() throws Exception public void setDBLabel() throws Exception {
{
if (xmlc.loadSettings() == true) { if (xmlc.loadSettings() == true) {
labelDBStatus.setText( labelDBStatus.setText(
"Geladene Datenbank: " + xmlc.getDatabaseName() + ".db"); "Geladene Datenbank: " + xmlc.getDatabaseName() + ".db");
@ -1059,8 +1008,7 @@ public class MainWindowController
} }
} }
private String getColorCodes(String pColorName) private String getColorCodes(String pColorName) {
{
switch (pColorName) { switch (pColorName) {
case "Rot": case "Rot":
return "#ad0000"; return "#ad0000";
@ -1084,8 +1032,7 @@ public class MainWindowController
} }
} }
private String getColorNames(String pColorCode) private String getColorNames(String pColorCode) {
{
switch (pColorCode) { switch (pColorCode) {
case "#ad0000": case "#ad0000":
return "Rot"; return "Rot";
@ -1109,8 +1056,7 @@ public class MainWindowController
} }
} }
private Integer getColorID(String pColorCode) private Integer getColorID(String pColorCode) {
{
switch (pColorCode) { switch (pColorCode) {
case "#ad0000": case "#ad0000":
return 0; return 0;
@ -1134,19 +1080,18 @@ public class MainWindowController
} }
} }
public void blockUI(boolean pState) public void blockUI(boolean pState) {
{
btnCalcStats.setDisable(pState); btnCalcStats.setDisable(pState);
btnClearEntry.setDisable(pState); btnClearEntry.setDisable(pState);
if ((!isPrintBtnDisabled) && (!pState)) { if ((!isPrintBtnDisabled) && (!pState)) {
// print was not disabled and will be enabled again // Print was not disabled and will be enabled again
btnPrintBill.setDisable(pState); btnPrintBill.setDisable(pState);
btnDeleteSelectedPosition.setDisable(pState); btnDeleteSelectedPosition.setDisable(pState);
} }
if (pState) { if (pState) {
// disable allways // Always disable
btnPrintBill.setDisable(pState); btnPrintBill.setDisable(pState);
btnDeleteSelectedPosition.setDisable(pState); btnDeleteSelectedPosition.setDisable(pState);
} }
@ -1181,8 +1126,7 @@ public class MainWindowController
} }
public void loadGridButtons() public void loadGridButtons() {
{
for (int i = 0; i < 25; i++) { for (int i = 0; i < 25; i++) {
getButtonByID(i).setText(dbc.getName_Positionen(i + 1)); getButtonByID(i).setText(dbc.getName_Positionen(i + 1));
getButtonByID(i).setFocusTraversable(false); getButtonByID(i).setFocusTraversable(false);
@ -1204,8 +1148,7 @@ public class MainWindowController
} }
} }
public Button getButtonByID(int pID) public Button getButtonByID(int pID) {
{
switch (pID) { switch (pID) {
case 0: case 0:
return gridButton01; return gridButton01;
@ -1262,8 +1205,7 @@ public class MainWindowController
} }
} }
private void handleGridButtons(int pID) private void handleGridButtons(int pID) {
{
if (!getButtonByID(pID - 1).isVisible()) { if (!getButtonByID(pID - 1).isVisible()) {
// Button is not visible, no action // Button is not visible, no action
@ -1292,8 +1234,7 @@ public class MainWindowController
} }
private void initCurrentOrderTreeTableView() private void initCurrentOrderTreeTableView() {
{
columnQuantity columnQuantity
.setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;"); .setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
columnPosition columnPosition
@ -1313,13 +1254,12 @@ public class MainWindowController
.addListener(new ChangeListener<Object>() { .addListener(new ChangeListener<Object>() {
@Override @Override
public void changed(ObservableValue<?> observable, Object oldVal, public void changed(ObservableValue<?> observable, Object oldVal,
Object newVal) Object newVal) {
{
int selected = tableCurrentOrder.getSelectionModel() int selected = tableCurrentOrder.getSelectionModel()
.getSelectedIndex(); // get selected item .getSelectedIndex(); // Get selected item
if (columnPosition.getCellData(selected) != null) { if (columnPosition.getCellData(selected) != null) {
currentOrderPosName = columnPosition.getCellData(selected); // Ausgewählte currentOrderPosName = columnPosition.getCellData(selected); // Selected position
btnDeleteSelectedPosition.setDisable(false); btnDeleteSelectedPosition.setDisable(false);
} }
} }
@ -1327,8 +1267,7 @@ public class MainWindowController
} }
private void initJobTreeTableView() private void initJobTreeTableView() {
{
columnJobNumber columnJobNumber
.setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;"); .setStyle("-fx-alignment: CENTER; -fx-font: 17px Cantarell;");
@ -1365,10 +1304,9 @@ public class MainWindowController
.addListener(new ChangeListener<Object>() { .addListener(new ChangeListener<Object>() {
@Override @Override
public void changed(ObservableValue<?> observable, Object oldVal, public void changed(ObservableValue<?> observable, Object oldVal,
Object newVal) Object newVal) {
{
selectedJobId = jobsTreeTable.getSelectionModel() selectedJobId = jobsTreeTable.getSelectionModel()
.getSelectedIndex(); // get selected item .getSelectedIndex(); // Get selected item
if (dbc.getState_Job(selectedJobId + 1).equals("storniert")) { if (dbc.getState_Job(selectedJobId + 1).equals("storniert")) {
btnCancelJob.setDisable(true); btnCancelJob.setDisable(true);
@ -1382,8 +1320,7 @@ public class MainWindowController
} }
@FXML @FXML
public void fillTableJobs() public void fillTableJobs() { // Load jobs into the TreeTableView
{ // loads the table in the TreeTableView
rootJobs.getChildren().remove(0, rootJobs.getChildren().size()); rootJobs.getChildren().remove(0, rootJobs.getChildren().size());
for (int i = 0; i < dbc.loadTableJobs_Job().size(); i++) { for (int i = 0; i < dbc.loadTableJobs_Job().size(); i++) {
@ -1415,15 +1352,13 @@ public class MainWindowController
} }
public void createNewJob() public void createNewJob() {
{
currentJob = new Job(dbc.getLatestJobNumber_Job() + 1); currentJob = new Job(dbc.getLatestJobNumber_Job() + 1);
labelJobCounter.setText("Auftragsnummer: " labelJobCounter.setText("Auftragsnummer: "
+ String.valueOf(dbc.getLatestJobNumber_Job() + 1)); + String.valueOf(dbc.getLatestJobNumber_Job() + 1));
} }
private static String createJobDescription(String pNames, String pQuantities) private static String createJobDescription(String pNames, String pQuantities) {
{
String line = pQuantities; String line = pQuantities;
int size = line.length() - line.replace(";", "").length() + 1; int size = line.length() - line.replace(";", "").length() + 1;
@ -1441,15 +1376,13 @@ public class MainWindowController
return tmp; return tmp;
} }
private void setJobPrizeLabel(float pPrize) private void setJobPrizeLabel(float pPrize) {
{
String str = String.format("%.02f", pPrize); String str = String.format("%.02f", pPrize);
str.replace('.', ','); str.replace('.', ',');
labelAllPrize.setText(str + ""); labelAllPrize.setText(str + "");
} }
private void setJobStatLabel(int pCounter, float pAvgValue, float pAllValue) private void setJobStatLabel(int pCounter, float pAvgValue, float pAllValue) {
{
labelJobCount.setText("Anzahl Aufträge: " + pCounter); labelJobCount.setText("Anzahl Aufträge: " + pCounter);
String str = String.format("%.02f", pAvgValue); String str = String.format("%.02f", pAvgValue);
@ -1468,19 +1401,16 @@ public class MainWindowController
+ timedate.getSystemDate()); + timedate.getSystemDate());
} }
public void updateTimeLabel() public void updateTimeLabel() {
{
labelTime.setText("Uhrzeit: " + timedate.getSystemTime()); labelTime.setText("Uhrzeit: " + timedate.getSystemTime());
} }
public void blockUnlock() public void blockUnlock() {
{
btnLock.setDisable(true); btnLock.setDisable(true);
} }
public int getActiveTab() public int getActiveTab() {
{
if (tapNewJob.isSelected()) { if (tapNewJob.isSelected()) {
return 0; return 0;

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++) {
@ -84,11 +80,11 @@ 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();
@ -103,8 +99,7 @@ public class PrinterController implements Printable
} }
} }
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;
} }
@ -119,8 +114,7 @@ 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();
@ -132,8 +126,7 @@ public class PrinterController implements Printable
} }
} }
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,8 +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;
@ -29,14 +28,12 @@ public class XMLController
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");
@ -71,8 +68,7 @@ public class XMLController
} }
} }
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);
@ -121,8 +117,7 @@ public class XMLController
} }
} }
public void initXML() public void initXML() {
{
this.printername = "Drucker auswählen"; this.printername = "Drucker auswählen";
this.offsetHeader = 1; this.offsetHeader = 1;
@ -136,83 +131,67 @@ public class XMLController
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;
} }

View File

@ -3,8 +3,7 @@ package com.jFxKasse.datatypes;
import java.math.BigDecimal; import java.math.BigDecimal;
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,8 +18,7 @@ public class Job
private ArrayList<String> positionenCat; private ArrayList<String> positionenCat;
public Job(int pJobnumber) public Job(int pJobnumber) {
{
this.jobnumber = pJobnumber; this.jobnumber = pJobnumber;
positionenQuantity = new ArrayList<Integer>(); positionenQuantity = new ArrayList<Integer>();
positionenName = new ArrayList<String>(); positionenName = new ArrayList<String>();
@ -29,23 +27,19 @@ public class Job
} }
public void setJobtime(String jobtime) public void setJobtime(String jobtime) {
{
this.jobtime = jobtime; this.jobtime = jobtime;
} }
public int getJobnumber() 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();
@ -53,8 +47,7 @@ public class Job
} }
public void addPosition(String pPositionenName, float pPositionenValue, public void addPosition(String pPositionenName, float pPositionenValue,
String pPositionenCat) String pPositionenCat) {
{
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
@ -71,8 +64,7 @@ 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("---------------------------------------------");
@ -88,8 +80,7 @@ public class Job
} }
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++) {
@ -102,20 +93,18 @@ public class Job
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 jobvalue = jobvalue
+ (positionenQuantity.get(i) * positionenValue.get(i)); + (positionenQuantity.get(i) * positionenValue.get(i));
} }
//Round to two decimals // Round to two decimal places
jobvalue = BigDecimal.valueOf(jobvalue).setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); jobvalue = BigDecimal.valueOf(jobvalue).setScale(2, BigDecimal.ROUND_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++) {
@ -124,8 +113,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++) {
@ -134,8 +122,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++) {
@ -144,8 +131,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++) {
@ -154,8 +140,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++) {
@ -178,8 +163,7 @@ public class Job
} }
public boolean existsPosName(String pPosName) 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;
@ -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
@ -39,8 +39,7 @@ public abstract class PrintData
* @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 footer) String timeAndDatePrint, String header, 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
@ -61,8 +61,7 @@ public abstract class PrintData
*/ */
public void setData(String jobID, String timeAndDateOrder, public void setData(String jobID, String timeAndDateOrder,
String positionsQuantity, String positionsName, String positionsQuantity, String positionsName,
String positionsValue, String positionsCategory, String jobValue) String positionsValue, String positionsCategory, String jobValue) {
{
this.jobID = jobID; this.jobID = jobID;
this.timeAndDateOrder = timeAndDateOrder; this.timeAndDateOrder = timeAndDateOrder;
this.positionsQuantity = positionsQuantity; this.positionsQuantity = positionsQuantity;
@ -73,25 +72,25 @@ public abstract class PrintData
} }
/** /**
* 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 { } else {
// No need to be splitted // 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,20 +99,20 @@ public abstract class PrintData
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) { } catch (Exception e) {
// data string not long enough // 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++) {
@ -123,12 +122,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 = " ";
@ -142,13 +141,13 @@ public abstract class PrintData
} }
/** /**
* 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();
@ -173,7 +172,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
@ -15,25 +15,23 @@ public class PrintDataSimple extends PrintData
* @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 footer) String timeAndDatePrint, String header, String footer) {
{
super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header, super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header,
footer); 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 = " "; String header = " ";
for (int i = 1; i < headerSpace; i++) { for (int i = 1; i < headerSpace; i++) {

View File

@ -2,8 +2,7 @@ package com.jFxKasse.datatypes;
import java.util.ArrayList; import java.util.ArrayList;
public class PrintDataSplitted extends PrintData public class PrintDataSplitted extends PrintData {
{
private ArrayList<String> printString = new ArrayList<String>(); private ArrayList<String> printString = new ArrayList<String>();
private ArrayList<Category> categories = new ArrayList<Category>(); private ArrayList<Category> categories = new ArrayList<Category>();
@ -11,7 +10,8 @@ public class PrintDataSplitted extends PrintData
private int categoryCount = 0; private int categoryCount = 0;
/** /**
* 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
@ -20,25 +20,23 @@ public class PrintDataSplitted extends PrintData
* @param footer * @param footer
*/ */
public PrintDataSplitted(int lineBreak, int headerSpace, int footerSpace, public PrintDataSplitted(int lineBreak, int headerSpace, int footerSpace,
String timeAndDatePrint, String header, String footer) String timeAndDatePrint, String header, String footer) {
{
super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header, super(lineBreak, headerSpace, footerSpace, timeAndDatePrint, header,
footer); footer);
} }
/** /**
* Generates the String * Generates the print strings
* @return the final Array with the Print Strings *
* @return the final array of print strings
*/ */
public ArrayList<String> getPrintStrings() public ArrayList<String> getPrintStrings() {
{
generatePrintString(); generatePrintString();
return printString; return printString;
} }
@Override @Override
protected void generatePrintString() protected void generatePrintString() {
{
String firstBill; String firstBill;
@ -57,7 +55,7 @@ public class PrintDataSplitted extends PrintData
+ setRight("Druck: ", timeAndDatePrint) + "\n" + setRight("Druck: ", timeAndDatePrint) + "\n"
+ setRight("Bestellnummer: ", jobID); + setRight("Bestellnummer: ", jobID);
/* Splitted Bills */ /* Splitted Bills by Category */
/* Price */ /* Price */
@ -81,9 +79,9 @@ public class PrintDataSplitted extends PrintData
printString.add(firstBill); printString.add(firstBill);
/* first bill ends here */ /* First bill ends here */
/* Categories in extra bills */ /* Category-specific extra bills */
String positions = null; String positions = null;
@ -101,7 +99,7 @@ public class PrintDataSplitted extends PrintData
positionCategory[i]); positionCategory[i]);
} }
// loops through all categories // Loops through all categories
for (int i = 0; i < categories.size(); i++) { for (int i = 0; i < categories.size(); i++) {
String thisBill; String thisBill;
@ -147,8 +145,7 @@ public class PrintDataSplitted extends PrintData
} }
private void insertToCategory(int quantity, String name, String value, private void insertToCategory(int quantity, String name, String value,
String category) String category) {
{
boolean createNewCategorie = true; boolean createNewCategorie = true;
for (int i = 0; i < categoryCount; i++) { for (int i = 0; i < categoryCount; i++) {
if (category.equals(categories.get(i).getCategoryName())) { if (category.equals(categories.get(i).getCategoryName())) {
@ -158,7 +155,7 @@ public class PrintDataSplitted extends PrintData
} }
if (createNewCategorie) { if (createNewCategorie) {
// position has a new category // Position has a new category
categories.add(new Category(category)); categories.add(new Category(category));
categories.get(categoryCount).addPosition(quantity, name, value, this); categories.get(categoryCount).addPosition(quantity, name, value, this);
categoryCount++; categoryCount++;

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 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();
@ -18,8 +17,8 @@ public class tableDataPositionen
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,18 +26,15 @@ 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;
} }
@ -46,23 +42,19 @@ public class tableDataPositionen
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();
} }
@ -70,23 +62,19 @@ public class tableDataPositionen
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);
} }
@ -94,8 +82,7 @@ public class tableDataPositionen
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 */