diff --git a/Readme.md b/Readme.md
index 0eadd49..944fad1 100644
--- a/Readme.md
+++ b/Readme.md
@@ -16,8 +16,7 @@ Pay attention, that this lib uses Apache-2.0 license
## Requirements
-JRE and JavaFX should be installed on your PC.
-For example, in Debian Stretch you should install 'openjfx' package.
+JRE 11 (v8 before v0.12 +JavaFX For example, in Debian Stretch you should install 'openjfx' package.) should be installed on your PC.
## Usage
@@ -28,7 +27,7 @@ $ java -jar mplayer4anime.jar
## Run on windows
Step 1.
-Download and install JRE (8 or later):
+Download and install JRE (~~8~~ 11 or later):
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
Step 2.
diff --git a/pom.xml b/pom.xml
index 2f3cd76..8ba0ce8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,24 @@
2.8.5
compile
+
+ org.openjfx
+ javafx-controls
+ 11
+ compile
+
+
+ org.openjfx
+ javafx-media
+ 11
+ compile
+
+
+ org.openjfx
+ javafx-fxml
+ 11
+ compile
+
@@ -27,20 +45,19 @@
maven-compiler-plugin
3.1
-
- 1.8
+
+ 11
org.apache.maven.plugins
maven-assembly-plugin
- 2.5.3
+ 3.1.0
-
- mplayer4anime.Main
-
+ true
+ mplayer4anime.Main
diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF
index dcd19b4..ced5cc7 100644
--- a/src/META-INF/MANIFEST.MF
+++ b/src/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-Main-Class: mplayer4anime.Main
+Main-Class: mplayer4anime.MainFX
diff --git a/src/main/java/mplayer4anime/About/AboutWindow.java b/src/main/java/mplayer4anime/About/AboutWindow.java
index 0bacf66..41f21ed 100644
--- a/src/main/java/mplayer4anime/About/AboutWindow.java
+++ b/src/main/java/mplayer4anime/About/AboutWindow.java
@@ -6,7 +6,7 @@ import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
-import mplayer4anime.Main;
+import mplayer4anime.MainFX;
import java.io.IOException;
import java.util.Locale;
@@ -37,10 +37,10 @@ public class AboutWindow {
stageAbout.setTitle(resourceBundle.getString("about_AboutName"));
stageAbout.getIcons().addAll(
- new Image(Main.class.getResourceAsStream("/res/app_icon32x32.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon48x48.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon64x64.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon128x128.png"))
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon32x32.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon48x48.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon64x64.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon128x128.png"))
); // TODO: change to something reliable
stageAbout.setScene(new Scene(parentAbout, 500, 500));
diff --git a/src/main/java/mplayer4anime/Controller.java b/src/main/java/mplayer4anime/Controller.java
index 8f429fa..5c8d19e 100644
--- a/src/main/java/mplayer4anime/Controller.java
+++ b/src/main/java/mplayer4anime/Controller.java
@@ -230,7 +230,7 @@ public class Controller implements Initializable {
}
// Will be used to store lists previously opened.
- // Linkage established by ohHidden in Main.java class
+ // Linkage established by ohHidden in MainFX.java class
void shutdown(){
appPreferences.setLastTimeUsedSubsEncoding(subPaneController.getSelectedEncoding());
appPreferences.setFullScreenSelected(fullScreen.isSelected());
diff --git a/src/main/java/mplayer4anime/Main.java b/src/main/java/mplayer4anime/Main.java
index c93bd64..fb49b4c 100644
--- a/src/main/java/mplayer4anime/Main.java
+++ b/src/main/java/mplayer4anime/Main.java
@@ -1,77 +1,9 @@
package mplayer4anime;
-/**
-Name: mplayer4anime
-@author Dmitry Isaenko
-License: GNU GPL v.3
-@version 0.12
-@see https://developersu.blogspot.com/search/label/mplayer4anime
-@see https://github.com/developersu/mplayer4anime
-2018-2019, Russia
-*/
-import javafx.application.Application;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.scene.image.Image;
-import javafx.stage.Stage;
-import mplayer4anime.IPC.SingleInstanceHandler;
+// NOTE: Club of disabled congratulates new member!
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-//TODO: Use one copy of AppPreferences object widely
-//TODO: Drag-n-drop playlist/files/audio
-//TODO: remember selected
-//TODO: remember position
-public class Main extends Application {
-
- public static void main(String[] args) { launch(args); }
-
- @Override
- public void start(Stage primaryStage) throws Exception{
- FXMLLoader loader = new FXMLLoader(getClass().getResource("/landingPage.fxml"));
-
- if (Locale.getDefault().getISO3Language().equals("rus")) {
- loader.setResources(ResourceBundle.getBundle("locale", new Locale("ru")));
- } else {
- loader.setResources(ResourceBundle.getBundle("locale", new Locale("en")));
- }
-
- Parent root = loader.load();
-
- // tmp?
- Controller controller = loader.getController();
- controller.setHostServices(getHostServices());
- SingleInstanceHandler sih;
-
- if (!getParameters().getUnnamed().isEmpty())
- sih = new SingleInstanceHandler(controller, getParameters().getUnnamed().get(0));
- else
- sih = new SingleInstanceHandler(controller, null);
- // end
- Thread tsih = new Thread(sih);
- tsih.start();
-
- // TODO: refactor needed?
- Runtime.getRuntime().addShutdownHook(new Thread(() -> tsih.interrupt()));
-
- primaryStage.getIcons().addAll(
- new Image(Main.class.getResourceAsStream("/res/app_icon32x32.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon48x48.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon64x64.png")),
- new Image(Main.class.getResourceAsStream("/res/app_icon128x128.png"))
- );
- primaryStage.setTitle("mplayer4anime");
- primaryStage.setMinWidth(500);
- primaryStage.setMinHeight(375);
- primaryStage.setScene(new Scene(root, 1200, 800));
- // Make linkage to controller method to handle exit() event in there.
- primaryStage.setOnHidden(e -> {
- tsih.interrupt();
- controller.shutdown();
- });
-
- primaryStage.show();
+public class Main {
+ public static void main(String[] args){
+ MainFX.main(args);
}
}
diff --git a/src/main/java/mplayer4anime/MainFX.java b/src/main/java/mplayer4anime/MainFX.java
new file mode 100644
index 0000000..b8481ac
--- /dev/null
+++ b/src/main/java/mplayer4anime/MainFX.java
@@ -0,0 +1,77 @@
+package mplayer4anime;
+/**
+Name: mplayer4anime
+@author Dmitry Isaenko
+License: GNU GPL v.3
+@version 0.12
+@see https://developersu.blogspot.com/search/label/mplayer4anime
+@see https://github.com/developersu/mplayer4anime
+2018-2019, Russia
+*/
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.image.Image;
+import javafx.stage.Stage;
+import mplayer4anime.IPC.SingleInstanceHandler;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+//TODO: Use one copy of AppPreferences object widely
+//TODO: Drag-n-drop playlist/files/audio
+//TODO: remember selected
+//TODO: remember position
+public class MainFX extends Application {
+
+ public static void main(String[] args) { launch(args); }
+
+ @Override
+ public void start(Stage primaryStage) throws Exception{
+ FXMLLoader loader = new FXMLLoader(getClass().getResource("/landingPage.fxml"));
+
+ if (Locale.getDefault().getISO3Language().equals("rus")) {
+ loader.setResources(ResourceBundle.getBundle("locale", new Locale("ru")));
+ } else {
+ loader.setResources(ResourceBundle.getBundle("locale", new Locale("en")));
+ }
+
+ Parent root = loader.load();
+
+ // tmp?
+ Controller controller = loader.getController();
+ controller.setHostServices(getHostServices());
+ SingleInstanceHandler sih;
+
+ if (!getParameters().getUnnamed().isEmpty())
+ sih = new SingleInstanceHandler(controller, getParameters().getUnnamed().get(0));
+ else
+ sih = new SingleInstanceHandler(controller, null);
+ // end
+ Thread tsih = new Thread(sih);
+ tsih.start();
+
+ // TODO: refactor needed?
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> tsih.interrupt()));
+
+ primaryStage.getIcons().addAll(
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon32x32.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon48x48.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon64x64.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/app_icon128x128.png"))
+ );
+ primaryStage.setTitle("mplayer4anime");
+ primaryStage.setMinWidth(500);
+ primaryStage.setMinHeight(375);
+ primaryStage.setScene(new Scene(root, 1200, 800));
+ // Make linkage to controller method to handle exit() event in there.
+ primaryStage.setOnHidden(e -> {
+ tsih.interrupt();
+ controller.shutdown();
+ });
+
+ primaryStage.show();
+ }
+}
diff --git a/src/main/java/mplayer4anime/Settings/SettingsWindow.java b/src/main/java/mplayer4anime/Settings/SettingsWindow.java
index 3c49837..5cbd95e 100644
--- a/src/main/java/mplayer4anime/Settings/SettingsWindow.java
+++ b/src/main/java/mplayer4anime/Settings/SettingsWindow.java
@@ -5,7 +5,7 @@ import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
-import mplayer4anime.Main;
+import mplayer4anime.MainFX;
import java.io.IOException;
import java.util.Locale;
@@ -36,10 +36,10 @@ public class SettingsWindow {
stageAbout.setTitle(resourceBundle.getString("settings_SettingsName"));
stageAbout.getIcons().addAll(
- new Image(Main.class.getResourceAsStream("/res/settings_icon32x32.png")),
- new Image(Main.class.getResourceAsStream("/res/settings_icon48x48.png")),
- new Image(Main.class.getResourceAsStream("/res/settings_icon64x64.png")),
- new Image(Main.class.getResourceAsStream("/res/settings_icon128x128.png"))
+ new Image(MainFX.class.getResourceAsStream("/res/settings_icon32x32.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/settings_icon48x48.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/settings_icon64x64.png")),
+ new Image(MainFX.class.getResourceAsStream("/res/settings_icon128x128.png"))
); // TODO: change to something reliable
stageAbout.setScene(new Scene(parentAbout, 570, 500));
stageAbout.show();