Compare commits

...

134 Commits
141 ... master

Author SHA1 Message Date
3805e6563d Merge branch 'dev' of Seil0/Project-HomeFlix into master 2019-07-04 12:41:05 +02:00
ae20909012
update version to 0.8.0 2019-07-04 12:39:19 +02:00
75a80535a7
reworked the UpdateController 2019-06-27 13:30:44 +02:00
d8062513e9
fixed animation coordinates for 9f8a7c0f4c 2019-06-23 15:26:05 +02:00
9f8a7c0f4c
fixed scrollpane jumping to the top after returning from detailview
* use plot=full to get a better description
2019-06-23 15:23:03 +02:00
5488bece2d
minor bugfixes and clean up
* fixed a bug that prevented posters from showing at the first start
* added the ability to start a series from the last watched episode
2019-06-22 21:04:43 +02:00
9af3ad26bd
implemented settings as nested conroller 2019-06-21 21:16:53 +02:00
989281ff8d
added SettingsView 2019-06-21 17:50:56 +02:00
e84e7f9d20
removed all table-mode stuff, minor ui tweaks
* changed all icons to 48dp
* the choisBox in SeriesView is now readable
2019-06-19 16:31:49 +02:00
c38be08905
some css style improvements 2019-06-19 16:00:37 +02:00
512b715c1a
first working version of the PosterMode, enabled by default 2019-06-18 01:25:46 +02:00
693650fece
added first layout for SeriesDetailView 2019-06-17 00:44:44 +02:00
656c22d48a
added FilmDetailView
* implemented the PosterMode basics
* added some new 48dp icons
2019-06-16 21:44:42 +02:00
2bbbfff532
more FilmDeatilView work 2019-06-16 15:23:17 +02:00
f23e6c77ea
added a sample nested controller 2019-06-16 13:00:29 +02:00
bb8bcd460a
PosterMode now has posters, UI optimizations
* the settings page is now re-sizable
* the postermode now shows actual posters
* the series root- folder is now treated as root node
2019-06-15 18:44:35 +02:00
4d503546ff
bug fixes
* fixed loading cache only after restart
* fixed loading cache for rootNodes
* fixed default image if api doesn't have a poster
* updated JFoenix 9.0.8 -> 9.0.9
2019-06-15 12:09:31 +02:00
4ff8b7819f
Use a FlowPane fot the PosterMode 2019-06-15 11:09:59 +02:00
7dbe0d46d8
some clean up and first bits for poster mode GUI logic 2019-05-15 17:14:15 +02:00
ea9e740552
minor clean up 2019-05-06 17:26:19 +02:00
fdb39ea2f5
fixed missing elements when searching
* minor clean up
2019-05-06 00:50:27 +02:00
46cd28a642 updated to javafx 12 2019-04-01 11:16:58 +02:00
3381047e76 updated javafx to 11.0.2 2019-03-11 18:38:56 +01:00
0786770e97 added a comment 2019-03-01 19:00:04 +01:00
e47f3ea2f7 minor bug fixes 2019-01-22 18:12:30 +01:00
c735583a04 cache is now date based, minor clean up 2019-01-22 17:29:56 +01:00
5600456556 fixed open folder btn when using Linux, more clean up 2019-01-14 20:45:49 +01:00
cc05600e0a removed all mwc usage in DBController 2019-01-14 18:44:36 +01:00
291f183f5e removed more mwc dependencies & code clean up 2019-01-12 23:07:25 +01:00
a80e077d47 code clean up and removed some unneeded mwc uses in DBController 2019-01-09 22:36:50 +01:00
3e80354d88 don't use mains primarystage, disabled column resizeing 2019-01-08 19:02:00 +01:00
d3d22db7a8 moved static vars and save & load code to XMLController
* moved static vars and save & load code to XMLController
* code clean up
* happy new year
2019-01-08 17:10:33 +01:00
060527ae03 removed travis.yml 2019-01-04 23:35:42 +01:00
2daeb86d67 updated readme 2019-01-03 01:54:52 +01:00
29c6b30168 small omdbAPI query fixes 2018-12-20 13:47:32 +01:00
1d06aaeaa2 clean up 2018-12-08 23:44:17 +01:00
a677abc15c added a "next episode" button to the player 2018-12-08 22:48:13 +01:00
c3a148b267 reworked the DBController
* some tasks are now done at the SourcesController
* use PrepareStatement
* generall clean up
2018-12-04 22:31:11 +01:00
6585908717 minor gui fixes 2018-12-03 00:16:20 +01:00
201109e79d updated jfoenix 9.0.6 -> 9.0.8 2018-11-30 23:23:46 +01:00
f1ccb04f9e „README.md“ ändern 2018-11-19 22:57:42 +01:00
9f8c19ab8e fixed issue #6 2018-11-19 22:49:09 +01:00
079f15cd59 player fixes & lib updates
* openjfx 11 -> 11.0.1
* sqlite-jdbc 3.23.1 -> 3.25.2
* fixed build in player not  working
2018-11-17 13:02:41 +01:00
0d9ffb36e5 Merge remote-tracking branch 'origin/dev' into dev 2018-11-16 17:39:43 +01:00
5e89faff49 use gitea instead of github
* use gitea instead of github
* use prepareStatement instead of statement
2018-11-16 17:39:38 +01:00
fed25f2fce „README.md“ ändern 2018-11-07 16:35:27 +01:00
0cf02c52a6 updated gitignore 2018-10-25 16:33:35 +02:00
b8a67fbc27 removed eclipse specific files 2018-10-25 16:32:33 +02:00
5a3b647060 „.project“ löschen 2018-10-25 10:08:23 +02:00
ffe068e1b0 „.classpath“ löschen 2018-10-25 10:08:14 +02:00
4d31e53a7c updated gitignore to ignore eclipse files 2018-10-25 10:07:57 +02:00
2e86836041 small code cleanup 2018-10-13 00:32:29 +02:00
a23b87fcb8 fixed first startup issue 2018-10-11 12:29:26 +02:00
a1319382ff removed the usage of mwc in omdbAPIQuery 2018-10-01 21:12:53 +02:00
a491937b30 Merge branch 'java11' of Seil0/Project-HomeFlix into dev 2018-10-01 20:26:28 +02:00
e6ce1dc464 fixed javafx11 executable jar
* added a workaround for the javafx 11 executable jar, this should be removed as soon as the new packager is available
2018-10-01 18:17:24 +02:00
abbb272bff fixed java11 execution
* use mvn compile exec:java for now to run HomeFlix
* compilation is not possible yet
* see #4
2018-09-23 14:33:16 +02:00
96bfc461cb formation fixes 2018-09-21 19:50:43 +02:00
32fc533c00 fixed junit 2018-09-21 18:57:39 +02:00
76bb0fa8b1 prepare java11
* this is not working with java11 yet
2018-09-21 18:43:29 +02:00
8f6832c147 updated some libraries
* jfoenix 9.0.5 -> 9.0.6
* log4j 2.11.0 -> 2.11.1
* maven-compiler-plugin 3.7.0 -> 3.8.0
2018-09-08 13:16:43 +02:00
fe1dc01605 code cleanup 2018-08-13 23:59:02 +02:00
Jannik
814bb00158 added getAllNotCachedEntries()
* added a method to get all not cached entries from the films db
2018-08-13 23:56:16 +02:00
Jannik
f68b0c0feb code clean up 2018-07-24 14:14:34 +02:00
Jannik
d16e724cce documentation improvements 2018-07-22 23:30:52 +02:00
23ac33ca9b 'README.md' ändern 2018-06-18 22:56:40 +02:00
67142662d8 'README.md' ändern 2018-06-13 18:38:58 +02:00
Jannik
b603051c59 typo 2018-06-13 13:50:21 +02:00
Jannik
3b188904f6 nothing to see here 2018-06-12 15:47:22 +02:00
Jannik
50ae1747e6 update sqlite-jdbc 3.21.0.1 -> 3.23.1 2018-06-06 17:54:52 +02:00
Jannik
b1f9a6c505 java 9/10 2018-05-30 19:40:04 +02:00
Jannik
4b1b20f814 build against java 9/10/11 2018-05-30 19:37:39 +02:00
Jannik
95d29d772c try openjdk build too 2018-05-30 19:32:24 +02:00
Jannik
3840e31849 try to build with java 10 again 2018-05-30 19:28:03 +02:00
Jannik
031046643c save&load are now in the main class 2018-05-17 18:58:54 +02:00
Jannik
1fca1c551d more code cleanup 2018-05-16 23:05:59 +02:00
Jannik
036ed8ad11 DBController cleanup 2018-05-16 23:02:07 +02:00
Jannik
26f26ec9f8 target java 9 until travis offers jdk10 2018-05-16 15:12:18 +02:00
Jannik
e1ec3cae7e travis oraclejdk9 & openjdk8 2018-05-16 15:08:46 +02:00
Jannik
311577fe7c openjdk9 2018-05-16 15:04:10 +02:00
Jannik
9577508311 openjdk10 2018-05-16 15:02:33 +02:00
Jannik
d7ed7c7b21 target java 10 2018-05-16 14:57:55 +02:00
Jannik
1e0ab2b943 code cleanup 2018-05-09 22:55:32 +02:00
Jannik
46efa77fce omdb fixes
* if there is no episode for a series in the omdb, use the regular series description
* show episode and season only if needed
2018-05-09 22:40:14 +02:00
Jannik
402a004ef6 jfoenix 9.0.3 -> 9.0.4 2018-05-04 18:53:51 +02:00
Jannik
48b9c99baa more TODO 2018-04-29 14:28:12 +02:00
Jannik
74e8783082 HomeFLix now shows the plot for each episode of a series
* added episode plot support
* fixed omdb api search not working correctly
2018-04-29 14:21:19 +02:00
Jannik
391ef59f70 code cleanup 2018-04-28 18:02:02 +02:00
Jannik
85a403a834 fixed Hamburger icon has wrong color after color change 2018-04-28 12:53:44 +02:00
Jannik
46c1c43cab
Update README.md 2018-04-27 17:47:01 +02:00
Jannik
d7e9ce56c1 Merge remote-tracking branch 'origin/dev' into dev 2018-04-27 17:44:40 +02:00
Jannik
d70ad34df4 added travis 2018-04-27 17:44:31 +02:00
Jannik
d609715771
Merge pull request #25 from Seil0/master
rebase dev
2018-04-27 15:13:23 +02:00
Jannik
53f68c9a69
Merge pull request #24 from Seil0/dev
"toothless dragon" 0.7.0
2018-04-27 15:10:09 +02:00
Jannik
535efd98ee release 0.7.0
* version 0.6.100 -> 0.7.0
* fixed a nullpointer if there is a false response from omdbapi
2018-04-27 15:06:40 +02:00
Jannik
9a4eae0be9 autoplay fixes
* HomeFlix should atoplay the next episode evene the jump between episodes or seasons is greater than 1
* if a movie is not found at the omdb we are searching for it, this shoul work for the most movies
2018-04-26 15:13:15 +02:00
Jannik
23e46b7913 cleanup
* onlay add files with mime type == video
2018-04-19 12:13:18 +02:00
Jannik
d3ea1b1956 fixed api arror if title dosent exist at omdbAPI 2018-04-19 11:45:11 +02:00
Jannik
75ad137346 minor player improvements 2018-04-18 21:04:14 +02:00
Jannik
7631169d26
Update README.md 2018-04-18 14:00:36 +02:00
Jannik
0c1b21ac05 series work
if there is more than one season of a series homeflix should manage that too
2018-04-15 21:30:26 +02:00
Jannik
94e32b938a saving the progress you mad on series by now
* added a function to save the progress you made watching a series
* fixed a bug where refreshing the data element didn't work
* added a searchCache methode to search if a film has been added to cach but the chace flag hasn't been set
2018-04-14 16:14:10 +02:00
Jannik
913513a237 series work 2018-04-13 11:11:25 +02:00
Jannik
2c1ce23315 maven cleanup 2018-04-08 22:06:39 +02:00
Jannik
e3feebcbb4 UpdateController update 2018-04-08 13:31:27 +02:00
Jannik
e12da3d116 code cleanup & processbuilder
* use a processBuilder to start the new application after updating
2018-04-08 13:30:55 +02:00
Jannik
78fa84758d cleanup 2018-04-08 13:23:47 +02:00
Jannik
96e3d9e3ac code cleanup 2018-04-08 13:22:20 +02:00
Jannik
4b5c9482c8 code cleanup 2018-04-07 17:26:56 +02:00
Jannik
ffa7de49dd added autoplay option
* added a toggle button to enable autoplay
* the table, text area and imageview are now on a separate anchorpane "TableModel"
2018-04-07 17:14:35 +02:00
Jannik
87b3eae9fb set time to hide controlls to 1 second 2018-04-07 14:11:51 +02:00
Jannik
ee3ec73a63 fixed series are expanded when sorting
* fixed series are expanded when sorting
* fixed null pointer exception when sorting
2018-04-07 12:49:00 +02:00
Jannik
3afc836df7 code cleanup 2018-04-06 20:33:56 +02:00
Jannik
d6554b9acd minor player fixes and no more other files than videos in the db
* fixed episode = ""resulting in many exceptons
* only add video files to the database (and GUI)
* check the videos mimetype to decide which player is used
2018-04-05 12:09:39 +02:00
Jannik
2c3e9fd5e7 autoplay fixes 2018-04-03 18:23:54 +02:00
Jannik
0379de6179 fixed time slider and autoplay
* fixed a bug that made it impossible to go further back than the start time
* fixed autoplay
* fixed wrong icon on playBtn at the start of the player
* fixed slider position at start of the player
2018-04-03 18:03:43 +02:00
Jannik
5e4373d70d documentation work
* added a lot of documentation to the code
* log4j 2.10 -> 2.11
2018-04-02 18:29:59 +02:00
Jannik
a918b0b1d8 new player part 2
* homeflix now saves the progress you made for all films
* added icons for the player
* added a slider to set the play time for the player
* disable contols and cursor if mous is not moved for 5sec, enable it if moved
* autoplay, WIP needs testing
2018-04-02 02:18:43 +02:00
Jannik
2881c1f9d6 added first version of the new player
* added a javafx mediaplayer based player
2018-04-01 23:24:49 +02:00
Jannik
2d0d138c08 cleanup 2018-03-29 18:22:14 +02:00
Jannik
22df604093 use alerts instead of dialogs
* the first start alert is now material styled
* the info dialog is now a alert
2018-03-29 18:15:57 +02:00
Jannik
34371bb2b5 added info alert 2018-03-29 12:27:44 +02:00
Jannik
8ec7653a5e added to option to select a local or streaming source at the first start 2018-03-29 11:26:20 +02:00
Jannik
2d5887db4f windows 10 & sql fixes
* fixed files wit ' in the name causing a crash
*fixed windows 10 is not detected
2018-03-28 21:58:01 +02:00
Jannik
f9a54abf68 small cleanup 2018-03-22 11:55:06 +01:00
Jannik
4be971efee bug fixes
* fixed a crash at the first start on linux
* fixed a crash caused by "" as source path
* fixed HomeFlix is unable to start because sources.json is missing
* removed one unnecessary restart
2018-03-13 18:08:30 +01:00
Jannik
1299748bed
Merge pull request #22 from Seil0/dev
"plasma vampire" 0.6.0
2018-03-11 16:05:43 +01:00
Jannik
865e732445 Merge pull request #16 from Seil0/dev
release 129/0.5.2 "solidify cow"
2017-07-10 11:28:30 +02:00
Jannik
4ca4f7ad3a Merge pull request #13 from Seil0/dev
update to 127
2017-06-01 18:21:47 +02:00
Jannik
85d65b6235 Merge pull request #12 from Seil0/dev
update to build 127 plasma cow
2017-06-01 17:37:53 +02:00
Jannik
08048d57ac Merge pull request #11 from Seil0/dev
update to build 127 "plasma cow"
2017-06-01 17:21:14 +02:00
Jannik
6baa47b852 Merge pull request #10 from Seil0/dev
updated to 0.5.1 "plasma cow"
2017-04-30 23:30:43 +02:00
Jannik
944151d35f Merge pull request #8 from Seil0/dev
Update README.md
2017-03-05 19:46:48 +01:00
Jannik
b331ffd270 Merge pull request #7 from Seil0/dev
updated to 0.5.0 "plasma cow"
2017-03-05 18:37:02 +01:00
61 changed files with 4621 additions and 2405 deletions

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

4
.gitignore vendored
View File

@ -49,4 +49,6 @@ config.xml
.directory
target/
apiKeys.json
.classpath
.project
.settings/*

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Project-HomeFlix</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@ -1,5 +0,0 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@ -1,5 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=9
org.eclipse.jdt.core.compiler.compliance=9
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=9

View File

@ -1,4 +0,0 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -1,24 +1,18 @@
![Total Downloads](https://img.shields.io/github/downloads/Seil0/Project-HomeFlix/total.svg?style=flat-square)
[![Latest](https://img.shields.io/github/release/Seil0/Project-HomeFlix/all.svg?style=flat-square)](https://github.com/Seil0/Project-HomeFlix/releases)
[![Latest](https://img.shields.io/badge/Download-latest-brightgreen.svg?style=flat-square)](https://git.mosad.xyz/Seil0/Project-HomeFlix/releases)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0)
# Project-HomeFlix
Project-HomeFlix is a Kellerkinder Project, that alowes you to sort all your local saved movies in clean UI. Project-HomeFlix is free and open-source software and uses other open-source projects to provied a nice user experience.
## Installation
Simply download the Project-HomeFlix.jar from [releases](https://github.com/Seil0/Project-HomeFlix/releases), make sure you have the latest version of java 8 oracle jre/jdk installed, open the .jar file. If you need additional information pleas visit our [wiki](https://github.com/Seil0/Project-HomeFlix/wiki).
Simply download the Project-HomeFlix.jar from [releases](https://git.mosad.xyz/Seil0/Project-HomeFlix/releases), make sure you have the latest version of java 8 oracle jre/jdk installed, open the .jar file. If you need additional information pleas visit our [wiki](https://git.mosad.xyz/Seil0/Project-HomeFlix/wiki).
## Development information
The dev branch is **only merged** into master when a **new release** is released, so **master contains the latest released version**. Please commit all changes to [dev](https://github.com/Seil0/Project-HomeFlix/tree/dev).
The dev branch is **only merged** into master when a **new release** is released, so **master contains the latest released version**. Please commit all changes to [dev](https://git.mosad.xyz/Seil0/Project-HomeFlix/src/branch/dev).
Librarys used in this Project:
JFoenix: https://github.com/jfoenixadmin/JFoenix
minimal-json: https://github.com/ralfstx/minimal-json
sqlite-jdbc: https://github.com/xerial/sqlite-jdbc
apache commons io : https://commons.apache.org/proper/commons-io/
[Libraries used in this Project](https://git.mosad.xyz/Seil0/Project-HomeFlix/wiki/Documentation#used-libraries-and-apis)
## screenshots
![Screenshot](https://github.com/Seil0/Seil0.github.io/blob/master/pictures/Project-HomeFlix_MainWindow.png)
## Screenshots
![Screenshot](https://raw.githubusercontent.com/Seil0/Seil0.github.io/master/images/Project-HomeFlix_MainWindow.png)
Project-HomeFlix © 2016-2018 Kellerkinder ([Seil0](https://github.com/Seil0), [Windoofs](https://github.com/Windoofs))
www.kellerkinder.xyz
Project-HomeFlix © 2016-2019 mosad www.mosad.xyz, Project by [@Seil0](https://git.mosad.xyz/Seil0) and [@localhorst](https://git.mosad.xyz/localhorst)

228
pom.xml
View File

@ -1,103 +1,141 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.kellerkinder</groupId>
<artifactId>Project-HomeFlix</artifactId>
<version>0.6.0</version>
<packaging>jar</packaging>
<groupId>org.kellerkinder</groupId>
<artifactId>Project-HomeFlix</artifactId>
<version>0.7.0</version>
<packaging>jar</packaging>
<name>Project-HomeFlix</name>
<url>http://www.kellerkinder.xyz</url>
<name>Project-HomeFlix</name>
<url>http://www.mosad.xyz</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependencies>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>9.0.2</version>
</dependency>
<dependency>
<groupId>com.eclipsesource.minimal-json</groupId>
<artifactId>minimal-json</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.21.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.10.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>12.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>12.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>12.0.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>9.0.9</version>
</dependency>
<dependency>
<groupId>com.eclipsesource.minimal-json</groupId>
<artifactId>minimal-json</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.27.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
<!--<release>11</release> -->
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>kellerkinder.HomeFlix.application.Main</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<finalName>Project-HomeFlix</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>kellerkinder.HomeFlix.application.JavaFX11Main</mainClass>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>kellerkinder.HomeFlix.application.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,86 +0,0 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
package com.cemu_UI.uiElements;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
public class JFXInfoDialog {
private String headingText;
private String bodyText;
private String dialogBtnStyle;
private int dialogWidth;
private int dialogHeight;
private Pane pane;
/**
* Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
*/
public JFXInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText;
this.bodyText = bodyText;
this.dialogBtnStyle = dialogBtnStyle;
this.dialogWidth = dialogWidth;
this.dialogHeight = dialogHeight;
this.pane = pane;
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
content.setPrefSize(dialogWidth, dialogHeight);
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton button = new JFXButton("Okay");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
dialog.close();
}
});
button.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
button.setPrefHeight(32);
button.setStyle(dialogBtnStyle);
content.setActions(button);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
}

View File

@ -1,142 +0,0 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
package com.cemu_UI.uiElements;
import java.util.ResourceBundle;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
public class JFXOkayCancelDialog {
private String headingText;
private String bodyText;
private String dialogBtnStyle;
private String okayText;
private String cancelText;
private int dialogWidth;
private int dialogHeight;
private EventHandler<ActionEvent> okayAction;
private EventHandler<ActionEvent> cancelAction;
private Pane pane;
/**
* Creates a new JFoenix Dialog to show some information with okay and cancel option
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param okayAction action which is performed if the okay button is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
*/
public JFXOkayCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
int dialogHeight, EventHandler<ActionEvent> okayAction, EventHandler<ActionEvent> cancelAction, Pane pane,
ResourceBundle bundle) {
this.headingText = headingText;
this.bodyText = bodyText;
this.dialogBtnStyle = dialogBtnStyle;
this.dialogWidth = dialogWidth;
this.dialogHeight = dialogHeight;
this.okayAction = okayAction;
this.cancelAction = cancelAction;
this.pane = pane;
okayText = bundle.getString("okayBtnText");
cancelText = bundle.getString("cancelBtnText");
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton okayBtn = new JFXButton(okayText);
okayBtn.addEventHandler(ActionEvent.ACTION, (e)-> {
dialog.close();
});
okayBtn.addEventHandler(ActionEvent.ACTION, okayAction);
okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
okayBtn.setPrefHeight(32);
okayBtn.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e)-> {
dialog.close();
});
cancelBtn.addEventHandler(ActionEvent.ACTION, cancelAction);
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, okayBtn);
content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight()-content.getPrefHeight())/2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth()-content.getPrefWidth())/2);
dialog.show();
}
public String getOkayText() {
return okayText;
}
public void setOkayText(String okayText) {
this.okayText = okayText;
}
public String getCancelText() {
return cancelText;
}
public void setCancelText(String cancelText) {
this.cancelText = cancelText;
}
public EventHandler<ActionEvent> getOkayAction() {
return okayAction;
}
public void setOkayAction(EventHandler<ActionEvent> okayAction) {
this.okayAction = okayAction;
}
public EventHandler<ActionEvent> getCancelAction() {
return cancelAction;
}
public void setCancelAction(EventHandler<ActionEvent> cancelAction) {
this.cancelAction = cancelAction;
}
}

View File

@ -1,98 +0,0 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
package com.cemu_UI.uiElements;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import com.jfoenix.controls.JFXTextArea;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
public class JFXTextAreaInfoDialog {
private String headingText;
private String bodyText;
private String dialogBtnStyle;
private int dialogWidth;
private int dialogHeight;
private JFXTextArea textArea;
private Pane pane;
/**
* Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
*/
public JFXTextAreaInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText;
this.bodyText = bodyText;
this.dialogBtnStyle = dialogBtnStyle;
this.dialogWidth = dialogWidth;
this.dialogHeight = dialogHeight;
this.pane = pane;
}
public void show() {
textArea = new JFXTextArea(bodyText);
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(textArea);
content.setPrefSize(dialogWidth, dialogHeight);
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton button = new JFXButton("Okay");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
dialog.close();
}
});
button.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
button.setPrefHeight(32);
button.setStyle(dialogBtnStyle);
content.setActions(button);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
public JFXTextArea getTextArea() {
return textArea;
}
public void setTextArea(JFXTextArea textArea) {
this.textArea = textArea;
}
}

View File

@ -0,0 +1,226 @@
/**
* Project-HomeFlix
*
* Copyright 2016-2019 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
package kellerkinder.HomeFlix.application;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.jfoenix.controls.JFXButton;
import javafx.animation.FadeTransition;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Text;
import javafx.util.Duration;
import kellerkinder.HomeFlix.controller.DBController;
import kellerkinder.HomeFlix.controller.XMLController;
import kellerkinder.HomeFlix.player.Player;
public class FilmDetailView {
@FXML private AnchorPane filmDVPane;
@FXML private Label lblTitle;
@FXML private Label lblYear;
@FXML private Label lblScore;
@FXML private Label lblCrew;
@FXML private Label lblDirectors;
@FXML private Label lblDirectorsInfo;
@FXML private Label lblWriters;
@FXML private Label lblWritersInfo;
@FXML private Label lblActors;
@FXML private Label lblActorsInfo;
@FXML private Label lblInfo;
@FXML private Label lblRuntimeInfo;
@FXML private Label lblRuntime;
@FXML private Label lblLanguageInfo;
@FXML private Label lblLanguage;
@FXML private Label lblRevenueInfo;
@FXML private Label lblRevenue;
@FXML private Label lblRatingInfo;
@FXML private Label lblRating;
@FXML private JFXButton btnWishlist;
@FXML private JFXButton btnFavourite;
@FXML private JFXButton btnHide;
@FXML private JFXButton btnPlay;
@FXML private JFXButton btnDirectory;
@FXML private ImageView wishlistIcon;
@FXML private ImageView favoriteIcon;
@FXML private ImageView imgPoster;
@FXML private Text textPlot;
private DBController dbController;
private static final Logger LOGGER = LogManager.getLogger(FilmDetailView.class.getName());
private String currentStreamURL;
public void initialize() {
dbController = DBController.getInstance();
filmDVPane.setStyle("-fx-background-color: rgba(89,89,89,0.9);");
}
@FXML
private void btnWishlistAction() {
}
@FXML
private void btnFavouriteAction() {
dbController.toggleFavoriteState(currentStreamURL);
// update the favorite icon
if(dbController.getFavoriteState(currentStreamURL) == 1) {
favoriteIcon.setImage(new Image("icons/baseline_favorite_black_48dp.png"));
} else {
favoriteIcon.setImage(new Image("icons/baseline_favorite_border_black_48dp.png"));
}
}
@FXML
private void btnHideAction() {
hidePane();
}
@FXML
private void btnPlayAction() {