updated to version 0.3.6

This commit is contained in:
Seil0
2016-08-15 18:36:57 +02:00
parent a664a9c5c4
commit 9876ad6212
22 changed files with 116 additions and 46 deletions

View File

@ -40,6 +40,8 @@ import java.util.Properties;
import java.util.ResourceBundle;
import java.util.Scanner;
import org.apache.commons.lang3.SystemUtils;
import com.eclipsesource.json.Json;
import com.eclipsesource.json.JsonObject;
import com.jfoenix.controls.JFXButton;
@ -109,9 +111,9 @@ public class MainWindowController {
@FXML
private JFXButton settingsBtn = new JFXButton("Settings");
@FXML
private JFXButton updateBtn = new JFXButton("Auf Update pr<70>fen");
private JFXButton updateBtn = new JFXButton("Auf Update pr<70>fen");
@FXML
private JFXButton directoryBtn = new JFXButton("Ordner ausw<73>hlen");
private JFXButton directoryBtn = new JFXButton("Ordner ausw<73>hlen");
@FXML
private JFXToggleButton autoupdateBtn = new JFXToggleButton();
@FXML
@ -129,7 +131,7 @@ public class MainWindowController {
@FXML
private Label versionlbl = new Label();
@FXML
private Label sizelbl = new Label("Schriftgr<EFBFBD><EFBFBD>e:");
private Label sizelbl = new Label("Schriftgr<EFBFBD><EFBFBD>e:");
@FXML
private Label aulbl = new Label("beim starten nach Updates suchen:");
@FXML
@ -144,16 +146,19 @@ public class MainWindowController {
@FXML
TreeTableColumn<uiData, String> columnDatName = new TreeTableColumn<>("Datei Name");
private boolean menutrue = false; //merker f<>r menubtn (<28>ffnen oder schlie<69>en)
private boolean menutrue = false; //merker f<>r menubtn (<28>ffnen oder schlie<69>en)
private boolean settingstrue = false;
private String version = "0.3.5";
private String version = "0.3.6";
private String versionURL = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/version.txt";
private String downloadLink = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/downloadLink.txt";
private String updateDataURL;
private String errorUpdateD;
private String errorUpdateV;
private String errorPlay;
private String infoText;
private String linuxBugText;
private String vlcNotInstalled;
private String aktVersion;
private String path;
private String color;
@ -280,7 +285,7 @@ public class MainWindowController {
}
});
//demoBtn clicked
//demoBtn clicked debbuging
demoBtn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
@ -306,18 +311,66 @@ public class MainWindowController {
@FXML
private void playbtnclicked(){
try {
Desktop.getDesktop().open(new File(getPath()+"\\"+ datPath)); //<2F>ffnt die aktuell ausgew<65>hlte Datei
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
if(SystemUtils.IS_OS_LINUX){
System.out.println("This is Linux");
String line;
String output = "";
Process p;
try {
p = Runtime.getRuntime().exec("which vlc");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
output = line;
}
System.out.println(output);
input.close();
} catch (IOException e1) {
// Auto-generated catch block
e1.printStackTrace();
}
if(output.contains("which: no vlc")||output == ""){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setHeaderText("");
alert.setTitle("Info");
alert.setContentText(vlcNotInstalled);
alert.showAndWait();
}else if(datPath.contains(" ")){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setHeaderText("");
alert.setTitle("Info");
alert.setContentText(linuxBugText);
alert.showAndWait();
}else{
try {
Runtime.getRuntime().exec("vlc "+getPath()+"/"+ datPath);
} catch (IOException e) {
Alert alert = new Alert(AlertType.ERROR);
alert.setHeaderText("");
alert.setTitle("Info");
alert.setContentText(errorPlay);
alert.showAndWait();
e.printStackTrace();
}
}
}else if(SystemUtils.IS_OS_WINDOWS || SystemUtils.IS_OS_MAC_OSX){
System.out.println("This is Windows or Mac OSX");
try {
Desktop.getDesktop().open(new File(getPath()+"\\"+ datPath));
} catch (IOException e) {
Alert alert = new Alert(AlertType.ERROR);
alert.setHeaderText("");
alert.setTitle("Info");
alert.setContentText(errorPlay);
alert.showAndWait();
e.printStackTrace();
}
}
}
@FXML
private void openfolderbtnclicked(){
try {
Desktop.getDesktop().open(new File(getPath())); //<2F>ffnet den aktuellen Pfad
Desktop.getDesktop().open(new File(getPath())); //<2F>ffnet den aktuellen Pfad
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
@ -352,7 +405,7 @@ public class MainWindowController {
demoBtn.setPrefWidth(130);
demoBtn.setPrefHeight(32);
demoBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
demoBtn.setDisable(true);
demoBtn.setDisable(false);
menubtn.setText("");
menubtn.setMaxSize(32, 32);
@ -451,7 +504,7 @@ public class MainWindowController {
}
for(int i = 0; i < filterData.size(); i++){
root.getChildren().addAll(new TreeItem<uiData>(filterData.get(i))); //f<>gt daten zur Rootnode hinzu
root.getChildren().addAll(new TreeItem<uiData>(filterData.get(i))); //f<>gt daten zur Rootnode hinzu
}
}
});
@ -492,18 +545,18 @@ public class MainWindowController {
treeTableViewfilm.getColumns().addAll(columnName, columnRating, columnDatName);
//Changelistener f<>r TreeTable
//Changelistener f<>r TreeTable
treeTableViewfilm.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() {
@Override
public void changed(ObservableValue<?> observable, Object oldVal, Object newVal) {
// last = selected; //f<>r autoplay
// last = selected; //f<>r autoplay
selected = treeTableViewfilm.getSelectionModel().getSelectedIndex(); // holt aktuelles Item
last = selected - 1;
next = selected + 1;
Name = columnName.getCellData(selected); // holt Namen des Aktuelle Items aus der ColumnName
datPath = columnDatName.getCellData(selected); // holt den aktuellen Datei Pfad aus der ColumnDatName
ta1.setText(""); // l<>scht Text in ta1
ta1.setText(""); // l<>scht Text in ta1
apiAbfrage(Name); // startet die api abfrage
ta1.positionCaret(0); // setzt die startposition des Cursors in
// ta1
@ -513,7 +566,7 @@ public class MainWindowController {
treeTableViewfilm.getColumns().get(2).setVisible(false); //blendet die Column mit den Dateinamen aus (wichtig um sie abzuspielen)
}
//pr<70>ft auf Update und f<>ht es gegebenenfalls aus
//pr<70>ft auf Update und f<>ht es gegebenenfalls aus
private void update(){
System.out.println("check for updates ...");
@ -532,26 +585,26 @@ public class MainWindowController {
}
System.out.println("Version: "+version+", Update: "+aktVersion);
//vergleicht die Versionsnummern, bei aktversion > version wird ein Update durchgrf<72>hrt
//vergleicht die Versionsnummern, bei aktversion > version wird ein Update durchgrf<72>hrt
int iversion = Integer.parseInt(version.replace(".", ""));
int iaktVersion = Integer.parseInt(aktVersion.replace(".", ""));
if(iversion >= iaktVersion){
updateBtn.setText("kein Update verf<72>gbar");
System.out.println("kein Update verf<72>gbar");
updateBtn.setText("kein Update verf<72>gbar");
System.out.println("kein Update verf<72>gbar");
}else{
updateBtn.setText("Update verf<72>gbar");
System.out.println("Update verf<72>gbar");
updateBtn.setText("Update verf<72>gbar");
System.out.println("Update verf<72>gbar");
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()); //<2F>ffnet neuen Stream/Channel
FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //neuer fileoutputstram f<>r ProjectHomeFLix.jar
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); //holt datei von 0 bis max gr<67><72>e
fos.close(); //schlie<69>t den fos (extrem wichtig!)
ReadableByteChannel rbc = Channels.newChannel(website.openStream()); //<2F>ffnet neuen Stream/Channel
FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //neuer fileoutputstram f<>r ProjectHomeFLix.jar
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); //holt datei von 0 bis max gr<67><72>e
fos.close(); //schlie<69>t den fos (extrem wichtig!)
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //starte neu
System.exit(0); //beendet sich selbst
} catch (IOException e) {
@ -567,7 +620,7 @@ public class MainWindowController {
}
}
//l<>dt die Daten im angegeben Ordner in newDaten
//l<>dt die Daten im angegeben Ordner in newDaten
public void loadData(){
if(getPath().equals("")||getPath().equals(null)){
System.out.println("Kein Pfad angegeben"); //falls der Pfad null oder "" ist
@ -579,7 +632,7 @@ public class MainWindowController {
newDaten.add(new uiData(5.0, titel ,data));
}
for(int i = 0; i < newDaten.size(); i++){
root.getChildren().add(new TreeItem<uiData>(newDaten.get(i))); //f<>gt daten zur Rootnode hinzu
root.getChildren().add(new TreeItem<uiData>(newDaten.get(i))); //f<>gt daten zur Rootnode hinzu
}
}
}
@ -592,7 +645,7 @@ public class MainWindowController {
return str.substring(0, pos);
}
//setzt die Farben f<>r die UI-Elemente
//setzt die Farben f<>r die UI-Elemente
public void applyColor(){
String style = "-fx-background-color: #"+getColor()+";";
String btnStyle = "-fx-button-type: RAISED; -fx-background-color: #"+getColor()+"; -fx-text-fill: BLACK;";
@ -634,11 +687,11 @@ public class MainWindowController {
public void setLoaclUI(int local){
switch(local){
case 0: bundle = ResourceBundle.getBundle("application.HomeFlix-Local", Locale.US); //us_english
case 0: bundle = ResourceBundle.getBundle("recources.HomeFlix-Local", Locale.US); //us_english
break;
case 1: bundle = ResourceBundle.getBundle("application.HomeFlix-Local", Locale.GERMAN); //german
case 1: bundle = ResourceBundle.getBundle("recources.HomeFlix-Local", Locale.GERMAN); //german
break;
default:bundle = ResourceBundle.getBundle("application.HomeFlix-Local", Locale.US); //default local
default:bundle = ResourceBundle.getBundle("recources.HomeFlix-Local", Locale.US); //default local
break;
}
settingsBtn.setText(bundle.getString("settings"));
@ -656,6 +709,9 @@ public class MainWindowController {
errorUpdateD = bundle.getString("errorUpdateD");
errorUpdateV = bundle.getString("errorUpdateV");
infoText = bundle.getString("version")+" "+version+bundle.getString("infoText");
linuxBugText = bundle.getString("linuxBug");
errorPlay = bundle.getString("errorPlay");
vlcNotInstalled = bundle.getString("vlcNotInstalled");
}
//speichert die Einstellungen
@ -676,7 +732,7 @@ public class MainWindowController {
}
}
//l<>dt die Einstellungen
//l<>dt die Einstellungen
public void loadSettings(){
File configFile = new File("config.xml");
try {
@ -703,7 +759,7 @@ public class MainWindowController {
return color;
}
//entfernt 0x von dem r<>ckgabe wert des Colorpickers
//entfernt 0x von dem r<>ckgabe wert des Colorpickers
private void editColor(String input){
StringBuilder sb = new StringBuilder(input);
sb.delete(0, 2);
@ -761,7 +817,7 @@ public class MainWindowController {
sc = new Scanner(System.in);
moviename = input;
// f<>r keinen oder "" Filmtitel
// f<>r keinen oder "" Filmtitel
if (moviename == null || moviename.equals("")) {
System.out.println("No movie found");
}
@ -769,10 +825,10 @@ public class MainWindowController {
//entfernen ungewolter leerzeichen
moviename = moviename.trim();
// ersetzen der Leerzeichen durch + f<>r api-abfrage
// ersetzen der Leerzeichen durch + f<>r api-abfrage
moviename = moviename.replace(" ", "+");
//URL wird zusammengestellt abfragetypen: http,json,xml (muss json sein um sp<73>teres trennen zu erm<72>glichen)
//URL wird zusammengestellt abfragetypen: http,json,xml (muss json sein um sp<73>teres trennen zu erm<72>glichen)
dataurl = apiurl + "t=" + moviename + "&plot=full&r=json";
url = new URL(dataurl);
@ -781,7 +837,7 @@ public class MainWindowController {
// lesen der Daten aus dem Antwort Stream
while ((retdata = dis.readLine()) != null) {
//retdata in json object parsen und anschlie<69>end das json Objekt "zerschneiden"
//retdata in json object parsen und anschlie<69>end das json Objekt "zerschneiden"
System.out.println(retdata);
JsonObject object = Json.parse(retdata).asObject();
String titel = object.getString("Title", "");
@ -816,7 +872,7 @@ public class MainWindowController {
ta1.appendText("Titel: "+titel+"\n");
ta1.appendText("Jahr: "+ year+"\n");
ta1.appendText("Einstufung: "+rated+"\n");
ta1.appendText("Ver<EFBFBD>ffentlicht am: "+released+"\n");
ta1.appendText("Ver<EFBFBD>ffentlicht am: "+released+"\n");
ta1.appendText("Laufzeit: "+runtime+"\n");
ta1.appendText("Genre: "+genre+"\n");
ta1.appendText("Regisseur: "+director+"\n");
@ -839,7 +895,7 @@ public class MainWindowController {
System.out.println(e);
} finally {
try {
//schlie<69>t datainputStream, InputStream,Scanner
//schlie<69>t datainputStream, InputStream,Scanner
if (dis != null) {
dis.close();
}