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 @@ +<component name="libraryTable"> + <library name="libRefTools"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/libs/libRefTools.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES> + <root url="jar://$PROJECT_DIR$/libs/libRefTools.jar!/" /> + </SOURCES> + </library> +</component> \ 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 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="libRefTools" level="project" /> </component> -</module> - +</module> \ No newline at end of file diff --git a/libs/libRefTools.jar b/libs/libRefTools.jar new file mode 100644 index 0000000..5782ea6 Binary files /dev/null and b/libs/libRefTools.jar differ diff --git a/src/Launcher/Main.java b/src/Launcher/Main.java index 569631e..151c63c 100644 --- a/src/Launcher/Main.java +++ b/src/Launcher/Main.java @@ -10,6 +10,7 @@ favour and pour yourself some nice Jack Daniels. You deserve it if you're going package Launcher; +import com.tofvesson.reflection.SafeReflection; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; @@ -22,6 +23,7 @@ import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.stage.StageStyle; import java.net.URL; +import com.tofvesson.async.*; public class Main extends Application { @@ -48,6 +50,7 @@ public class Main extends Application { primaryStage.getIcons().clear(); primaryStage.getIcons().add(appIcon = new Image(getClass().getResourceAsStream("../assets/icons/app.png"))); + // Field initialization exit = (Button) root.lookup("#exit"); min = (Button) root.lookup("#min"); @@ -60,12 +63,26 @@ public class Main extends Application { Search_modpacks_btn = (Button) root.lookup("#search-modpacks-btn"); Search_modpacks = (TextField) root.lookup("#search-modpacks"); + // Infrastructural navigation exit.setOnMouseClicked(event -> 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); } }