diff --git a/.idea/libraries/org_apache_pdfbox_pdfbox_1_8_9.xml b/.idea/libraries/org_apache_pdfbox_pdfbox_1_8_9.xml
deleted file mode 100644
index 3dbd171..0000000
--- a/.idea/libraries/org_apache_pdfbox_pdfbox_1_8_9.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/tourplaner/business/LogHelper.java b/src/tourplaner/business/LogHelper.java
index 51f5309..4398d30 100644
--- a/src/tourplaner/business/LogHelper.java
+++ b/src/tourplaner/business/LogHelper.java
@@ -23,6 +23,7 @@ public class LogHelper{
public static void error(String msg, String name){
getLog(name).error(msg);
}
+
/**
* Log info in file und Console
diff --git a/src/tourplaner/business/Reporter.java b/src/tourplaner/business/Reporter.java
index 22bfa03..c0ba9de 100644
--- a/src/tourplaner/business/Reporter.java
+++ b/src/tourplaner/business/Reporter.java
@@ -23,6 +23,8 @@ import java.util.Date;
*
* iText 4 ist gratis verfügbar, siehe:
* https://github.com/ymasory/iText-4.2.0
+ *
+ * https://www.vogella.com/tutorials/JavaPDF/article.html
*/
public class Reporter {
diff --git a/src/tourplaner/tourDetails.fxml b/src/tourplaner/tourDetails.fxml
new file mode 100644
index 0000000..71e1fcb
--- /dev/null
+++ b/src/tourplaner/tourDetails.fxml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/tourplaner/tourplaner.fxml b/src/tourplaner/tourplaner.fxml
index c152be9..70a458f 100644
--- a/src/tourplaner/tourplaner.fxml
+++ b/src/tourplaner/tourplaner.fxml
@@ -126,15 +126,7 @@
-
-
-
-
-
-
-
-
-
+
diff --git a/src/tourplaner/ui/TourDetailsTabController.java b/src/tourplaner/ui/TourDetailsTabController.java
new file mode 100644
index 0000000..449bde3
--- /dev/null
+++ b/src/tourplaner/ui/TourDetailsTabController.java
@@ -0,0 +1,73 @@
+package tourplaner.ui;
+
+import javafx.fxml.Initializable;
+import javafx.scene.control.Label;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableView;
+import javafx.scene.control.cell.PropertyValueFactory;
+import tourplaner.business.ConfigHelper;
+import tourplaner.object.Tour;
+import tourplaner.viewmodels.ViewModel;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+
+public class TourDetailsTabController implements Initializable {
+ public TableView beschreibungTableView;
+ public TableColumn startCol, zielCol, dauerCol, streckeCol, nameCol;
+
+ @Override
+ public void initialize(URL url, ResourceBundle resourceBundle) {
+ }
+
+ /**
+ * Ladet die daten der ausgewählten tour
+ * @param viewModel Das aktuelle view Model
+ * @param selectedItem Das selected tour item
+ */
+ public void syncTour(ViewModel viewModel, String selectedItem){
+ langToFxml();
+ try {
+ beschreibungTableView.getItems().clear(); //Leert die Table View komplett
+ }catch (NullPointerException e){
+ beschreibungTableView.setItems(viewModel.getTourData(new ProgressBar("Load"), 100));
+ }
+ beschreibungTableView.getItems().add(viewModel.getTour(selectedItem));
+ }
+
+ /**
+ * Löscht die Tour daten
+ */
+ public void delTour(){
+ this.beschreibungTableView.getItems().clear(); //löscht alles aus der tabelle
+ }
+
+ /**
+ * Schreibt das keine Tour selected ist
+ */
+ public void keineSelected(){
+ beschreibungTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
+ }
+
+ /**
+ * Setzt die Table view Cell Value Factory
+ */
+ public void tourListSelectItem(){
+ this.startCol.setCellValueFactory(new PropertyValueFactory<>("start"));
+ zielCol.setCellValueFactory(new PropertyValueFactory<>("ziel"));
+ dauerCol.setCellValueFactory(new PropertyValueFactory<>("dauer"));
+ streckeCol.setCellValueFactory(new PropertyValueFactory<>("strecke"));
+ nameCol.setCellValueFactory(new PropertyValueFactory<>("name"));
+ }
+
+ /**
+ * Setzt die aktuell gewählte sprache auf die Table view
+ */
+ public void langToFxml(){
+ this.nameCol.setText(ConfigHelper.getLangIniString("fname"));
+ this.streckeCol.setText(ConfigHelper.getLangIniString("fstrecke"));
+ this.dauerCol.setText(ConfigHelper.getLangIniString("fdauer"));
+ this.zielCol.setText(ConfigHelper.getLangIniString("fziel"));
+ this.startCol .setText(ConfigHelper.getLangIniString("fstart"));
+ }
+}
diff --git a/src/tourplaner/ui/TourplanerController.java b/src/tourplaner/ui/TourplanerController.java
index 0277762..ca3053f 100644
--- a/src/tourplaner/ui/TourplanerController.java
+++ b/src/tourplaner/ui/TourplanerController.java
@@ -1,6 +1,7 @@
package tourplaner.ui;
import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.geometry.Orientation;
import javafx.scene.control.*;
@@ -9,10 +10,10 @@ import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
+import tourplaner.Main;
import tourplaner.business.ConfigHelper;
import tourplaner.business.LogHelper;
import tourplaner.object.Log;
-import tourplaner.object.Tour;
import tourplaner.viewmodels.ViewModel;
import java.io.IOException;
@@ -28,8 +29,7 @@ public class TourplanerController implements Initializable {
//Tabs zu Tour -> rechts oben
public TabPane viewTabPane;
public Tab kartenTab, beschreibungTab;
- public TableView beschreibungTableView;
- public TableColumn startCol, zielCol, dauerCol, streckeCol, nameCol;
+ private TourDetailsTabController tourDetailsTabController;
public TextField titleTextView, sucheInput;
public ImageView mapImageView;
//Log -> rechts unten
@@ -60,13 +60,21 @@ public class TourplanerController implements Initializable {
@FXML
private void onlangenglisch(){
ConfigHelper.setIniString(ConfigHelper.getStandartConfig(), "lang", "lang", "langen");
- langToFxml();
+ try {
+ langToFxml();
+ } catch (IOException e) {
+ LogHelper.error(e);
+ }
}
@FXML
private void onlangdeutsch(){
ConfigHelper.setIniString(ConfigHelper.getStandartConfig(), "lang", "lang", "langde");
- langToFxml();
+ try {
+ langToFxml();
+ } catch (IOException e) {
+ LogHelper.error(e);
+ }
}
@FXML
@@ -118,8 +126,7 @@ public class TourplanerController implements Initializable {
}
private void syncTour(String selectedItem){
- beschreibungTableView.getItems().clear(); //Leert die Table View komplett
- beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
+ tourDetailsTabController.syncTour(this.viewModel, selectedItem);
mapImageView.setImage(this.viewModel.getImage(selectedItem));
}
@@ -149,11 +156,7 @@ public class TourplanerController implements Initializable {
progressBar.addProgress(steps);
syncTour(selectedItem);
progressBar.addProgress(steps);
- startCol.setCellValueFactory(new PropertyValueFactory<>("start"));
- zielCol.setCellValueFactory(new PropertyValueFactory<>("ziel"));
- dauerCol.setCellValueFactory(new PropertyValueFactory<>("dauer"));
- streckeCol.setCellValueFactory(new PropertyValueFactory<>("strecke"));
- nameCol.setCellValueFactory(new PropertyValueFactory<>("name"));
+ this.tourDetailsTabController.tourListSelectItem();
//Log anzeigen
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinelogsvorhanden")));
@@ -221,7 +224,7 @@ public class TourplanerController implements Initializable {
*/
@FXML
private void delTour(){
- this.beschreibungTableView.getItems().clear(); //löscht alles aus der tabelle
+ this.tourDetailsTabController.delTour();
this.titleTextView.setText(ConfigHelper.getLangIniString("keinetourselected"));
this.viewModel.delTour();
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
@@ -282,7 +285,6 @@ public class TourplanerController implements Initializable {
TourListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
TourListView.setOrientation(Orientation.VERTICAL);
syncTourNamen(new ProgressBar("Start"), 100);
- deselectAll();
if(ConfigHelper.getIniInt(ConfigHelper.getStandartConfig(), "settings", "openpdf") == 1){
this.openpdf.setSelected(true);
}else {
@@ -304,22 +306,29 @@ public class TourplanerController implements Initializable {
this.langenglisch.setSelected(true);
}
- langToFxml();
+ try {
+ // Child fxml load
+ FXMLLoader loader = new FXMLLoader(Main.class.getResource("tourDetails.fxml"));
+ this.beschreibungTab.setContent(loader.load());
+ this.tourDetailsTabController = loader.getController();
+
+
+ langToFxml();
+ deselectAll();
+ } catch (IOException e) {
+ LogHelper.error(e);
+ }
}
/**
* Setzt jedem Element den Text der gewählten Sprache
*/
- private void langToFxml(){
+ private void langToFxml() throws IOException {
this.kartenTab.setText(ConfigHelper.getLangIniString("fkarte"));
this.beschreibungTab.setText(ConfigHelper.getLangIniString("fbeschreibung"));
this.editBtn.setText(ConfigHelper.getLangIniString("fedit"));
this.editTourBtn.setText(ConfigHelper.getLangIniString("fedit"));
- this.nameCol.setText(ConfigHelper.getLangIniString("fname"));
- this.streckeCol.setText(ConfigHelper.getLangIniString("fstrecke"));
- this.dauerCol.setText(ConfigHelper.getLangIniString("fdauer"));
- this.zielCol.setText(ConfigHelper.getLangIniString("fziel"));
- this.startCol .setText(ConfigHelper.getLangIniString("fstart"));
+ this.tourDetailsTabController.langToFxml();
this.logAvgCol.setText(ConfigHelper.getLangIniString("favg"));
this.logBemerkungCol.setText(ConfigHelper.getLangIniString("fbemerkung"));
this.logDatumCol.setText(ConfigHelper.getLangIniString("fdatum"));
@@ -364,7 +373,8 @@ public class TourplanerController implements Initializable {
private void deselectAll(){
//Tabs zu Tour -> rechts oben
- beschreibungTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
+ this.tourDetailsTabController.keineSelected();
+ this.beschreibungTab.setText(ConfigHelper.getLangIniString("fbeschreibung"));
titleTextView.setText( ConfigHelper.getLangIniString("keinetourselected"));
//Log -> rechts unten
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));