Compare commits
2 Commits
39c4244668
...
9fe6f34ba3
Author | SHA1 | Date | |
---|---|---|---|
9fe6f34ba3 | |||
3f60d618ff |
@ -24,5 +24,6 @@ javadoc = https://git.dergeorg.at/dergeorg/tourplaner
|
||||
[map]
|
||||
key =
|
||||
size = 1500,400
|
||||
sizePdf = 600,400
|
||||
path = D:\\TourplanerImages\\
|
||||
file_pre = file:///
|
@ -10,21 +10,39 @@ import java.io.IOException;
|
||||
public class DirectionMap {
|
||||
|
||||
private double dauer, strecke;
|
||||
private String start, end, tourname, file;
|
||||
private Image map;
|
||||
private String start, end, tourname, file, filepdf;
|
||||
private Image map, mappdf;
|
||||
|
||||
/**
|
||||
* Holt die Map als image und alle Daten zur berechneten Route
|
||||
*
|
||||
* @param start Startpunkt
|
||||
* @param ende Endpunkt
|
||||
* @param tourname Name der Aktuellen Tour
|
||||
* @throws IOException Fehler beim Image der Map
|
||||
*/
|
||||
public DirectionMap (String start, String ende, String tourname) throws IOException {
|
||||
this.map = getMap(start, ende);
|
||||
this.map = getMap(start, ende, ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "size"));
|
||||
this.mappdf = getMap(start, ende, ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "sizePdf"));
|
||||
this.start = start;
|
||||
this.end = ende;
|
||||
this.tourname = tourname;
|
||||
this.file = ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "path") + this.tourname + ".jpg";
|
||||
FileHelper.saveImage(this.map, "jpg", new File(file));
|
||||
this.filepdf = ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "path") + this.tourname + "_pdf.jpg";
|
||||
FileHelper.saveImage(this.map, "jpg", new File(this.file));
|
||||
FileHelper.saveImage(this.mappdf, "jpg", new File(this.filepdf));
|
||||
FileHelper.openDefault(file);
|
||||
}
|
||||
|
||||
private Image getMap(String start, String ende) throws IOException {
|
||||
return HttpHelper.httpGetStaticMap(start, ende);
|
||||
/**
|
||||
* Downloadet die Map von Mapquest
|
||||
* @param start Startpunkt
|
||||
* @param ende Endpunkt
|
||||
* @return Image von der Map
|
||||
* @throws IOException Fehler beim Get der Map
|
||||
*/
|
||||
private Image getMap(String start, String ende, String size) throws IOException {
|
||||
return HttpHelper.httpGetImage("https://www.mapquestapi.com/staticmap/v5/map?start="+start+"&end="+ende+"&size="+size+"&key="+ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "key"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,6 +9,10 @@ import java.io.IOException;
|
||||
|
||||
public class FileHelper {
|
||||
|
||||
/**
|
||||
* Öffnet ein File mit dem Standart Program
|
||||
* @param f File Path als string
|
||||
*/
|
||||
public static void openDefault(String f){
|
||||
// A reference to a text file
|
||||
File file = new File(f);
|
||||
@ -26,11 +30,33 @@ public class FileHelper {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert ein Image
|
||||
* @param img Das zu speichernde Bild
|
||||
* @param type Dateityp z.b. jpg
|
||||
* @param file Wo die datei zu speichern ist
|
||||
* @throws IOException
|
||||
*/
|
||||
public static void saveImage(Image img, String type, File file) throws IOException {
|
||||
ImageIO.write(ImgHelper.toBufferedImage(img), type, file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt ein image von einem File
|
||||
* @param file File mit dem image
|
||||
* @return Das buffered image
|
||||
* @throws IOException Fehler beim öffnen des bildes
|
||||
*/
|
||||
public static BufferedImage getImage(File file) throws IOException {
|
||||
return ImageIO.read(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht ein File
|
||||
* @param file File das zu löschen ist
|
||||
* @return false bei error
|
||||
*/
|
||||
public static boolean delFile(File file){
|
||||
return file.delete();
|
||||
}
|
||||
}
|
||||
|
@ -5,10 +5,19 @@ import java.awt.*;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* Http Hilfsfunktionen
|
||||
*/
|
||||
public class HttpHelper {
|
||||
|
||||
public static Image httpGetStaticMap(String start, String end) throws IOException {
|
||||
URL url = new URL("https://www.mapquestapi.com/staticmap/v5/map?start="+start+"&end="+end+"&size="+ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "size")+"&key="+ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "key"));
|
||||
return ImageIO.read(url);
|
||||
/**
|
||||
* Holt ein Image von gegebener URL
|
||||
* @param url Url als Sting
|
||||
* @return Image von der Url
|
||||
* @throws IOException Fehler beim Bild holen
|
||||
*/
|
||||
public static Image httpGetImage(String url) throws IOException {
|
||||
URL urls = new URL(url);
|
||||
return ImageIO.read(urls);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,9 @@ package tourplaner.business;
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
/**
|
||||
* Image Hilfsfunktionen
|
||||
*/
|
||||
public class ImgHelper {
|
||||
|
||||
/**
|
||||
|
@ -1,21 +1,13 @@
|
||||
package tourplaner.business;
|
||||
|
||||
import com.itextpdf.text.*;
|
||||
import com.itextpdf.text.Font;
|
||||
import com.itextpdf.text.Image;
|
||||
import com.sun.scenario.effect.ImageData;
|
||||
import tourplaner.object.Log;
|
||||
import tourplaner.object.Tour;
|
||||
|
||||
|
||||
import com.itextpdf.text.Anchor;
|
||||
import com.itextpdf.text.BadElementException;
|
||||
import com.itextpdf.text.Chapter;
|
||||
import com.itextpdf.text.Document;
|
||||
import com.itextpdf.text.DocumentException;
|
||||
import com.itextpdf.text.Element;
|
||||
import com.itextpdf.text.Font;
|
||||
import com.itextpdf.text.List;
|
||||
import com.itextpdf.text.ListItem;
|
||||
import com.itextpdf.text.Paragraph;
|
||||
import com.itextpdf.text.Phrase;
|
||||
import com.itextpdf.text.Section;
|
||||
import com.itextpdf.text.pdf.PdfPCell;
|
||||
import com.itextpdf.text.pdf.PdfPTable;
|
||||
import com.itextpdf.text.pdf.PdfWriter;
|
||||
@ -28,6 +20,9 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* https://github.com/ymasory/iText-4.2.0
|
||||
*/
|
||||
public class Reporter {
|
||||
|
||||
private static Font catFont = new Font(Font.TIMES_ROMAN, 18,
|
||||
@ -82,15 +77,24 @@ public class Reporter {
|
||||
subCatPart.add(new Paragraph("Zielpunkt der Tour: " + tour.getZiel()));
|
||||
subCatPart.add(new Paragraph("Berechnete Dauer der Tour: " + tour.getDauer()));
|
||||
subCatPart.add(new Paragraph("Berechnete Strecke der Tour: " + tour.getStrecke()));
|
||||
|
||||
|
||||
|
||||
Paragraph emptyLine = new Paragraph();
|
||||
addEmptyLine(emptyLine, 5);
|
||||
subCatPart.add(emptyLine);
|
||||
|
||||
|
||||
// now add all this to the document
|
||||
document.add(catPart);
|
||||
|
||||
Image image1 = null;
|
||||
try {
|
||||
image1 = Image.getInstance(TourPlaner.getImagePdfPath(tour.getName()));
|
||||
image1.setAlignment(Element.ALIGN_CENTER);
|
||||
image1.scaleAbsolute(600, 400);
|
||||
|
||||
document.add(image1);
|
||||
} catch (IOException e) {
|
||||
LogHelper.error(e);
|
||||
}
|
||||
ArrayList<Log> logs = tour.getLogs();
|
||||
// Second parameter is the number of the chapter
|
||||
anchor = new Anchor("Logs", catFont);
|
||||
|
@ -37,11 +37,16 @@ public class TourPlaner{
|
||||
* @param tour Neuer Tourname
|
||||
* @return false bei error
|
||||
*/
|
||||
public static boolean editTour(String oldname, Tour tour){
|
||||
public static boolean editTour(String oldname, Tour tour) throws IOException {
|
||||
FileHelper.delFile(new File(getImagePath(oldname)));
|
||||
FileHelper.delFile(new File(getImagePdfPath(oldname)));
|
||||
new DirectionMap(tour.getStart(), tour.getZiel(), tour.getName());
|
||||
return new DbConnect().editTour(oldname, tour);
|
||||
}
|
||||
|
||||
public static boolean delTour(String tourname){
|
||||
FileHelper.delFile(new File(getImagePath(tourname)));
|
||||
FileHelper.delFile(new File(getImagePdfPath(tourname)));
|
||||
return new DbConnect().delTour(tourname);
|
||||
}
|
||||
/**
|
||||
@ -50,7 +55,7 @@ public class TourPlaner{
|
||||
* @return false bei error
|
||||
*/
|
||||
public static boolean addTour(Tour newTour) throws IOException {
|
||||
DirectionMap directionMap = new DirectionMap(newTour.getStart(), newTour.getZiel(), newTour.getName());
|
||||
new DirectionMap(newTour.getStart(), newTour.getZiel(), newTour.getName());
|
||||
return new DbConnect().addTour(newTour);
|
||||
}
|
||||
|
||||
@ -61,6 +66,9 @@ public class TourPlaner{
|
||||
public static String getImagePath(String tourname){
|
||||
return ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "path") + tourname + ".jpg";
|
||||
}
|
||||
public static String getImagePdfPath(String tourname){
|
||||
return ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "map", "path") + tourname + "_pdf.jpg";
|
||||
}
|
||||
|
||||
public static void openImage(String tourname){
|
||||
FileHelper.openDefault(getImagePath(tourname));
|
||||
|
@ -115,7 +115,7 @@
|
||||
<tabs>
|
||||
<Tab fx:id="kartenTab" text="Karte">
|
||||
<AnchorPane>
|
||||
<ImageView fx:id="mapImageView" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="80.0" AnchorPane.leftAnchor="13.0" AnchorPane.rightAnchor="825.0" AnchorPane.topAnchor="0.0" />
|
||||
<ImageView fx:id="mapImageView" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||
</AnchorPane>
|
||||
</Tab>
|
||||
<Tab fx:id="beschreibungTab" text="Beschreibung">
|
||||
|
@ -51,7 +51,11 @@ public class TourplanerController implements Initializable {
|
||||
|
||||
@FXML
|
||||
private void editTourBtn(){
|
||||
this.viewModel.editTour();
|
||||
try {
|
||||
this.viewModel.editTour();
|
||||
} catch (IOException e) {
|
||||
LogHelper.error(e);
|
||||
}
|
||||
syncTour(this.viewModel.getSelectedTour().getName());
|
||||
}
|
||||
|
||||
@ -90,6 +94,7 @@ public class TourplanerController implements Initializable {
|
||||
private void syncTour(String selectedItem){
|
||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
||||
beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
|
||||
mapImageView.setImage(this.viewModel.getImage(selectedItem));
|
||||
}
|
||||
|
||||
private void syncTourNamen(){
|
||||
@ -163,6 +168,7 @@ public class TourplanerController implements Initializable {
|
||||
this.titleTextView.setText(ConfigHelper.getLangIniString("keinetourselected"));
|
||||
this.viewModel.delTour();
|
||||
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
|
||||
mapImageView.setImage(null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -40,7 +40,7 @@ public class ViewModel {
|
||||
* Bearbeitet eine bereits bestehende Tour
|
||||
* prüft ob eine tour ausgewählt ist
|
||||
*/
|
||||
public void editTour(){
|
||||
public void editTour() throws IOException {
|
||||
if (this.selectedTour == null){
|
||||
AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
|
||||
ConfigHelper.getLangIniString("keinetourselected"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user