From 458bc78b2e716791544effe1ed44ebbca638e7d0 Mon Sep 17 00:00:00 2001 From: Gabriel Tofvesson Date: Sun, 30 Oct 2016 18:17:14 +0100 Subject: [PATCH] Added asynchronous method execution support with libRefTools --- .idea/libraries/libRefTools.xml | 11 +++++++++++ TAL.iml | 4 ++-- libs/libRefTools.jar | Bin 0 -> 50770 bytes src/Launcher/Main.java | 27 ++++++++++++++++++++++++--- src/Launcher/Tabs.java | 19 +++++++++++++------ 5 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 .idea/libraries/libRefTools.xml create mode 100644 libs/libRefTools.jar diff --git a/.idea/libraries/libRefTools.xml b/.idea/libraries/libRefTools.xml new file mode 100644 index 0000000..c38d72c --- /dev/null +++ b/.idea/libraries/libRefTools.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/TAL.iml b/TAL.iml index d5c0743..7647c6b 100644 --- a/TAL.iml +++ b/TAL.iml @@ -7,6 +7,6 @@ + - - + \ No newline at end of file diff --git a/libs/libRefTools.jar b/libs/libRefTools.jar new file mode 100644 index 0000000000000000000000000000000000000000..5782ea6ad0a16025fdc12ec69d3ff6ba7ed7b543 GIT binary patch literal 50770 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�z-aZ66k(^-OC_9 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 primaryStage.close()); // Closes the program if exit button is clicked min.setOnMouseClicked(event -> primaryStage.setIconified(true)); // Minimizes the program if minimize button is clicked - Home_btn.setOnMouseClicked(event -> {if(activeTab!=Tabs.Home)(activeTab=Tabs.Home).switchTab(tab);}); // Sets the active tab to the home tab unless it's already active - Modpack_btn.setOnMouseClicked(event -> {if(activeTab!=Tabs.Modpacks)(activeTab=Tabs.Modpacks).switchTab(tab);});// Sets the active tab to the modpacks tab unless it's already active - Settings_btn.setOnMouseClicked(event -> {if(activeTab!=Tabs.Settings)(activeTab=Tabs.Settings).switchTab(tab);}); + Home_btn.setOnMouseClicked(event ->{if(activeTab!=Tabs.Home)(activeTab=Tabs.Home).switchTab(tab);}); // Sets the active tab to the home tab unless it's already active + Modpack_btn.setOnMouseClicked(event ->{ + if(activeTab!=Tabs.Modpacks){ + (activeTab=Tabs.Modpacks).switchTab(tab); // Sets the active tab to the modpacks tab unless it's already active + Tabs.Modpacks.loaded.lookup("#search-modpacks").setOnInputMethodTextChanged(System.out::println); + } + }); + Settings_btn.setOnMouseClicked(event ->{ + if(activeTab!=Tabs.Settings){ + (activeTab=Tabs.Settings).switchTab(tab); // Sets the active tab to the settings tab unless it's already active + } + }); + + + Async a = new Async(null, SafeReflection.getMethod(getClass(), "run", (Class[]) null), null); + System.out.println(a.await()); // Drag dragBar.setOnMousePressed(event -> { @@ -77,6 +94,7 @@ public class Main extends Application { primaryStage.setY(event.getScreenY() - yOffset); }); + // Set up default layout Tabs.Home.switchTab(tab); icon.setImage(appIcon); @@ -86,5 +104,8 @@ public class Main extends Application { launch(args); } + public static int run(){ + return 500; + } } diff --git a/src/Launcher/Tabs.java b/src/Launcher/Tabs.java index b7b98ad..bf1c46b 100644 --- a/src/Launcher/Tabs.java +++ b/src/Launcher/Tabs.java @@ -10,18 +10,25 @@ public enum Tabs { Modpacks(Tabs.class.getResource("../assets/layout/modpacks.fxml")), Home(Tabs.class.getResource("../assets/layout/home.fxml")), Settings(Tabs.class.getResource("../assets/layout/settings.fxml")); + /** + * Url referencing xml. + */ public final URL url; - private Parent loaded; + + /** + * Loaded layout + */ + public final Parent loaded; + Tabs(URL url){ this.url = url; + Parent p = null; + try { p = FXMLLoader.load(url); } catch (IOException e) { e.printStackTrace(); } + loaded = p; } public void switchTab(Pane holder){ holder.getChildren().clear(); - try { - holder.getChildren().add(loaded==null?loaded=FXMLLoader.load(url):loaded); - } catch (IOException e) { - e.printStackTrace(); - } + holder.getChildren().add(loaded); } }