Browse Source

code cleanup

pull/5/head
Jannik 4 years ago
parent
commit
391ef59f70
  1. 1
      pom.xml
  2. 49
      src/main/java/kellerkinder/HomeFlix/application/Main.java
  3. 184
      src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java
  4. 7
      src/main/resources/locals/HomeFlix-Local_de_DE.properties
  5. 7
      src/main/resources/locals/HomeFlix-Local_en_US.properties

1
pom.xml

@ -80,6 +80,7 @@
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<finalName>Project-HomeFlix</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

49
src/main/java/kellerkinder/HomeFlix/application/Main.java

@ -40,7 +40,6 @@ import javafx.scene.layout.AnchorPane;
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class Main extends Application {
@ -56,8 +55,7 @@ public class Main extends Application {
private static String javaVers = System.getProperty("java.version");
private static String javaVend = System.getProperty("java.vendor");
private static String local = System.getProperty("user.language") + "_" + System.getProperty("user.country");
private String dirWin = userHome + "/Documents/HomeFlix"; // Windows: C:/Users/"User"/Documents/HomeFlix
private String dirLinux = userHome + "/HomeFlix"; // Linux: /home/"User"/HomeFlix
private static String dirHomeFlix;
private File directory;
private File configFile;
private File posterCache;
@ -88,26 +86,14 @@ public class Main extends Application {
primaryStage.setResizable(false);
primaryStage.setTitle("Project HomeFlix");
primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/icons/Homeflix_Icon_64x64.png"))); //adds application icon
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
public void handle(WindowEvent we) {
System.exit(1);
}
});
primaryStage.setOnCloseRequest(event -> System.exit(1));
mainWindowController = loader.getController(); //Link of FXMLController and controller class
mainWindowController.setMain(this); //call setMain
// get OS and the specific paths
if (osName.contains("Windows")) {
directory = new File(dirWin);
configFile = new File(dirWin + "/config.xml");
posterCache = new File(dirWin + "/posterCache");
} else {
directory = new File(dirLinux);
configFile = new File(dirLinux + "/config.xml");
posterCache = new File(dirLinux + "/posterCache");
}
directory = new File(dirHomeFlix);
configFile = new File(dirHomeFlix + "/config.xml");
posterCache = new File(dirHomeFlix + "/posterCache");
// generate window
scene = new Scene(pane); // create new scene, append pane to scene
@ -117,7 +103,8 @@ public class Main extends Application {
// startup checks
if (!configFile.exists()) {
directory.mkdir();
directory.mkdir();
addFirstSource();
mainWindowController.setColor("ee3523");
mainWindowController.setFontSize(17.0);
@ -130,7 +117,7 @@ public class Main extends Application {
posterCache.mkdir();
}
// init here as it loads the games to the mwc and the gui, therefore the window must exist
// initialize here as it loads the games to the mwc and the GUI, therefore the window must exist
mainWindowController.init();
mainWindowController.getDbController().init();
} catch (IOException e) {
@ -148,7 +135,7 @@ public class Main extends Application {
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US); // us_english
break;
case "de_DE":
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.GERMAN); // German
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.GERMAN); // de_german
break;
default:
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US); // default local
@ -200,20 +187,20 @@ public class Main extends Application {
}
/**
* set the log file location and initialize the logger
* launch the GUI
* set the log file location and initialize the logger launch the GUI
* @param args arguments given at the start
*/
public static void main(String[] args) {
if (System.getProperty("os.name").equals("Windows")) {
System.setProperty("logFilename", userHome + "/Documents/HomeFlix/app.log");
File logFile = new File(userHome + "/Documents/HomeFlix/app.log");
logFile.delete();
if (osName.contains("Windows")) {
dirHomeFlix = userHome + "/Documents/HomeFlix";
} else {
System.setProperty("logFilename", userHome + "/HomeFlix/app.log");
File logFile = new File(userHome + "/HomeFlix/app.log");
logFile.delete();
dirHomeFlix = userHome + "/HomeFlix";
}
System.setProperty("logFilename", dirHomeFlix + "/app.log");
File logFile = new File(dirHomeFlix + "/app.log");
logFile.delete();
LOGGER = LogManager.getLogger(Main.class.getName());
launch(args);
}

184
src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java

@ -200,30 +200,30 @@ public class MainWindowController {
private TableColumn<SourceDataType, String> sourceColumn;
@FXML
private TableColumn<SourceDataType, String> modeColumn;
private Main main;
private MainWindowController mainWindowController;
private UpdateController updateController;
private OMDbAPIController omdbAPIController;
private DBController dbController;
private static final Logger LOGGER = LogManager.getLogger(MainWindowController.class.getName());
private boolean menuTrue = false;
private boolean settingsTrue = false;
private boolean autoUpdate = false;
private boolean useBeta = false;
private boolean autoplay = false;
private static final Logger LOGGER = LogManager.getLogger(MainWindowController.class.getName());
private int hashA = -647380320;
private final String version = "0.7.0";
private final String buildNumber = "151";
private final String versionName = "toothless dragon";
private String dialogBtnStyle;
private String btnStyle;
private String color;
private String local;
private String omdbAPIKey;
// text strings
private String errorLoad;
private String errorSave;
private String infoText;
private String vlcNotInstalled;
private double fontSize;
private final int hashA = -647380320;
private int last;
private int indexTable;
private int indexList;
@ -247,12 +247,6 @@ public class MainWindowController {
private ContextMenu menu = new ContextMenu(like, dislike);
private Properties props = new Properties();
private Main main;
private MainWindowController mainWindowController;
private UpdateController updateController;
private OMDbAPIController omdbAPIController;
private DBController dbController;
/**
* "Main" Method called in Main.java main() when starting
* Initialize other objects: Updater, dbController and ApiQuery
@ -274,6 +268,28 @@ public class MainWindowController {
initActions();
}
// Initialize UI elements
private void initUI() {
versionLbl.setText("Version: " + version + " (Build: " + buildNumber + ")");
fontsizeSlider.setValue(getFontSize());
colorPicker.setValue(Color.valueOf(getColor()));
updateBtn.setFont(Font.font("System", 12));
autoUpdateToggleBtn.setSelected(isAutoUpdate());
autoplayToggleBtn.setSelected(isAutoplay());
languageChoisBox.setItems(languages);
branchChoisBox.setItems(branches);
if (isUseBeta()) {
branchChoisBox.getSelectionModel().select(1);
} else {
branchChoisBox.getSelectionModel().select(0);
}
setLocalUI();
applyColor();
}
// Initialize the tables (treeTableViewfilm and sourcesTable)
private void initTabel() {
@ -402,7 +418,7 @@ public class MainWindowController {
public void handle(ActionEvent event) {
dbController.like(getCurrentStreamUrl());
dbController.refresh(getCurrentStreamUrl(), indexList);
refreshTable();
refreshTableElement();
}
});
@ -411,7 +427,7 @@ public class MainWindowController {
public void handle(ActionEvent event) {
dbController.dislike(getCurrentStreamUrl());
dbController.refresh(getCurrentStreamUrl(), indexList);
refreshTable();
refreshTableElement();
}
});
@ -479,28 +495,6 @@ public class MainWindowController {
});
}
// initialize UI elements
private void initUI() {
versionLbl.setText("Version: " + version + " (Build: " + buildNumber + ")");
fontsizeSlider.setValue(getFontSize());
colorPicker.setValue(Color.valueOf(getColor()));
updateBtn.setFont(Font.font("System", 12));
autoUpdateToggleBtn.setSelected(isAutoUpdate());
autoplayToggleBtn.setSelected(isAutoplay());
languageChoisBox.setItems(languages);
branchChoisBox.setItems(branches);
if (isUseBeta()) {
branchChoisBox.getSelectionModel().select(1);
} else {
branchChoisBox.getSelectionModel().select(0);
}
setLocalUI();
applyColor();
}
@FXML
private void playbtnclicked() {
if (currentTableFilm.getStreamUrl().contains("_rootNode")) {
@ -528,7 +522,7 @@ public class MainWindowController {
e1.printStackTrace();
}
if (output.contains("which: no vlc") || output == "") {
JFXInfoAlert vlcInfoAlert = new JFXInfoAlert("Info", vlcNotInstalled, dialogBtnStyle, main.getPrimaryStage());
JFXInfoAlert vlcInfoAlert = new JFXInfoAlert("Info", getBundle().getString("vlcNotInstalled"), btnStyle, main.getPrimaryStage());
vlcInfoAlert.showAndWait();
} else {
try {
@ -575,8 +569,8 @@ public class MainWindowController {
@FXML
private void aboutBtnAction() {
String bodyText = "cemu_UI by @Seil0 \nVersion: " + version + " (Build: " + buildNumber + ") \""
+ versionName + "\" \n" + infoText;
JFXInfoAlert infoAlert = new JFXInfoAlert("Project HomeFlix", bodyText, dialogBtnStyle, main.getPrimaryStage());
+ versionName + "\" \n" + getBundle().getString("infoText");
JFXInfoAlert infoAlert = new JFXInfoAlert("Project HomeFlix", bodyText, btnStyle, main.getPrimaryStage());
infoAlert.showAndWait();
}
@ -634,26 +628,18 @@ public class MainWindowController {
@FXML
private void autoUpdateToggleBtnAction(){
if (isAutoUpdate()) {
setAutoUpdate(false);
} else {
setAutoUpdate(true);
}
autoUpdate = isAutoUpdate() ? false : true;
saveSettings();
}
@FXML
private void autoplayToggleBtnAction(){
if (isAutoplay()) {
setAutoplay(false);
} else {
setAutoplay(true);
}
autoplay = isAutoplay() ? false : true;
saveSettings();
}
// refresh the selected child of the root node
private void refreshTable() {
private void refreshTableElement() {
filmRoot.getChildren().get(indexTable).setValue(filmsList.get(indexList));
}
@ -726,27 +712,15 @@ public class MainWindowController {
* if usedColor is less than checkColor set text fill white, else black
*/
private void applyColor() {
String style = "-fx-background-color: #" + getColor() + ";";
String menuBtnStyle;
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;";
BigInteger usedColor = new BigInteger(getColor(), 16);
BigInteger checkColor = new BigInteger("78909cff", 16);
sideMenuVBox.setStyle(style);
topHBox.setStyle(style);
searchTextField.setFocusColor(Color.valueOf(getColor()));
if (usedColor.compareTo(checkColor) == -1) {
dialogBtnStyle = btnStyleWhite;
settingsBtn.setStyle("-fx-text-fill: WHITE;");
aboutBtn.setStyle("-fx-text-fill: WHITE;");
addDirectoryBtn.setStyle(btnStyleWhite);
addStreamSourceBtn.setStyle(btnStyleWhite);
updateBtn.setStyle(btnStyleWhite);
playbtn.setStyle(btnStyleWhite);
openfolderbtn.setStyle(btnStyleWhite);
returnBtn.setStyle(btnStyleWhite);
forwardBtn.setStyle(btnStyleWhite);
btnStyle = btnStyleWhite;
menuBtnStyle = "-fx-text-fill: WHITE;";
playbtn.setGraphic(play_arrow_white);
returnBtn.setGraphic(skip_previous_white);
@ -755,16 +729,8 @@ public class MainWindowController {
menuHam.getStyleClass().clear();
menuHam.getStyleClass().add("jfx-hamburgerW");
} else {
dialogBtnStyle = btnStyleBlack;
settingsBtn.setStyle("-fx-text-fill: BLACK;");
aboutBtn.setStyle("-fx-text-fill: BLACK;");
addDirectoryBtn.setStyle(btnStyleBlack);
addStreamSourceBtn.setStyle(btnStyleBlack);
updateBtn.setStyle(btnStyleBlack);
playbtn.setStyle(btnStyleBlack);
openfolderbtn.setStyle(btnStyleBlack);
returnBtn.setStyle(btnStyleBlack);
forwardBtn.setStyle(btnStyleBlack);
btnStyle = btnStyleBlack;
menuBtnStyle = "-fx-text-fill: BLACK;";
playbtn.setGraphic(play_arrow_black);
returnBtn.setGraphic(skip_previous_black);
@ -773,6 +739,24 @@ public class MainWindowController {
menuHam.getStyleClass().clear();
menuHam.getStyleClass().add("jfx-hamburgerB");
}
// boxes and TextFields
sideMenuVBox.setStyle("-fx-background-color: #" + getColor() + ";");
topHBox.setStyle("-fx-background-color: #" + getColor() + ";");
searchTextField.setFocusColor(Color.valueOf(getColor()));
// normal buttons
addDirectoryBtn.setStyle(btnStyle);
addStreamSourceBtn.setStyle(btnStyle);
updateBtn.setStyle(btnStyle);
playbtn.setStyle(btnStyle);
openfolderbtn.setStyle(btnStyle);
returnBtn.setStyle(btnStyle);
forwardBtn.setStyle(btnStyle);
// menu buttons
settingsBtn.setStyle(menuBtnStyle);
aboutBtn.setStyle(menuBtnStyle);
}
// slide in in 400ms
@ -829,10 +813,6 @@ public class MainWindowController {
columnSeason.setText(getBundle().getString("columnSeason"));
columnEpisode.setText(getBundle().getString("columnEpisode"));
columnFavorite.setText(getBundle().getString("columnFavorite"));
errorLoad = getBundle().getString("errorLoad");
errorSave = getBundle().getString("errorSave");
infoText = getBundle().getString("infoText");
vlcNotInstalled = getBundle().getString("vlcNotInstalled");
}
/**
@ -853,7 +833,7 @@ public class MainWindowController {
props.storeToXML(outputStream, "Project HomeFlix settings"); // write new .xml
outputStream.close();
} catch (IOException e) {
LOGGER.error(errorLoad, e);
LOGGER.error("An error occurred while saving the settings!", e);
}
}
@ -872,7 +852,7 @@ public class MainWindowController {
setColor(props.getProperty("color"));
} catch (Exception e) {
LOGGER.error("cloud not load color", e);
setColor("");
setColor("00a8cc");
}
try {
@ -912,7 +892,7 @@ public class MainWindowController {
inputStream.close();
} catch (IOException e) {
LOGGER.error(errorSave, e);
LOGGER.error("An error occurred while loading the settings!", e);
}
// try loading the omdbAPI key
@ -966,14 +946,14 @@ public class MainWindowController {
return dbController;
}
public void setColor(String input) {
this.color = input;
}
public String getColor() {
return color;
}
public void setColor(String input) {
this.color = input;
}
public FilmTabelDataType getCurrentTableFilm() {
return currentTableFilm;
}
@ -986,13 +966,13 @@ public class MainWindowController {
return currentTableFilm.getStreamUrl();
}
public void setFontSize(Double input) {
this.fontSize = input;
}
public Double getFontSize() {
return fontSize;
}
public void setFontSize(Double input) {
this.fontSize = input;
}
public int getIndexTable() {
return indexTable;
@ -1002,13 +982,13 @@ public class MainWindowController {
return indexList;
}
public void setAutoUpdate(boolean input) {
this.autoUpdate = input;
}
public boolean isAutoUpdate() {
return autoUpdate;
}
public void setAutoUpdate(boolean input) {
this.autoUpdate = input;
}
public boolean isUseBeta() {
return useBeta;
@ -1026,13 +1006,13 @@ public class MainWindowController {
this.autoplay = autoplay;
}
public void setLocal(String input) {
this.local = input;
}
public String getLocal() {
return local;
}
public void setLocal(String input) {
this.local = input;
}
public String getOmdbAPIKey() {
return omdbAPIKey;

7
src/main/resources/locals/HomeFlix-Local_de_DE.properties

@ -31,13 +31,6 @@ columnEpisode = Episode
columnFavorite = Favorit
#error translations
errorUpdateV = Beim ausf\u00FChren des Updates ist ein Fehler aufgetreten! \nError: could not check update version (nvc)\nWeitere Hilfe erhalten sie unter www.kellerkinder.xyz \noder wenden sie sich an support@kellerkinder.xyz
errorUpdateD = Beim ausf\u00FChren des Updates ist ein Fehler aufgetreten! \nError: could not download update files (ndf)\nWeitere Hilfe erhalten sie unter www.kellerkinder.xyz \noder wenden sie sich an support@kellerkinder.xyz
errorMode = Oh, da lief etwas falsch! Da hat jemand einen falschen Modus verwendet. \nError: mode unknow (muk)\nWeitere Hilfe erhalten sie unter www.kellerkinder.xyz \noder wenden sie sich an support@kellerkinder.xyz
errorOpenStream = Beim \u00F6ffnen des Streams ist ein Fehler aufgetreten!
errorLoad = Beim laden der Einstellungen ist ein Fehler aufgetreten!
errorSave = Beim speichern der Einstellungen ist ein Fehler aufgetreten!
noFilmFound = Kein Film mit diesem Titel gefunden!
vlcNotInstalled = Um einen Film abspielen wird der VLC Media Player ben\u00F6tigt!
infoText = \nAutoren: \n \u2022 seil0@kellerkinder.xyz \n \u2022 hendrik.schutter@coptersicht.de \n(c) 2016-2018 Kellerkinder www.kellerkinder.xyz

7
src/main/resources/locals/HomeFlix-Local_en_US.properties

@ -31,13 +31,6 @@ columnEpisode = Episode
columnFavorite = Favorite
#error translations
errorUpdateV = An error has occurred during update! \nError: could not check update version (nvc) \nTo get help, visit www.kellerkinder.xyz \nor contcat support@kellerkinder.xyz
errorUpdateD = An error has occurred during update! \nError: could not download update files (ndf) \nTo get help, visit www.kellerkinder.xyz \nor contcat support@kellerkinder.xyz
errorMode = Oh, something went wrong! It seems someone has used a wrong mode. \nError: mode unknow (muk) \nTo get help, visit www.kellerkinder.xyz \nor contcat support@kellerkinder.xyz
errorOpenStream = An error has occurred during opening the stream!
errorLoad = An error occurred while loading the settings!
errorSave = An error occurred while saving the settings!
noFilmFound = No film with this title found!
vlcNotInstalled = VLC Media Player is required to play a movie!
infoText = \nMaintainers: \n \u2022 seil0@kellerkinder.xyz \n \u2022 hendrik.schutter@coptersicht.de \n(c) 2016-2018 Kellerkinder www.kellerkinder.xyz

Loading…
Cancel
Save

Du besuchst diese Seite mit einem veralteten IPv4-Internetzugang. Möglicherweise treten in Zukunft Probleme mit der Erreichbarkeit und Performance auf. Bitte frage deinen Internetanbieter oder Netzwerkadministrator nach IPv6-Unterstützung.
You are visiting this site with an outdated IPv4 internet access. You may experience problems with accessibility and performance in the future. Please ask your ISP or network administrator for IPv6 support.
Weitere Infos | More Information
Klicke zum schließen | Click to close