2018-12-03 21:12:00 +01:00
package com.jFxKasse.controller ;
2018-03-29 19:45:41 +02:00
import javafx.fxml.FXML ;
import javafx.geometry.Insets ;
import javafx.scene.control.Button ;
import javafx.scene.control.ButtonType ;
import javafx.scene.control.Dialog ;
import javafx.scene.control.TreeTableColumn ;
import javafx.scene.control.TreeTableView ;
import javafx.scene.control.TextField ;
import javafx.scene.control.TreeItem ;
2018-03-31 00:35:45 +02:00
import javafx.scene.control.TitledPane ;
2018-03-31 23:50:17 +02:00
import javafx.scene.control.Tooltip ;
2018-04-02 15:07:58 +02:00
import javafx.scene.control.ChoiceBox ;
2018-10-01 11:31:05 +02:00
2018-12-06 15:10:28 +01:00
import java.awt.Desktop ;
import java.io.File ;
import java.io.IOException ;
2018-10-01 11:31:05 +02:00
import com.jfoenix.controls.JFXTextField ;
2018-12-05 22:44:15 +01:00
import com.jfoenix.controls.JFXToggleButton ;
2018-03-29 19:45:41 +02:00
import javafx.beans.value.ChangeListener ;
import javafx.beans.value.ObservableValue ;
2018-04-02 15:07:58 +02:00
import javafx.collections.FXCollections ;
import javafx.collections.ObservableList ;
2018-03-29 19:45:41 +02:00
import javafx.event.ActionEvent ;
import javafx.scene.control.Label ;
2018-12-05 22:44:15 +01:00
import javafx.scene.control.Spinner ;
2018-12-06 13:11:35 +01:00
import javafx.scene.control.SpinnerValueFactory ;
2018-10-05 22:53:40 +02:00
import javafx.scene.control.Tab ;
2018-03-29 19:45:41 +02:00
import javafx.scene.layout.AnchorPane ;
import javafx.scene.layout.GridPane ;
import javafx.util.Pair ;
2018-12-03 21:12:00 +01:00
import com.jFxKasse.application.Main ;
2018-12-06 14:11:26 +01:00
import com.jFxKasse.application.PrintJob ;
import com.jFxKasse.application.TimeDate ;
2018-12-03 21:12:00 +01:00
import com.jFxKasse.datatypes.Job ;
import com.jFxKasse.datatypes.tableDataCurrentOrder ;
import com.jFxKasse.datatypes.tableDataJob ;
import com.jFxKasse.datatypes.tableDataPositionen ;
2018-03-29 19:45:41 +02:00
2018-03-29 19:51:34 +02:00
public class MainWindowController
{
2018-03-29 19:45:41 +02:00
@FXML
private AnchorPane mainAnchorpane ;
2018-03-29 19:51:34 +02:00
2018-03-31 23:50:17 +02:00
@FXML
private AnchorPane paneDB ;
2018-10-07 00:50:59 +02:00
@FXML
private Tab tapPosEdit ;
2018-03-31 23:50:17 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableView < tableDataCurrentOrder > tableCurrentOrder ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataCurrentOrder , Integer > columnQuantity ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataCurrentOrder , String > columnPosition ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataCurrentOrder , Integer > idSpalte01 = new TreeTableColumn < > (
2018-04-02 15:07:58 +02:00
" tableCurrentOrder " ) ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableView < tableDataJob > jobsTreeTable ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataJob , String > columnJobValue ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataJob , String > columnState ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataJob , String > columnPositions ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataJob , String > columnTime ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-07 00:50:59 +02:00
private TreeTableColumn < tableDataJob , Integer > columnJobNumber ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-04 23:46:42 +02:00
private TreeTableColumn < tableDataJob , Integer > idSpalte02 = new TreeTableColumn < > (
2018-04-02 15:07:58 +02:00
" jobsTreeTable " ) ;
2018-03-29 19:51:34 +02:00
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private TreeTableView < tableDataPositionen > entryTreeTable ;
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private TreeTableColumn < tableDataPositionen , String > columnColor ;
2018-03-31 02:00:12 +02:00
2018-10-01 11:31:05 +02:00
@FXML
private TreeTableColumn < tableDataPositionen , String > columnCat ;
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private TreeTableColumn < tableDataPositionen , String > columnPrize ;
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private TreeTableColumn < tableDataPositionen , String > columnPositionsEdit ;
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private TreeTableColumn < tableDataPositionen , Integer > columnPosnumber ;
2018-03-31 02:00:12 +02:00
@FXML
2018-04-02 15:07:58 +02:00
private ChoiceBox < String > colorChoise ;
2018-03-31 02:00:12 +02:00
2018-10-01 11:31:05 +02:00
@FXML
private ChoiceBox < String > catChoise ;
2018-12-05 22:44:15 +01:00
@FXML
private ChoiceBox < String > printerChoise ;
@FXML
private Spinner < Integer > linesSpinner ;
@FXML
private Spinner < Integer > offsetHeaderSpinner ;
@FXML
private Spinner < Integer > offsetFooterSpinner ;
2018-03-29 19:45:41 +02:00
@FXML
private Button ueberbtn ;
2018-03-29 19:51:34 +02:00
2018-03-29 22:48:11 +02:00
@FXML
private Button gridButton01 ;
@FXML
private Button gridButton02 ;
@FXML
private Button gridButton03 ;
@FXML
private Button gridButton04 ;
@FXML
private Button gridButton05 ;
@FXML
private Button gridButton06 ;
@FXML
private Button gridButton07 ;
@FXML
private Button gridButton08 ;
@FXML
private Button gridButton09 ;
@FXML
private Button gridButton10 ;
@FXML
private Button gridButton11 ;
@FXML
private Button gridButton12 ;
@FXML
private Button gridButton13 ;
@FXML
private Button gridButton14 ;
@FXML
private Button gridButton15 ;
@FXML
private Button gridButton16 ;
@FXML
private Button gridButton17 ;
@FXML
private Button gridButton18 ;
@FXML
private Button gridButton19 ;
@FXML
private Button gridButton20 ;
@FXML
private Button gridButton21 ;
@FXML
private Button gridButton22 ;
@FXML
private Button gridButton23 ;
@FXML
private Button gridButton24 ;
@FXML
private Button gridButton25 ;
2018-12-05 22:44:15 +01:00
@FXML
private Button btnSavePrinter ;
2018-03-30 00:19:35 +02:00
@FXML
private Button btnDeleteSelectedPosition ;
@FXML
private Button btnPrintBill ;
@FXML
private Button btnLock ;
2018-03-31 00:35:45 +02:00
@FXML
private Button btnReprintJob ;
@FXML
2018-04-02 15:07:58 +02:00
private Button btnCancelJob ;
2018-03-31 00:35:45 +02:00
@FXML
private Button btnCalcStats ;
2018-03-31 02:00:12 +02:00
@FXML
private Button btnSaveEntry ;
@FXML
private Button btnClearEntry ;
2018-03-31 23:50:17 +02:00
@FXML
private Button btnCreateNewDatabase ;
@FXML
private Button btnOpenFolder ;
2018-10-01 11:31:05 +02:00
@FXML
private Label labelCat01 ;
@FXML
private Label labelCat02 ;
@FXML
private Label labelCat05 ;
@FXML
private Label labelCat04 ;
@FXML
private Label labelCat03 ;
2018-12-05 22:44:15 +01:00
@FXML
private JFXTextField tftfooter ;
@FXML
private JFXTextField tftheader ;
2018-10-01 11:31:05 +02:00
@FXML
private JFXTextField tftKat01 ;
@FXML
private JFXTextField tftKat02 ;
@FXML
private JFXTextField tftKat03 ;
@FXML
private JFXTextField tftKat04 ;
@FXML
private JFXTextField tftKat05 ;
@FXML
private Button btnSaveCat ;
2018-03-30 00:19:35 +02:00
@FXML
private Label labelAllPrize ;
@FXML
private Label labelJobCounter ;
@FXML
private Label labelTime ;
2018-03-31 00:35:45 +02:00
@FXML
2018-10-07 00:50:59 +02:00
private Label labelJobCount ;
2018-03-31 00:35:45 +02:00
@FXML
private Label labelAvgJob ;
@FXML
2018-10-07 00:50:59 +02:00
private Label labelAllValue ;
2018-03-31 00:35:45 +02:00
2018-10-01 11:31:05 +02:00
@FXML
2018-10-07 00:50:59 +02:00
private Label labelSelectCat ;
2018-10-01 11:31:05 +02:00
2018-03-31 02:00:12 +02:00
@FXML
2018-10-07 00:50:59 +02:00
private Label labelNewPosition ;
2018-03-31 02:00:12 +02:00
@FXML
private Label labelNewValue ;
@FXML
2018-10-07 00:50:59 +02:00
private Label labelNewColor ;
2018-03-31 02:00:12 +02:00
2018-03-31 23:50:17 +02:00
@FXML
private Label labelDBStatus ;
@FXML
private Label labelDBName ;
2018-03-31 00:35:45 +02:00
@FXML
private TitledPane titlePaneStats ;
2018-10-01 11:31:05 +02:00
@FXML
private TitledPane titlePaneCat ;
2018-10-02 22:03:52 +02:00
@FXML
private TitledPane titledPaneEntry ;
2018-12-05 22:44:15 +01:00
@FXML
private TitledPane titlePanePrint ;
2018-03-31 02:00:12 +02:00
@FXML
private TextField tftNewPosition ;
@FXML
private TextField tftNewValue ;
2018-03-31 23:50:17 +02:00
@FXML
private TextField tftNewDBName ;
2018-12-05 22:44:15 +01:00
@FXML
private JFXToggleButton switchSeparate ;
2018-04-05 12:25:29 +02:00
@SuppressWarnings ( " unused " )
2018-03-29 19:45:41 +02:00
private Main main ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
private DBController dbc ;
2018-03-29 19:51:34 +02:00
2018-12-05 22:44:15 +01:00
private XMLController xmlc ;
2018-03-29 19:51:34 +02:00
2018-12-06 13:11:35 +01:00
private PrinterController pc ;
2018-12-06 14:11:26 +01:00
private TimeDate timedate = new TimeDate ( ) ;
private PrintJob pj = new PrintJob ( ) ;
2018-04-02 15:07:58 +02:00
private int idPositionen = 0 ;
private String selectedColorName ;
2018-03-29 19:51:34 +02:00
2018-10-01 11:31:05 +02:00
private String selectedCatName ;
2018-04-05 12:25:29 +02:00
private boolean lockState = false ;
2018-10-05 13:01:42 +02:00
2018-10-04 23:46:42 +02:00
private boolean isPrintBtnDisabled = true ;
private Job currentJob = null ;
2018-03-31 23:50:17 +02:00
2018-10-07 00:50:59 +02:00
private String currentOrderPosName ;
private int selectedJobId ;
2018-10-05 22:53:40 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-10-04 23:46:42 +02:00
TreeItem < tableDataCurrentOrder > rootCurrentJob = new TreeItem < > (
new tableDataCurrentOrder ( " 0 " , 0 ) ) ;
2018-04-02 15:07:58 +02:00
@FXML
2018-10-07 00:50:59 +02:00
TreeItem < tableDataJob > rootJobs = new TreeItem < > (
new tableDataJob ( 0 , " 0 " , " 0 " , " 0 " , " 0 " ) ) ;
2018-04-02 15:07:58 +02:00
@FXML
TreeItem < tableDataPositionen > rootPositionen = new TreeItem < > (
2018-10-01 11:31:05 +02:00
new tableDataPositionen ( 0 , " 0 " , " 0 " , " 0 " , " 0 " ) ) ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
@FXML
2018-03-29 19:51:34 +02:00
public void ueberbtnAction ( ActionEvent event )
2018-04-02 20:31:47 +02:00
{ // opens the 'Über' dialog
2018-03-29 19:45:41 +02:00
2018-04-02 20:31:47 +02:00
// creates a dialog
2018-03-29 19:45:41 +02:00
Dialog < Pair < String , String > > dialog = new Dialog < > ( ) ;
2018-03-31 02:00:12 +02:00
dialog . setTitle ( " Über jFxKasse " ) ;
2018-12-06 23:59:01 +01:00
dialog . setHeaderText ( " Informationen und Lizenzen - Version 0.3.0 " ) ;
2018-03-29 19:45:41 +02:00
dialog . getDialogPane ( ) . getButtonTypes ( ) . addAll ( ButtonType . OK ) ;
GridPane grid = new GridPane ( ) ;
grid . setHgap ( 10 ) ;
grid . setVgap ( 10 ) ;
grid . setPadding ( new Insets ( 20 , 150 , 10 , 10 ) ) ;
2018-04-05 12:25:29 +02:00
grid . add ( new Label (
" Einfaches Kassensystem für kleine bis mittel große Veranstaltungen mit Bon-Drucker \ n "
2018-10-07 00:50:59 +02:00
+ " \ nUnter Lizenz GPL-3.0 abrufbar auf https://git.mosad.xyz/localhorst/jFxKasse \ n "
2018-04-05 12:25:29 +02:00
+ " \ nDatenbank: sqlite.org - Public Domain "
+ " \ nUI Design01: eclipse.org/efxclipse/install.html - Eclipse Public License 1.0 "
+ " \ nUI Design02: http://www.jfoenix.com/ - Apache License 2.0 "
+ " \ nUI - Datenbank Integration: basierend auf Project-HomeFlix - github.com/Seil0/Project-HomeFlix - GPLv3 \ n "
+ " \ nMaintainer: hendrik.schutter@coptersicht.de "
+ " \ n(c) 2018 Hendrik Schutter " ) ,
0 , 0 ) ;
2018-03-29 19:45:41 +02:00
2018-03-29 19:51:34 +02:00
dialog . getDialogPane ( ) . setContent ( grid ) ; // Setzt die GridPane auf die
2018-03-31 23:50:17 +02:00
dialog . setResizable ( true ) ; // DialogPane
2018-03-29 19:45:41 +02:00
dialog . showAndWait ( ) ;
}
2018-03-29 19:51:34 +02:00
2018-03-31 23:50:17 +02:00
@FXML
public void btnOpenFolderAction ( ActionEvent event ) throws IOException
{
2018-04-02 15:07:58 +02:00
2018-12-06 15:10:28 +01:00
if ( System . getProperty ( " os.name " ) . contains ( " Windows " ) ) {
System . out . println ( " FCK Windows " ) ;
File file = new File ( Main . filepath ) ;
Desktop desktop = Desktop . getDesktop ( ) ;
desktop . open ( file ) ;
} else {
Runtime . getRuntime ( ) . exec ( " xdg-open " + Main . filepath ) ;
}
2018-03-31 23:50:17 +02:00
}
@FXML
public void btnCreateNewDatabaseAction ( ActionEvent event ) throws Exception
{
2018-12-03 21:50:41 +01:00
if ( ! ( tftNewDBName . getText ( ) . equals ( " " ) ) ) {
2018-12-05 22:44:15 +01:00
xmlc . setDatabaseName ( tftNewDBName . getText ( ) ) ;
2018-12-06 13:11:35 +01:00
2018-12-05 22:44:15 +01:00
dbc . setDbname ( xmlc . getDatabaseName ( ) ) ;
2018-12-03 21:50:41 +01:00
dbc . connectDatabase ( ) ; // establish DB connection
dbc . createTablePositionen ( ) ; // Create new table
dbc . erstelleTabelleJobs ( ) ; // Create new table
dbc . createTableCategory ( ) ; // Create new table
try {
2018-12-06 13:11:35 +01:00
// saveSettings(getDatabaseName());
2018-12-05 22:44:15 +01:00
xmlc . saveSettings ( ) ;
2018-12-03 21:50:41 +01:00
} catch ( Exception e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
}
setDBLabel ( ) ; // Set new databese labels
blockUI ( false ) ; // unlock UI elements that need DB
fillTablePositionen ( ) ; // fill TreeTable 'Positionen'
fillCategory ( ) ;
2018-12-06 13:11:35 +01:00
fillPrinterSettings ( ) ;
2018-12-03 21:50:41 +01:00
initUI ( ) ; // Starting the UI elements
getSelectedCat ( ) ;
createNewJob ( ) ;
btnLock . setDisable ( false ) ;
2018-10-07 00:50:59 +02:00
}
2018-03-31 23:50:17 +02:00
}
2018-03-31 02:00:12 +02:00
@FXML
public void btnSaveEntryAction ( ActionEvent event )
{
2018-10-01 11:31:05 +02:00
dbc . setName_Positionen ( idPositionen , tftNewPosition . getText ( ) ) ;
dbc . setValue_Positionen ( idPositionen , tftNewValue . getText ( ) ) ;
dbc . setColor_Positionen ( idPositionen , getColorCodes ( selectedColorName ) ) ;
2018-04-02 15:07:58 +02:00
2018-10-03 21:53:26 +02:00
dbc . setCat_Positionen ( idPositionen , getSelectedCat ( ) ) ;
2018-04-02 20:31:47 +02:00
fillTablePositionen ( ) ; // fill TreeTable 'Positionen'
2018-04-03 00:45:22 +02:00
loadGridButtons ( ) ;
2018-04-02 15:07:58 +02:00
2018-03-31 02:00:12 +02:00
}
@FXML
public void btnClearEntryAction ( ActionEvent event )
{
2018-04-02 20:31:47 +02:00
// set default values
2018-10-01 11:31:05 +02:00
dbc . setName_Positionen ( idPositionen , " Noch frei " ) ;
dbc . setValue_Positionen ( idPositionen , " 0.00 " ) ;
dbc . setColor_Positionen ( idPositionen , " #FAF0E6 " ) ;
2018-10-03 22:19:29 +02:00
dbc . setCat_Positionen ( idPositionen , 6 ) ;
2018-04-02 20:31:47 +02:00
fillTablePositionen ( ) ; // fill TreeTable 'Positionen'
2018-03-31 02:00:12 +02:00
}
2018-03-31 00:35:45 +02:00
@FXML
public void btnCalcStatsAction ( ActionEvent event )
{
2018-12-03 21:50:41 +01:00
int allActiveJobs = Integer . valueOf ( dbc . getJobCount ( ) ) ;
if ( dbc . getAllJobValue_Job ( ) ! = null ) {
// summed up values of all jobs that are active
2018-10-07 00:50:59 +02:00
float allValue = Float . valueOf ( dbc . getAllJobValue_Job ( ) ) ;
2018-12-03 21:50:41 +01:00
// count of all jobs that are active
2018-10-07 00:50:59 +02:00
2018-12-03 21:50:41 +01:00
float avgJobValue = ( ( float ) allValue / allActiveJobs ) ;
2018-10-07 00:50:59 +02:00
2018-12-03 21:50:41 +01:00
setJobStatLabel ( allActiveJobs , avgJobValue , allValue ) ;
} else {
setJobStatLabel ( allActiveJobs , 0 , 0 ) ;
}
2018-10-07 00:50:59 +02:00
titlePaneStats . setVisible ( true ) ;
2018-03-31 00:35:45 +02:00
}
2018-12-05 22:44:15 +01:00
@FXML
public void btnSavePrinterAction ( ActionEvent event )
{
System . out . println ( " btnSavePrinterAction " ) ;
2018-12-06 13:11:35 +01:00
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 ( ) ;
2018-12-05 22:44:15 +01:00
}
2018-03-31 00:35:45 +02:00
@FXML
2018-04-02 15:07:58 +02:00
public void btnCancelJobAction ( ActionEvent event )
2018-03-31 00:35:45 +02:00
{
2018-10-07 00:50:59 +02:00
dbc . setStatus_Jobs ( selectedJobId + 1 , " storniert " ) ;
fillTableJobs ( ) ;
2018-12-06 20:29:38 +01:00
btnCancelJob . setDisable ( true ) ;
btnReprintJob . setDisable ( true ) ;
2018-03-31 00:35:45 +02:00
}
2018-03-30 00:19:35 +02:00
@FXML
public void btnLockAction ( ActionEvent event )
{
2018-04-03 00:45:22 +02:00
lockState = ! lockState ;
blockUI ( lockState ) ;
2018-04-05 12:25:29 +02:00
if ( lockState ) {
2018-04-03 00:45:22 +02:00
btnLock . setText ( " Kasse entsperren " ) ;
2018-04-05 12:25:29 +02:00
} else {
2018-04-03 00:45:22 +02:00
btnLock . setText ( " Kasse sperren " ) ;
}
2018-03-30 00:19:35 +02:00
}
2018-10-01 11:31:05 +02:00
@FXML
public void btnSaveCatAction ( ActionEvent event )
{
dbc . setName_Category ( 1 , tftKat01 . getText ( ) ) ;
dbc . setName_Category ( 2 , tftKat02 . getText ( ) ) ;
dbc . setName_Category ( 3 , tftKat03 . getText ( ) ) ;
dbc . setName_Category ( 4 , tftKat04 . getText ( ) ) ;
dbc . setName_Category ( 5 , tftKat05 . getText ( ) ) ;
fillCategory ( ) ;
fillTablePositionen ( ) ;
getSelectedCat ( ) ;
}
2018-03-30 00:19:35 +02:00
@FXML
public void btnDeleteSelectedPositionAction ( ActionEvent event )
{
2018-10-05 22:53:40 +02:00
currentJob . deletePosName ( currentOrderPosName ) ;
rootCurrentJob . getChildren ( ) . remove ( 0 ,
rootCurrentJob . getChildren ( ) . size ( ) ) ;
for ( int i = 0 ; i < currentJob . getCurrentJobPositionen ( ) . size ( ) ; i + + ) {
rootCurrentJob . getChildren ( ) . add ( new TreeItem < tableDataCurrentOrder > (
currentJob . getCurrentJobPositionen ( ) . get ( i ) ) ) ;
}
setJobPrizeLabel ( currentJob . getJobValue ( ) ) ;
if ( rootCurrentJob . getChildren ( ) . size ( ) = = 0 ) {
btnPrintBill . setDisable ( true ) ;
isPrintBtnDisabled = true ;
tapPosEdit . setDisable ( false ) ;
btnDeleteSelectedPosition . setDisable ( true ) ;
}
if ( ! currentJob . existsPosName ( currentOrderPosName ) ) {
btnDeleteSelectedPosition . setDisable ( true ) ;
}
2018-03-30 00:19:35 +02:00
}
@FXML
public void btnPrintBillAction ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
btnPrintBill . setDisable ( true ) ;
2018-10-05 22:53:40 +02:00
tapPosEdit . setDisable ( false ) ;
btnDeleteSelectedPosition . setDisable ( true ) ;
2018-10-04 23:46:42 +02:00
isPrintBtnDisabled = true ;
2018-10-05 13:01:42 +02:00
2018-10-05 22:53:40 +02:00
setJobPrizeLabel ( 0 ) ;
2018-12-06 20:34:44 +01:00
currentJob . setJobtime (
timedate . getSystemTime ( ) + " " + timedate . getSystemDate ( ) ) ;
2018-10-05 13:01:42 +02:00
rootCurrentJob . getChildren ( ) . remove ( 0 ,
rootCurrentJob . getChildren ( ) . size ( ) ) ;
dbc . fillJobs_Jobs ( currentJob . getJobnumber ( ) , currentJob . getJobtime ( ) ,
currentJob . createPosQuantityDBString ( ) ,
currentJob . createPosNameDBString ( ) ,
currentJob . createPosValueDBString ( ) ,
currentJob . createPosCatDBString ( ) , " verbucht " ,
String . valueOf ( currentJob . getJobValue ( ) ) ) ;
2018-12-06 14:11:26 +01:00
pj . printJob ( currentJob . getJobnumber ( ) , xmlc , dbc , pc ) ;
2018-12-05 22:44:15 +01:00
2018-10-07 00:50:59 +02:00
fillTableJobs ( ) ;
2018-10-05 22:53:40 +02:00
currentJob = null ;
createNewJob ( ) ;
2018-03-30 00:19:35 +02:00
}
2018-12-06 14:11:26 +01:00
@FXML
public void btnReprintJobAction ( ActionEvent event )
{
System . out . println ( " reprint job " ) ;
2018-12-06 15:10:28 +01:00
pj . printJob ( ( selectedJobId + 1 ) , xmlc , dbc , pc ) ;
2018-12-06 14:11:26 +01:00
}
2018-03-29 22:48:11 +02:00
@FXML
public void gridButton01Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 1 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton02Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 2 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton03Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 3 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton04Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 4 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton05Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 5 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton06Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 6 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton07Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 7 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton08Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 8 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton09Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 9 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton10Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 10 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton11Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 11 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton12Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 12 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton13Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 13 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton14Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 14 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton15Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 15 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton16Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 16 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton17Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 17 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton18Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 18 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton19Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 19 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton20Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 20 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton21Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 21 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton22Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 22 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton23Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 23 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton24Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 24 ) ;
2018-03-29 22:48:11 +02:00
}
@FXML
public void gridButton25Action ( ActionEvent event )
{
2018-10-04 23:46:42 +02:00
handelGridButtons ( 25 ) ;
2018-03-29 22:48:11 +02:00
}
2018-03-29 19:45:41 +02:00
@FXML
2018-04-02 20:31:47 +02:00
public void fillTablePositionen ( )
{ // loads the table in the TreeTableView
2018-10-01 11:31:05 +02:00
2018-04-02 15:07:58 +02:00
rootPositionen . getChildren ( ) . remove ( 0 ,
rootPositionen . getChildren ( ) . size ( ) ) ;
for ( int i = 0 ; i < dbc . ladeTabellePositionen ( ) . size ( ) ; i + + ) {
2018-12-03 21:50:41 +01:00
float fValue = Float
. valueOf ( dbc . ladeTabellePositionen ( ) . get ( i ) . getValue ( ) ) ;
2018-10-07 00:50:59 +02:00
String strValue = String . format ( " %.02f " , fValue ) ;
strValue . replace ( '.' , ',' ) ;
2018-12-03 21:50:41 +01:00
2018-04-02 15:07:58 +02:00
tableDataPositionen helpTableData = new tableDataPositionen (
dbc . ladeTabellePositionen ( ) . get ( i ) . getID ( ) ,
2018-12-06 15:10:28 +01:00
dbc . ladeTabellePositionen ( ) . get ( i ) . getName ( ) , ( strValue + " € " ) ,
2018-10-01 11:31:05 +02:00
dbc . getCategoryNameFromPositionen ( i + 1 ) ,
2018-04-02 15:07:58 +02:00
getColorNames ( dbc . ladeTabellePositionen ( ) . get ( i ) . getColor ( ) ) ) ;
rootPositionen . getChildren ( )
. add ( new TreeItem < tableDataPositionen > ( helpTableData ) ) ;
2018-03-29 19:45:41 +02:00
}
}
2018-03-29 19:51:34 +02:00
public void initUI ( )
{
2018-03-31 23:50:17 +02:00
System . out . println ( " initUI " ) ;
2018-10-05 13:01:42 +02:00
for ( int i = 0 ; i < 25 ; i + + ) {
getButtonByID ( i ) . setVisible ( false ) ;
}
2018-12-05 22:44:15 +01:00
tftNewDBName . setText ( xmlc . getDatabaseName ( ) ) ;
2018-10-03 21:53:26 +02:00
tftKat05 . setDisable ( true ) ;
2018-10-07 00:50:59 +02:00
titlePaneStats . setVisible ( false ) ;
2018-10-04 23:46:42 +02:00
btnPrintBill . setDisable ( true ) ;
2018-12-06 20:29:38 +01:00
btnReprintJob . setDisable ( true ) ;
btnCancelJob . setDisable ( true ) ;
2018-10-05 22:53:40 +02:00
btnDeleteSelectedPosition . setDisable ( true ) ;
2018-10-04 23:46:42 +02:00
isPrintBtnDisabled = true ;
2018-04-02 15:07:58 +02:00
initPositionen ( ) ;
2018-10-04 23:46:42 +02:00
initCurrentOrderTreeTableView ( ) ;
2018-10-07 00:50:59 +02:00
initJobTreeTableView ( ) ;
2018-10-01 11:31:05 +02:00
}
public int getSelectedCat ( )
{
ObservableList < String > cats = FXCollections . observableArrayList ( ) ;
2018-10-03 22:19:29 +02:00
for ( int i = 1 ; i < 5 ; i + + ) {
if ( dbc . getName_Category ( i ) . equals ( " Standard " ) ) {
} else {
cats . add ( dbc . getName_Category ( i ) ) ;
}
}
2018-10-01 11:31:05 +02:00
cats . add ( dbc . getName_Category ( 5 ) ) ;
catChoise . setItems ( cats ) ;
catChoise . getSelectionModel ( ) . selectedIndexProperty ( )
. addListener ( new ChangeListener < Number > ( ) {
@Override
public void changed ( ObservableValue < ? extends Number > ov ,
Number value , Number new_value )
{
selectedCatName = catChoise . getItems ( ) . get ( ( int ) new_value )
. toString ( ) ;
}
} ) ;
2018-10-03 21:53:26 +02:00
for ( int i = 1 ; i < 6 ; i + + ) {
if ( dbc . getName_Category ( i ) . equals ( selectedCatName ) ) {
2018-10-01 11:31:05 +02:00
return i ;
}
}
2018-10-03 21:53:26 +02:00
return 5 ;
2018-10-01 11:31:05 +02:00
}
2018-12-06 13:11:35 +01:00
public void fillPrinterSettings ( )
{
System . out . println ( " Fill printer Settings " ) ;
ObservableList < String > 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 ) ;
2018-12-06 15:10:28 +01:00
System . out . println ( " no printer found " ) ;
2018-12-06 13:11:35 +01:00
}
SpinnerValueFactory < Integer > valueFactoryLines = //
new SpinnerValueFactory . IntegerSpinnerValueFactory ( 1 , 99 ,
xmlc . getLinebreak ( ) ) ;
linesSpinner . setValueFactory ( valueFactoryLines ) ;
SpinnerValueFactory < Integer > valueFactoryHeader = //
2018-12-06 14:11:26 +01:00
new SpinnerValueFactory . IntegerSpinnerValueFactory ( 0 , 99 ,
2018-12-06 13:11:35 +01:00
xmlc . getOffsetHeader ( ) ) ;
offsetHeaderSpinner . setValueFactory ( valueFactoryHeader ) ;
SpinnerValueFactory < Integer > valueFactoryFooter = //
2018-12-06 14:11:26 +01:00
new SpinnerValueFactory . IntegerSpinnerValueFactory ( 0 , 99 ,
2018-12-06 13:11:35 +01:00
xmlc . getOffsetFooter ( ) ) ;
offsetFooterSpinner . setValueFactory ( valueFactoryFooter ) ;
tftheader . setText ( xmlc . getHeader ( ) ) ;
tftfooter . setText ( xmlc . getFooter ( ) ) ;
switchSeparate . setSelected ( xmlc . getCategorySplitted ( ) ) ;
}
2018-10-01 11:31:05 +02:00
public void fillCategory ( )
{
tftKat01 . setText ( dbc . getName_Category ( 1 ) ) ;
tftKat02 . setText ( dbc . getName_Category ( 2 ) ) ;
tftKat03 . setText ( dbc . getName_Category ( 3 ) ) ;
tftKat04 . setText ( dbc . getName_Category ( 4 ) ) ;
tftKat05 . setText ( dbc . getName_Category ( 5 ) ) ;
2018-04-02 15:07:58 +02:00
}
private void initPositionen ( )
{
entryTreeTable . setRoot ( rootPositionen ) ;
entryTreeTable . setShowRoot ( false ) ;
entryTreeTable . setEditable ( false ) ;
2018-12-03 21:50:41 +01:00
columnPosnumber
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnPositionsEdit
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
2018-10-07 00:50:59 +02:00
columnPrize . setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnCat . setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnColor . setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
2018-04-02 15:07:58 +02:00
ObservableList < String > color = FXCollections . observableArrayList ( " Rot " ,
" Orange " , " Braun " , " Weiß " , " Gelb " , " Gr \ u00fcn " , " Blau " , " Indigo " ) ;
colorChoise . setItems ( color ) ;
colorChoise . getSelectionModel ( ) . selectedIndexProperty ( )
. addListener ( new ChangeListener < Number > ( ) {
@Override
public void changed ( ObservableValue < ? extends Number > ov ,
Number value , Number new_value )
{
selectedColorName = colorChoise . getItems ( )
. get ( ( int ) new_value ) . toString ( ) ;
}
} ) ;
2018-03-29 19:45:41 +02:00
2018-04-02 15:07:58 +02:00
columnPosnumber . setCellValueFactory (
2018-03-29 19:51:34 +02:00
cellData - > cellData . getValue ( ) . getValue ( ) . idProperty ( ) . asObject ( ) ) ;
2018-04-02 15:07:58 +02:00
columnPositionsEdit . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . nameProperty ( ) ) ;
columnPrize . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . valueProperty ( ) ) ;
2018-10-01 11:31:05 +02:00
columnCat . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . catProperty ( ) ) ;
2018-04-02 15:07:58 +02:00
columnColor . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . colorProperty ( ) ) ;
entryTreeTable . getSelectionModel ( ) . selectedItemProperty ( )
2018-03-29 19:51:34 +02:00
. addListener ( new ChangeListener < Object > ( ) {
@Override
public void changed ( ObservableValue < ? > observable , Object oldVal ,
Object newVal )
{
2018-04-02 15:07:58 +02:00
int selected = entryTreeTable . getSelectionModel ( )
2018-03-29 19:51:34 +02:00
. getSelectedIndex ( ) ; // get selected item
2018-10-01 11:31:05 +02:00
2018-10-05 22:53:40 +02:00
idPositionen = columnPosnumber . getCellData ( selected ) ;
2018-10-07 00:50:59 +02:00
try {
2018-04-02 15:07:58 +02:00
2018-10-01 11:31:05 +02:00
tftNewPosition
. setText ( dbc . getName_Positionen ( idPositionen ) ) ;
tftNewValue . setText ( dbc . getValue_Positionen ( idPositionen ) ) ;
colorChoise . getSelectionModel ( ) . select (
getColorID ( dbc . getColor_Positionen ( idPositionen ) ) ) ;
2018-04-02 15:07:58 +02:00
2018-10-03 21:53:26 +02:00
catChoise . getSelectionModel ( ) . select (
dbc . getCategoryNameFromPositionen ( idPositionen ) ) ;
2018-03-29 19:51:34 +02:00
} catch ( Exception e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
}
}
} ) ;
2018-04-02 15:07:58 +02:00
2018-04-02 20:31:47 +02:00
tftNewValue . textProperty ( ) . addListener ( new ChangeListener < String > ( ) {
@Override
public void changed ( ObservableValue < ? extends String > observable ,
String oldValue , String newValue )
{
2018-12-03 21:50:41 +01:00
if ( ! newValue . matches ( " \\ d{0,4}([ \\ .] \\ d{0,2})? " ) ) {
tftNewValue . setText ( oldValue ) ;
}
2018-04-02 20:31:47 +02:00
}
} ) ;
2018-04-05 12:25:29 +02:00
final Tooltip tooltipName = new Tooltip ( ) ;
tooltipName . setText ( " Name der neuen Position " ) ;
tooltipName . setStyle ( " -fx-font: normal bold 20 Cantarell; "
+ " -fx-base: #AE3522; " + " -fx-text-fill: orange; " ) ;
tftNewPosition . setTooltip ( tooltipName ) ;
final Tooltip tooltipValue = new Tooltip ( ) ;
tooltipValue
. setText ( " Preis der neuen Position. \ nPunkt als Trennzeichen! " ) ;
tooltipValue . setStyle ( " -fx-font: normal bold 20 Cantarell; "
+ " -fx-base: #AE3522; " + " -fx-text-fill: orange; " ) ;
tftNewValue . setTooltip ( tooltipValue ) ;
labelNewValue . setTooltip ( tooltipValue ) ;
2018-03-29 19:45:41 +02:00
}
2018-03-29 19:51:34 +02:00
2018-12-06 13:11:35 +01:00
public void setMain ( Main main , DBController dbc , XMLController xmlc ,
PrinterController pc )
2018-03-29 19:51:34 +02:00
{
2018-03-29 19:45:41 +02:00
this . main = main ;
this . dbc = dbc ;
2018-12-05 22:44:15 +01:00
this . xmlc = xmlc ;
2018-12-06 13:11:35 +01:00
this . pc = pc ;
2018-03-29 19:45:41 +02:00
}
2018-03-29 19:51:34 +02:00
2018-03-31 23:50:17 +02:00
public void setDBLabel ( ) throws Exception
{
2018-12-05 22:44:15 +01:00
if ( xmlc . loadSettings ( ) = = true ) {
2018-12-06 13:11:35 +01:00
labelDBStatus . setText (
" Geladene Datenbank: " + xmlc . getDatabaseName ( ) + " .db " ) ;
2018-03-31 23:50:17 +02:00
btnCreateNewDatabase . setDisable ( true ) ;
tftNewDBName . setDisable ( true ) ;
labelDBName . setTooltip ( new Tooltip (
" Um eine neue Datenbank zu erzeugen muss die vorherige config.xml und "
2018-12-05 22:44:15 +01:00
+ xmlc . getDatabaseName ( )
2018-04-02 15:07:58 +02:00
+ " .db gelöscht werden! Anwendung danach neustarten! " ) ) ;
2018-03-31 23:50:17 +02:00
labelDBStatus . setTooltip ( new Tooltip (
" Um eine neue Datenbank zu erzeugen muss die vorherige config.xml und "
2018-12-05 22:44:15 +01:00
+ xmlc . getDatabaseName ( )
2018-04-02 15:07:58 +02:00
+ " .db gelöscht werden! Anwendung danach neustarten! " ) ) ;
2018-03-31 23:50:17 +02:00
} else {
labelDBStatus . setText ( " Keine Datenbank gefunden! " ) ;
}
2018-03-29 19:45:41 +02:00
}
2018-03-29 19:51:34 +02:00
2018-04-02 15:07:58 +02:00
private String getColorCodes ( String pColorName )
{
switch ( pColorName ) {
case " Rot " :
2018-04-05 12:25:29 +02:00
return " #ad0000 " ;
2018-04-02 15:07:58 +02:00
case " Orange " :
return " #FF4500 " ;
case " Braun " :
return " #8B4513 " ;
case " Weiß " :
return " #FAF0E6 " ;
case " Gelb " :
return " #FFD700 " ;
case " Gr \ u00fcn " :
return " #556B2F " ;
case " Blau " :
return " #00BFFF " ;
case " Indigo " :
return " #4B0082 " ;
default :
return " #FFFFFF " ;
}
}
private String getColorNames ( String pColorCode )
{
switch ( pColorCode ) {
2018-04-05 12:25:29 +02:00
case " #ad0000 " :
2018-04-02 15:07:58 +02:00
return " Rot " ;
case " #FF4500 " :
return " Orange " ;
case " #8B4513 " :
return " Braun " ;
case " #FAF0E6 " :
return " Weiß " ;
2018-04-05 12:25:29 +02:00
case " #FFD700 " :
2018-04-02 15:07:58 +02:00
return " Gelb " ;
case " #556B2F " :
return " Gr \ u00fcn " ;
case " #00BFFF " :
return " Blau " ;
case " #4B0082 " :
return " Indigo " ;
default :
return " Farbe " ;
}
}
private Integer getColorID ( String pColorCode )
{
switch ( pColorCode ) {
2018-04-05 12:25:29 +02:00
case " #ad0000 " :
2018-04-02 15:07:58 +02:00
return 0 ;
case " #FF4500 " :
return 1 ;
case " #8B4513 " :
return 2 ;
case " #FAF0E6 " :
return 3 ;
2018-04-05 12:25:29 +02:00
case " #FFD700 " :
2018-04-02 15:07:58 +02:00
return 4 ;
case " #556B2F " :
return 5 ;
case " #00BFFF " :
return 6 ;
case " #4B0082 " :
return 7 ;
default :
return 0 ;
}
}
public void blockUI ( boolean pState )
{
btnCalcStats . setDisable ( pState ) ;
btnClearEntry . setDisable ( pState ) ;
2018-10-05 22:53:40 +02:00
2018-10-05 13:01:42 +02:00
if ( ( ! isPrintBtnDisabled ) & & ( ! pState ) ) {
// print was not disabled and will be enabled again
btnPrintBill . setDisable ( pState ) ;
2018-10-05 22:53:40 +02:00
btnDeleteSelectedPosition . setDisable ( pState ) ;
2018-10-05 13:01:42 +02:00
}
if ( pState ) {
// disable allways
btnPrintBill . setDisable ( pState ) ;
2018-10-05 22:53:40 +02:00
btnDeleteSelectedPosition . setDisable ( pState ) ;
2018-10-05 13:01:42 +02:00
}
2018-04-02 15:07:58 +02:00
btnReprintJob . setDisable ( pState ) ;
btnSaveEntry . setDisable ( pState ) ;
btnCancelJob . setDisable ( pState ) ;
2018-04-05 12:25:29 +02:00
for ( int i = 0 ; i < 25 ; i + + ) {
2018-04-03 00:45:22 +02:00
getButtonByID ( i ) . setDisable ( pState ) ;
}
2018-04-05 12:25:29 +02:00
2018-04-02 15:07:58 +02:00
tftNewPosition . setDisable ( pState ) ;
tftNewValue . setDisable ( pState ) ;
colorChoise . setDisable ( pState ) ;
2018-10-01 13:53:44 +02:00
catChoise . setDisable ( pState ) ;
2018-04-02 15:07:58 +02:00
tableCurrentOrder . setDisable ( pState ) ;
2018-10-07 00:50:59 +02:00
jobsTreeTable . setDisable ( pState ) ;
2018-04-02 15:07:58 +02:00
entryTreeTable . setDisable ( pState ) ;
labelAllPrize . setVisible ( ! pState ) ;
labelJobCounter . setVisible ( ! pState ) ;
2018-12-03 21:50:41 +01:00
if ( pState ) {
2018-10-07 00:50:59 +02:00
titlePaneStats . setVisible ( ! pState ) ;
}
2018-12-03 21:50:41 +01:00
2018-10-02 22:03:52 +02:00
titledPaneEntry . setDisable ( pState ) ;
2018-10-01 11:31:05 +02:00
titlePaneCat . setDisable ( pState ) ;
2018-12-05 22:44:15 +01:00
titlePanePrint . setDisable ( pState ) ;
2018-10-01 11:31:05 +02:00
2018-04-02 15:07:58 +02:00
}
2018-04-03 00:45:22 +02:00
public void loadGridButtons ( )
{
for ( int i = 0 ; i < 25 ; i + + ) {
2018-10-01 11:31:05 +02:00
getButtonByID ( i ) . setText ( dbc . getName_Positionen ( i + 1 ) ) ;
if ( ( getColorID ( dbc . getColor_Positionen ( i + 1 ) ) = = 0 )
| | ( getColorID ( dbc . getColor_Positionen ( i + 1 ) ) = = 7 ) ) {
2018-04-05 12:25:29 +02:00
getButtonByID ( i ) . setStyle ( " -fx-background-color: "
2018-10-01 11:31:05 +02:00
+ dbc . getColor_Positionen ( i + 1 ) + " ; -fx-text-fill: white; " ) ;
2018-04-05 12:25:29 +02:00
} else {
getButtonByID ( i ) . setStyle ( " -fx-background-color: "
2018-10-01 11:31:05 +02:00
+ dbc . getColor_Positionen ( i + 1 ) + " ; -fx-text-fill: black; " ) ;
2018-04-05 12:25:29 +02:00
}
2018-04-03 00:45:22 +02:00
}
for ( int i = 0 ; i < 25 ; i + + ) {
2018-10-01 11:31:05 +02:00
if ( dbc . getName_Positionen ( i + 1 ) . equals ( " Noch frei " ) ) {
2018-04-03 00:45:22 +02:00
getButtonByID ( i ) . setVisible ( false ) ;
2018-04-05 12:25:29 +02:00
} else {
2018-04-03 00:45:22 +02:00
getButtonByID ( i ) . setVisible ( true ) ;
}
}
}
2018-04-05 12:25:29 +02:00
public Button getButtonByID ( int pID )
{
2018-04-03 00:45:22 +02:00
switch ( pID ) {
case 0 :
return gridButton01 ;
case 1 :
return gridButton02 ;
case 2 :
return gridButton03 ;
case 3 :
return gridButton04 ;
case 4 :
return gridButton05 ;
case 5 :
return gridButton06 ;
case 6 :
return gridButton07 ;
case 7 :
return gridButton08 ;
case 8 :
return gridButton09 ;
case 9 :
return gridButton10 ;
case 10 :
return gridButton11 ;
case 11 :
return gridButton12 ;
case 12 :
return gridButton13 ;
case 13 :
return gridButton14 ;
case 14 :
return gridButton15 ;
case 15 :
return gridButton16 ;
case 16 :
return gridButton17 ;
case 17 :
return gridButton18 ;
case 18 :
return gridButton19 ;
case 19 :
return gridButton20 ;
case 20 :
return gridButton21 ;
case 21 :
return gridButton22 ;
case 22 :
return gridButton23 ;
case 23 :
return gridButton24 ;
case 24 :
return gridButton25 ;
default :
return gridButton01 ;
}
}
2018-04-05 12:25:29 +02:00
2018-10-04 23:46:42 +02:00
private void handelGridButtons ( int pID )
{
currentJob . addPosition ( dbc . getName_Positionen ( pID ) ,
Float . parseFloat ( dbc . getValue_Positionen ( pID ) ) ,
dbc . getCategoryNameFromPositionen ( pID ) ) ;
btnPrintBill . setDisable ( false ) ;
isPrintBtnDisabled = false ;
2018-10-05 22:53:40 +02:00
tapPosEdit . setDisable ( true ) ;
2018-10-05 13:01:42 +02:00
rootCurrentJob . getChildren ( ) . remove ( 0 ,
rootCurrentJob . getChildren ( ) . size ( ) ) ;
for ( int i = 0 ; i < currentJob . getCurrentJobPositionen ( ) . size ( ) ; i + + ) {
rootCurrentJob . getChildren ( ) . add ( new TreeItem < tableDataCurrentOrder > (
currentJob . getCurrentJobPositionen ( ) . get ( i ) ) ) ;
}
2018-10-05 22:53:40 +02:00
setJobPrizeLabel ( currentJob . getJobValue ( ) ) ;
2018-10-04 23:46:42 +02:00
}
2018-10-05 13:01:42 +02:00
private void initCurrentOrderTreeTableView ( )
{
2018-10-05 22:53:40 +02:00
columnQuantity
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnPosition
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
2018-10-04 23:46:42 +02:00
tableCurrentOrder . setRoot ( rootCurrentJob ) ;
tableCurrentOrder . setShowRoot ( false ) ;
tableCurrentOrder . setEditable ( false ) ;
2018-10-05 13:01:42 +02:00
columnQuantity . setCellValueFactory ( cellData - > cellData . getValue ( )
. getValue ( ) . quantityProperty ( ) . asObject ( ) ) ;
2018-10-04 23:46:42 +02:00
columnPosition . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . positionProperty ( ) ) ;
2018-10-05 13:01:42 +02:00
tableCurrentOrder . getSelectionModel ( ) . selectedItemProperty ( )
. addListener ( new ChangeListener < Object > ( ) {
@Override
public void changed ( ObservableValue < ? > observable , Object oldVal ,
Object newVal )
{
int selected = tableCurrentOrder . getSelectionModel ( )
. getSelectedIndex ( ) ; // get selected item
2018-10-05 22:53:40 +02:00
if ( columnPosition . getCellData ( selected ) ! = null ) {
currentOrderPosName = columnPosition . getCellData ( selected ) ; // Ausgewählte
btnDeleteSelectedPosition . setDisable ( false ) ;
2018-10-05 13:01:42 +02:00
}
}
} ) ;
}
2018-10-07 00:50:59 +02:00
private void initJobTreeTableView ( )
{
columnJobNumber
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnTime . setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnPositions
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnState . setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
columnJobValue
. setStyle ( " -fx-alignment: CENTER; -fx-font: 17px Cantarell; " ) ;
jobsTreeTable . setRoot ( rootJobs ) ;
jobsTreeTable . setShowRoot ( false ) ;
jobsTreeTable . setEditable ( false ) ;
columnJobNumber . setCellValueFactory ( cellData - > cellData . getValue ( )
. getValue ( ) . numberProperty ( ) . asObject ( ) ) ;
columnTime . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . timeProperty ( ) ) ;
columnPositions . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . positionProperty ( ) ) ;
columnState . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . statusProperty ( ) ) ;
columnJobValue . setCellValueFactory (
cellData - > cellData . getValue ( ) . getValue ( ) . valueProperty ( ) ) ;
jobsTreeTable . getSelectionModel ( ) . selectedItemProperty ( )
. addListener ( new ChangeListener < Object > ( ) {
@Override
public void changed ( ObservableValue < ? > observable , Object oldVal ,
Object newVal )
{
selectedJobId = jobsTreeTable . getSelectionModel ( )
. getSelectedIndex ( ) ; // get selected item
2018-12-03 21:50:41 +01:00
if ( dbc . getState_Job ( selectedJobId + 1 ) . equals ( " storniert " ) ) {
2018-10-07 00:50:59 +02:00
btnCancelJob . setDisable ( true ) ;
2018-12-06 14:11:26 +01:00
btnReprintJob . setDisable ( true ) ;
2018-12-03 21:50:41 +01:00
} else {
2018-10-07 00:50:59 +02:00
btnCancelJob . setDisable ( false ) ;
2018-12-06 14:11:26 +01:00
btnReprintJob . setDisable ( false ) ;
2018-10-07 00:50:59 +02:00
}
}
} ) ;
}
@FXML
public void fillTableJobs ( )
{ // loads the table in the TreeTableView
rootJobs . getChildren ( ) . remove ( 0 , rootJobs . getChildren ( ) . size ( ) ) ;
for ( int i = 0 ; i < dbc . loadTableJobs_Job ( ) . size ( ) ; i + + ) {
float fValue = Float
. valueOf ( dbc . loadTableJobs_Job ( ) . get ( i ) . getValue ( ) ) ;
String strValue = String . format ( " %.02f " , fValue ) ;
strValue . replace ( '.' , ',' ) ;
strValue = ( strValue + " € " ) ;
String strJobDescription = createJobDescription (
dbc . loadTableJobs_Job ( ) . get ( i ) . getPosition ( ) ,
dbc . getQuantity_Job ( dbc . loadTableJobs_Job ( ) . get ( i ) . getNumber ( ) ) ) ;
tableDataJob tmp = new tableDataJob (
dbc . loadTableJobs_Job ( ) . get ( i ) . getNumber ( ) ,
dbc . loadTableJobs_Job ( ) . get ( i ) . getTime ( ) , strJobDescription ,
dbc . loadTableJobs_Job ( ) . get ( i ) . getStatus ( ) , strValue ) ;
rootJobs . getChildren ( ) . add ( new TreeItem < tableDataJob > ( tmp ) ) ;
}
}
2018-10-04 23:46:42 +02:00
2018-10-05 13:01:42 +02:00
public void createNewJob ( )
2018-10-04 23:46:42 +02:00
{
2018-12-06 20:34:44 +01:00
currentJob = new Job ( dbc . getLatestJobNumber_Job ( ) + 1 ) ;
2018-10-05 13:01:42 +02:00
labelJobCounter . setText ( " Auftragsnummer: "
+ String . valueOf ( dbc . getLatestJobNumber_Job ( ) + 1 ) ) ;
2018-10-04 23:46:42 +02:00
}
2018-10-07 00:50:59 +02:00
private static String createJobDescription ( String pNames , String pQuantities )
2018-10-05 22:53:40 +02:00
{
2018-10-07 00:50:59 +02:00
String line = pQuantities ;
int size = line . length ( ) - line . replace ( " ; " , " " ) . length ( ) + 1 ;
String [ ] namesArray = new String [ size ] ;
String [ ] quantitiesArray = new String [ size ] ;
2018-10-05 22:53:40 +02:00
2018-10-07 00:50:59 +02:00
namesArray = pNames . split ( " ; " ) ;
quantitiesArray = pQuantities . split ( " ; " ) ;
String tmp = quantitiesArray [ 0 ] + " x " + namesArray [ 0 ] ;
for ( int i = 1 ; i < namesArray . length ; i + + ) {
tmp = tmp + " , " + quantitiesArray [ i ] + " x " + namesArray [ i ] ;
}
return tmp ;
}
2018-10-05 22:53:40 +02:00
2018-10-07 00:50:59 +02:00
private void setJobPrizeLabel ( float pPrize )
{
2018-10-05 22:53:40 +02:00
String str = String . format ( " %.02f " , pPrize ) ;
str . replace ( '.' , ',' ) ;
labelAllPrize . setText ( str + " € " ) ;
2018-10-07 00:50:59 +02:00
}
private void setJobStatLabel ( int pCounter , float pAvgValue , float pAllValue )
{
labelJobCount . setText ( " Anzahl Aufträge: " + pCounter ) ;
String str = String . format ( " %.02f " , pAvgValue ) ;
str . replace ( '.' , ',' ) ;
labelAvgJob . setText ( " Durchschnittlicher Auftragswert: " + str + " € " ) ;
str = String . format ( " %.02f " , pAllValue ) ;
str . replace ( '.' , ',' ) ;
labelAllValue . setText ( " Gesamt: " + str + " € " ) ;
2018-12-03 21:50:41 +01:00
2018-12-06 14:11:26 +01:00
titlePaneStats . setText ( " Statistik - " + timedate . getSystemTime ( ) + " "
+ timedate . getSystemDate ( ) ) ;
2018-10-05 22:53:40 +02:00
}
2018-04-05 12:25:29 +02:00
public void updateTimeLabel ( )
{
2018-12-06 14:11:26 +01:00
labelTime . setText ( " Uhrzeit: " + timedate . getSystemTime ( ) ) ;
2018-10-07 00:50:59 +02:00
2018-10-05 23:01:30 +02:00
}
2018-10-07 00:50:59 +02:00
public void blockUnlock ( )
{
2018-10-05 23:01:30 +02:00
btnLock . setDisable ( true ) ;
2018-04-05 11:08:50 +02:00
}
2018-04-03 00:45:22 +02:00
2018-03-29 19:45:41 +02:00
}