DB -> Log get, add, edit, del
This commit is contained in:
parent
bb8a796bd4
commit
d9adebc934
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
out/
|
||||
conf.ini
|
||||
log/log4j/log.out/
|
||||
log/
|
||||
reports/
|
||||
.idea/dataSources*
|
@ -11,5 +11,6 @@
|
||||
<orderEntry type="library" name="org.ini4j:ini4j:0.5.4" level="project" />
|
||||
<orderEntry type="library" name="log4j:log4j:1.2.17" level="project" />
|
||||
<orderEntry type="library" name="org.apache.pdfbox:pdfbox:1.8.9" level="project" />
|
||||
<orderEntry type="library" name="org.postgresql:postgresql:42.2.19" level="project" />
|
||||
</component>
|
||||
</module>
|
@ -1,10 +1,13 @@
|
||||
package tourplaner.business;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.pdfbox.exceptions.COSVisitorException;
|
||||
import tourplaner.data.DbConnect;
|
||||
import tourplaner.data.PostgresHelper;
|
||||
import tourplaner.object.Log;
|
||||
import tourplaner.object.Tour;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
@ -25,9 +28,7 @@ public class TourPlaner{
|
||||
* @return Alle touren als ArrayList
|
||||
*/
|
||||
public static ArrayList<Tour> getAllTours(){
|
||||
DbConnect dbConnect = new DbConnect();
|
||||
ArrayList<Tour> touren = dbConnect.getAllTouren();
|
||||
return touren;
|
||||
return new DbConnect().getAllTouren();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -37,13 +38,11 @@ public class TourPlaner{
|
||||
* @return false bei error
|
||||
*/
|
||||
public static boolean editTour(String oldname, Tour tour){
|
||||
DbConnect dbConnect = new DbConnect();
|
||||
return dbConnect.editTour(oldname, tour);
|
||||
return new DbConnect().editTour(oldname, tour);
|
||||
}
|
||||
|
||||
public static boolean delTour(String tourname){
|
||||
DbConnect dbConnect = new DbConnect();
|
||||
return dbConnect.delTour(tourname);
|
||||
return new DbConnect().delTour(tourname);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -52,11 +51,38 @@ public class TourPlaner{
|
||||
* @return false bei error
|
||||
*/
|
||||
public static boolean addTour(Tour newTour){
|
||||
DbConnect dbConnect = new DbConnect();
|
||||
return dbConnect.addTour(newTour);
|
||||
return new DbConnect().addTour(newTour);
|
||||
}
|
||||
|
||||
|
||||
public static ArrayList<Log> getLogs(String tourname){
|
||||
return new DbConnect().getLogs(tourname);
|
||||
}
|
||||
|
||||
public static void doReport(String tourname){
|
||||
try {
|
||||
Reporter.createTourReport(tourname);
|
||||
} catch (IOException e) {
|
||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||
} catch (COSVisitorException e) {
|
||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean addLog(String tourname, Log log){
|
||||
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||
return new DbConnect().addLog(tourname, log);
|
||||
}
|
||||
|
||||
public static boolean delLog(String tourname, String id){
|
||||
return new DbConnect().delLog(tourname, id);
|
||||
}
|
||||
|
||||
public static boolean editLog(String tourname, Log log){
|
||||
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||
return new DbConnect().editLog(tourname, log);
|
||||
}
|
||||
|
||||
|
||||
public static String getMapJson(String start, String ziel){
|
||||
// TODO: 14.04.2021 Map Quest
|
||||
|
@ -1,10 +1,14 @@
|
||||
package tourplaner.data;
|
||||
|
||||
import javafx.geometry.Pos;
|
||||
import tourplaner.object.Log;
|
||||
import tourplaner.object.Tour;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.Date;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
@ -45,9 +49,20 @@ public class DbConnect {
|
||||
* @return false bei error
|
||||
*/
|
||||
public boolean editTour(String oldname, Tour tour) {
|
||||
return PostgresHelper.executeUpdate("UPDATE public.tour SET tourname = '"+tour.getName()+"', dauer = 1, mapjson = '"+tour.getMapJson()+"', start = '"+tour.getStart()+"', ziel = '"+tour.getZiel()+"', strecke = "+tour.getStrecke()+" WHERE tourname ='" + oldname + "';");
|
||||
String tourname = tour.getName();
|
||||
ArrayList<Boolean> result = new ArrayList<>();
|
||||
ArrayList<Log> logs = getLogs(oldname);
|
||||
result.add(delLogs(oldname));
|
||||
result.add(PostgresHelper.executeUpdate("UPDATE public.tour SET tourname = '"+tour.getName()+"', dauer = 1, mapjson = '"+tour.getMapJson()+"', start = '"+tour.getStart()+"', ziel = '"+tour.getZiel()+"', strecke = "+tour.getStrecke()+" WHERE tourname ='" + oldname + "';"));
|
||||
logs.forEach(log -> {
|
||||
result.add(addLog(tourname, log));
|
||||
});
|
||||
return !result.contains(false);
|
||||
}
|
||||
|
||||
private boolean delLogs(String tourname){
|
||||
return PostgresHelper.executeUpdate("DELETE FROM public.log WHERE tourname = '"+tourname+"'");
|
||||
}
|
||||
/**
|
||||
* Fügt eine Tour hinzu
|
||||
* @param tour Neue Tour
|
||||
@ -63,7 +78,70 @@ public class DbConnect {
|
||||
* @return false bei error
|
||||
*/
|
||||
public boolean delTour(String tourname){
|
||||
return PostgresHelper.executeUpdate("DELETE FROM public.tour WHERE tourname = '"+tourname+"'");
|
||||
ArrayList<Boolean> result = new ArrayList<>();
|
||||
result.add(delLogs(tourname));
|
||||
result.add(PostgresHelper.executeUpdate("DELETE FROM public.tour WHERE tourname = '"+tourname+"'"));
|
||||
return !result.contains(false);
|
||||
}
|
||||
|
||||
public ArrayList<Log> getLogs(String tourname){
|
||||
|
||||
this.c = PostgresHelper.con();
|
||||
String id, bemerkung ;
|
||||
double dauer, strecke, pause, gegangen, avg, hightmeter;
|
||||
Date datum;
|
||||
|
||||
ArrayList<Log> logs = new ArrayList<>();
|
||||
try {
|
||||
stmt = this.c.createStatement();
|
||||
ResultSet rs = stmt.executeQuery("SELECT * FROM public.log where tourname = '"+ tourname +"'");
|
||||
while (rs.next()) {
|
||||
id = rs.getString("id");
|
||||
bemerkung = rs.getString("bemerkung");
|
||||
datum = rs.getDate("datum");
|
||||
dauer = rs.getDouble("dauer");
|
||||
// avg = rs.getDouble("avg");
|
||||
hightmeter = rs.getDouble("hightmeter");
|
||||
pause = rs.getDouble("pause");
|
||||
// gegangen = rs.getDouble("gegangen");
|
||||
strecke = rs.getDouble("strecke");
|
||||
if (!tourname.isEmpty()) {
|
||||
logs.add(new Log(id, dauer, datum.toLocalDate(), strecke, bemerkung,hightmeter, pause));
|
||||
}else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
rs.close();
|
||||
stmt.close();
|
||||
this.c.close();
|
||||
return logs;
|
||||
} catch (Exception e) {
|
||||
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Füght einen Logeintrag ein
|
||||
* @param tourname Zu welcher Tour der Logeintrag gehört
|
||||
* @param log Der Logeintrag
|
||||
* @return false bei error
|
||||
*/
|
||||
public boolean addLog(String tourname, Log log){
|
||||
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||
return PostgresHelper.executeUpdate("INSERT INTO public.log (tourname, id, bemerkung, datum, strecke, avg, hightmeter, pause, gegangen, dauer) VALUES ('"+tourname+"', '"+log.getId()+"', '"+log.getBemerkung()+"', '"+log.getDatum()+"', "
|
||||
+log.getStrecke()+", "+log.getAvgspeed()+", "+log.getHightmeter()+", "+log.getPause()+", "+log.getGegangen()+", "+log.getDauer()+")");
|
||||
}
|
||||
|
||||
public boolean editLog(String tourname, Log log){
|
||||
return PostgresHelper.executeUpdate("UPDATE public.log SET bemerkung = '"+log.getBemerkung()+"', datum = '"+log.getDatum()+"', strecke = "+log.getStrecke()+", avg = "+log.getAvgspeed()+", hightmeter = "+
|
||||
log.getHightmeter()+", pause = "+log.getPause()+", gegangen = "+log.getGegangen()+", dauer = "+log.getDauer()+" WHERE tourname = '"+tourname+"' and id = '"+log.getId()+"'");
|
||||
}
|
||||
|
||||
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+"'");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11,6 +11,7 @@ import javafx.scene.control.cell.PropertyValueFactory;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import tourplaner.business.ConfigHelper;
|
||||
import tourplaner.business.LogHelper;
|
||||
import tourplaner.business.TourPlaner;
|
||||
import tourplaner.object.Log;
|
||||
import tourplaner.object.Tour;
|
||||
import tourplaner.viewmodels.ViewModel;
|
||||
@ -49,13 +50,13 @@ public class TourplanerController implements Initializable {
|
||||
@FXML
|
||||
private void editTourBtn(){
|
||||
this.viewModel.editTour();
|
||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
||||
beschreibungTableView.getItems().add(this.viewModel.getTour(this.viewModel.getSelectedTour().getName()));
|
||||
syncTour(this.viewModel.getSelectedTour().getName());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void editLogBtn(){
|
||||
this.viewModel.editLog();
|
||||
syncLogs();
|
||||
}
|
||||
/**
|
||||
* Öffnet github im standart browser
|
||||
@ -84,6 +85,19 @@ public class TourplanerController implements Initializable {
|
||||
this.viewModel.doxygenDocBrowser();
|
||||
}
|
||||
|
||||
private void syncTour(String selectedItem){
|
||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
||||
beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
|
||||
}
|
||||
|
||||
private void syncTourNamen(){
|
||||
TourListView.setItems(this.viewModel.getTourNamen());
|
||||
}
|
||||
|
||||
private void syncLogs(){
|
||||
logTableView.getItems().removeIf(s -> true);
|
||||
logTableView.setItems(this.viewModel.getLogData());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -95,8 +109,7 @@ public class TourplanerController implements Initializable {
|
||||
String selectedItem = TourListView.getSelectionModel().getSelectedItem();
|
||||
this.viewModel.selectTour(selectedItem);
|
||||
titleTextView.setText(selectedItem);
|
||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
||||
beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
|
||||
syncTour(selectedItem);
|
||||
startCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("start"));
|
||||
zielCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("ziel"));
|
||||
dauerCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("dauer"));
|
||||
@ -105,6 +118,7 @@ public class TourplanerController implements Initializable {
|
||||
|
||||
//Log anzeigen
|
||||
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinelogsvorhanden")));
|
||||
logTableView.getItems().removeIf(s -> true);
|
||||
logTableView.setItems(this.viewModel.getLogData());
|
||||
logDauerCol.setCellValueFactory(new PropertyValueFactory<Log, String>("dauer"));
|
||||
logStreckeCol.setCellValueFactory(new PropertyValueFactory<Log, String>("strecke"));
|
||||
@ -163,12 +177,13 @@ public class TourplanerController implements Initializable {
|
||||
@FXML
|
||||
private void addLog(){
|
||||
this.viewModel.addLog();
|
||||
syncLogs();
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void delLog(){
|
||||
this.viewModel.delLog();
|
||||
|
||||
syncLogs();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -190,7 +205,7 @@ public class TourplanerController implements Initializable {
|
||||
//Tour list -> links
|
||||
TourListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
|
||||
TourListView.setOrientation(Orientation.VERTICAL);
|
||||
TourListView.setItems(this.viewModel.getTourNamen());
|
||||
syncTourNamen();
|
||||
//Tabs zu Tour -> rechts oben
|
||||
beschreibungTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
|
||||
titleTextView.setText( ConfigHelper.getLangIniString("keinetourselected"));
|
||||
|
@ -212,10 +212,11 @@ public class ViewModel {
|
||||
Log newLog = new Log(this.selectedLog.getId(), dauer, datum, strecke, this.neueBemerkung, hightmeter, pause);
|
||||
this.logData.removeIf(ld -> ld.getId().equals(this.selectedLog.getId()));
|
||||
this.logData.add(newLog);
|
||||
tourAkt.get().delLog(this.selectedLog.getId());
|
||||
tourAkt.get().addLog(newLog);
|
||||
// tourAkt.get().delLog(this.selectedLog.getId());
|
||||
// tourAkt.get().addLog(newLog);
|
||||
this.tourData.removeIf(td -> td.getName().equals(this.selectedTour.getName()));
|
||||
this.tourData.add(tourAkt.get());
|
||||
TourPlaner.editLog(this.selectedTour.getName(), newLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -327,6 +328,7 @@ public class ViewModel {
|
||||
if (date != null) {
|
||||
Log newLog = new Log(newId.get(), dauer, date, strecke, this.neueBemerkung, hightmeter, pause);
|
||||
this.logData.add(newLog);
|
||||
TourPlaner.addLog(this.selectedTour.getName(), newLog);
|
||||
s.addLog(newLog);
|
||||
}
|
||||
}
|
||||
@ -348,25 +350,8 @@ public class ViewModel {
|
||||
*/
|
||||
public void delLog(){
|
||||
if(this.selectedLog != null) {
|
||||
this.logData.removeIf(s -> s.getId().equals(this.selectedLog.getId()));
|
||||
AtomicReference<Tour> tourToEdit = new AtomicReference<>();
|
||||
this.tourData.forEach(s -> {
|
||||
if (s.getLogs() != null) {
|
||||
s.getLogs().forEach(ss -> {
|
||||
if (ss.getId().equals(this.selectedLog.getId())) {
|
||||
tourToEdit.set(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (tourToEdit.get() != null){
|
||||
Tour toEdit = tourToEdit.get();
|
||||
toEdit.delLog(this.selectedLog.getId());
|
||||
this.tourData.removeIf(s -> s.getName().equals(toEdit.getName()));
|
||||
this.tourData.add(toEdit);
|
||||
TourPlaner.delLog(this.selectedTour.getName(), this.selectedLog.getId());
|
||||
this.selectedLog = null;
|
||||
}
|
||||
}else{
|
||||
AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
|
||||
ConfigHelper.getLangIniString("keinetourselected"),
|
||||
@ -406,6 +391,8 @@ public class ViewModel {
|
||||
}
|
||||
|
||||
public ObservableList<Log> getLogData() {
|
||||
logData.removeAll();
|
||||
logData.addAll(TourPlaner.getLogs(this.selectedTour.getName()));
|
||||
return logData;
|
||||
}
|
||||
|
||||
@ -586,14 +573,7 @@ public class ViewModel {
|
||||
ConfigHelper.getLangIniString("keinetourselected"),
|
||||
ConfigHelper.getLangIniString("logtournotselectedmsg"));
|
||||
}else {
|
||||
try {
|
||||
Reporter.createTourReport(this.selectedTour.getName());
|
||||
} catch (IOException e) {
|
||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||
} catch (COSVisitorException e) {
|
||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||
}
|
||||
|
||||
TourPlaner.doReport(this.selectedTour.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user