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")));