Progressbar Bugfixes

This commit is contained in:
Georg Reisinger 2021-04-17 17:52:36 +02:00
parent 49b6407ce6
commit d8c4680e16
8 changed files with 126 additions and 71 deletions

View File

@ -68,7 +68,10 @@ public class DirectionMap {
* @throws IOException Fehler beim besorgen der infos über die Tour * @throws IOException Fehler beim besorgen der infos über die Tour
*/ */
private void getDirections(String start, String ende) throws IOException { private void getDirections(String start, String ende) throws IOException {
System.out.println("LOCS: " + start + ende);
String json = HttpHelper.httpGetJsonString("https://www.mapquestapi.com/directions/v2/route?key="+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "key")+"&from="+start+"&to="+ende+"&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false"); String json = HttpHelper.httpGetJsonString("https://www.mapquestapi.com/directions/v2/route?key="+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "key")+"&from="+start+"&to="+ende+"&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false");
System.out.println("JSON: " + json);
System.out.println("URL https://www.mapquestapi.com/directions/v2/route?key="+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "key")+"&from="+start+"&to="+ende+"&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false");
this.strecke = JsonHelper.getDoubleFromJson(json, "distance"); this.strecke = JsonHelper.getDoubleFromJson(json, "distance");
this.dauer = formatetTimeToMinutes(JsonHelper.getStingFromJson(json, "formattedTime")); this.dauer = formatetTimeToMinutes(JsonHelper.getStingFromJson(json, "formattedTime"));
} }

View File

@ -31,7 +31,7 @@ public class Exporter {
* @throws IOException Fehler beim File erstellen * @throws IOException Fehler beim File erstellen
*/ */
public void doExport() throws IOException { public void doExport() throws IOException {
ProgressBar progressBar = new ProgressBar("Exportieren"); ProgressBar progressBar = new ProgressBar("Export...");
int step = progressBar.getProgressSize(4, 100); int step = progressBar.getProgressSize(4, 100);
ArrayList<Tour> data = new DbConnect().getAllTouren(); ArrayList<Tour> data = new DbConnect().getAllTouren();
progressBar.addProgress(step); progressBar.addProgress(step);
@ -40,7 +40,7 @@ public class Exporter {
JsonHelper.getJsonFromObj(data, fileWriter); JsonHelper.getJsonFromObj(data, fileWriter);
progressBar.addProgress(step); progressBar.addProgress(step);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
progressBar.addProgress(step); progressBar.setProgress(100);
bufferedWriter.close(); bufferedWriter.close();
} }
@ -48,25 +48,29 @@ public class Exporter {
* Führt den Imput aus -> File holen, Daten in db erstellen * Führt den Imput aus -> File holen, Daten in db erstellen
* @throws IOException Fehler beim File öffnen * @throws IOException Fehler beim File öffnen
*/ */
public void doImport() throws IOException { public void doImport() {
this.touren = JsonHelper.getTourenFromJson(new FileReader(this.path)); ProgressBar progressBar = new ProgressBar("Import...");
ProgressBar progressBar = new ProgressBar("Importiere Daten"); try {
DbConnect dbConnect = new DbConnect(); this.touren = JsonHelper.getTourenFromJson(new FileReader(this.path));
progressBar.addProgress(5); DbConnect dbConnect = new DbConnect();
dbConnect.delAllData(); dbConnect.delAllData();
progressBar.addProgress(5); progressBar.addProgress(5);
int size = progressBar.getProgressSize(this.touren.size() * 3, 100); int size = progressBar.getProgressSize(this.touren.size() * 3, 100);
for (Tour tour:this.touren) { for (Tour tour:this.touren) {
new DirectionMap(tour.getStart(), tour.getZiel(), tour.getName()); new DirectionMap(tour.getStart(), tour.getZiel(), tour.getName());
progressBar.addProgress(size); progressBar.addProgress(size);
dbConnect.addTour(tour); dbConnect.addTour(tour);
progressBar.addProgress(size); progressBar.addProgress(size);
ArrayList<Log> logs = tour.getLogs(); ArrayList<Log> logs = tour.getLogs();
for (Log log:logs) { for (Log log:logs) {
dbConnect.addLog(tour.getName(), log); dbConnect.addLog(tour.getName(), log);
}
progressBar.addProgress(size);
} }
progressBar.addProgress(size); } catch (IOException e) {
LogHelper.error(e);
progressBar.setProgress(100);
} }
progressBar.addProgress(size); progressBar.setProgress(100);
} }
} }

View File

@ -4,6 +4,7 @@ import org.apache.log4j.Logger;
import tourplaner.data.DbConnect; import tourplaner.data.DbConnect;
import tourplaner.object.Log; import tourplaner.object.Log;
import tourplaner.object.Tour; import tourplaner.object.Tour;
import tourplaner.ui.ProgressBar;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
@ -39,12 +40,18 @@ public class TourPlaner{
* @return false bei error * @return false bei error
*/ */
public static boolean editTour(String oldname, Tour tour) throws IOException { public static boolean editTour(String oldname, Tour tour) throws IOException {
ProgressBar progressBar = new ProgressBar("Edit...");
int step = progressBar.getProgressSize(3, 100);
FileHelper.delFile(new File(getImagePath(oldname))); FileHelper.delFile(new File(getImagePath(oldname)));
FileHelper.delFile(new File(getImagePdfPath(oldname))); FileHelper.delFile(new File(getImagePdfPath(oldname)));
progressBar.addProgress(step);
DirectionMap directionMap = new DirectionMap(tour.getStart(), tour.getZiel(), tour.getName()); DirectionMap directionMap = new DirectionMap(tour.getStart(), tour.getZiel(), tour.getName());
progressBar.addProgress(step);
tour.setDauer(directionMap.getDauer()+""); tour.setDauer(directionMap.getDauer()+"");
tour.setStrecke(directionMap.getStrecke()); tour.setStrecke(directionMap.getStrecke());
return new DbConnect().editTour(oldname, tour); boolean ret = new DbConnect().editTour(oldname, tour);
progressBar.setProgress(100);
return ret;
} }
/** /**
@ -53,20 +60,30 @@ public class TourPlaner{
* @return false bei error * @return false bei error
*/ */
public static boolean delTour(String tourname){ public static boolean delTour(String tourname){
ProgressBar progressBar = new ProgressBar("Del...");
int step = progressBar.getProgressSize(3, 100);
FileHelper.delFile(new File(getImagePath(tourname))); FileHelper.delFile(new File(getImagePath(tourname)));
progressBar.addProgress(step);
FileHelper.delFile(new File(getImagePdfPath(tourname))); FileHelper.delFile(new File(getImagePdfPath(tourname)));
return new DbConnect().delTour(tourname); progressBar.addProgress(step);
boolean ret = new DbConnect().delTour(tourname);
progressBar.setProgress(100);
return ret;
} }
/** /**
* Fügt eine Tour hinzu * Fügt eine Tour hinzu
* @param newTour Neue Tour * @param newTour Neue Tour
* @return false bei error * @return false bei error
*/ */
public static boolean addTour(Tour newTour) throws IOException { public static boolean addTour(Tour newTour, ProgressBar progressBar) throws IOException {
int step = progressBar.getProgressSize(2, 100);
DirectionMap directionMap = new DirectionMap(newTour.getStart(), newTour.getZiel(), newTour.getName()); DirectionMap directionMap = new DirectionMap(newTour.getStart(), newTour.getZiel(), newTour.getName());
progressBar.addProgress(step);
newTour.setDauer(directionMap.getDauer()+""); newTour.setDauer(directionMap.getDauer()+"");
newTour.setStrecke(directionMap.getStrecke()); newTour.setStrecke(directionMap.getStrecke());
return new DbConnect().addTour(newTour); boolean ret = new DbConnect().addTour(newTour);
progressBar.setProgress(100);
return ret;
} }
/** /**

View File

@ -1,13 +1,13 @@
package tourplaner.data; package tourplaner.data;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import tourplaner.business.LogHelper;
import tourplaner.object.Log; import tourplaner.object.Log;
import tourplaner.object.Tour; import tourplaner.object.Tour;
import tourplaner.ui.AlertHelper;
import tourplaner.ui.ProgressBar;
import java.sql.Connection; import java.sql.*;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
@ -155,21 +155,38 @@ public class DbConnect {
} }
public boolean delLog(String tourname, String id){ public boolean delLog(String tourname, String id){
System.out.println("DELETE FROM public.log WHERE tourname = '"+tourname+"' and id = '"+id+"'");
return PostgresHelper.executeUpdate("DELETE FROM public.log WHERE tourname = '"+tourname+"' and id = '"+id+"'"); return PostgresHelper.executeUpdate("DELETE FROM public.log WHERE tourname = '"+tourname+"' and id = '"+id+"'");
} }
private int getTourSize() throws SQLException {
Connection con = PostgresHelper.con();
Statement s = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM tour;");
int size =0;
if (rs != null)
{
rs.last(); // moves cursor to the last row
size = rs.getInt("count"); // get row id
con.close();
return size;
}
con.close();
return -1;
}
/** /**
* Holt alle Touren aus der Datenbank * Holt alle Touren aus der Datenbank
* @return Null bei fehler, sonst eine List aus den IDs * @return Null bei fehler, sonst eine List aus den IDs
*/ */
public ArrayList<Tour> getAllTouren(){ public ArrayList<Tour> getAllTouren() {
this.c = PostgresHelper.con(); this.c = PostgresHelper.con();
String tourname, mapjson, start, ziel; String tourname, mapjson, start, ziel;
double dauer, strecke; double dauer, strecke;
ArrayList<Tour> touren = new ArrayList<>(); ArrayList<Tour> touren = new ArrayList<>();
ProgressBar progressBar = new ProgressBar("Get...");
try { try {
int tourSize = getTourSize();
int step = progressBar.getProgressSize(tourSize, 100);
stmt = this.c.createStatement(); stmt = this.c.createStatement();
ResultSet rs = stmt.executeQuery("select * from tour;"); ResultSet rs = stmt.executeQuery("select * from tour;");
while (rs.next()) { while (rs.next()) {
@ -181,16 +198,20 @@ public class DbConnect {
strecke = rs.getDouble("strecke"); strecke = rs.getDouble("strecke");
if (!tourname.isEmpty()) { if (!tourname.isEmpty()) {
touren.add(new Tour(tourname, dauer + "", mapjson, strecke, start, ziel, getLogs(tourname))); touren.add(new Tour(tourname, dauer + "", mapjson, strecke, start, ziel, getLogs(tourname)));
progressBar.addProgress(step);
}else { }else {
progressBar.setProgress(100);
return null; return null;
} }
} }
progressBar.setProgress(100);
rs.close(); rs.close();
stmt.close(); stmt.close();
this.c.close(); this.c.close();
return touren; return touren;
} catch (Exception e) { } catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage()); LogHelper.error(e);
progressBar.setProgress(100);
return null; return null;
} }
} }

View File

@ -45,9 +45,9 @@
<menus> <menus>
<Menu fx:id="menueFile" mnemonicParsing="false" text="Datei"> <Menu fx:id="menueFile" mnemonicParsing="false" text="Datei">
<items> <items>
<MenuItem mnemonicParsing="false" onAction="#reportSum" text="Report Summary" />
<MenuItem mnemonicParsing="false" onAction="#tourReport" text="Tour Report" />
<MenuItem fx:id="beendenButton" mnemonicParsing="false" onAction="#quitApp" text="Beenden" /> <MenuItem fx:id="beendenButton" mnemonicParsing="false" onAction="#quitApp" text="Beenden" />
<MenuItem mnemonicParsing="false" onAction="#reportSum" text="Report alles" />
<MenuItem mnemonicParsing="false" onAction="#tourReport" text="Tour Report erstellen" />
</items> </items>
</Menu> </Menu>
<Menu mnemonicParsing="false" text="Bearbeiten"> <Menu mnemonicParsing="false" text="Bearbeiten">
@ -58,7 +58,6 @@
</Menu> </Menu>
<Menu mnemonicParsing="false" text="Optionen"> <Menu mnemonicParsing="false" text="Optionen">
<items> <items>
<MenuItem mnemonicParsing="false" onAction="#nimpButton" text="Keine Funktion" />
<CheckMenuItem mnemonicParsing="false" text="Map automatisch öffnen" /> <CheckMenuItem mnemonicParsing="false" text="Map automatisch öffnen" />
<CheckMenuItem mnemonicParsing="false" text="Report automatisch öffnen" /> <CheckMenuItem mnemonicParsing="false" text="Report automatisch öffnen" />
<Menu mnemonicParsing="false" text="Sprache"> <Menu mnemonicParsing="false" text="Sprache">

View File

@ -25,13 +25,21 @@ public class ProgressBar {
public void addProgress(int add){ public void addProgress(int add){
this.status += add; this.status += add;
System.out.println("PROGRESS: " + this.status);
this.progressBar.setValue(this.status); this.progressBar.setValue(this.status);
if(this.status == 100){ closeOnFinish();
frame.setVisible(false); }
private void closeOnFinish(){
if(this.status >= 100){
closeProgress();
} }
} }
public void setProgress(int set){
this.status = set;
closeOnFinish();
}
public void closeProgress(){ public void closeProgress(){
this.frame.setVisible(false); this.frame.setVisible(false);
} }
@ -39,7 +47,6 @@ public class ProgressBar {
public int getProgressSize(int todo, int maxLevel){ public int getProgressSize(int todo, int maxLevel){
int steps = (progressBar.getValue() - maxLevel) / todo; int steps = (progressBar.getValue() - maxLevel) / todo;
if(steps < 0) steps = steps*-1; if(steps < 0) steps = steps*-1;
System.out.println("STEPS: " + steps);
return steps; return steps;
} }
} }

View File

@ -169,8 +169,7 @@ public class TourplanerController implements Initializable {
*/ */
@FXML @FXML
private void addTour(){ private void addTour(){
this.viewModel.addTour(); if(this.viewModel.addTour()) this.mapImageView.setImage(this.viewModel.getImage(this.viewModel.getSelectedTour().getName()));
this.mapImageView.setImage(this.viewModel.getImage(this.viewModel.getSelectedTour().getName()));
} }
/** /**

View File

@ -7,10 +7,9 @@ import tourplaner.business.*;
import tourplaner.ui.AlertHelper; import tourplaner.ui.AlertHelper;
import tourplaner.object.Log; import tourplaner.object.Log;
import tourplaner.object.Tour; import tourplaner.object.Tour;
import tourplaner.ui.ProgressBar;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
@ -80,9 +79,10 @@ public class ViewModel {
/** /**
* Input mit duplications check des Namens und ohne content im input feld * Input mit duplications check des Namens und ohne content im input feld
* @return false beim schließen
*/ */
private void tourNameInput(){ private boolean tourNameInput(){
tourNameInputDuplicatCheck("", true); return tourNameInputDuplicatCheck("", true);
} }
/** /**
@ -153,24 +153,31 @@ public class ViewModel {
/** /**
* Fügt eine neue Tour hinzu * Fügt eine neue Tour hinzu
*/ */
public void addTour(){ public boolean addTour(){
tourNameInput(); if(tourNameInput()) {
tourStartInput(""); if(tourStartInput("")) {
tourZielInput(""); if (tourZielInput("")) {
if (getTour(this.neueTourName) == null) { if (getTour(this.neueTourName) == null) {
Tour newTour = new Tour(this.neueTourName, "1", "1", 0, this.neueTourStart, this.neueTourZiel); ProgressBar progressBar = new ProgressBar("Add Tour...");
tourData.add(newTour); Tour newTour = new Tour(this.neueTourName, "1", "1", 0, this.neueTourStart, this.neueTourZiel);
tourNamen.add(this.neueTourName); tourData.add(newTour);
this.selectedTour = newTour; tourNamen.add(this.neueTourName);
try { this.selectedTour = newTour;
TourPlaner.addTour(newTour); progressBar.addProgress(10);
} catch (IOException e) { try {
e.printStackTrace(); TourPlaner.addTour(newTour, progressBar);
} } catch (IOException e) {
} LogHelper.error(e);
return false;
}
}
}else return false;
}else return false;
}else return false;
this.neueTourStart = null; this.neueTourStart = null;
this.neueTourZiel = null; this.neueTourZiel = null;
this.neueTourName = null; this.neueTourName = null;
return true;
} }
private boolean keineTourSelected(){ private boolean keineTourSelected(){
@ -209,11 +216,11 @@ public class ViewModel {
if (dauer >= 0) { if (dauer >= 0) {
strecke = streckeInput(this.selectedLog.getStrecke() + ""); strecke = streckeInput(this.selectedLog.getStrecke() + "");
if (strecke >= 0) { if (strecke >= 0) {
pause = pauseInput(""); pause = pauseInput(this.selectedLog.getPause() + "");
if(pause >= 0.0) { if(pause >= 0.0) {
hightmeter = hightmeterInput(""); hightmeter = hightmeterInput(this.selectedLog.getHightmeter() + "");
if (hightmeter >= 0.0) { if (hightmeter >= 0.0) {
bemerkung = bemerkungInput(""); bemerkung = bemerkungInput(this.selectedLog.getBemerkung());
if (bemerkung) { if (bemerkung) {
datum = dateInput(this.selectedLog.getDatum()); datum = dateInput(this.selectedLog.getDatum());
if (datum != null) { if (datum != null) {
@ -482,7 +489,10 @@ public class ViewModel {
public ObservableList<Tour> getTourData() { public ObservableList<Tour> getTourData() {
tourData.clear(); tourData.clear();
tourData.addAll(TourPlaner.getAllTours()); ArrayList<Tour> touren = TourPlaner.getAllTours();
if(touren != null) {
tourData.addAll(touren);
}
return tourData; return tourData;
} }
@ -619,13 +629,8 @@ public class ViewModel {
public void importData() { public void importData() {
String file = AlertHelper.fileChooser("Importiere"); String file = AlertHelper.fileChooser("Importiere");
if (file != null){ if (file != null){
try { this.tourNamen = FXCollections.observableArrayList();
this.tourNamen = FXCollections.observableArrayList(); new Exporter(file).doImport();
new Exporter(file).doImport();
} catch (IOException e) {
AlertHelper.error("Error", "Import Error", "Fehler beim Importieren");
LogHelper.error(e);
}
} }
} }