Skip to content
Snippets Groups Projects
Commit 7bb15c1a authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #137 - report table weird behaviour

parent 3f80de99
Branches
Tags
1 merge request!142merge v1_3_0 into master
...@@ -6,8 +6,6 @@ import java.io.IOException; ...@@ -6,8 +6,6 @@ import java.io.IOException;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.Optional; import java.util.Optional;
...@@ -47,6 +45,7 @@ import javafx.scene.control.TableColumn.CellDataFeatures; ...@@ -47,6 +45,7 @@ import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.stage.FileChooser; import javafx.stage.FileChooser;
import javafx.stage.Modality; import javafx.stage.Modality;
...@@ -103,24 +102,34 @@ public class ReportController implements Refreshable ...@@ -103,24 +102,34 @@ public class ReportController implements Refreshable
private void initColumnPosition() private void initColumnPosition()
{ {
TableColumn<ReportItem, Integer> columnPosition = new TableColumn<>("Nr."); TableColumn<ReportItem, Integer> columnPosition = new TableColumn<>();
columnPosition.setUserData(ColumnType.POSITION); columnPosition.setUserData(ColumnType.POSITION);
columnPosition.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("position")); columnPosition.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("position"));
columnPosition.setStyle("-fx-alignment: CENTER;"); columnPosition.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnPosition = new HBox();
hboxColumnPosition.setAlignment(Pos.CENTER);
hboxColumnPosition.setSpacing(3);
CheckBox checkBoxPositions = new CheckBox(); CheckBox checkBoxPositions = new CheckBox();
checkBoxPositions.setSelected(true); checkBoxPositions.setSelected(true);
hboxColumnPosition.getChildren().add(checkBoxPositions);
Label labelColumnPosition = new Label("Nr.");
hboxColumnPosition.getChildren().add(labelColumnPosition);
checkBoxPositions.selectedProperty().addListener((a, b, c)->{ checkBoxPositions.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnPosition.setStyle(style); hboxColumnPosition.setStyle(style);
columnFilter.toggleColumn(ColumnType.POSITION, c); columnFilter.toggleColumn(ColumnType.POSITION, c);
}); });
columnPosition.setGraphic(checkBoxPositions); columnPosition.setGraphic(hboxColumnPosition);
tableView.getColumns().add(columnPosition); tableView.getColumns().add(columnPosition);
} }
private void initColumnDate() private void initColumnDate()
{ {
TableColumn<ReportItem, String> columnDate = new TableColumn<>("Datum"); TableColumn<ReportItem, String> columnDate = new TableColumn<>();
columnDate.setUserData(ColumnType.DATE); columnDate.setUserData(ColumnType.DATE);
columnDate.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>() columnDate.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>()
{ {
...@@ -144,21 +153,31 @@ public class ReportController implements Refreshable ...@@ -144,21 +153,31 @@ public class ReportController implements Refreshable
} }
}); });
columnDate.setStyle("-fx-alignment: CENTER;"); columnDate.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnDate = new HBox();
hboxColumnDate.setAlignment(Pos.CENTER);
hboxColumnDate.setSpacing(3);
CheckBox checkBoxDate = new CheckBox(); CheckBox checkBoxDate = new CheckBox();
checkBoxDate.setSelected(true); checkBoxDate.setSelected(true);
hboxColumnDate.getChildren().add(checkBoxDate);
Label labelComlumnDate = new Label("Datum");
hboxColumnDate.getChildren().add(labelComlumnDate);
checkBoxDate.selectedProperty().addListener((a, b, c)->{ checkBoxDate.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnDate.setStyle(style); hboxColumnDate.setStyle(style);
columnFilter.toggleColumn(ColumnType.DATE, c); columnFilter.toggleColumn(ColumnType.DATE, c);
}); });
columnDate.setGraphic(checkBoxDate); columnDate.setGraphic(hboxColumnDate);
columnDate.setComparator(new DateComparator()); columnDate.setComparator(new DateComparator());
tableView.getColumns().add(columnDate); tableView.getColumns().add(columnDate);
} }
private void initColumnIsRepeating() private void initColumnIsRepeating()
{ {
TableColumn<ReportItem, Boolean> columnIsRepeating = new TableColumn<>("Wiederholend"); TableColumn<ReportItem, Boolean> columnIsRepeating = new TableColumn<>();
columnIsRepeating.setUserData(ColumnType.REPEATING); columnIsRepeating.setUserData(ColumnType.REPEATING);
columnIsRepeating.setCellValueFactory(new PropertyValueFactory<ReportItem, Boolean>("repeating")); columnIsRepeating.setCellValueFactory(new PropertyValueFactory<ReportItem, Boolean>("repeating"));
columnIsRepeating.setCellFactory(new Callback<TableColumn<ReportItem, Boolean>, TableCell<ReportItem, Boolean>>() columnIsRepeating.setCellFactory(new Callback<TableColumn<ReportItem, Boolean>, TableCell<ReportItem, Boolean>>()
...@@ -194,20 +213,31 @@ public class ReportController implements Refreshable ...@@ -194,20 +213,31 @@ public class ReportController implements Refreshable
} }
}); });
columnIsRepeating.setStyle("-fx-alignment: CENTER;"); columnIsRepeating.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnIsRepeating = new HBox();
hboxColumnIsRepeating.setAlignment(Pos.CENTER);
hboxColumnIsRepeating.setSpacing(3);
CheckBox checkBoxRepeating = new CheckBox(); CheckBox checkBoxRepeating = new CheckBox();
checkBoxRepeating.setSelected(true); checkBoxRepeating.setSelected(true);
hboxColumnIsRepeating.getChildren().add(checkBoxRepeating);
Label labelColumnIsRepeating = new Label("Wiederholend");
hboxColumnIsRepeating.getChildren().add(labelColumnIsRepeating);
checkBoxRepeating.selectedProperty().addListener((a, b, c)->{ checkBoxRepeating.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnIsRepeating.setStyle(style); hboxColumnIsRepeating.setStyle(style);
columnFilter.toggleColumn(ColumnType.REPEATING, c); columnFilter.toggleColumn(ColumnType.REPEATING, c);
}); });
columnIsRepeating.setGraphic(checkBoxRepeating);
columnIsRepeating.setGraphic(hboxColumnIsRepeating);
tableView.getColumns().add(columnIsRepeating); tableView.getColumns().add(columnIsRepeating);
} }
private void initColumnCategory() private void initColumnCategory()
{ {
TableColumn<ReportItem, String> columnCategory = new TableColumn<>("Kategorie"); TableColumn<ReportItem, String> columnCategory = new TableColumn<>();
columnCategory.setUserData(ColumnType.CATEGORY); columnCategory.setUserData(ColumnType.CATEGORY);
columnCategory.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>() columnCategory.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>()
{ {
...@@ -223,54 +253,84 @@ public class ReportController implements Refreshable ...@@ -223,54 +253,84 @@ public class ReportController implements Refreshable
} }
}); });
columnCategory.setStyle("-fx-alignment: CENTER;"); columnCategory.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnCategory = new HBox();
hboxColumnCategory.setAlignment(Pos.CENTER);
hboxColumnCategory.setSpacing(3);
CheckBox checkBoxCategory = new CheckBox(); CheckBox checkBoxCategory = new CheckBox();
checkBoxCategory.setSelected(true); checkBoxCategory.setSelected(true);
hboxColumnCategory.getChildren().add(checkBoxCategory);
Label labelColumnCategory = new Label("Kategorie");
hboxColumnCategory.getChildren().add(labelColumnCategory);
checkBoxCategory.selectedProperty().addListener((a, b, c)->{ checkBoxCategory.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnCategory.setStyle(style); hboxColumnCategory.setStyle(style);
columnFilter.toggleColumn(ColumnType.CATEGORY, c); columnFilter.toggleColumn(ColumnType.CATEGORY, c);
}); });
columnCategory.setGraphic(checkBoxCategory); columnCategory.setGraphic(hboxColumnCategory);
tableView.getColumns().add(columnCategory); tableView.getColumns().add(columnCategory);
} }
private void initColumnName() private void initColumnName()
{ {
TableColumn<ReportItem, Integer> columnName = new TableColumn<>("Name"); TableColumn<ReportItem, Integer> columnName = new TableColumn<>();
columnName.setUserData(ColumnType.NAME); columnName.setUserData(ColumnType.NAME);
columnName.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("name")); columnName.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("name"));
columnName.setStyle("-fx-alignment: CENTER;"); columnName.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnName = new HBox();
hboxColumnName.setAlignment(Pos.CENTER);
hboxColumnName.setSpacing(3);
CheckBox checkBoxName = new CheckBox(); CheckBox checkBoxName = new CheckBox();
checkBoxName.setSelected(true); checkBoxName.setSelected(true);
hboxColumnName.getChildren().add(checkBoxName);
Label labelColumnName = new Label("Name");
hboxColumnName.getChildren().add(labelColumnName);
checkBoxName.selectedProperty().addListener((a, b, c)->{ checkBoxName.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnName.setStyle(style); hboxColumnName.setStyle(style);
columnFilter.toggleColumn(ColumnType.NAME, c); columnFilter.toggleColumn(ColumnType.NAME, c);
}); });
columnName.setGraphic(checkBoxName); columnName.setGraphic(hboxColumnName);
tableView.getColumns().add(columnName); tableView.getColumns().add(columnName);
} }
private void initColumnDescription() private void initColumnDescription()
{ {
TableColumn<ReportItem, String> columnDescription = new TableColumn<>("Notiz"); TableColumn<ReportItem, String> columnDescription = new TableColumn<>();
columnDescription.setUserData(ColumnType.DESCRIPTION); columnDescription.setUserData(ColumnType.DESCRIPTION);
columnDescription.setCellValueFactory(new PropertyValueFactory<ReportItem, String>("description")); columnDescription.setCellValueFactory(new PropertyValueFactory<ReportItem, String>("description"));
columnDescription.setStyle("-fx-alignment: CENTER;"); columnDescription.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnDescription = new HBox();
hboxColumnDescription.setAlignment(Pos.CENTER);
hboxColumnDescription.setSpacing(3);
CheckBox checkBoxDescription = new CheckBox(); CheckBox checkBoxDescription = new CheckBox();
checkBoxDescription.setSelected(true); checkBoxDescription.setSelected(true);
hboxColumnDescription.getChildren().add(checkBoxDescription);
Label labelColumnDescription = new Label("Notiz");
hboxColumnDescription.getChildren().add(labelColumnDescription);
checkBoxDescription.selectedProperty().addListener((a, b, c)->{ checkBoxDescription.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnDescription.setStyle(style); hboxColumnDescription.setStyle(style);
columnFilter.toggleColumn(ColumnType.DESCRIPTION, c); columnFilter.toggleColumn(ColumnType.DESCRIPTION, c);
}); });
columnDescription.setGraphic(checkBoxDescription); columnDescription.setGraphic(hboxColumnDescription);
tableView.getColumns().add(columnDescription); tableView.getColumns().add(columnDescription);
} }
private void initColumnRating() private void initColumnRating()
{ {
TableColumn<ReportItem, Integer> columnRating = new TableColumn<>("Bewertung"); TableColumn<ReportItem, Integer> columnRating = new TableColumn<>();
columnRating.setUserData(ColumnType.RATING); columnRating.setUserData(ColumnType.RATING);
columnRating.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("amount")); columnRating.setCellValueFactory(new PropertyValueFactory<ReportItem, Integer>("amount"));
columnRating.setCellFactory(new Callback<TableColumn<ReportItem, Integer>, TableCell<ReportItem, Integer>>() columnRating.setCellFactory(new Callback<TableColumn<ReportItem, Integer>, TableCell<ReportItem, Integer>>()
...@@ -305,21 +365,31 @@ public class ReportController implements Refreshable ...@@ -305,21 +365,31 @@ public class ReportController implements Refreshable
} }
}); });
columnRating.setStyle("-fx-alignment: CENTER;"); columnRating.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnRating = new HBox();
hboxColumnRating.setAlignment(Pos.CENTER);
hboxColumnRating.setSpacing(3);
CheckBox checkBoxRating = new CheckBox(); CheckBox checkBoxRating = new CheckBox();
checkBoxRating.setSelected(true); checkBoxRating.setSelected(true);
hboxColumnRating.getChildren().add(checkBoxRating);
Label labelColumnRating = new Label("Bewertung");
hboxColumnRating.getChildren().add(labelColumnRating);
checkBoxRating.selectedProperty().addListener((a, b, c)->{ checkBoxRating.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnRating.setStyle(style); hboxColumnRating.setStyle(style);
columnFilter.toggleColumn(ColumnType.RATING, c); columnFilter.toggleColumn(ColumnType.RATING, c);
}); });
columnRating.setGraphic(checkBoxRating); columnRating.setGraphic(hboxColumnRating);
columnRating.setComparator(new RatingComparator()); columnRating.setComparator(new RatingComparator());
tableView.getColumns().add(columnRating); tableView.getColumns().add(columnRating);
} }
private void initColumnAmount() private void initColumnAmount()
{ {
TableColumn<ReportItem, String> columnAmount = new TableColumn<>("Betrag"); TableColumn<ReportItem, String> columnAmount = new TableColumn<>();
columnAmount.setUserData(ColumnType.AMOUNT); columnAmount.setUserData(ColumnType.AMOUNT);
columnAmount.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>() columnAmount.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ReportItem, String>, ObservableValue<String>>()
{ {
...@@ -333,14 +403,24 @@ public class ReportController implements Refreshable ...@@ -333,14 +403,24 @@ public class ReportController implements Refreshable
} }
}); });
columnAmount.setStyle("-fx-alignment: CENTER;"); columnAmount.setStyle("-fx-alignment: CENTER;");
HBox hboxColumnAmount = new HBox();
hboxColumnAmount.setAlignment(Pos.CENTER);
hboxColumnAmount.setSpacing(3);
CheckBox checkBoxAmount = new CheckBox(); CheckBox checkBoxAmount = new CheckBox();
checkBoxAmount.setSelected(true); checkBoxAmount.setSelected(true);
hboxColumnAmount.getChildren().add(checkBoxAmount);
Label labelColumnAmount = new Label("Betrag");
hboxColumnAmount.getChildren().add(labelColumnAmount);
checkBoxAmount.selectedProperty().addListener((a, b, c)->{ checkBoxAmount.selectedProperty().addListener((a, b, c)->{
String style = c ? "-fx-alignment: CENTER;" : "-fx-background-color: salmon; -fx-alignment: CENTER;"; String style = c ? "" : "-fx-background-color: salmon;";
columnAmount.setStyle(style); hboxColumnAmount.setStyle(style);
columnFilter.toggleColumn(ColumnType.AMOUNT, c); columnFilter.toggleColumn(ColumnType.AMOUNT, c);
}); });
columnAmount.setGraphic(checkBoxAmount); columnAmount.setGraphic(hboxColumnAmount);
tableView.getColumns().add(columnAmount); tableView.getColumns().add(columnAmount);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment