3 Commits
0.3.7 ... 0.3.8

Author SHA1 Message Date
84b7e2b7a1 updated to 0.3.8 2016-10-10 16:55:26 +02:00
9de3e6a3f1 code cleanup part 2 2016-10-09 18:35:55 +02:00
c6a78bb345 code cleanup
better style and overview
2016-10-09 16:05:44 +02:00
31 changed files with 488 additions and 470 deletions

View File

@ -1,16 +0,0 @@
# HomeFlix-Local_de_DE.properties German Local
info = Info
settings = Einstellungen
play = play
openFolder = Ordner \u00F6ffnen
chooseFolder = Ordner ausw\u00E4hlen
fontSize = Schriftgr\u00F6\u00DFe:
checkUpdates = Auf Update pr\u00FCfen
autoUpdate = beim Start nach Updates suchen:
version = Version:
columnName = Name
columnRating = Bewertung
columnDatName = Datei Name
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
infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,16 +0,0 @@
# HomeFlix-Local_en_US.properties US-English Local and default
info = Info
settings = Settings
play = play
openFolder = open Folder
chooseFolder = choose Directory
fontSize = font size:
checkUpdates = check for updates
autoUpdate = check at startup for updates:
version = Version:
columnName = Name
columnRating = Rating
columnDatName = File Name
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
infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,21 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?> <?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXColorPicker?>
<?import com.jfoenix.controls.JFXSlider?>
<?import com.jfoenix.controls.JFXTextArea?> <?import com.jfoenix.controls.JFXTextArea?>
<?import com.jfoenix.controls.JFXTextField?> <?import com.jfoenix.controls.JFXTextField?>
<?import com.jfoenix.controls.JFXToggleButton?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TreeTableView?> <?import javafx.scene.control.TreeTableView?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?> <?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<AnchorPane fx:id="anpane" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController"> <AnchorPane fx:id="anpane" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
<children> <children>
<VBox fx:id="topVBox" prefHeight="32.0" prefWidth="800.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<JFXButton fx:id="menubtn" onAction="#menubtnclicked" prefHeight="32.0" prefWidth="67.0" text="Menu" />
</children>
</VBox>
<TreeTableView fx:id="treeTableViewfilm" layoutX="14.0" layoutY="88.0" prefHeight="400.0" prefWidth="360.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="88.0" /> <TreeTableView fx:id="treeTableViewfilm" layoutX="14.0" layoutY="88.0" prefHeight="400.0" prefWidth="360.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="88.0" />
<JFXTextArea fx:id="ta1" layoutX="385.0" layoutY="42.0" maxWidth="503.0" minWidth="275.0" prefHeight="546.0" prefWidth="293.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="385.0" AnchorPane.rightAnchor="222.0" AnchorPane.topAnchor="44.0" /> <JFXTextArea fx:id="ta1" layoutX="385.0" layoutY="42.0" maxWidth="503.0" minWidth="275.0" prefHeight="546.0" prefWidth="293.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="385.0" AnchorPane.rightAnchor="222.0" AnchorPane.topAnchor="44.0" />
<JFXButton fx:id="playbtn" layoutX="690.0" layoutY="363.0" onAction="#playbtnclicked" prefHeight="25.0" prefWidth="198.0" text="play" AnchorPane.bottomAnchor="212.0" AnchorPane.rightAnchor="12.0"> <JFXButton fx:id="playbtn" layoutX="690.0" layoutY="363.0" onAction="#playbtnclicked" prefHeight="25.0" prefWidth="198.0" text="play" AnchorPane.bottomAnchor="212.0" AnchorPane.rightAnchor="12.0">
@ -30,8 +33,65 @@
<font> <font>
<Font name="Arial" size="12.0" /> <Font name="Arial" size="12.0" />
</font></JFXTextField> </font></JFXTextField>
<ImageView fx:id="image1" fitHeight="297.0" fitWidth="198.0" layoutX="481.0" layoutY="46.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="44.0" /> <ImageView fx:id="image1" fitHeight="297.0" fitWidth="198.0" layoutX="481.0" layoutY="46.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="44.0">
<image>
<Image url="@../recources/Homeflix_Poster.png" />
</image></ImageView>
<JFXButton fx:id="returnBtn" layoutX="690.0" layoutY="443.0" onAction="#returnBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&lt;&lt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="120.0" /> <JFXButton fx:id="returnBtn" layoutX="690.0" layoutY="443.0" onAction="#returnBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&lt;&lt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="120.0" />
<JFXButton fx:id="forwardBtn" layoutX="798.0" layoutY="443.0" onAction="#forwardBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&gt;&gt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="12.0" /> <JFXButton fx:id="forwardBtn" layoutX="798.0" layoutY="443.0" onAction="#forwardBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&gt;&gt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="12.0" />
<HBox fx:id="topHBox" layoutY="12.0" prefHeight="32.0" prefWidth="900.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<JFXButton fx:id="menubtn" onAction="#menubtnclicked" prefHeight="32.0" prefWidth="32.0" />
</children>
</HBox>
<VBox fx:id="sideMenuVBox" layoutY="32.0" prefHeight="660.0" prefWidth="150.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXButton fx:id="infoBtn" onAction="#infoBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="settingsBtn" onAction="#settingsBtnclicked" prefHeight="37.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="streamingSettingsBtn" onAction="#streamingSettingsBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="switchBtn" onAction="#switchBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="debugBtn" onAction="#debugBtnclicked" prefHeight="32.0" prefWidth="150.0" text="debugging" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
</children>
</VBox>
<AnchorPane fx:id="streamingSettingsAnchor" layoutX="138.0" layoutY="33.0" prefHeight="566.0" prefWidth="760.0" style="-fx-background-color: #FFFFFF;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXTextField fx:id="tfStreamingPath" layoutX="14.0" layoutY="14.0" onAction="#tfStreamingPathAction" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0" />
<JFXButton fx:id="streamingDirectoryBtn" layoutX="263.0" layoutY="2.0" onAction="#streamingDirectoryBtnAction" AnchorPane.leftAnchor="260.0" AnchorPane.topAnchor="5.0" />
<TableView fx:id="tableViewStreamingdata" layoutX="14.0" layoutY="44.0" prefHeight="200.0" prefWidth="300.0" AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="40.0" />
</children></AnchorPane>
<AnchorPane fx:id="settingsAnchor" layoutX="160.0" layoutY="44.0" prefHeight="566.0" prefWidth="760.0" style="-fx-background-color: #FFFFFF;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXTextField fx:id="tfPath" layoutX="14.0" layoutY="14.0" onAction="#tfPathAction" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0" />
<JFXButton fx:id="directoryBtn" layoutX="255.0" layoutY="8.0" onAction="#directoryBtnAction" prefHeight="25.0" AnchorPane.leftAnchor="260.0" />
<JFXColorPicker fx:id="mainColor" layoutX="14.0" layoutY="45.0" onAction="#mainColorAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="40.0" />
<Label fx:id="sizelbl" layoutY="73.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="75.0" />
<JFXSlider fx:id="sliderFontSize" layoutX="10.0" layoutY="99.0" max="48.0" min="2.0" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="110.0" />
<ChoiceBox fx:id="cbLocal" layoutX="14.0" layoutY="131.0" prefWidth="150.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="145.0" />
<JFXButton fx:id="updateBtn" layoutX="7.0" layoutY="177.0" onAction="#updateBtnAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="180.0" />
<Label fx:id="aulbl" layoutX="43.0" layoutY="219.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="215.0" />
<JFXToggleButton fx:id="autoupdateBtn" layoutX="19.0" layoutY="215.0" onAction="#autoupdateBtnAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="230.0" />
<Label fx:id="versionlbl" layoutX="29.0" layoutY="297.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="280.0" />
</children>
</AnchorPane>
</children> </children>
</AnchorPane> </AnchorPane>

Binary file not shown.

View File

@ -1,7 +1,9 @@
# HomeFlix-Local_de_DE.properties German Local # HomeFlix-Local_de_DE.properties German Local
info = Info info = Info
settings = Einstellungen settings = Einstellungen
streamingSettings = Stream Einst.
play = play play = play
tfPath = Pfad...
openFolder = Ordner \u00F6ffnen openFolder = Ordner \u00F6ffnen
chooseFolder = Ordner ausw\u00E4hlen chooseFolder = Ordner ausw\u00E4hlen
fontSize = Schriftgr\u00F6\u00DFe: fontSize = Schriftgr\u00F6\u00DFe:
@ -10,10 +12,15 @@ autoUpdate = beim Start nach Updates suchen:
version = Version: version = Version:
columnName = Name columnName = Name
columnRating = Bewertung columnRating = Bewertung
columnDatName = Datei Name columnStreamUrl = Datei Name
columnResolution = Aufl\u00F6sung
columnSeason = Staffel
columnYear = Jahr
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 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 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
errorPlay = Beim \u00F6ffnen der Datei ist ein Fehler aufgetreten! \nError: could not open file (nof) \nWeitere Hilfe erhalten sie unter www.kellerkinder.xyz \noder wenden sie sich an support@kellerkinder.xyz errorPlay = Beim \u00F6ffnen der Datei ist ein Fehler aufgetreten! \nError: could not open file (nof) \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!
linuxBug = Zurzeit werden unter Linux leider keine Dateien mit Leerzeichen unterst\u00FCtzt! linuxBug = Zurzeit werden unter Linux leider keine Dateien mit Leerzeichen unterst\u00FCtzt!
vlcNotInstalled = Um einen Film abspielen wird der VLC Media Player ben\u00F6tigt! vlcNotInstalled = Um einen Film abspielen wird der VLC Media Player ben\u00F6tigt!
infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,7 +1,9 @@
# HomeFlix-Local_en_US.properties US-English Local and default # HomeFlix-Local_en_US.properties US-English Local and default
info = Info info = Info
settings = Settings settings = Settings
streamingSettings = Stream Settings
play = play play = play
tfPath = Path...
openFolder = open Folder openFolder = open Folder
chooseFolder = choose Directory chooseFolder = choose Directory
fontSize = font size: fontSize = font size:
@ -10,10 +12,15 @@ autoUpdate = check at startup for updates:
version = Version: version = Version:
columnName = Name columnName = Name
columnRating = Rating columnRating = Rating
columnDatName = File Name columnStreamUrl = File Name
columnResolution = Resolution
columnSeason = Season
columnYear = Year
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 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 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
errorPlay = An error has occurred during opening the file! \nError: could not open file (nof) \nTo get help, visit www.kellerkinder.xyz \nor contcat support@kellerkinder.xyz errorPlay = An error has occurred during opening the file! \nError: could not open file (nof) \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!
linuxBug = Currently no files are supported with additional space under Linux unfortunately! linuxBug = Currently no files are supported with additional space under Linux unfortunately!
vlcNotInstalled = VLC Media Player is required to play a movie! vlcNotInstalled = VLC Media Player is required to play a movie!
infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,16 +0,0 @@
# HomeFlix-Local_de_DE.properties German Local
info = Info
settings = Einstellungen
play = play
openFolder = Ordner \u00F6ffnen
chooseFolder = Ordner ausw\u00E4hlen
fontSize = Schriftgr\u00F6\u00DFe:
checkUpdates = Auf Update pr\u00FCfen
autoUpdate = beim Start nach Updates suchen:
version = Version:
columnName = Name
columnRating = Bewertung
columnDatName = Datei Name
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
infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,16 +0,0 @@
# HomeFlix-Local_en_US.properties US-English Local and default
info = Info
settings = Settings
play = play
openFolder = open Folder
chooseFolder = choose Directory
fontSize = font size:
checkUpdates = check for updates
autoUpdate = check at startup for updates:
version = Version:
columnName = Name
columnRating = Rating
columnDatName = File Name
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
infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,21 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?> <?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXColorPicker?>
<?import com.jfoenix.controls.JFXSlider?>
<?import com.jfoenix.controls.JFXTextArea?> <?import com.jfoenix.controls.JFXTextArea?>
<?import com.jfoenix.controls.JFXTextField?> <?import com.jfoenix.controls.JFXTextField?>
<?import com.jfoenix.controls.JFXToggleButton?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TreeTableView?> <?import javafx.scene.control.TreeTableView?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?> <?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<AnchorPane fx:id="anpane" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController"> <AnchorPane fx:id="anpane" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
<children> <children>
<VBox fx:id="topVBox" prefHeight="32.0" prefWidth="800.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<JFXButton fx:id="menubtn" onAction="#menubtnclicked" prefHeight="32.0" prefWidth="67.0" text="Menu" />
</children>
</VBox>
<TreeTableView fx:id="treeTableViewfilm" layoutX="14.0" layoutY="88.0" prefHeight="400.0" prefWidth="360.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="88.0" /> <TreeTableView fx:id="treeTableViewfilm" layoutX="14.0" layoutY="88.0" prefHeight="400.0" prefWidth="360.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="88.0" />
<JFXTextArea fx:id="ta1" layoutX="385.0" layoutY="42.0" maxWidth="503.0" minWidth="275.0" prefHeight="546.0" prefWidth="293.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="385.0" AnchorPane.rightAnchor="222.0" AnchorPane.topAnchor="44.0" /> <JFXTextArea fx:id="ta1" layoutX="385.0" layoutY="42.0" maxWidth="503.0" minWidth="275.0" prefHeight="546.0" prefWidth="293.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="385.0" AnchorPane.rightAnchor="222.0" AnchorPane.topAnchor="44.0" />
<JFXButton fx:id="playbtn" layoutX="690.0" layoutY="363.0" onAction="#playbtnclicked" prefHeight="25.0" prefWidth="198.0" text="play" AnchorPane.bottomAnchor="212.0" AnchorPane.rightAnchor="12.0"> <JFXButton fx:id="playbtn" layoutX="690.0" layoutY="363.0" onAction="#playbtnclicked" prefHeight="25.0" prefWidth="198.0" text="play" AnchorPane.bottomAnchor="212.0" AnchorPane.rightAnchor="12.0">
@ -30,8 +33,65 @@
<font> <font>
<Font name="Arial" size="12.0" /> <Font name="Arial" size="12.0" />
</font></JFXTextField> </font></JFXTextField>
<ImageView fx:id="image1" fitHeight="297.0" fitWidth="198.0" layoutX="481.0" layoutY="46.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="44.0" /> <ImageView fx:id="image1" fitHeight="297.0" fitWidth="198.0" layoutX="481.0" layoutY="46.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="44.0">
<image>
<Image url="@../recources/Homeflix_Poster.png" />
</image></ImageView>
<JFXButton fx:id="returnBtn" layoutX="690.0" layoutY="443.0" onAction="#returnBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&lt;&lt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="120.0" /> <JFXButton fx:id="returnBtn" layoutX="690.0" layoutY="443.0" onAction="#returnBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&lt;&lt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="120.0" />
<JFXButton fx:id="forwardBtn" layoutX="798.0" layoutY="443.0" onAction="#forwardBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&gt;&gt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="12.0" /> <JFXButton fx:id="forwardBtn" layoutX="798.0" layoutY="443.0" onAction="#forwardBtnclicked" prefHeight="25.0" prefWidth="90.0" text="&gt;&gt;" AnchorPane.bottomAnchor="132.0" AnchorPane.rightAnchor="12.0" />
<HBox fx:id="topHBox" layoutY="12.0" prefHeight="32.0" prefWidth="900.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<JFXButton fx:id="menubtn" onAction="#menubtnclicked" prefHeight="32.0" prefWidth="32.0" />
</children>
</HBox>
<VBox fx:id="sideMenuVBox" layoutY="32.0" prefHeight="660.0" prefWidth="150.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXButton fx:id="infoBtn" onAction="#infoBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="settingsBtn" onAction="#settingsBtnclicked" prefHeight="37.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="streamingSettingsBtn" onAction="#streamingSettingsBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="switchBtn" onAction="#switchBtnclicked" prefHeight="32.0" prefWidth="150.0" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
<JFXButton fx:id="debugBtn" onAction="#debugBtnclicked" prefHeight="32.0" prefWidth="150.0" text="debugging" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</JFXButton>
</children>
</VBox>
<AnchorPane fx:id="streamingSettingsAnchor" layoutX="138.0" layoutY="33.0" prefHeight="566.0" prefWidth="760.0" style="-fx-background-color: #FFFFFF;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXTextField fx:id="tfStreamingPath" layoutX="14.0" layoutY="14.0" onAction="#tfStreamingPathAction" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0" />
<JFXButton fx:id="streamingDirectoryBtn" layoutX="263.0" layoutY="2.0" onAction="#streamingDirectoryBtnAction" AnchorPane.leftAnchor="260.0" AnchorPane.topAnchor="5.0" />
<TableView fx:id="tableViewStreamingdata" layoutX="14.0" layoutY="44.0" prefHeight="200.0" prefWidth="300.0" AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="40.0" />
</children></AnchorPane>
<AnchorPane fx:id="settingsAnchor" layoutX="160.0" layoutY="44.0" prefHeight="566.0" prefWidth="760.0" style="-fx-background-color: #FFFFFF;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
<children>
<JFXTextField fx:id="tfPath" layoutX="14.0" layoutY="14.0" onAction="#tfPathAction" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0" />
<JFXButton fx:id="directoryBtn" layoutX="255.0" layoutY="8.0" onAction="#directoryBtnAction" prefHeight="25.0" AnchorPane.leftAnchor="260.0" />
<JFXColorPicker fx:id="mainColor" layoutX="14.0" layoutY="45.0" onAction="#mainColorAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="40.0" />
<Label fx:id="sizelbl" layoutY="73.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="75.0" />
<JFXSlider fx:id="sliderFontSize" layoutX="10.0" layoutY="99.0" max="48.0" min="2.0" prefWidth="250.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="110.0" />
<ChoiceBox fx:id="cbLocal" layoutX="14.0" layoutY="131.0" prefWidth="150.0" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="145.0" />
<JFXButton fx:id="updateBtn" layoutX="7.0" layoutY="177.0" onAction="#updateBtnAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="180.0" />
<Label fx:id="aulbl" layoutX="43.0" layoutY="219.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="215.0" />
<JFXToggleButton fx:id="autoupdateBtn" layoutX="19.0" layoutY="215.0" onAction="#autoupdateBtnAction" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="230.0" />
<Label fx:id="versionlbl" layoutX="29.0" layoutY="297.0" text="Label" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="280.0" />
</children>
</AnchorPane>
</children> </children>
</AnchorPane> </AnchorPane>

View File

@ -57,16 +57,16 @@ import com.jfoenix.controls.JFXTextArea;
import com.jfoenix.controls.JFXTextField; import com.jfoenix.controls.JFXTextField;
import com.jfoenix.controls.JFXToggleButton; import com.jfoenix.controls.JFXToggleButton;
import javafx.animation.FadeTransition;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.property.ReadOnlyStringWrapper; import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue; import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.geometry.Insets;
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.ChoiceBox; import javafx.scene.control.ChoiceBox;
@ -80,31 +80,28 @@ import javafx.scene.control.TreeTableView;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.text.Font; import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.DirectoryChooser; import javafx.stage.DirectoryChooser;
import javafx.util.Duration;
public class MainWindowController { public class MainWindowController {
@FXML @FXML
private AnchorPane anpane; private AnchorPane anpane;
@FXML @FXML
private AnchorPane settingsan = new AnchorPane(); private AnchorPane settingsAnchor;
@FXML @FXML
private AnchorPane streamingSettingsan = new AnchorPane(); private AnchorPane streamingSettingsAnchor;
@FXML @FXML
private VBox topVBox; private HBox topHBox;
@FXML @FXML
private VBox menuBox = new VBox(); private VBox sideMenuVBox;
@FXML
private VBox settingsBox = new VBox();
@FXML
private VBox streamingSettingsBox = new VBox();
@FXML @FXML
private TreeTableView<streamUiData> treeTableViewfilm; private TreeTableView<streamUiData> treeTableViewfilm;
@FXML @FXML
private TableView<streamUiData> treeViewStreamingdata = new TableView<>(); private TableView<streamUiData> tableViewStreamingdata;
@FXML @FXML
private JFXTextArea ta1; private JFXTextArea ta1;
@FXML @FXML
@ -118,48 +115,48 @@ public class MainWindowController {
@FXML @FXML
private JFXButton forwardBtn; private JFXButton forwardBtn;
@FXML @FXML
private JFXButton infoBtn = new JFXButton("Info"); private JFXButton infoBtn;
@FXML @FXML
private JFXButton demoBtn = new JFXButton("Debugging"); private JFXButton settingsBtn;
@FXML @FXML
private JFXButton settingsBtn = new JFXButton("Settings"); private JFXButton streamingSettingsBtn;
@FXML @FXML
private JFXButton streamingSettingsBtn = new JFXButton("Streaming-Settings"); private JFXButton switchBtn;
@FXML @FXML
private JFXButton switchBtn = new JFXButton("local"); private JFXButton debugBtn;
@FXML @FXML
private JFXButton updateBtn = new JFXButton("Auf Update pr<70>fen"); private JFXButton updateBtn;
@FXML @FXML
private JFXButton directoryBtn = new JFXButton("Ordner ausw<73>hlen"); private JFXButton directoryBtn;
@FXML @FXML
private JFXButton streamingDirectoryBtn = new JFXButton("Ordner ausw<73>hlen"); private JFXButton streamingDirectoryBtn;
@FXML @FXML
private JFXToggleButton autoupdateBtn = new JFXToggleButton(); private JFXToggleButton autoupdateBtn;
@FXML @FXML
public JFXTextField tfPfad = new JFXTextField(); public JFXTextField tfPath;
@FXML @FXML
public JFXTextField streamingtfPfad = new JFXTextField(); public JFXTextField tfStreamingPath;
@FXML @FXML
private JFXTextField tfsearch; private JFXTextField tfsearch;
@FXML @FXML
public JFXColorPicker mainColor = new JFXColorPicker(); public JFXColorPicker mainColor;
@FXML @FXML
public ChoiceBox<String> cbLocal = new ChoiceBox<String>(); public ChoiceBox<String> cbLocal;
@FXML @FXML
public JFXSlider sl1 = new JFXSlider(); public JFXSlider sliderFontSize;
@FXML @FXML
private JFXDialog dialog = new JFXDialog(); private JFXDialog dialog = new JFXDialog();
@FXML @FXML
private Label versionlbl = new Label(); private Label versionlbl;
@FXML @FXML
private Label sizelbl = new Label("Schriftgr<EFBFBD><EFBFBD>e:"); private Label sizelbl;
@FXML @FXML
private Label aulbl = new Label("beim starten nach Updates suchen:"); private Label aulbl;
@FXML @FXML
private ImageView image1; private ImageView image1;
@FXML @FXML
TreeItem<streamUiData> root = new TreeItem<>(new streamUiData(1, 1, 5.0,"1", "filme","1")); TreeItem<streamUiData> root = new TreeItem<>(new streamUiData(1, 1, 1, 5.0,"1", "filme","1"));
@FXML @FXML
TreeTableColumn<streamUiData, Double> columnRating = new TreeTableColumn<>("Bewertung"); TreeTableColumn<streamUiData, Double> columnRating = new TreeTableColumn<>("Bewertung");
@FXML @FXML
@ -167,24 +164,27 @@ public class MainWindowController {
@FXML @FXML
TreeTableColumn<streamUiData, String> columnStreamUrl = new TreeTableColumn<>("Datei Name"); TreeTableColumn<streamUiData, String> columnStreamUrl = new TreeTableColumn<>("Datei Name");
@FXML @FXML
TreeTableColumn<streamUiData, String> columnResolution = new TreeTableColumn<>("Aufl<EFBFBD>sung"); //TODO translate TreeTableColumn<streamUiData, String> columnResolution = new TreeTableColumn<>("Aufl<EFBFBD>sung");
@FXML @FXML
TreeTableColumn<streamUiData, Integer> columnYear = new TreeTableColumn<>("Jahr"); //TODO translate TreeTableColumn<streamUiData, Integer> columnYear = new TreeTableColumn<>("Jahr");
@FXML @FXML
TreeTableColumn<streamUiData, Integer> columnSeason = new TreeTableColumn<>("Staffel"); //TODO translate TreeTableColumn<streamUiData, Integer> columnSeason = new TreeTableColumn<>("Staffel");
@FXML
TreeTableColumn<streamUiData, Integer> columnEpisode = new TreeTableColumn<>("Episode");
@FXML @FXML
private TreeItem<streamUiData> streamingRoot =new TreeItem<>(new streamUiData(1 ,1 ,1.0 ,"1" ,"filme" ,"1")); private TreeItem<streamUiData> streamingRoot =new TreeItem<>(new streamUiData(1 ,1 ,1 ,1.0 ,"1" ,"filme" ,"1"));
@FXML @FXML
private TableColumn<streamUiData, String> dataNameColumn = new TableColumn<>("Datei Name"); private TableColumn<streamUiData, String> dataNameColumn = new TableColumn<>("Datei Name");
@FXML @FXML
private TableColumn<streamUiData, String> dataNameEndColumn = new TableColumn<>("Datei Name mit Endung"); private TableColumn<streamUiData, String> dataNameEndColumn = new TableColumn<>("Datei Name mit Endung");
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 boolean settingstrue = false;
private boolean streamingSettingsTrue = false; private boolean streamingSettingsTrue = false;
private String version = "0.3.7"; private String version = "0.3.8";
private String versionName = "half glowing bucket";
private String versionURL = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/version.txt"; 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 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 dir = new File(System.getProperty("user.home") + "/Documents/HomeFlix");
@ -194,6 +194,8 @@ public class MainWindowController {
private String errorUpdateD; private String errorUpdateD;
private String errorUpdateV; private String errorUpdateV;
private String errorPlay; private String errorPlay;
private String errorOpenStream;
private String errorMode;
private String infoText; private String infoText;
private String linuxBugText; private String linuxBugText;
private String vlcNotInstalled; private String vlcNotInstalled;
@ -219,7 +221,6 @@ public class MainWindowController {
private ObservableList<streamUiData> streamData = FXCollections.observableArrayList(); private ObservableList<streamUiData> streamData = FXCollections.observableArrayList();
private ObservableList<String> locals = FXCollections.observableArrayList("english", "deutsch"); private ObservableList<String> locals = FXCollections.observableArrayList("english", "deutsch");
private ObservableList<streamUiData> streamingData = FXCollections.observableArrayList(); private ObservableList<streamUiData> streamingData = FXCollections.observableArrayList();
private Image imHF = new Image("recources/Homeflix_Poster.png");
private ImageView menu_icon_black = new ImageView(new Image("recources/menu_icon_black.png")); private ImageView menu_icon_black = new ImageView(new Image("recources/menu_icon_black.png"));
private ImageView menu_icon_white = new ImageView(new Image("recources/menu_icon_white.png")); private ImageView menu_icon_white = new ImageView(new Image("recources/menu_icon_white.png"));
private DirectoryChooser directoryChooser = new DirectoryChooser(); private DirectoryChooser directoryChooser = new DirectoryChooser();
@ -228,26 +229,24 @@ public class MainWindowController {
//wenn menubtn clicked //wenn menubtn clicked
/** /**
* TODO change value of Text-color change * TODO change value of Text-color change
* TODO animation of side menu
*/ */
@FXML @FXML
private void menubtnclicked(){ private void menubtnclicked(){
if(menutrue == false){ if(menutrue == false){
anpane.getChildren().addAll(menuBox); sideMenuSlideIn();
menutrue = true; menutrue = true;
}else{ }else{
anpane.getChildren().removeAll(menuBox); sideMenuSlideOut();
menutrue = false; menutrue = false;
} }
if(settingstrue == true){ if(settingstrue == true){
anpane.getChildren().removeAll(settingsBox); settingsAnchor.setVisible(false);
setPath(tfPfad.getText()); setPath(tfPath.getText());
saveSettings(); saveSettings();
settingstrue = false; settingstrue = false;
} }
if(streamingSettingsTrue == true){ if(streamingSettingsTrue == true){
System.out.println("close settings"); streamingSettingsAnchor.setVisible(false);
anpane.getChildren().removeAll(streamingSettingsBox);
streamingSettingsTrue = false; streamingSettingsTrue = false;
} }
} }
@ -310,13 +309,21 @@ public class MainWindowController {
} }
}else if(mode.equals("streaming")){ }else if(mode.equals("streaming")){
try { try {
Desktop.getDesktop().browse(new URI(datPath)); //TODO muss noch <20>berarbeite werden! Desktop.getDesktop().browse(new URI(datPath)); //opening streaming url in browser (other option?)
} catch (URISyntaxException | IOException e) { } catch (URISyntaxException | IOException e) {
//Auto-generated catch block Alert alert = new Alert(AlertType.ERROR);
alert.setHeaderText("");
alert.setTitle("Error");
alert.setContentText(errorOpenStream);
alert.showAndWait();
e.printStackTrace(); e.printStackTrace();
} }
}else{ }else{
System.out.println("error"); //TODO richtige fehlermeldung mode Alert alert = new Alert(AlertType.ERROR);
alert.setHeaderText("");
alert.setTitle("Error");
alert.setContentText(errorMode);
alert.showAndWait();
} }
} }
} }
@ -341,67 +348,167 @@ public class MainWindowController {
treeTableViewfilm.getSelectionModel().select(next); treeTableViewfilm.getSelectionModel().select(next);
} }
@FXML
private void infoBtnclicked(){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Info");
alert.setHeaderText("Project HomeFlix");
alert.setContentText(infoText);
alert.showAndWait();
}
@FXML
private void settingsBtnclicked(){
if(settingstrue == false){
if(streamingSettingsTrue == true){
streamingSettingsAnchor.setVisible(false);
streamingSettingsTrue = false;
}
settingsAnchor.setVisible(true);
settingstrue = true;
}else{
settingsAnchor.setVisible(false);
setPath(tfPath.getText());
saveSettings();
settingstrue = false;
}
}
/**
* TODO zus<75>tzliche infos <20>ber die dateien
*/
@FXML
private void streamingSettingsBtnclicked(){
if(streamingSettingsTrue == false){
if(settingstrue == true){
settingsAnchor.setVisible(false);
settingstrue = false;
}
streamingSettingsAnchor.setVisible(true);
streamingSettingsTrue = true;
}else{
streamingSettingsAnchor.setVisible(false);
streamingSettingsTrue = false;
}
}
@FXML
private void switchBtnclicked(){
if(mode.equals("local")){ //switch to streaming mode
setMode("streaming");
switchBtn.setText("local");
}else if(mode.equals("streaming")){ //switch to local mode
setMode("local");
switchBtn.setText("streaming");
}
saveSettings();
root.getChildren().remove(0,root.getChildren().size());
addDataUI();
settingsAnchor.setVisible(false);
streamingSettingsAnchor.setVisible(false);
sideMenuSlideOut(); //disables sidemenu
menutrue = false;
settingstrue = false;
streamingSettingsTrue = false;
}
@FXML
private void debugBtnclicked(){
//for testing
}
@FXML
private void tfPathAction(){
setPath(tfPath.getText());
saveSettings();
}
@FXML
private void directoryBtnAction(){
selectedFolder = directoryChooser.showDialog(null);
if(selectedFolder == null){
System.out.println("No Directory selected");
}else{
setPath(selectedFolder.getAbsolutePath());
saveSettings();
tfPath.setText(getPath());
try {
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //starte neu
System.exit(0); //beendet sich selbst
} catch (IOException e) {
System.out.println("es ist ein Fehler aufgetreten");
e.printStackTrace();
}
}
}
@FXML
private void mainColorAction(){
editColor(mainColor.getValue().toString());
applyColor();
}
@FXML
private void updateBtnAction(){
update();
}
@FXML
private void autoupdateBtnAction(){
if(autoUpdate.equals("0")){
setAutoUpdate("1");
}else{
setAutoUpdate("0");
}
saveSettings();
}
@FXML
private void tfStreamingPathAction(){
//
}
@FXML
private void streamingDirectoryBtnAction(){
selectedStreamingFolder = directoryChooser.showDialog(null);
if(selectedStreamingFolder == null){
System.out.println("No Directory selected");
}else{
setStreamingPath(selectedStreamingFolder.getAbsolutePath());
saveSettings();
tfStreamingPath.setText(getStreamingPath());
try {
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //starte neu
System.exit(0); //beendet sich selbst
} catch (IOException e) {
System.out.println("es ist ein Fehler aufgetreten");
e.printStackTrace();
}
}
}
//"Main" Methode die beim start von der Klasse Main aufgerufen wird, initialiesirung der einzellnen UI-Objekte //"Main" Methode die beim start von der Klasse Main aufgerufen wird, initialiesirung der einzellnen UI-Objekte
@SuppressWarnings({ "static-access"})
public void setMain(Main main) { public void setMain(Main main) {
loadSettings(); loadSettings();
// loadStreamingSettings();
initTabel(); initTabel();
initBtnAction(); initActions();
System.out.println("Mode: "+mode); System.out.println("Mode: "+mode);
infoBtn.setPrefWidth(130); debugBtn.setDisable(true); //debugging btn for tests
infoBtn.setPrefHeight(32); debugBtn.setVisible(false);
infoBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
settingsBtn.setPrefWidth(130); tfPath.setText(getPath());
settingsBtn.setPrefHeight(32);
settingsBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
streamingSettingsBtn.setPrefWidth(130);
streamingSettingsBtn.setPrefHeight(32);
streamingSettingsBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
switchBtn.setPrefWidth(130);
switchBtn.setPrefHeight(32);
switchBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
demoBtn.setPrefWidth(130);
demoBtn.setPrefHeight(32);
demoBtn.setFont(Font.font("System", FontWeight.BOLD, 15));
demoBtn.setDisable(false);
menubtn.setText("");
menubtn.setMaxSize(32, 32);
tfPfad.setPrefWidth(250);
tfPfad.setPromptText("Pfad");
tfPfad.setText(getPath());
streamingtfPfad.setPrefWidth(250);
streamingtfPfad.setPromptText("Pfad");
streamingtfPfad.setText(getStreamingPath());
sl1.setMaxWidth(250); sliderFontSize.setValue(getSize());
sl1.setMin(2);
sl1.setMax(48);
sl1.setValue(getSize());
cbLocal.setItems(locals); cbLocal.setItems(locals);
updateBtn.setFont(Font.font("System", 12)); updateBtn.setFont(Font.font("System", 12));
directoryBtn.setFont(Font.font("System", 12));
directoryBtn.setMaxSize(180, 25);
streamingDirectoryBtn.setFont(Font.font("System", 12));
streamingDirectoryBtn.setMaxSize(180, 25);
treeViewStreamingdata.setPrefHeight(533);
treeViewStreamingdata.setPrefWidth(370);
if(autoUpdate.equals("1")){ if(autoUpdate.equals("1")){
autoupdateBtn.setSelected(true); autoupdateBtn.setSelected(true);
update(); update();
@ -410,124 +517,22 @@ public class MainWindowController {
} }
versionlbl.setText("Version: "+version); versionlbl.setText("Version: "+version);
menuBox.setSpacing(2.5); //Zeilenabstand
menuBox.setPadding(new Insets(2.5,0,0,2.5)); // abstand zum Rand
menuBox.getChildren().addAll(infoBtn, settingsBtn, streamingSettingsBtn, switchBtn, demoBtn);
menuBox.setFillWidth(true);
AnchorPane.setTopAnchor(menuBox, 33d);
AnchorPane.setBottomAnchor(menuBox, 0d);
settingsBox.setStyle("-fx-background-color: #FFFFFF;");
settingsBox.getChildren().add(settingsan);
streamingSettingsBox.setStyle("-fx-background-color: #FFFFFF;");
streamingSettingsBox.getChildren().add(streamingSettingsan);
settingsan.getChildren().addAll(tfPfad, directoryBtn, mainColor, sizelbl, sl1, cbLocal, updateBtn, aulbl, autoupdateBtn, versionlbl);
settingsan.setTopAnchor(tfPfad, 5d);
settingsan.setLeftAnchor(tfPfad, 5d);
settingsan.setTopAnchor(directoryBtn, 5d);
settingsan.setLeftAnchor(directoryBtn, 260d);
settingsan.setTopAnchor(mainColor, 40d);
settingsan.setLeftAnchor(mainColor, 5d);
settingsan.setTopAnchor(sizelbl, 75d);
settingsan.setLeftAnchor(sizelbl, 5d);
settingsan.setTopAnchor(sl1, 110d);
settingsan.setLeftAnchor(sl1, 5d);
settingsan.setTopAnchor(cbLocal, 145d);
settingsan.setLeftAnchor(cbLocal, 5d);
settingsan.setTopAnchor(updateBtn, 180d);
settingsan.setLeftAnchor(updateBtn, 5d);
settingsan.setTopAnchor(aulbl, 215d);
settingsan.setLeftAnchor(aulbl, 5d);
settingsan.setTopAnchor(autoupdateBtn, 230d);
settingsan.setLeftAnchor(autoupdateBtn, 5d);
settingsan.setTopAnchor(versionlbl, 280d);
settingsan.setLeftAnchor(versionlbl, 5d);
streamingSettingsan.getChildren().addAll(streamingtfPfad, streamingDirectoryBtn,treeViewStreamingdata);
streamingSettingsan.setTopAnchor(streamingtfPfad, 5d);
streamingSettingsan.setLeftAnchor(streamingtfPfad, 5d);
streamingSettingsan.setTopAnchor(streamingDirectoryBtn, 5d);
streamingSettingsan.setLeftAnchor(streamingDirectoryBtn, 260d);
streamingSettingsan.setTopAnchor(treeViewStreamingdata, 40d);
streamingSettingsan.setLeftAnchor(treeViewStreamingdata, 5d);
streamingSettingsan.setBottomAnchor(treeViewStreamingdata, 5d);
AnchorPane.setTopAnchor(settingsBox, 34d);
AnchorPane.setRightAnchor(settingsBox, 0d);
AnchorPane.setBottomAnchor(settingsBox, 0d);
AnchorPane.setLeftAnchor(settingsBox, 130d);
AnchorPane.setTopAnchor(streamingSettingsBox, 34d);
AnchorPane.setRightAnchor(streamingSettingsBox, 0d);
AnchorPane.setBottomAnchor(streamingSettingsBox, 0d);
AnchorPane.setLeftAnchor(streamingSettingsBox, 130d);
ta1.setWrapText(true); ta1.setWrapText(true);
ta1.setEditable(false); ta1.setEditable(false);
ta1.setFont(Font.font("System", getSize())); ta1.setFont(Font.font("System", getSize()));
image1.setImage(imHF);
//TODO kann das auch raus?
tfsearch.textProperty().addListener(new ChangeListener<String>() {
@SuppressWarnings("unchecked")
@Override
public void changed(ObservableValue<? extends String> observable,String oldValue, String newValue) {
int counter = newDaten.size();
filterData.removeAll(filterData);
root.getChildren().remove(0,root.getChildren().size());
for(int i = 0; i < counter; i++){
if(newDaten.get(i).getTitel().toLowerCase().contains(tfsearch.getText().toLowerCase())){
filterData.add(newDaten.get(i));
}
}
for(int i = 0; i < filterData.size(); i++){
root.getChildren().addAll(new TreeItem<streamUiData>(filterData.get(i))); //f<>gt daten zur Rootnode hinzu
}
}
});
//TODO das auch?
cbLocal.getSelectionModel().selectedIndexProperty()
.addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> ov, Number value, Number new_value) {
setLocal(new_value.intValue());
setLoaclUI(local);
saveSettings();
}
});
} }
//initialisierung der Tabellen f<>r filme(beide Modi) und Streaming-Settings //initialisierung der Tabellen f<>r filme(beide Modi) und Streaming-Settings
@SuppressWarnings({ "unchecked", "rawtypes" }) @SuppressWarnings({ "unchecked", "rawtypes" })
private void initTabel(){ private void initTabel(){
//Filmtabelle //Filmtabelle
// root.setExpanded(true);
columnRating.setMaxWidth(120); columnRating.setMaxWidth(120);
columnTitel.setMaxWidth(240); columnTitel.setMaxWidth(240);
columnStreamUrl.setMaxWidth(0); columnStreamUrl.setMaxWidth(0);
dataNameColumn.setPrefWidth(130);
dataNameEndColumn.setPrefWidth(170);
treeTableViewfilm.setRoot(root); treeTableViewfilm.setRoot(root);
treeTableViewfilm.setColumnResizePolicy( TreeTableView.CONSTRAINED_RESIZE_POLICY ); treeTableViewfilm.setColumnResizePolicy( TreeTableView.CONSTRAINED_RESIZE_POLICY );
@ -551,8 +556,11 @@ public class MainWindowController {
columnSeason.setCellValueFactory((CellDataFeatures<streamUiData, Integer> p) -> columnSeason.setCellValueFactory((CellDataFeatures<streamUiData, Integer> p) ->
new ReadOnlyObjectWrapper(p.getValue().getValue().getSeason())); new ReadOnlyObjectWrapper(p.getValue().getValue().getSeason()));
columnEpisode.setCellValueFactory((CellDataFeatures<streamUiData, Integer> p) ->
new ReadOnlyObjectWrapper(p.getValue().getValue().getEpisode()));
treeTableViewfilm.getColumns().addAll(columnTitel, columnRating, columnStreamUrl, columnResolution, columnYear, columnSeason); treeTableViewfilm.getColumns().addAll(columnTitel, columnRating, columnStreamUrl, columnResolution, columnYear, columnSeason, columnEpisode);
treeTableViewfilm.getColumns().get(2).setVisible(false); //blendet die Column mit den Dateinamen aus (wichtig um sie abzuspielen) treeTableViewfilm.getColumns().get(2).setVisible(false); //blendet die Column mit den Dateinamen aus (wichtig um sie abzuspielen)
//Changelistener f<>r TreeTable //Changelistener f<>r TreeTable
@ -573,183 +581,58 @@ public class MainWindowController {
}); });
//Streaming-Settings Tabelle //Streaming-Settings Tabelle
dataNameColumn.setCellValueFactory(cellData -> cellData.getValue().titelProperty()); dataNameColumn.setCellValueFactory(cellData -> cellData.getValue().titelProperty());
dataNameEndColumn.setCellValueFactory(cellData -> cellData.getValue().streamUrlProperty()); dataNameEndColumn.setCellValueFactory(cellData -> cellData.getValue().streamUrlProperty());
treeViewStreamingdata.getColumns().addAll(dataNameColumn, dataNameEndColumn); tableViewStreamingdata.getColumns().addAll(dataNameColumn, dataNameEndColumn);
treeViewStreamingdata.setItems(streamingData); tableViewStreamingdata.setItems(streamingData);
} }
//initialisierung der Button Actions //initialisierung der Button Actions
private void initBtnAction(){ private void initActions(){
infoBtn.setOnAction(new EventHandler<ActionEvent>(){ //TODO unterscheiden zwischen streaming und local
@Override tfsearch.textProperty().addListener(new ChangeListener<String>() {
public void handle(ActionEvent event) { @SuppressWarnings("unchecked")
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Info");
alert.setHeaderText("Project HomeFlix");
alert.setContentText(infoText);
alert.showAndWait();
}
});
//setteingsbtn clicked, deklarieren der actions der Objekte die bei settingsbtn angezeigt werden
settingsBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override @Override
public void handle(ActionEvent event){ public void changed(ObservableValue<? extends String> observable,String oldValue, String newValue) {
if(settingstrue == false){ int counter = newDaten.size();
anpane.getChildren().addAll(settingsBox); filterData.removeAll(filterData);
root.getChildren().remove(0,root.getChildren().size());
tfPfad.setOnAction(new EventHandler<ActionEvent>(){
@Override for(int i = 0; i < counter; i++){
public void handle(ActionEvent event){ if(newDaten.get(i).getTitel().toLowerCase().contains(tfsearch.getText().toLowerCase())){
setPath(tfPfad.getText()); filterData.add(newDaten.get(i));
saveSettings(); }
} }
});
directoryBtn.setOnAction(new EventHandler<ActionEvent>() { for(int i = 0; i < filterData.size(); i++){
@Override root.getChildren().addAll(new TreeItem<streamUiData>(filterData.get(i))); //f<>gt daten zur Rootnode hinzu
public void handle(ActionEvent event){ }
selectedFolder = directoryChooser.showDialog(null); }
if(selectedFolder == null){ });
System.out.println("No Directory selected");
}else{ cbLocal.getSelectionModel().selectedIndexProperty()
setPath(selectedFolder.getAbsolutePath()); .addListener(new ChangeListener<Number>() {
saveSettings(); public void changed(ObservableValue<? extends Number> ov, Number value, Number new_value) {
tfPfad.setText(getPath()); setLocal(new_value.intValue());
try { setLoaclUI(local);
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //starte neu saveSettings();
System.exit(0); //beendet sich selbst }
} catch (IOException e) { });
System.out.println("es ist ein Fehler aufgetreten");
e.printStackTrace(); sliderFontSize.valueProperty().addListener(new ChangeListener<Number>() {
} @Override
} public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {
} setSize(sliderFontSize.getValue());
}); ta1.setFont(Font.font("System", size));
mainColor.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
editColor(mainColor.getValue().toString());
applyColor();
}
});
sl1.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {
setSize(sl1.getValue());
ta1.setFont(Font.font("System", size));
saveSettings();
}
});
//updater
updateBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event){
update();
}
});
autoupdateBtn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
if(autoUpdate.equals("0")){
setAutoUpdate("1");
saveSettings();
}else{
setAutoUpdate("0");
saveSettings();
}
}
});
settingstrue = true;
}else{
anpane.getChildren().removeAll(settingsBox);
setPath(tfPfad.getText());
saveSettings();
settingstrue = false;
}
}
});
//demoBtn clicked debbuging
demoBtn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
/**
* TODO DBController
*/
// loadData();
}
});
streamingSettingsBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event){
if(streamingSettingsTrue == false){
anpane.getChildren().addAll(streamingSettingsBox);
streamingDirectoryBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
selectedStreamingFolder = directoryChooser.showDialog(null);
if(selectedStreamingFolder == null){
System.out.println("No Directory selected");
}else{
setStreamingPath(selectedStreamingFolder.getAbsolutePath());
saveSettings();
streamingtfPfad.setText(getStreamingPath());
try {
Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //starte neu
System.exit(0); //beendet sich selbst
} catch (IOException e) {
System.out.println("es ist ein Fehler aufgetreten");
e.printStackTrace();
}
}
}
});;
streamingSettingsTrue = true;
}else{
anpane.getChildren().removeAll(streamingSettingsBox);
streamingSettingsTrue = false;
}
}
});
/**
* TODO menu wieder verschwinden lassen
* TODO Banner zur<75>ck auf homeflix setzen
*/
switchBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if(mode.equals("local")){ //switch to streaming mode
setMode("streaming");
switchBtn.setText("local");
}else if(mode.equals("streaming")){ //switch to local mode
setMode("local");
switchBtn.setText("streaming");
}
saveSettings(); saveSettings();
root.getChildren().remove(0,root.getChildren().size()); }
addDataUI(); });
}
});
} }
//pr<70>ft auf Update und f<>rht es gegebenenfalls aus //pr<70>ft auf Update und f<>rht es gegebenenfalls aus
private void update(){ private void update(){
System.out.println("check for updates ..."); System.out.println("check for updates ...");
try { try {
URL url = new URL(versionURL); //URL der Datei mit aktueller Versionsnummer URL url = new URL(versionURL); //URL der Datei mit aktueller Versionsnummer
@ -811,7 +694,7 @@ public class MainWindowController {
for(int i = 0; i < entries.length; i++){ for(int i = 0; i < entries.length; i++){
String titel = ohneEndung(entries[i]); String titel = ohneEndung(entries[i]);
String data = entries[i]; String data = entries[i];
newDaten.add(new streamUiData(1, 1, 5.0, "1", titel, data)); newDaten.add(new streamUiData(1, 1, 1, 5.0, "1", titel, data));
} }
} }
@ -820,6 +703,7 @@ public class MainWindowController {
String resolution = null; String resolution = null;
String streamUrl = null; String streamUrl = null;
int season; int season;
int episode;
int year; int year;
double rating = 5.0; double rating = 5.0;
if(getStreamingPath().equals("")||getStreamingPath().equals(null)){ if(getStreamingPath().equals("")||getStreamingPath().equals(null)){
@ -834,10 +718,11 @@ public class MainWindowController {
for (JsonValue item : items) { for (JsonValue item : items) {
titel = item.asObject().getString("titel",""); titel = item.asObject().getString("titel","");
season = item.asObject().getInt("season", 0); season = item.asObject().getInt("season", 0);
episode = item.asObject().getInt("episode", 0);
year = item.asObject().getInt("year", 0); year = item.asObject().getInt("year", 0);
resolution = item.asObject().getString("resolution", ""); resolution = item.asObject().getString("resolution", "");
streamUrl = item.asObject().getString("streamUrl", ""); streamUrl = item.asObject().getString("streamUrl", "");
streamData.add(new streamUiData(year, season, rating, resolution, titel, streamUrl)); streamData.add(new streamUiData(year, season, episode, rating, resolution, titel, streamUrl));
} }
} catch (IOException e) { } catch (IOException e) {
@ -846,13 +731,6 @@ public class MainWindowController {
} }
} }
} }
// }else{
// Alert alert = new Alert(AlertType.ERROR);
// alert.setHeaderText("");
// alert.setTitle("Error");
// alert.setContentText("Oh, something went wrong! It seems someone has used a wrong mode. Please contact the maintainer!");
// alert.showAndWait();
// }
} }
public void addDataUI(){ public void addDataUI(){
@ -865,6 +743,7 @@ public class MainWindowController {
treeTableViewfilm.getColumns().get(3).setVisible(false); treeTableViewfilm.getColumns().get(3).setVisible(false);
treeTableViewfilm.getColumns().get(4).setVisible(false); treeTableViewfilm.getColumns().get(4).setVisible(false);
treeTableViewfilm.getColumns().get(5).setVisible(false); treeTableViewfilm.getColumns().get(5).setVisible(false);
treeTableViewfilm.getColumns().get(6).setVisible(false);
}else if(mode.equals("streaming")){ }else if(mode.equals("streaming")){
for(int i = 0; i < streamData.size(); i++){ for(int i = 0; i < streamData.size(); i++){
root.getChildren().add(new TreeItem<streamUiData>(streamData.get(i))); //f<>gt daten zur Rootnode hinzu root.getChildren().add(new TreeItem<streamUiData>(streamData.get(i))); //f<>gt daten zur Rootnode hinzu
@ -874,9 +753,11 @@ public class MainWindowController {
columnRating.setMaxWidth(52.5); columnRating.setMaxWidth(52.5);
columnYear.setMaxWidth(40); columnYear.setMaxWidth(40);
columnSeason.setMaxWidth(52.5); columnSeason.setMaxWidth(52.5);
columnEpisode.setMaxWidth(0); //disabled for ui size reasons
treeTableViewfilm.getColumns().get(3).setVisible(true); treeTableViewfilm.getColumns().get(3).setVisible(true);
treeTableViewfilm.getColumns().get(4).setVisible(true); treeTableViewfilm.getColumns().get(4).setVisible(true);
treeTableViewfilm.getColumns().get(5).setVisible(true); treeTableViewfilm.getColumns().get(5).setVisible(true);
treeTableViewfilm.getColumns().get(6).setVisible(true);
} }
} }
@ -889,7 +770,7 @@ public class MainWindowController {
if(entries[i].endsWith(".json")){ if(entries[i].endsWith(".json")){
String titel = ohneEndung(entries[i]); String titel = ohneEndung(entries[i]);
String data = entries[i]; String data = entries[i];
streamingData.add(new streamUiData(1,1,5.0,"1",titel ,data)); streamingData.add(new streamUiData(1,1,1,5.0,"1",titel ,data));
} }
} }
for(int i = 0; i < streamingData.size(); i++){ for(int i = 0; i < streamingData.size(); i++){
@ -913,17 +794,17 @@ public class MainWindowController {
BigInteger icolor = new BigInteger(getColor(),16); BigInteger icolor = new BigInteger(getColor(),16);
BigInteger ccolor = new BigInteger("78909cff",16); BigInteger ccolor = new BigInteger("78909cff",16);
menuBox.setStyle(style); sideMenuVBox.setStyle(style);
topVBox.setStyle(style); topHBox.setStyle(style);
tfsearch.setFocusColor(Color.valueOf(getColor())); tfsearch.setFocusColor(Color.valueOf(getColor()));
tfPfad.setFocusColor(Color.valueOf(getColor())); tfPath.setFocusColor(Color.valueOf(getColor()));
if(icolor.compareTo(ccolor) == -1){ if(icolor.compareTo(ccolor) == -1){
settingsBtn.setStyle("-fx-text-fill: WHITE;"); settingsBtn.setStyle("-fx-text-fill: WHITE;");
streamingSettingsBtn.setStyle("-fx-text-fill: WHITE;"); streamingSettingsBtn.setStyle("-fx-text-fill: WHITE;");
switchBtn.setStyle("-fx-text-fill: WHITE;"); switchBtn.setStyle("-fx-text-fill: WHITE;");
infoBtn.setStyle("-fx-text-fill: WHITE;"); infoBtn.setStyle("-fx-text-fill: WHITE;");
demoBtn.setStyle("-fx-text-fill: WHITE;"); debugBtn.setStyle("-fx-text-fill: WHITE;");
directoryBtn.setStyle(btnStylewhite); directoryBtn.setStyle(btnStylewhite);
streamingDirectoryBtn.setStyle(btnStyle); streamingDirectoryBtn.setStyle(btnStyle);
updateBtn.setStyle(btnStylewhite); updateBtn.setStyle(btnStylewhite);
@ -937,7 +818,7 @@ public class MainWindowController {
streamingSettingsBtn.setStyle("-fx-text-fill: BLACK;"); streamingSettingsBtn.setStyle("-fx-text-fill: BLACK;");
switchBtn.setStyle("-fx-text-fill: BLACK;"); switchBtn.setStyle("-fx-text-fill: BLACK;");
infoBtn.setStyle("-fx-text-fill: BLACK;"); infoBtn.setStyle("-fx-text-fill: BLACK;");
demoBtn.setStyle("-fx-text-fill: BLACK;"); debugBtn.setStyle("-fx-text-fill: BLACK;");
directoryBtn.setStyle(btnStyle); directoryBtn.setStyle(btnStyle);
streamingDirectoryBtn.setStyle(btnStyle); streamingDirectoryBtn.setStyle(btnStyle);
updateBtn.setStyle(btnStyle); updateBtn.setStyle(btnStyle);
@ -950,13 +831,43 @@ public class MainWindowController {
//das solte weg kann aber hier bleiben wicht ist dass es zum selben zeitpunkt wie aply color ausgef<65>hrt wird //das solte weg kann aber hier bleiben wicht ist dass es zum selben zeitpunkt wie aply color ausgef<65>hrt wird
if(mode.equals("local")){ if(mode.equals("local")){
switchBtn.setText("streaming"); switchBtn.setText("streaming"); //TODO translate
}else if(mode.equals("streaming")){ }else if(mode.equals("streaming")){
switchBtn.setText("local"); switchBtn.setText("local");
} }
} }
private void sideMenuSlideIn(){
sideMenuVBox.setVisible(true);
//einblenden von 40% nach 100% deckkraft in 400ms
FadeTransition fadeTransition = new FadeTransition(Duration.millis(400), sideMenuVBox);
fadeTransition.setFromValue(0.4);
fadeTransition.setToValue(1.0);
//einfahren des side munes in 400ms
TranslateTransition translateTransition = new TranslateTransition(Duration.millis(400), sideMenuVBox);
translateTransition.setFromX(-150);
translateTransition.setToX(0);
//falls beides verwendet werden soll
ParallelTransition parallelTransition = new ParallelTransition();
parallelTransition.getChildren().addAll(translateTransition);//(fadeTransition, translateTransition);
parallelTransition.play();
}
private void sideMenuSlideOut(){
// sideMenuVBox.setVisible(false);
//ausblenden von 100% nach 40% deckkraft in 400ms
FadeTransition fadeTransition = new FadeTransition(Duration.millis(400), sideMenuVBox);
fadeTransition.setFromValue(1.0);
fadeTransition.setToValue(0.4);
//ausfahren des side munes in 400ms
TranslateTransition translateTransition = new TranslateTransition(Duration.millis(400), sideMenuVBox);
translateTransition.setFromX(0);
translateTransition.setToX(-150);
//falls beides verwendet werden soll
ParallelTransition parallelTransition = new ParallelTransition();
parallelTransition.getChildren().addAll(translateTransition);//(fadeTransition, translateTransition);
parallelTransition.play();
}
public void setLoaclUI(int local){ public void setLoaclUI(int local){
switch(local){ switch(local){
@ -967,23 +878,32 @@ public class MainWindowController {
default:bundle = ResourceBundle.getBundle("recources.HomeFlix-Local", Locale.US); //default local default:bundle = ResourceBundle.getBundle("recources.HomeFlix-Local", Locale.US); //default local
break; break;
} }
settingsBtn.setText(bundle.getString("settings"));
infoBtn.setText(bundle.getString("info")); infoBtn.setText(bundle.getString("info"));
settingsBtn.setText(bundle.getString("settings"));
streamingSettingsBtn.setText(bundle.getString("streamingSettings"));
playbtn.setText(bundle.getString("play")); playbtn.setText(bundle.getString("play"));
tfPath.setPromptText(bundle.getString("tfPath"));
tfStreamingPath.setPromptText(bundle.getString("tfPath"));
openfolderbtn.setText(bundle.getString("openFolder")); openfolderbtn.setText(bundle.getString("openFolder"));
updateBtn.setText(bundle.getString("checkUpdates")); updateBtn.setText(bundle.getString("checkUpdates"));
directoryBtn.setText(bundle.getString("chooseFolder")); directoryBtn.setText(bundle.getString("chooseFolder"));
streamingDirectoryBtn.setText(bundle.getString("chooseFolder"));
sizelbl.setText(bundle.getString("fontSize")); sizelbl.setText(bundle.getString("fontSize"));
aulbl.setText(bundle.getString("autoUpdate")); aulbl.setText(bundle.getString("autoUpdate"));
versionlbl.setText(bundle.getString("version")+" "+version); versionlbl.setText(bundle.getString("version")+" "+version);
columnTitel.setText(bundle.getString("columnName")); columnTitel.setText(bundle.getString("columnName"));
columnRating.setText(bundle.getString("columnRating")); columnRating.setText(bundle.getString("columnRating"));
columnStreamUrl.setText(bundle.getString("columnDatName")); columnStreamUrl.setText(bundle.getString("columnStreamUrl"));
columnResolution.setText(bundle.getString("columnResolution"));
columnSeason.setText(bundle.getString("columnSeason"));
columnYear.setText(bundle.getString("columnYear"));
errorUpdateD = bundle.getString("errorUpdateD"); errorUpdateD = bundle.getString("errorUpdateD");
errorUpdateV = bundle.getString("errorUpdateV"); errorUpdateV = bundle.getString("errorUpdateV");
infoText = bundle.getString("version")+" "+version+" plasma bucket"+bundle.getString("infoText");
linuxBugText = bundle.getString("linuxBug");
errorPlay = bundle.getString("errorPlay"); errorPlay = bundle.getString("errorPlay");
errorOpenStream = bundle.getString("errorOpenStream");
errorMode = bundle.getString("errorMode");
infoText = bundle.getString("version")+" "+version+" "+versionName+bundle.getString("infoText");
linuxBugText = bundle.getString("linuxBug");
vlcNotInstalled = bundle.getString("vlcNotInstalled"); vlcNotInstalled = bundle.getString("vlcNotInstalled");
} }
@ -1163,7 +1083,7 @@ public class MainWindowController {
ta1.appendText("Titel: "+titel+"\n"); ta1.appendText("Titel: "+titel+"\n");
ta1.appendText("Jahr: "+ year+"\n"); ta1.appendText("Jahr: "+ year+"\n");
ta1.appendText("Einstufung: "+rated+"\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("Laufzeit: "+runtime+"\n");
ta1.appendText("Genre: "+genre+"\n"); ta1.appendText("Genre: "+genre+"\n");
ta1.appendText("Regisseur: "+director+"\n"); ta1.appendText("Regisseur: "+director+"\n");

View File

@ -11,15 +11,17 @@ public class streamUiData {
private IntegerProperty year = new SimpleIntegerProperty(); private IntegerProperty year = new SimpleIntegerProperty();
private IntegerProperty season = new SimpleIntegerProperty(); private IntegerProperty season = new SimpleIntegerProperty();
private IntegerProperty episode = new SimpleIntegerProperty();
private DoubleProperty rating = new SimpleDoubleProperty(); private DoubleProperty rating = new SimpleDoubleProperty();
private StringProperty resolution = new SimpleStringProperty(); private StringProperty resolution = new SimpleStringProperty();
private StringProperty titel = new SimpleStringProperty(); private StringProperty titel = new SimpleStringProperty();
private StringProperty streamUrl = new SimpleStringProperty(); private StringProperty streamUrl = new SimpleStringProperty();
//uiData ist der Typ der Daten in der TreeTabelView //uiData ist der Typ der Daten in der TreeTabelView
public streamUiData (final int year, final int season, final double rating, final String resolution, final String titel, final String streamUrl) { public streamUiData (final int year, final int season, final int episode, final double rating, final String resolution, final String titel, final String streamUrl) {
this.year.set(year); this.year.set(year);
this.season.set(season); this.season.set(season);
this.episode.set(episode);
this.rating.set(rating); this.rating.set(rating);
this.resolution.set(resolution); this.resolution.set(resolution);
this.titel.set(titel); this.titel.set(titel);
@ -34,6 +36,10 @@ public class streamUiData {
return season.get(); return season.get();
} }
public int getEpisode() {
return episode.get();
}
public double getRating() { public double getRating() {
return rating.get(); return rating.get();
} }
@ -59,6 +65,10 @@ public class streamUiData {
this.season.set(season); this.season.set(season);
} }
public void setEpisode(int season) {
this.episode.set(season);
}
public void setRating(int rating) { public void setRating(int rating) {
this.rating.set(rating); this.rating.set(rating);
} }
@ -83,6 +93,10 @@ public class streamUiData {
return season; return season;
} }
public IntegerProperty episodeProperty(){
return episode;
}
public DoubleProperty ratingProperty(){ public DoubleProperty ratingProperty(){
return rating; return rating;
} }

View File

@ -1,7 +1,9 @@
# HomeFlix-Local_de_DE.properties German Local # HomeFlix-Local_de_DE.properties German Local
info = Info info = Info
settings = Einstellungen settings = Einstellungen
streamingSettings = Stream Einst.
play = play play = play
tfPath = Pfad...
openFolder = Ordner \u00F6ffnen openFolder = Ordner \u00F6ffnen
chooseFolder = Ordner ausw\u00E4hlen chooseFolder = Ordner ausw\u00E4hlen
fontSize = Schriftgr\u00F6\u00DFe: fontSize = Schriftgr\u00F6\u00DFe:
@ -10,10 +12,15 @@ autoUpdate = beim Start nach Updates suchen:
version = Version: version = Version:
columnName = Name columnName = Name
columnRating = Bewertung columnRating = Bewertung
columnDatName = Datei Name columnStreamUrl = Datei Name
columnResolution = Aufl\u00F6sung
columnSeason = Staffel
columnYear = Jahr
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 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 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
errorPlay = Beim \u00F6ffnen der Datei ist ein Fehler aufgetreten! \nError: could not open file (nof) \nWeitere Hilfe erhalten sie unter www.kellerkinder.xyz \noder wenden sie sich an support@kellerkinder.xyz errorPlay = Beim \u00F6ffnen der Datei ist ein Fehler aufgetreten! \nError: could not open file (nof) \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!
linuxBug = Zurzeit werden unter Linux leider keine Dateien mit Leerzeichen unterst\u00FCtzt! linuxBug = Zurzeit werden unter Linux leider keine Dateien mit Leerzeichen unterst\u00FCtzt!
vlcNotInstalled = Um einen Film abspielen wird der VLC Media Player ben\u00F6tigt! vlcNotInstalled = Um einen Film abspielen wird der VLC Media Player ben\u00F6tigt!
infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz infoText = \nMaintainer: seilo@kellerkinder.xyz und \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

View File

@ -1,7 +1,9 @@
# HomeFlix-Local_en_US.properties US-English Local and default # HomeFlix-Local_en_US.properties US-English Local and default
info = Info info = Info
settings = Settings settings = Settings
streamingSettings = Stream Settings
play = play play = play
tfPath = Path...
openFolder = open Folder openFolder = open Folder
chooseFolder = choose Directory chooseFolder = choose Directory
fontSize = font size: fontSize = font size:
@ -10,10 +12,15 @@ autoUpdate = check at startup for updates:
version = Version: version = Version:
columnName = Name columnName = Name
columnRating = Rating columnRating = Rating
columnDatName = File Name columnStreamUrl = File Name
columnResolution = Resolution
columnSeason = Season
columnYear = Year
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 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 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
errorPlay = An error has occurred during opening the file! \nError: could not open file (nof) \nTo get help, visit www.kellerkinder.xyz \nor contcat support@kellerkinder.xyz errorPlay = An error has occurred during opening the file! \nError: could not open file (nof) \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!
linuxBug = Currently no files are supported with additional space under Linux unfortunately! linuxBug = Currently no files are supported with additional space under Linux unfortunately!
vlcNotInstalled = VLC Media Player is required to play a movie! vlcNotInstalled = VLC Media Player is required to play a movie!
infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz infoText = \nMaintainer: seilo@kellerkinder.xyz and \nhendrik.schutter@coptersicht.de \n(c) 2016 Kellerkinder www.kellerkinder.xyz

Binary file not shown.

View File

@ -1 +1 @@
0.3.7 0.3.8