From 637ab55d5d63918a60bfcea13f0dd70af0f496d0 Mon Sep 17 00:00:00 2001 From: Alex Dev Sm Date: Sat, 22 Jun 2019 19:37:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=20=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pro/gravit/launcher/LauncherEngine.java | 10 +++++- .../launcher/gui/GuiRuntimeProvider.java | 6 ++-- .../gravit/launcher/sgui/api/GuiEngine.java | 16 +++++---- .../launcher/sgui/api/GuiEngineConfig.java | 8 ++++- .../gravit/launcher/sgui/config/CONFIG.java | 7 ++-- .../pro/gravit/launcher/sgui/config/INIT.java | 11 +++--- .../gravit/launcher/sgui/config/SETTINGS.java | 34 +++++++++++++++++++ 7 files changed, 74 insertions(+), 18 deletions(-) create mode 100644 Launcher/src/main/java/pro/gravit/launcher/sgui/config/SETTINGS.java diff --git a/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java b/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java index 88439550..237186cb 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java +++ b/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java @@ -74,12 +74,20 @@ public void start(String... args) throws Throwable { Launcher.modulesManager.preInitModules(); // INIT GUI try + { + Class.forName( "com.jfoenixparts.controls.JFXPButton" ); + if (runtimeProvider == null) runtimeProvider = new JSRuntimeProvider(); + } + catch( ClassNotFoundException e ) { + runtimeProvider = new GuiRuntimeProvider(); + } + try { Class.forName( "javafx.application.Application" ); if (runtimeProvider == null) runtimeProvider = new JSRuntimeProvider(); } catch( ClassNotFoundException e ) { - if (runtimeProvider == null) runtimeProvider = new GuiRuntimeProvider(); + runtimeProvider = new GuiRuntimeProvider(); } runtimeProvider.init(false); runtimeProvider.preLoad(); diff --git a/Launcher/src/main/java/pro/gravit/launcher/gui/GuiRuntimeProvider.java b/Launcher/src/main/java/pro/gravit/launcher/gui/GuiRuntimeProvider.java index f66369bf..fc173e3a 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/gui/GuiRuntimeProvider.java +++ b/Launcher/src/main/java/pro/gravit/launcher/gui/GuiRuntimeProvider.java @@ -24,6 +24,7 @@ public void loadConfig(String get) { @Override public void run(String[] args) throws NoSuchMethodException, IOException { preLoad(); + loadConfig("INIT"); LogHelper.info("Invoking start() function"); Launcher.modulesManager.postInitModules(); engine.start((String[]) args); @@ -33,7 +34,8 @@ public void run(String[] args) throws NoSuchMethodException, IOException { @Override public void preLoad() throws IOException { if (!isPreLoaded) { - loadConfig("API"); + //loadConfig("API"); + //loadConfig("SETTINGS"); loadConfig("CONFIG"); isPreLoaded = true; } @@ -41,6 +43,6 @@ public void preLoad() throws IOException { @Override public void init(boolean clientInstance) { - loadConfig("INIT"); + } } diff --git a/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngine.java b/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngine.java index df951e0d..da920f8f 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngine.java +++ b/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngine.java @@ -2,7 +2,10 @@ import java.util.HashMap; import java.util.Map; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; import pro.gravit.launcher.sgui.Application; +import pro.gravit.utils.helper.LogHelper; public class GuiEngine { private Map Configs = new HashMap(); private Map Settings = new HashMap(); @@ -11,15 +14,14 @@ public void start(String[] args) { } public void config(GuiEngine engine,String config) { try { - System.out.println("Настройка "+config+" Загружена"); + LogHelper.info("Настройка "+config+" Загружена"); Class c = Class.forName("pro.gravit.launcher.sgui.config."+config); - Object configclass = c.newInstance(); - GuiEngineConfig runclass = (GuiEngineConfig) configclass; - runclass.main(engine); - + Method runmethod = c.getMethod("main", GuiEngine.class); + runmethod.invoke(c.newInstance(), engine); } -catch (Exception e){ - System.out.println("Ошибка при загрузке настройки "+config); +catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e){ + LogHelper.info("Ошибка при загрузке настройки "+config); + e.printStackTrace(); } } public void configset(String path, String value) { diff --git a/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngineConfig.java b/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngineConfig.java index 30ef5a90..2548238d 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngineConfig.java +++ b/Launcher/src/main/java/pro/gravit/launcher/sgui/api/GuiEngineConfig.java @@ -1,4 +1,10 @@ package pro.gravit.launcher.sgui.api; + +import java.io.IOException; +import pro.gravit.utils.helper.LogHelper; + public class GuiEngineConfig { - void main(GuiEngine engine) {} + void main(GuiEngine engine) throws IOException{ + LogHelper.info("Вызов фунции не получился"); + }; } \ No newline at end of file diff --git a/Launcher/src/main/java/pro/gravit/launcher/sgui/config/CONFIG.java b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/CONFIG.java index d2bda8c9..370072d7 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/sgui/config/CONFIG.java +++ b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/CONFIG.java @@ -2,12 +2,13 @@ import java.io.IOException; import pro.gravit.launcher.client.DirBridge; -import pro.gravit.utils.helper.IOHelper; import pro.gravit.launcher.sgui.api.GuiEngine; import pro.gravit.launcher.sgui.api.GuiEngineConfig; +import pro.gravit.utils.helper.IOHelper; +import pro.gravit.utils.helper.LogHelper; public class CONFIG extends GuiEngineConfig { - void main(GuiEngine engine) throws IOException { + public void main(GuiEngine engine) throws IOException { engine.configset("dir", "GravitLauncher"); engine.configset("title", "GravitLauncher"); engine.configset("favicon", "favicon.png"); @@ -28,6 +29,6 @@ void main(GuiEngine engine) throws IOException { if (!IOHelper.isDir(DirBridge.defaultUpdatesDir)) { java.nio.file.Files.createDirectory(DirBridge.defaultUpdatesDir); } - System.out.println("Настройка..."); + LogHelper.info("Настройка..."); } } \ No newline at end of file diff --git a/Launcher/src/main/java/pro/gravit/launcher/sgui/config/INIT.java b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/INIT.java index 516cfcea..f8bafaeb 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/sgui/config/INIT.java +++ b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/INIT.java @@ -4,14 +4,17 @@ import pro.gravit.launcher.managers.SettingsManager; import pro.gravit.launcher.sgui.api.GuiEngine; import pro.gravit.launcher.sgui.api.GuiEngineConfig; +import pro.gravit.utils.helper.LogHelper; public class INIT extends GuiEngineConfig { - private SettingsManager settingsManager; - void main(GuiEngine engine) throws IOException { + private SettingsManager settingsManagerClass; + public void main(GuiEngine engine) throws IOException { + engine.config(engine, "SETTINGS"); + SettingsManager settingsManager = (SettingsManager) engine.configget("SettingsManagerClass",true); engine.configset("version-gui","0.0.1"); settingsManager.loadConfig(); - engine.configset("SettingsManager", settingsManager.settings); + engine.configset("SettingsManager", SettingsManager.settings); settingsManager.loadHDirStore(); - System.out.println("Инициализация..."); + LogHelper.info("Инициализация..."); } } \ No newline at end of file diff --git a/Launcher/src/main/java/pro/gravit/launcher/sgui/config/SETTINGS.java b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/SETTINGS.java new file mode 100644 index 00000000..f8cec15e --- /dev/null +++ b/Launcher/src/main/java/pro/gravit/launcher/sgui/config/SETTINGS.java @@ -0,0 +1,34 @@ +package pro.gravit.launcher.sgui.config; + +import java.io.IOException; +import pro.gravit.launcher.client.DirBridge; +import pro.gravit.launcher.NewLauncherSettings; +import pro.gravit.launcher.managers.SettingsManager; +import pro.gravit.launcher.sgui.api.GuiEngine; +import pro.gravit.launcher.sgui.api.GuiEngineConfig; +import pro.gravit.utils.helper.LogHelper; + +public class SETTINGS extends GuiEngineConfig { + public void main(GuiEngine engine) throws IOException { + class settingsManagerClass extends SettingsManager { + public NewLauncherSettings getDefaultConfig() { + NewLauncherSettings new_settings = new NewLauncherSettings(); + new_settings.login = null; + new_settings.rsaPassword = null; + new_settings.profile = 0; + + new_settings.updatesDir = DirBridge.defaultUpdatesDir; + new_settings.autoEnter = (boolean) engine.configget("autoEnterDefault", true); + new_settings.fullScreen = (boolean) engine.configget("fullScreenDefault", true); + new_settings.ram = (int) engine.configget("ramDefault", true); + new_settings.lastDigest = null; + new_settings.lastProfiles.clear(); + new_settings.lastHDirs.clear(); + return new_settings; + } + } + settingsManagerClass settingsManager = new settingsManagerClass(); + engine.configset("SettingsManager", settingsManager.settings); + engine.configset("SettingsManagerClass", settingsManager); + } +} \ No newline at end of file