added to option to select a local or streaming source at the first start

This commit is contained in:
Jannik 2018-03-29 11:26:20 +02:00
parent 2d5887db4f
commit 8ec7653a5e
8 changed files with 483 additions and 76 deletions

View File

@ -0,0 +1,194 @@
package com.cemu_UI.uiElements;
import java.util.ResourceBundle;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
public class JFXDirStrmCancelDialog {
private String headingText;
private String bodyText;
private String dialogBtnStyle;
private String btn1Text;
private String btn2Text;
private String cancelText;
private int dialogWidth;
private int dialogHeight;
private EventHandler<ActionEvent> btn1Action;
private EventHandler<ActionEvent> btn2Action;
private Pane pane;
/**
* Creates a new JFoenix Dialog to show some information with okay and cancel
* option
*
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param btn1Action action which is performed if btn1 is clicked
* @param btn2Action action which is performed if btn2 is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
*/
public JFXDirStrmCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
int dialogHeight, EventHandler<ActionEvent> btn1Action, EventHandler<ActionEvent> btn2Action,
Pane pane, ResourceBundle bundle) {
setHeadingText(headingText);
setBodyText(bodyText);
setDialogBtnStyle(dialogBtnStyle);
setDialogWidth(dialogWidth);
setDialogHeight(dialogHeight);
setBtn1Action(btn1Action);
setBtn2Action(btn2Action);
setPane(pane);
btn1Text = bundle.getString("addDirectory");
btn2Text = bundle.getString("addStreamSource");
cancelText = bundle.getString("cancelBtnText");
}
public JFXDirStrmCancelDialog() {
// Auto-generated constructor stub
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton btn1 = new JFXButton(btn1Text);
btn1.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
btn1.addEventHandler(ActionEvent.ACTION, btn1Action);
btn1.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
btn1.setPrefHeight(32);
btn1.setStyle(dialogBtnStyle);
JFXButton btn2 = new JFXButton(btn2Text);
btn2.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
btn2.addEventHandler(ActionEvent.ACTION, btn2Action);
btn2.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
btn2.setPrefHeight(32);
btn2.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, btn1, btn2);
content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public String getBtn1Text() {
return btn1Text;
}
public void setBtn1Text(String btn1Text) {
this.btn1Text = btn1Text;
}
public String getBtn2Text() {
return btn2Text;
}
public void setBtn2Text(String btn2Text) {
this.btn2Text = btn2Text;
}
public String getCancelText() {
return cancelText;
}
public void setCancelText(String cancelText) {
this.cancelText = cancelText;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public EventHandler<ActionEvent> getBtn1Action() {
return btn1Action;
}
public void setBtn1Action(EventHandler<ActionEvent> btn1Action) {
this.btn1Action = btn1Action;
}
public EventHandler<ActionEvent> getBtn2Action() {
return btn2Action;
}
public void setBtn2Action(EventHandler<ActionEvent> btn2Action) {
this.btn2Action = btn2Action;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
}

View File

@ -1,7 +1,7 @@
/** /**
* cemu_UI * cemu_UI
* *
* Copyright 2017 <@Seil0> * Copyright 2017-2018 <@Seil0>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -43,12 +43,12 @@ public class JFXInfoDialog {
/** /**
* Creates a new JFoenix Dialog to show some information * Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading * @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here * @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button * @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width * @param dialogWidth dialog width
* @param dialogHeight dialog height * @param dialogHeight dialog height
* @param pane pane to which the dialog belongs * @param pane pane to which the dialog belongs
*/ */
public JFXInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) { public JFXInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText; this.headingText = headingText;
@ -58,6 +58,10 @@ public class JFXInfoDialog {
this.dialogHeight = dialogHeight; this.dialogHeight = dialogHeight;
this.pane = pane; this.pane = pane;
} }
public JFXInfoDialog() {
// Auto-generated constructor stub
}
public void show() { public void show() {
JFXDialogLayout content = new JFXDialogLayout(); JFXDialogLayout content = new JFXDialogLayout();
@ -83,4 +87,52 @@ public class JFXInfoDialog {
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2); AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show(); dialog.show();
} }
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
} }

View File

@ -1,7 +1,7 @@
/** /**
* cemu_UI * cemu_UI
* *
* Copyright 2017 <@Seil0> * Copyright 2017-2018 <@Seil0>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -19,7 +19,6 @@
* MA 02110-1301, USA. * MA 02110-1301, USA.
*/ */
package com.cemu_UI.uiElements; package com.cemu_UI.uiElements;
import java.util.ResourceBundle; import java.util.ResourceBundle;
@ -50,14 +49,14 @@ public class JFXOkayCancelDialog {
/** /**
* Creates a new JFoenix Dialog to show some information with okay and cancel option * Creates a new JFoenix Dialog to show some information with okay and cancel option
* @param headingText Heading Text, just the heading * @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here * @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button * @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width * @param dialogWidth dialog width
* @param dialogHeight dialog height * @param dialogHeight dialog height
* @param okayAction action which is performed if the okay button is clicked * @param okayAction action which is performed if the okay button is clicked
* @param cancelAction action which is performed if the cancel button is clicked * @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs * @param pane pane to which the dialog belongs
*/ */
public JFXOkayCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, public JFXOkayCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
int dialogHeight, EventHandler<ActionEvent> okayAction, EventHandler<ActionEvent> cancelAction, Pane pane, int dialogHeight, EventHandler<ActionEvent> okayAction, EventHandler<ActionEvent> cancelAction, Pane pane,
@ -74,36 +73,63 @@ public class JFXOkayCancelDialog {
cancelText = bundle.getString("cancelBtnText"); cancelText = bundle.getString("cancelBtnText");
} }
public JFXOkayCancelDialog() {
// Auto-generated constructor stub
}
public void show() { public void show() {
JFXDialogLayout content = new JFXDialogLayout(); JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText)); content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText)); content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane(); StackPane stackPane = new StackPane();
stackPane.autosize(); stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true); JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton okayBtn = new JFXButton(okayText); JFXButton okayBtn = new JFXButton(okayText);
okayBtn.addEventHandler(ActionEvent.ACTION, (e)-> { okayBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close(); dialog.close();
}); });
okayBtn.addEventHandler(ActionEvent.ACTION, okayAction); okayBtn.addEventHandler(ActionEvent.ACTION, okayAction);
okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED); okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
okayBtn.setPrefHeight(32); okayBtn.setPrefHeight(32);
okayBtn.setStyle(dialogBtnStyle); okayBtn.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText); JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e)-> { cancelBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close(); dialog.close();
}); });
cancelBtn.addEventHandler(ActionEvent.ACTION, cancelAction); cancelBtn.addEventHandler(ActionEvent.ACTION, cancelAction);
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED); cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32); cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle); cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, okayBtn); content.setActions(cancelBtn, okayBtn);
content.setPrefSize(dialogWidth, dialogHeight); content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane); pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight()-content.getPrefHeight())/2); AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth()-content.getPrefWidth())/2); AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show(); dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
} }
public String getOkayText() { public String getOkayText() {
@ -122,6 +148,22 @@ public class JFXOkayCancelDialog {
this.cancelText = cancelText; this.cancelText = cancelText;
} }
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public EventHandler<ActionEvent> getOkayAction() { public EventHandler<ActionEvent> getOkayAction() {
return okayAction; return okayAction;
} }
@ -138,5 +180,13 @@ public class JFXOkayCancelDialog {
this.cancelAction = cancelAction; this.cancelAction = cancelAction;
} }
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
} }

View File

@ -1,7 +1,7 @@
/** /**
* cemu_UI * cemu_UI
* *
* Copyright 2017 <@Seil0> * Copyright 2017-2018 <@Seil0>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -45,12 +45,12 @@ public class JFXTextAreaInfoDialog {
/** /**
* Creates a new JFoenix Dialog to show some information * Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading * @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here * @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button * @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width * @param dialogWidth dialog width
* @param dialogHeight dialog height * @param dialogHeight dialog height
* @param pane pane to which the dialog belongs * @param pane pane to which the dialog belongs
*/ */
public JFXTextAreaInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) { public JFXTextAreaInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText; this.headingText = headingText;
@ -60,6 +60,10 @@ public class JFXTextAreaInfoDialog {
this.dialogHeight = dialogHeight; this.dialogHeight = dialogHeight;
this.pane = pane; this.pane = pane;
} }
public JFXTextAreaInfoDialog() {
// Auto-generated constructor stub
}
public void show() { public void show() {
textArea = new JFXTextArea(bodyText); textArea = new JFXTextArea(bodyText);
@ -88,6 +92,46 @@ public class JFXTextAreaInfoDialog {
dialog.show(); dialog.show();
} }
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public JFXTextArea getTextArea() { public JFXTextArea getTextArea() {
return textArea; return textArea;
} }
@ -95,4 +139,13 @@ public class JFXTextAreaInfoDialog {
public void setTextArea(JFXTextArea textArea) { public void setTextArea(JFXTextArea textArea) {
this.textArea = textArea; this.textArea = textArea;
} }
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
} }

View File

@ -36,10 +36,12 @@ import javafx.fxml.FXMLLoader;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType; import javafx.scene.control.ButtonType;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.stage.DirectoryChooser; import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import javafx.stage.Stage; import javafx.stage.Stage;
public class Main extends Application { public class Main extends Application {
@ -61,7 +63,6 @@ public class Main extends Application {
private File configFile; private File configFile;
private File posterCache; private File posterCache;
private String path;
private String FONT_FAMILY = "System"; private String FONT_FAMILY = "System";
private String local = System.getProperty("user.language")+"_"+System.getProperty("user.country"); private String local = System.getProperty("user.language")+"_"+System.getProperty("user.country");
private double FONT_SIZE = 17; private double FONT_SIZE = 17;
@ -105,8 +106,8 @@ public class Main extends Application {
// startup checks // startup checks
if (!configFile.exists()) { if (!configFile.exists()) {
directory.mkdir(); directory.mkdir();
mainWindowController.addSource(firstStart(), "local"); getFirstSource();
mainWindowController.setColor("ee3523"); mainWindowController.setColor("ee3523");
mainWindowController.setSize(FONT_SIZE); mainWindowController.setSize(FONT_SIZE);
mainWindowController.setAutoUpdate(false); mainWindowController.setAutoUpdate(false);
@ -132,8 +133,10 @@ public class Main extends Application {
} }
} }
// Method for first Start /** TODO add option to add streaming as first source
private String firstStart(){ * when there i no config.xml we need to get the path for the first source from the user
*/
private void getFirstSource(){
switch (System.getProperty("user.language") + "_" + System.getProperty("user.country")) { switch (System.getProperty("user.language") + "_" + System.getProperty("user.country")) {
case "en_US": case "en_US":
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US); // us_english bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US); // us_english
@ -146,26 +149,78 @@ public class Main extends Application {
break; break;
} }
// // directory action
// EventHandler<ActionEvent> btn1Action = new EventHandler<ActionEvent>() {
// @Override
// public void handle(ActionEvent event) {
// DirectoryChooser directoryChooser = new DirectoryChooser();
// directoryChooser.setTitle(bundle.getString("addDirectory"));
// File selectedFolder = directoryChooser.showDialog(primaryStage);
// if (selectedFolder != null && selectedFolder.exists()) {
// mainWindowController.addSource(selectedFolder.getPath(), "local");
// } else {
// LOGGER.error("The selected folder dosen't exist!");
// }
// }
// };
//
// // streaming action
// EventHandler<ActionEvent> btn2Action = new EventHandler<ActionEvent>() {
// @Override
// public void handle(ActionEvent event) {
// FileChooser fileChooser = new FileChooser();
// fileChooser.setTitle("addStreamSource");
// File selectedFile = fileChooser.showOpenDialog(getPrimaryStage());
// if (selectedFile != null && selectedFile.exists()) {
// mainWindowController.addSource(selectedFile.getPath(), "stream");
// } else {
// LOGGER.error("The selected file dosen't exist!");
// }
// }
// };
//
// JFXDirStrmCancelDialog selectFirstSource = new JFXDirStrmCancelDialog(bundle.getString("addSourceHeader"),
// bundle.getString("addSourceBody"), "", 200, 100, btn1Action, btn2Action, pane, bundle);
// selectFirstSource.show();
Alert alert = new Alert(AlertType.CONFIRMATION); //new alert with DirectoryChooser Alert alert = new Alert(AlertType.CONFIRMATION); //new alert with DirectoryChooser
alert.setTitle("Project HomeFlix"); alert.setTitle("Project HomeFlix");
alert.setHeaderText(bundle.getString("firstStartHeader")); alert.setHeaderText(bundle.getString("addSourceHeader"));
alert.setContentText(bundle.getString("firstStartContent")); alert.setContentText(bundle.getString("addSourceBody"));
alert.setResizable(true); alert.setResizable(true);
ButtonType buttonDirectory = new ButtonType(bundle.getString("addDirectory"));
ButtonType buttonStreaming = new ButtonType(bundle.getString("addStreamSource"));
ButtonType buttonCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonDirectory, buttonStreaming, buttonCancel);
Optional<ButtonType> result = alert.showAndWait(); Optional<ButtonType> result = alert.showAndWait();
if (result.get() == ButtonType.OK){ if (result.get() == buttonDirectory) {
DirectoryChooser directoryChooser = new DirectoryChooser(); DirectoryChooser directoryChooser = new DirectoryChooser();
File selectedDirectory = directoryChooser.setTitle(bundle.getString("addDirectory"));
directoryChooser.showDialog(primaryStage); File selectedFolder = directoryChooser.showDialog(primaryStage);
path = selectedDirectory.getAbsolutePath(); if (selectedFolder != null && selectedFolder.exists()) {
mainWindowController.addSource(selectedFolder.getPath(), "local");
} else {
LOGGER.error("The selected folder dosen't exist!");
System.exit(1);
}
} else if (result.get() == buttonStreaming) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("addStreamSource");
File selectedFile = fileChooser.showOpenDialog(getPrimaryStage());
if (selectedFile != null && selectedFile.exists()) {
mainWindowController.addSource(selectedFile.getPath(), "stream");
} else {
LOGGER.error("The selected file dosen't exist!");
System.exit(1);
}
} else { } else {
LOGGER.warn("No directory selected!"); LOGGER.warn("No source selected!");
System.exit(1); System.exit(1);
} }
return path;
} }
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -267,7 +267,6 @@ public class MainWindowController {
private ImageView skip_next_black = new ImageView(new Image("icons/ic_skip_next_black_18dp_1x.png")); private ImageView skip_next_black = new ImageView(new Image("icons/ic_skip_next_black_18dp_1x.png"));
private ImageView play_arrow_white = new ImageView(new Image("icons/ic_play_arrow_white_18dp_1x.png")); private ImageView play_arrow_white = new ImageView(new Image("icons/ic_play_arrow_white_18dp_1x.png"));
private ImageView play_arrow_black = new ImageView(new Image("icons/ic_play_arrow_black_18dp_1x.png")); private ImageView play_arrow_black = new ImageView(new Image("icons/ic_play_arrow_black_18dp_1x.png"));
private DirectoryChooser directoryChooser = new DirectoryChooser();
private MenuItem like = new MenuItem("like"); private MenuItem like = new MenuItem("like");
private MenuItem dislike = new MenuItem("dislike"); //TODO one option (like or dislike) private MenuItem dislike = new MenuItem("dislike"); //TODO one option (like or dislike)
private ContextMenu menu = new ContextMenu(like, dislike); private ContextMenu menu = new ContextMenu(like, dislike);
@ -290,6 +289,7 @@ public class MainWindowController {
omdbAPIController = new OMDbAPIController(this, dbController, this.main); omdbAPIController = new OMDbAPIController(this, dbController, this.main);
} }
// call all init methods
void init() { void init() {
loadSettings(); loadSettings();
checkAutoUpdate(); checkAutoUpdate();
@ -632,10 +632,11 @@ public class MainWindowController {
@FXML @FXML
private void addDirectoryBtnAction(){ private void addDirectoryBtnAction(){
File selectedFolder = directoryChooser.showDialog(null); DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle(bundle.getString("addDirectory"));
File selectedFolder = directoryChooser.showDialog(main.getPrimaryStage());
if (selectedFolder != null && selectedFolder.exists()) { if (selectedFolder != null && selectedFolder.exists()) {
addSource(selectedFolder.getPath(), "local"); mainWindowController.addSource(selectedFolder.getPath(), "local");
dbController.refreshDataBase();
} else { } else {
LOGGER.error("The selected folder dosen't exist!"); LOGGER.error("The selected folder dosen't exist!");
} }
@ -644,7 +645,7 @@ public class MainWindowController {
@FXML @FXML
private void addStreamSourceBtnAction(){ private void addStreamSourceBtnAction(){
FileChooser fileChooser = new FileChooser(); FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File"); fileChooser.setTitle("addStreamSource");
File selectedFile = fileChooser.showOpenDialog(main.getPrimaryStage()); File selectedFile = fileChooser.showOpenDialog(main.getPrimaryStage());
if (selectedFile != null && selectedFile.exists()) { if (selectedFile != null && selectedFile.exists()) {
addSource(selectedFile.getPath(), "stream"); addSource(selectedFile.getPath(), "stream");

View File

@ -60,5 +60,6 @@ imdbRating = IMDB-Bewertung
type = Type type = Type
#first start #first start
firstStartHeader = Es ist kein Stammverzeichnis f\u00FCr Filme angegeben! addSourceHeader = Neue Quelle hinzuf\u00FCgen
firstStartContent = Stammverzeichniss angeben? addSourceBody = HomeFlix konnte keine Quelle finden. \nFüge eine loakels Verzeichniss oder eine Sreaming Datei als neue Quelle hinzu.
cancelBtnText = Abbrechen

View File

@ -60,5 +60,6 @@ imdbRating = IMDB-Rating
type = Type type = Type
#first start #first start
firstStartHeader = There is no root directory for movies! addSourceHeader = add a new source
firstStartContent = Specify a root directory? addSourceBody = HomeFlix was not able to load a source. \nAdd a new local directory oa a streaming file as new source.
cancelBtnText = cancel