parent
b5035825a5
commit
9aa36fc622
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -126,7 +126,7 @@ public class Main extends Application {
|
|||
private String firstStart(){
|
||||
Alert alert = new Alert(AlertType.CONFIRMATION); //neuer alert mit filechooser
|
||||
alert.setTitle("Project HomeFlix");
|
||||
alert.setHeaderText("Es ist kein Stammverzeichniss für Filme angegeben!");
|
||||
alert.setHeaderText("Es ist kein Stammverzeichniss für Filme angegeben!"); //TODO translate
|
||||
alert.setContentText("Stammverzeichniss angeben?");
|
||||
|
||||
Optional<ButtonType> result = alert.showAndWait();
|
||||
|
|
|
@ -23,7 +23,6 @@ package application;
|
|||
|
||||
import java.awt.Desktop;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
|
@ -37,13 +36,9 @@ import java.io.StringWriter;
|
|||
import java.math.BigInteger;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.channels.Channels;
|
||||
import java.nio.channels.ReadableByteChannel;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.Scanner;
|
||||
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
|
||||
|
@ -107,8 +102,7 @@ public class MainWindowController {
|
|||
private TreeTableView<streamUiData> treeTableViewfilm;
|
||||
@FXML
|
||||
private TableView<streamUiData> tableViewStreamingdata;
|
||||
@FXML
|
||||
private JFXTextArea ta1;
|
||||
@FXML JFXTextArea ta1;
|
||||
@FXML
|
||||
private JFXButton menubtn;
|
||||
@FXML
|
||||
|
@ -130,7 +124,7 @@ public class MainWindowController {
|
|||
@FXML
|
||||
private JFXButton debugBtn;
|
||||
@FXML
|
||||
private JFXButton updateBtn;
|
||||
public JFXButton updateBtn;
|
||||
@FXML
|
||||
private JFXButton directoryBtn;
|
||||
@FXML
|
||||
|
@ -157,8 +151,7 @@ public class MainWindowController {
|
|||
private Label sizelbl;
|
||||
@FXML
|
||||
private Label aulbl;
|
||||
@FXML
|
||||
private ImageView image1;
|
||||
@FXML ImageView image1;
|
||||
|
||||
|
||||
@FXML
|
||||
|
@ -190,23 +183,22 @@ public class MainWindowController {
|
|||
private boolean settingstrue = false;
|
||||
private boolean streamingSettingsTrue = false;
|
||||
private String version = "0.4.0";
|
||||
private String buildNumber = "103";
|
||||
private String buildNumber = "104";
|
||||
private String versionName = "glowing bucket";
|
||||
private String buildURL = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/buildNumber.txt";
|
||||
private String downloadLink = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/downloadLink.txt";
|
||||
private File dir = new File(System.getProperty("user.home") + "/Documents/HomeFlix");
|
||||
private File file = new File(dir + "/config.xml");
|
||||
|
||||
private String updateDataURL;
|
||||
private String errorUpdateD;
|
||||
private String errorUpdateV;
|
||||
String errorUpdateD;
|
||||
String errorUpdateV;
|
||||
private String errorPlay;
|
||||
private String errorOpenStream;
|
||||
private String errorMode;
|
||||
@SuppressWarnings("unused")
|
||||
private String errorLoad;
|
||||
private String errorSave;
|
||||
private String noFilmFound;
|
||||
String noFilmFound;
|
||||
private String infoText;
|
||||
private String linuxBugText;
|
||||
private String vlcNotInstalled;
|
||||
|
@ -218,22 +210,22 @@ public class MainWindowController {
|
|||
private String datPath;
|
||||
private String autoUpdate;
|
||||
private String mode;
|
||||
private String title;
|
||||
private String year;
|
||||
private String rating;
|
||||
private String publishedOn;
|
||||
private String duration;
|
||||
private String genre;
|
||||
private String director;
|
||||
private String writer;
|
||||
private String actors;
|
||||
private String plot;
|
||||
private String language;
|
||||
private String country;
|
||||
private String awards;
|
||||
private String metascore;
|
||||
private String imdbRating;
|
||||
private String type;
|
||||
String title;
|
||||
String year;
|
||||
String rating;
|
||||
String publishedOn;
|
||||
String duration;
|
||||
String genre;
|
||||
String director;
|
||||
String writer;
|
||||
String actors;
|
||||
String plot;
|
||||
String language;
|
||||
String country;
|
||||
String awards;
|
||||
String metascore;
|
||||
String imdbRating;
|
||||
String type;
|
||||
private double size;
|
||||
private int last;
|
||||
private int selected;
|
||||
|
@ -241,7 +233,7 @@ public class MainWindowController {
|
|||
private int local;
|
||||
private File selectedFolder;
|
||||
private File selectedStreamingFolder;
|
||||
private ResourceBundle bundle;
|
||||
ResourceBundle bundle;
|
||||
|
||||
private ObservableList<streamUiData> newDaten = FXCollections.observableArrayList();
|
||||
private ObservableList<streamUiData> filterData = FXCollections.observableArrayList();
|
||||
|
@ -259,6 +251,9 @@ public class MainWindowController {
|
|||
private DirectoryChooser directoryChooser = new DirectoryChooser();
|
||||
Properties props = new Properties();
|
||||
|
||||
private updater Updater;
|
||||
private apiQuery ApiQuery;
|
||||
|
||||
//wenn menubtn clicked
|
||||
/**
|
||||
* TODO change value of Text-color change
|
||||
|
@ -466,7 +461,7 @@ public class MainWindowController {
|
|||
|
||||
@FXML
|
||||
private void updateBtnAction(){
|
||||
update();
|
||||
Updater.update(buildURL, downloadLink, aktBuildNumber, buildNumber);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -511,6 +506,9 @@ public class MainWindowController {
|
|||
initTabel();
|
||||
initActions();
|
||||
|
||||
Updater = new updater(this);
|
||||
ApiQuery = new apiQuery(this);
|
||||
|
||||
System.out.println("Mode: "+mode);
|
||||
|
||||
debugBtn.setDisable(true); //debugging btn for tests
|
||||
|
@ -526,7 +524,7 @@ public class MainWindowController {
|
|||
|
||||
if(autoUpdate.equals("1")){
|
||||
autoupdateBtn.setSelected(true);
|
||||
update();
|
||||
Updater.update(buildURL, downloadLink, aktBuildNumber, buildNumber);
|
||||
}else{
|
||||
autoupdateBtn.setSelected(false);
|
||||
}
|
||||
|
@ -587,9 +585,8 @@ public class MainWindowController {
|
|||
Name = columnTitel.getCellData(selected); // holt Namen des Aktuelle Items aus der ColumnName
|
||||
datPath = columnStreamUrl.getCellData(selected); // holt den aktuellen Datei Pfad aus der ColumnDatName
|
||||
ta1.setText(""); // löscht Text in ta1
|
||||
apiAbfrage(Name); // startet die api abfrage
|
||||
ta1.positionCaret(0); // setzt die startposition des Cursors in
|
||||
// ta1
|
||||
ApiQuery.startQuery(Name); // startet die api abfrage
|
||||
ta1.positionCaret(0); // setzt die startposition des Cursors in ta1
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -644,52 +641,8 @@ public class MainWindowController {
|
|||
});
|
||||
}
|
||||
|
||||
//prüft auf Update und fürht es gegebenenfalls aus
|
||||
private void update(){
|
||||
|
||||
System.out.println("check for updates ...");
|
||||
try {
|
||||
URL url = new URL(buildURL); //URL der Datei mit aktueller Versionsnummer
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
|
||||
aktBuildNumber = in.readLine(); //schreibt inputstream in String
|
||||
in.close();
|
||||
} catch (IOException e1) {
|
||||
showErrorMsg(errorUpdateV, e1);
|
||||
}
|
||||
System.out.println("Build: "+buildNumber+", Update: "+aktBuildNumber);
|
||||
|
||||
|
||||
//vergleicht die Versionsnummern, bei aktversion > version wird ein Update durchgrf�hrt
|
||||
int iversion = Integer.parseInt(buildNumber.replace(".", ""));
|
||||
int iaktVersion = Integer.parseInt(aktBuildNumber.replace(".", ""));
|
||||
|
||||
if(iversion >= iaktVersion){
|
||||
updateBtn.setText(bundle.getString("updateBtnNotavail"));
|
||||
System.out.println("no update available");
|
||||
}else{
|
||||
updateBtn.setText(bundle.getString("updateBtnavail"));
|
||||
System.out.println("update available");
|
||||
try {
|
||||
URL website;
|
||||
URL downloadURL = new URL(downloadLink);
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(downloadURL.openStream()));
|
||||
updateDataURL = in.readLine();
|
||||
website = new URL(updateDataURL); //Update URL
|
||||
ReadableByteChannel rbc = Channels.newChannel(website.openStream()); //open new Stream/Channel
|
||||
FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //nea fileoutputstram for ProjectHomeFLix.jar
|
||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); //gets file from 0 to max size
|
||||
fos.close(); //close fos (extrem wichtig!)
|
||||
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //start again
|
||||
System.exit(0); //finishes itself
|
||||
} catch (IOException e) {
|
||||
//in case there is an error
|
||||
showErrorMsg(errorUpdateD, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//lädt die Daten im angegeben Ordner in newDaten
|
||||
public void loadData(){
|
||||
void loadData(){
|
||||
//load local Data
|
||||
if(getPath().equals("")||getPath().equals(null)){
|
||||
System.out.println("Kein Pfad angegeben"); //falls der Pfad null oder "" ist
|
||||
|
@ -737,7 +690,7 @@ public class MainWindowController {
|
|||
}
|
||||
}
|
||||
|
||||
public void addDataUI(){
|
||||
void addDataUI(){
|
||||
if(mode.equals("local")){
|
||||
for(int i = 0; i < newDaten.size(); i++){
|
||||
root.getChildren().add(new TreeItem<streamUiData>(newDaten.get(i))); //fügt daten zur Rootnode hinzu
|
||||
|
@ -765,7 +718,7 @@ public class MainWindowController {
|
|||
}
|
||||
}
|
||||
|
||||
public void loadStreamingSettings(){
|
||||
void loadStreamingSettings(){
|
||||
if(getStreamingPath().equals("")||getStreamingPath().equals(null)){
|
||||
System.out.println("Kein Pfad angegeben"); //falls der Pfad null oder "" ist
|
||||
}else{
|
||||
|
@ -791,7 +744,7 @@ public class MainWindowController {
|
|||
}
|
||||
|
||||
//setzt die Farben für die UI-Elemente
|
||||
public void applyColor(){
|
||||
void applyColor(){
|
||||
String style = "-fx-background-color: #"+getColor()+";";
|
||||
String btnStyleBlack = "-fx-button-type: RAISED; -fx-background-color: #"+getColor()+"; -fx-text-fill: BLACK;";
|
||||
String btnStyleWhite = "-fx-button-type: RAISED; -fx-background-color: #"+getColor()+"; -fx-text-fill: WHITE;";
|
||||
|
@ -937,7 +890,7 @@ public class MainWindowController {
|
|||
type = bundle.getString("type");
|
||||
}
|
||||
|
||||
private void showErrorMsg(String msg, IOException exception){
|
||||
public void showErrorMsg(String msg, IOException exception){
|
||||
Alert alert = new Alert(AlertType.ERROR);
|
||||
alert.setTitle("Error");
|
||||
alert.setHeaderText("");
|
||||
|
@ -1072,119 +1025,4 @@ public class MainWindowController {
|
|||
public String getMode(){
|
||||
return mode;
|
||||
}
|
||||
|
||||
//API-Query
|
||||
@SuppressWarnings("deprecation")
|
||||
private void apiAbfrage(String input){
|
||||
URL url = null;
|
||||
Scanner sc = null;
|
||||
String apiurl = "https://www.omdbapi.com/?"; //API URL
|
||||
String moviename = null;
|
||||
String dataurl = null;
|
||||
String retdata = null;
|
||||
InputStream is = null;
|
||||
DataInputStream dis = null;
|
||||
|
||||
try {
|
||||
|
||||
//get film title
|
||||
sc = new Scanner(System.in);
|
||||
moviename = input;
|
||||
|
||||
// in case of no or "" Film title
|
||||
if (moviename == null || moviename.equals("")) {
|
||||
System.out.println("No movie found");
|
||||
}
|
||||
|
||||
//remove unwanted blank
|
||||
moviename = moviename.trim();
|
||||
|
||||
//replace blank with + for api-query
|
||||
moviename = moviename.replace(" ", "+");
|
||||
|
||||
//URL wird zusammengestellt abfragetypen: http,json,xml (muss json sein um späteres trennen zu ermöglichen)
|
||||
dataurl = apiurl + "t=" + moviename + "&plot=full&r=json";
|
||||
|
||||
url = new URL(dataurl);
|
||||
is = url.openStream();
|
||||
dis = new DataInputStream(is);
|
||||
|
||||
// lesen der Daten aus dem Antwort Stream
|
||||
while ((retdata = dis.readLine()) != null) {
|
||||
//retdata in json object parsen und anschließend das json Objekt "zerschneiden"
|
||||
System.out.println(retdata);
|
||||
JsonObject object = Json.parse(retdata).asObject();
|
||||
String titelV = object.getString("Title", "");
|
||||
String yearV = object.getString("Year", "");
|
||||
String ratedV = object.getString("Rated", "");
|
||||
String releasedV = object.getString("Released", "");
|
||||
String runtimeV = object.getString("Runtime", "");
|
||||
String genreV = object.getString("Genre", "");
|
||||
String directorV = object.getString("Director", "");
|
||||
String writerV = object.getString("Writer", "");
|
||||
String actorsV = object.getString("Actors", "");
|
||||
String plotV = object.getString("Plot", "");
|
||||
String languageV = object.getString("Language", "");
|
||||
String countryV = object.getString("Country", "");
|
||||
String awardsV = object.getString("Awards", "");
|
||||
String posterURL = object.getString("Poster", "");
|
||||
String metascoreV = object.getString("Metascore", "");
|
||||
String imdbRatingV = object.getString("imdbRating", "");
|
||||
@SuppressWarnings("unused")
|
||||
String imdbVotesV = object.getString("imdbVotes", "");
|
||||
@SuppressWarnings("unused")
|
||||
String imdbIDV = object.getString("imdbID", "");
|
||||
String typeV = object.getString("Type", "");
|
||||
String response = object.getString("Response", "");
|
||||
|
||||
|
||||
if(response.equals("False")){
|
||||
ta1.appendText(noFilmFound);
|
||||
Image im2 = new Image("recources/icons/close_black_2048x2048.png");
|
||||
image1.setImage(im2);
|
||||
}else{
|
||||
//ausgabe des Textes in ta1 in jeweils neuer Zeile //TODOformatting
|
||||
ta1.appendText(title+": "+titelV+"\n");
|
||||
ta1.appendText(year+": "+ yearV+"\n");
|
||||
ta1.appendText(rating+": "+ratedV+"\n");
|
||||
ta1.appendText(publishedOn+": "+releasedV+"\n");
|
||||
ta1.appendText(duration+": "+runtimeV+"\n");
|
||||
ta1.appendText(genre+": "+genreV+"\n");
|
||||
ta1.appendText(director+": "+directorV+"\n");
|
||||
ta1.appendText(writer+": "+writerV+"\n");
|
||||
ta1.appendText(actors+": "+actorsV+"\n");
|
||||
ta1.appendText(plot+": "+plotV+"\n");
|
||||
ta1.appendText(language+": "+languageV+"\n");
|
||||
ta1.appendText(country+": "+countryV+"\n");
|
||||
ta1.appendText(awards+": "+awardsV+"\n");
|
||||
ta1.appendText(metascore+": "+metascoreV+"\n");
|
||||
ta1.appendText(imdbRating+": "+imdbRatingV+"\n");
|
||||
ta1.appendText(type+": "+typeV+"\n");
|
||||
|
||||
Image im1 = new Image(posterURL);
|
||||
image1.setImage(im1);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
} finally {
|
||||
//closes datainputStream, InputStream,Scanner if not already done
|
||||
try {
|
||||
if (dis != null) {
|
||||
dis.close();
|
||||
}
|
||||
|
||||
if (is != null) {
|
||||
is.close();
|
||||
}
|
||||
|
||||
if (sc != null) {
|
||||
sc.close();
|
||||
}
|
||||
} catch (Exception e2) {
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,140 @@
|
|||
/**
|
||||
* apiQuery for Project HomeFlix
|
||||
* sends a query to the omdb api
|
||||
*
|
||||
* TODO build in a caching function
|
||||
*/
|
||||
package application;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Scanner;
|
||||
|
||||
import com.eclipsesource.json.Json;
|
||||
import com.eclipsesource.json.JsonObject;
|
||||
|
||||
import javafx.scene.image.Image;
|
||||
|
||||
public class apiQuery {
|
||||
|
||||
public apiQuery(MainWindowController m){
|
||||
mainWindowController=m;
|
||||
}
|
||||
|
||||
private MainWindowController mainWindowController;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
void startQuery(String input){
|
||||
URL url = null;
|
||||
Scanner sc = null;
|
||||
String apiurl = "https://www.omdbapi.com/?"; //API URL
|
||||
String moviename = null;
|
||||
String dataurl = null;
|
||||
String retdata = null;
|
||||
InputStream is = null;
|
||||
DataInputStream dis = null;
|
||||
|
||||
try {
|
||||
|
||||
//get film title
|
||||
sc = new Scanner(System.in);
|
||||
moviename = input;
|
||||
|
||||
// in case of no or "" Film title
|
||||
if (moviename == null || moviename.equals("")) {
|
||||
System.out.println("No movie found");
|
||||
}
|
||||
|
||||
//remove unwanted blank
|
||||
moviename = moviename.trim();
|
||||
|
||||
//replace blank with + for api-query
|
||||
moviename = moviename.replace(" ", "+");
|
||||
|
||||
//URL wird zusammengestellt abfragetypen: http,json,xml (muss json sein um späteres trennen zu ermöglichen)
|
||||
dataurl = apiurl + "t=" + moviename + "&plot=full&r=json";
|
||||
|
||||
url = new URL(dataurl);
|
||||
is = url.openStream();
|
||||
dis = new DataInputStream(is);
|
||||
|
||||
// lesen der Daten aus dem Antwort Stream
|
||||
while ((retdata = dis.readLine()) != null) {
|
||||
//retdata in json object parsen und anschließend das json Objekt "zerschneiden"
|
||||
System.out.println(retdata);
|
||||
JsonObject object = Json.parse(retdata).asObject();
|
||||
String titelV = object.getString("Title", "");
|
||||
String yearV = object.getString("Year", "");
|
||||
String ratedV = object.getString("Rated", "");
|
||||
String releasedV = object.getString("Released", "");
|
||||
String runtimeV = object.getString("Runtime", "");
|
||||
String genreV = object.getString("Genre", "");
|
||||
String directorV = object.getString("Director", "");
|
||||
String writerV = object.getString("Writer", "");
|
||||
String actorsV = object.getString("Actors", "");
|
||||
String plotV = object.getString("Plot", "");
|
||||
String languageV = object.getString("Language", "");
|
||||
String countryV = object.getString("Country", "");
|
||||
String awardsV = object.getString("Awards", "");
|
||||
String posterURL = object.getString("Poster", "");
|
||||
String metascoreV = object.getString("Metascore", "");
|
||||
String imdbRatingV = object.getString("imdbRating", "");
|
||||
@SuppressWarnings("unused")
|
||||
String imdbVotesV = object.getString("imdbVotes", "");
|
||||
@SuppressWarnings("unused")
|
||||
String imdbIDV = object.getString("imdbID", "");
|
||||
String typeV = object.getString("Type", "");
|
||||
String response = object.getString("Response", "");
|
||||
|
||||
|
||||
if(response.equals("False")){
|
||||
mainWindowController.ta1.appendText(mainWindowController.noFilmFound);
|
||||
Image im2 = new Image("recources/icons/close_black_2048x2048.png");
|
||||
mainWindowController.image1.setImage(im2);
|
||||
}else{
|
||||
//ausgabe des Textes in ta1 in jeweils neuer Zeile //TODOformatting
|
||||
mainWindowController.ta1.appendText(mainWindowController.title+": "+titelV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.year+": "+ yearV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.rating+": "+ratedV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.publishedOn+": "+releasedV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.duration+": "+runtimeV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.genre+": "+genreV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.director+": "+directorV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.writer+": "+writerV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.actors+": "+actorsV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.plot+": "+plotV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.language+": "+languageV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.country+": "+countryV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.awards+": "+awardsV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.metascore+": "+metascoreV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.imdbRating+": "+imdbRatingV+"\n");
|
||||
mainWindowController.ta1.appendText(mainWindowController.type+": "+typeV+"\n");
|
||||
|
||||
Image im1 = new Image(posterURL);
|
||||
mainWindowController.image1.setImage(im1);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
} finally {
|
||||
//closes datainputStream, InputStream,Scanner if not already done
|
||||
try {
|
||||
if (dis != null) {
|
||||
dis.close();
|
||||
}
|
||||
|
||||
if (is != null) {
|
||||
is.close();
|
||||
}
|
||||
|
||||
if (sc != null) {
|
||||
sc.close();
|
||||
}
|
||||
} catch (Exception e2) {
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package application;
|
||||
|
||||
import javafx.beans.property.DoubleProperty;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
|
||||
public class uiData {
|
||||
|
||||
private DoubleProperty filmBewertung = new SimpleDoubleProperty();
|
||||
private StringProperty filmName = new SimpleStringProperty();
|
||||
private StringProperty dataName = new SimpleStringProperty();
|
||||
|
||||
//uiData ist der Typ der Daten in der TreeTabelView
|
||||
public uiData (final Double filmBewertung, final String filmName, final String dataName) {
|
||||
this.filmBewertung.set(filmBewertung);
|
||||
this.filmName.set(filmName);
|
||||
this.dataName.set(dataName);
|
||||
}
|
||||
|
||||
public Double getFilmBewertung() {
|
||||
return filmBewertung.get();
|
||||
}
|
||||
|
||||
public String getFilmName() {
|
||||
return filmName.get();
|
||||
}
|
||||
|
||||
public String getDataName() {
|
||||
return dataName.get();
|
||||
}
|
||||
|
||||
|
||||
public void setFilmBewertung(Double filmBewertung) {
|
||||
this.filmBewertung.set(filmBewertung);
|
||||
}
|
||||
|
||||
public void setFilmName(String filmName) {
|
||||
this.filmName.set(filmName);
|
||||
}
|
||||
|
||||
public void setDataName(StringProperty dataName) {
|
||||
this.dataName = dataName;
|
||||
}
|
||||
|
||||
public DoubleProperty FilmBewertungProperty(){
|
||||
return filmBewertung;
|
||||
}
|
||||
|
||||
public StringProperty FilmNameProperty(){
|
||||
return filmName;
|
||||
}
|
||||
|
||||
public StringProperty DataNameProperty(){
|
||||
return dataName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
/**
|
||||
* updater for Project HomeFlix
|
||||
* checks for Updates and downloads it in case there is one
|
||||
*/
|
||||
package application;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.nio.channels.Channels;
|
||||
import java.nio.channels.ReadableByteChannel;
|
||||
|
||||
public class updater {
|
||||
|
||||
public updater(MainWindowController m){
|
||||
mainWindowController=m;
|
||||
}
|
||||
|
||||
private MainWindowController mainWindowController;
|
||||
|
||||
void update(String buildURL,String downloadLink,String aktBuildNumber,String buildNumber){
|
||||
System.out.println("check for updates ...");
|
||||
try {
|
||||
URL url = new URL(buildURL); //URL der Datei mit aktueller Versionsnummer
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
|
||||
aktBuildNumber = in.readLine(); //schreibt inputstream in String
|
||||
in.close();
|
||||
} catch (IOException e1) {
|
||||
mainWindowController.showErrorMsg(mainWindowController.errorUpdateV, e1);
|
||||
}
|
||||
System.out.println("Build: "+buildNumber+", Update: "+aktBuildNumber);
|
||||
|
||||
//vergleicht die Versionsnummern, bei aktversion > version wird ein Update durchgrf<EFBFBD>hrt
|
||||
int iversion = Integer.parseInt(buildNumber);
|
||||
int iaktVersion = Integer.parseInt(aktBuildNumber.replace(".", ""));
|
||||
|
||||
if(iversion >= iaktVersion){
|
||||
mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnNotavail"));
|
||||
System.out.println("no update available");
|
||||
}else{
|
||||
mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnavail"));
|
||||
System.out.println("update available");
|
||||
try {
|
||||
URL website;
|
||||
URL downloadURL = new URL(downloadLink);
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(downloadURL.openStream()));
|
||||
String updateDataURL = in.readLine();
|
||||
website = new URL(updateDataURL); //Update URL
|
||||
ReadableByteChannel rbc = Channels.newChannel(website.openStream()); //open new Stream/Channel
|
||||
FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //nea fileoutputstram for ProjectHomeFLix.jar
|
||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); //gets file from 0 to max size
|
||||
fos.close(); //close fos (extrem wichtig!)
|
||||
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //start again
|
||||
System.exit(0); //finishes itself
|
||||
} catch (IOException e) {
|
||||
//in case there is an error
|
||||
mainWindowController.showErrorMsg(mainWindowController.errorUpdateD, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in New Issue