diff --git a/src/main/java/com/jFxKasse/application/Main.java b/src/main/java/com/jFxKasse/application/Main.java index 1f79798..f78a1c7 100644 --- a/src/main/java/com/jFxKasse/application/Main.java +++ b/src/main/java/com/jFxKasse/application/Main.java @@ -11,6 +11,7 @@ import javafx.fxml.FXMLLoader; import javafx.stage.Stage; import javafx.util.Duration; import com.jFxKasse.controller.MainWindowController; +import com.jFxKasse.controller.PrinterController; import com.jFxKasse.controller.XMLController; import com.jFxKasse.controller.DBController; import javafx.scene.Scene; @@ -27,6 +28,8 @@ public class Main extends Application private XMLController xmlc = new XMLController(filepathXMLLinux); private DBController dbc = new DBController(this); + + private PrinterController pc = new PrinterController(); private Stage primaryStage; @@ -50,7 +53,8 @@ public class Main extends Application primaryStage.setTitle("jFxKasse"); // Title of window mwc = loader.getController(); - mwc.setMain(this, dbc, xmlc); + pc.searchPrinters(); + mwc.setMain(this, dbc, xmlc, pc); firstStart(); @@ -91,6 +95,7 @@ public class Main extends Application dbc.connectDatabase(); // estabishing DB conection mwc.fillTablePositionen(); // fill TreeTable 'Positionen' mwc.fillCategory(); + mwc.fillPrinterSettings(); mwc.fillTableJobs(); mwc.loadGridButtons(); mwc.getSelectedCat(); // Load DB entries in Chois Box diff --git a/src/main/java/com/jFxKasse/controller/MainWindowController.java b/src/main/java/com/jFxKasse/controller/MainWindowController.java index b3ccbd4..697dff4 100644 --- a/src/main/java/com/jFxKasse/controller/MainWindowController.java +++ b/src/main/java/com/jFxKasse/controller/MainWindowController.java @@ -23,6 +23,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import javax.swing.plaf.synth.SynthSpinnerUI; import com.jfoenix.controls.JFXTextField; import com.jfoenix.controls.JFXToggleButton; @@ -34,6 +35,8 @@ import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.control.Label; import javafx.scene.control.Spinner; +import javafx.scene.control.SpinnerValueFactory; +import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory; import javafx.scene.control.Tab; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; @@ -349,14 +352,14 @@ public class MainWindowController private XMLController xmlc; + private PrinterController pc; + private int idPositionen = 0; private String selectedColorName; private String selectedCatName; - - private boolean lockState = false; private boolean isPrintBtnDisabled = true; @@ -379,8 +382,6 @@ public class MainWindowController TreeItem rootPositionen = new TreeItem<>( new tableDataPositionen(0, "0", "0", "0", "0")); - - @FXML public void ueberbtnAction(ActionEvent event) { // opens the 'Über' dialog @@ -429,14 +430,14 @@ public class MainWindowController if (!(tftNewDBName.getText().equals(""))) { xmlc.setDatabaseName(tftNewDBName.getText()); - + dbc.setDbname(xmlc.getDatabaseName()); dbc.connectDatabase(); // establish DB connection dbc.createTablePositionen(); // Create new table dbc.erstelleTabelleJobs(); // Create new table dbc.createTableCategory(); // Create new table try { - //saveSettings(getDatabaseName()); + // saveSettings(getDatabaseName()); xmlc.saveSettings(); } catch (Exception e) { // TODO Auto-generated catch block @@ -446,6 +447,7 @@ public class MainWindowController blockUI(false); // unlock UI elements that need DB fillTablePositionen(); // fill TreeTable 'Positionen' fillCategory(); + fillPrinterSettings(); initUI(); // Starting the UI elements getSelectedCat(); createNewJob(); @@ -503,16 +505,30 @@ public class MainWindowController titlePaneStats.setVisible(true); } - @FXML - public void btnReprintJobAction(ActionEvent event) - { - - } @FXML public void btnSavePrinterAction(ActionEvent event) { System.out.println("btnSavePrinterAction"); + + xmlc.setPrintername( + printerChoise.getSelectionModel().getSelectedItem().toString()); + xmlc.setLinebreak(linesSpinner.getValue()); + xmlc.setOffsetHeader(offsetHeaderSpinner.getValue()); + xmlc.setOffsetFooter(offsetFooterSpinner.getValue()); + xmlc.setHeader(tftheader.getText()); + xmlc.setFooter(tftfooter.getText()); + xmlc.setCategorySplitted(switchSeparate.isSelected()); + + try { + xmlc.saveSettings(); + } catch (Exception e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + } + + fillPrinterSettings(); + } @FXML @@ -580,6 +596,13 @@ public class MainWindowController } + @FXML + public void btnReprintJobAction(ActionEvent event) + { + + } + + @FXML public void btnPrintBillAction(ActionEvent event) { @@ -605,11 +628,10 @@ public class MainWindowController System.out.println(currentJob.getJobnumber()); /* TODO */ - PrinterController pc = new PrinterController(); - pc.searchPrinters(); + // pc.searchPrinters(); - pc.selectPrinter("CUPS-PDF"); + // pc.selectPrinter("CUPS-PDF"); /* TODO */ PrintDataSimple pds = new PrintDataSimple(28, 1, 2, @@ -880,6 +902,61 @@ public class MainWindowController return 5; } + public void fillPrinterSettings() + { + System.out.println("Fill printer Settings"); + + // System.out.println(pc.getAvailablePrinters()[0]); + + ObservableList printers = FXCollections + .observableArrayList(pc.getAvailablePrinters()); + printers.add("Drucker auswählen"); + printerChoise.setItems(printers); + + boolean printerFound = false; + int index = 0; + for (String currentPrinter : printers) { + if (xmlc.getPrintername().equals(currentPrinter)) { + // saved printer is available + printerFound = true; + // select saved printer in UI + printerChoise.getSelectionModel().select(index); + } + index++; + } + + if (!printerFound) { + // saved printer is not available + printerChoise.getSelectionModel().select(printers.size() - 1); + System.out.println("kein drucker"); + } + + SpinnerValueFactory valueFactoryLines = // + new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 99, + xmlc.getLinebreak()); + + linesSpinner.setValueFactory(valueFactoryLines); + + SpinnerValueFactory valueFactoryHeader = // + new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 99, + xmlc.getOffsetHeader()); + + offsetHeaderSpinner.setValueFactory(valueFactoryHeader); + + SpinnerValueFactory valueFactoryFooter = // + new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 99, + xmlc.getOffsetFooter()); + + offsetFooterSpinner.setValueFactory(valueFactoryFooter); + + tftheader.setText(xmlc.getHeader()); + + tftfooter.setText(xmlc.getFooter()); + + switchSeparate.setSelected(xmlc.getCategorySplitted()); + + } + public void fillCategory() { tftKat01.setText(dbc.getName_Category(1)); @@ -990,11 +1067,13 @@ public class MainWindowController } - public void setMain(Main main, DBController dbc, XMLController xmlc) + public void setMain(Main main, DBController dbc, XMLController xmlc, + PrinterController pc) { this.main = main; this.dbc = dbc; this.xmlc = xmlc; + this.pc = pc; } public String getSystemTime() @@ -1013,27 +1092,11 @@ public class MainWindowController return dateStr; } -/* - - public String getDatabaseName() - { - return xmlc.getDatabaseName(); - } - - - - public void setDatabaseName(String NewDatabaseName) - { - databaseName = NewDatabaseName; - } - - */ - public void setDBLabel() throws Exception { if (xmlc.loadSettings() == true) { - labelDBStatus - .setText("Geladene Datenbank: " + xmlc.getDatabaseName() + ".db"); + labelDBStatus.setText( + "Geladene Datenbank: " + xmlc.getDatabaseName() + ".db"); btnCreateNewDatabase.setDisable(true); tftNewDBName.setDisable(true); labelDBName.setTooltip(new Tooltip( diff --git a/src/main/java/com/jFxKasse/controller/XMLController.java b/src/main/java/com/jFxKasse/controller/XMLController.java index 2a470e7..56f5154 100644 --- a/src/main/java/com/jFxKasse/controller/XMLController.java +++ b/src/main/java/com/jFxKasse/controller/XMLController.java @@ -124,8 +124,7 @@ public class XMLController public void initXML() { - - this.printername = "CUPS-PDF"; + this.printername = "Drucker auswählen"; this.offsetHeader = 1; this.offsetFooter = 2; @@ -136,7 +135,6 @@ public class XMLController this.header = "XYZ GmbH"; this.footer = "Vielen Dank für den Einkauf"; - } public String getDatabaseName() diff --git a/src/main/resources/fxml/MainWindow.fxml b/src/main/resources/fxml/MainWindow.fxml index a41164c..c9a883d 100644 --- a/src/main/resources/fxml/MainWindow.fxml +++ b/src/main/resources/fxml/MainWindow.fxml @@ -112,7 +112,7 @@ - + @@ -155,7 +155,7 @@ - +