From 58f37733928185f7aee1ca21be2636bc9754d533 Mon Sep 17 00:00:00 2001 From: bryce Date: Tue, 29 Oct 2024 11:01:59 +1300 Subject: [PATCH] Add Gallery & Settings to menu and start layouts --- .vscode/launch.json | 2 +- .vscode/settings.json | 3 +- BrickLog-Client/pom.xml | 2 +- .../bricklog/BrickLogClientApplication.java | 40 +---- .../example/bricklog/view/GalleryLayout.java | 113 +++++++++++++++ .../com/example/bricklog/view/MainLayout.java | 137 ++++++++++++++++++ .../example/bricklog/view/SettingsLayout.java | 26 ++++ .../example/bricklog/view/SettingsWindow.java | 101 ------------- .../target/bricklog-client-0.1-SNAPSHOT.jar | Bin 5818 -> 10546 bytes .../bricklog/BrickLogClientApplication.class | Bin 2842 -> 1086 bytes .../example/bricklog/view/GalleryLayout.class | Bin 0 -> 5108 bytes .../example/bricklog/view/MainLayout.class | Bin 0 -> 6358 bytes .../bricklog/view/SettingsLayout.class | Bin 0 -> 1235 bytes .../bricklog/view/SettingsWindow.class | Bin 3548 -> 0 bytes .../compile/default-compile/createdFiles.lst | 3 +- .../compile/default-compile/inputFiles.lst | 2 + 16 files changed, 290 insertions(+), 139 deletions(-) create mode 100644 BrickLog-Client/src/main/java/com/example/bricklog/view/GalleryLayout.java create mode 100644 BrickLog-Client/src/main/java/com/example/bricklog/view/MainLayout.java create mode 100644 BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsLayout.java delete mode 100644 BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsWindow.java create mode 100644 BrickLog-Client/target/classes/com/example/bricklog/view/GalleryLayout.class create mode 100644 BrickLog-Client/target/classes/com/example/bricklog/view/MainLayout.class create mode 100644 BrickLog-Client/target/classes/com/example/bricklog/view/SettingsLayout.class delete mode 100644 BrickLog-Client/target/classes/com/example/bricklog/view/SettingsWindow.class diff --git a/.vscode/launch.json b/.vscode/launch.json index 6f48257..cc2b002 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,7 +7,7 @@ "name": "Launch BrickLog Client", "mainClass": "com.example.bricklog.BrickLogClient", "projectName": "bricklog-client", - "vmArgs": "--module-path C:/javafx-sdk-21.0.5 --add-modules javafx.controls,javafx.fxml" + "vmArgs": "--module-path \"C:/javafx-sdk-21.0.5/lib\" --add-modules javafx.controls,javafx.fxml" } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 7b016a8..d53ecaf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.compile.nullAnalysis.mode": "automatic" + "java.compile.nullAnalysis.mode": "automatic", + "java.configuration.updateBuildConfiguration": "automatic" } \ No newline at end of file diff --git a/BrickLog-Client/pom.xml b/BrickLog-Client/pom.xml index cded788..b2f7b4c 100644 --- a/BrickLog-Client/pom.xml +++ b/BrickLog-Client/pom.xml @@ -42,7 +42,7 @@ org.openjfx javafx-maven-plugin - 0.0.5 + 0.0.8 diff --git a/BrickLog-Client/src/main/java/com/example/bricklog/BrickLogClientApplication.java b/BrickLog-Client/src/main/java/com/example/bricklog/BrickLogClientApplication.java index dad934f..7e55211 100644 --- a/BrickLog-Client/src/main/java/com/example/bricklog/BrickLogClientApplication.java +++ b/BrickLog-Client/src/main/java/com/example/bricklog/BrickLogClientApplication.java @@ -1,49 +1,21 @@ package com.example.bricklog; +import com.example.bricklog.view.MainLayout; + import javafx.application.Application; import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.TextField; -import javafx.scene.layout.VBox; import javafx.stage.Stage; public class BrickLogClientApplication extends Application { @Override public void start(Stage primaryStage) { - primaryStage.setTitle("Brick Log"); + primaryStage.setTitle("Brick Log Client"); - // Create layout - VBox layout = new VBox(10); // Vertical box with spacing of 10 pixels + // Use MainLayout as the root layout + MainLayout mainLayout = new MainLayout(); + Scene scene = new Scene(mainLayout, 1024, 720); // Set the desired width and height - // Search Box - TextField searchBox = new TextField(); - searchBox.setPromptText("Search for builds..."); - - // Add Button - Button addButton = new Button("+"); - addButton.setStyle("-fx-background-color: lightblue; -fx-font-size: 18px; -fx-padding: 10px; -fx-font-weight: bold;"); - addButton.setPrefSize(50, 50); - - // Animation Effect on Click - addButton.setOnMouseClicked(e -> { - addButton.setScaleX(1.2); - addButton.setScaleY(1.2); - // You may want to add logic for adding a new build here - // For example, opening a new window to add a build - }); - - // Reset size after animation - addButton.setOnMouseReleased(e -> { - addButton.setScaleX(1.0); - addButton.setScaleY(1.0); - }); - - // Add components to layout - layout.getChildren().addAll(searchBox, addButton); - - // Create a scene and set it to the stage - Scene scene = new Scene(layout, 400, 300); // Set the width and height as per your need primaryStage.setScene(scene); primaryStage.show(); } diff --git a/BrickLog-Client/src/main/java/com/example/bricklog/view/GalleryLayout.java b/BrickLog-Client/src/main/java/com/example/bricklog/view/GalleryLayout.java new file mode 100644 index 0000000..f7956f4 --- /dev/null +++ b/BrickLog-Client/src/main/java/com/example/bricklog/view/GalleryLayout.java @@ -0,0 +1,113 @@ +package com.example.bricklog.view; + +import javafx.geometry.Insets; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.ToggleGroup; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; + +public class GalleryLayout extends BorderPane { + private final GridPane gridView; + private final ListView listView; + private boolean isGridView; + + public GalleryLayout() { + // Create a ToggleGroup for the layout options + ToggleGroup toggleGroup = new ToggleGroup(); + + // Create toggle buttons for layout options + ToggleButton gridButton = new ToggleButton("Grid"); + ToggleButton listButton = new ToggleButton("List"); + + gridButton.setToggleGroup(toggleGroup); + listButton.setToggleGroup(toggleGroup); + + // Set the default selected button + gridButton.setSelected(true); + isGridView = true; + + HBox toggleBox = new HBox(gridButton, listButton); + toggleBox.setSpacing(10); + toggleBox.setPadding(new Insets(10)); + this.setTop(toggleBox); + + // Create both views + gridView = createGridView(); + listView = createListView(); + + // Start with the grid view + isGridView = true; + this.setCenter(gridView); + + // Add listener to the toggle group to switch layouts + toggleGroup.selectedToggleProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == gridButton) { + isGridView = true; // Update the variable + toggleLayout(isGridView); // Use the variable + } else if (newValue == listButton) { + isGridView = false; // Update the variable + toggleLayout(isGridView); // Use the variable + } + }); + } + + private GridPane createGridView() { + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10)); + grid.setHgap(10); + grid.setVgap(10); + + // Example data - replace with your actual data retrieval logic + String[] buildTypes = {"Kitset", "MoC", "Kitset", "MoC"}; + String[] imageUrls = { + "path/to/image1.jpg", + "path/to/image2.jpg", + "path/to/image3.jpg", + "path/to/image4.jpg" + }; + + for (int i = 0; i < buildTypes.length; i++) { + VBox vbox = new VBox(); + ImageView imageView = new ImageView(new Image(imageUrls[i])); + imageView.setFitWidth(150); + imageView.setFitHeight(150); + imageView.setPreserveRatio(true); + + vbox.getChildren().addAll(imageView, new Label(buildTypes[i])); + grid.add(vbox, i % 3, i / 3); // Adjust to layout items in a grid + } + return grid; + } + + private ListView createListView() { + ListView list = new ListView<>(); + + // Example data - replace with your actual data retrieval logic + String[] details = { + "Build 1: Builder Name, 100 Pieces, 20x30x10 cm, Kitset", + "Build 2: Builder Name, 150 Pieces, 25x35x15 cm, MoC", + // Add more entries as needed... + }; + + list.getItems().addAll(details); + return list; + } + +// Method to toggle layout and print the current state +private void toggleLayout(boolean isGrid) { + if (isGrid) { + System.out.println("Current layout: Grid View"); + this.setCenter(gridView); + } else { + System.out.println("Current layout: List View"); + this.setCenter(listView); + } +} +} + diff --git a/BrickLog-Client/src/main/java/com/example/bricklog/view/MainLayout.java b/BrickLog-Client/src/main/java/com/example/bricklog/view/MainLayout.java new file mode 100644 index 0000000..dff15ae --- /dev/null +++ b/BrickLog-Client/src/main/java/com/example/bricklog/view/MainLayout.java @@ -0,0 +1,137 @@ +package com.example.bricklog.view; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +// import javafx.scene.layout.StackPane; + +public class MainLayout extends BorderPane { + + private VBox menu; // makes menu accessible for updates + + public MainLayout() { + + // Title & Coppyright + Label title = new Label("BRICK LOG Client"); + title.setStyle("-fx-font-size: 24px; -fx-font-weight: bold;"); + + Label copyright = new Label("built by Bryce © 2024"); + copyright.setStyle("-fx-font-size: 14px;"); + + VBox titleBox = new VBox(title, copyright); + titleBox.setAlignment(Pos.CENTER); + titleBox.setPadding(new Insets(10)); + + // Set title at the top + VBox topContainer = new VBox(titleBox); + this.setTop(topContainer); + + menu = new VBox(); + menu.setSpacing(10); + menu.setPadding(new Insets(10)); + menu.setStyle("-fx-background-color: #f0f0f0;"); // Optional: Background color for the menu + + // Search Bar + TextField searchField = new TextField(); + searchField.setPromptText("Search..."); + + // Set up the menu + menu = new VBox(); + menu.setSpacing(10); + menu.setPadding(new Insets(10)); + menu.setStyle("-fx-background-color: #f0f0f0;"); // Optional: Background color for the menu + + // Add the Gallery menu item + Label galleryLabel = new Label("Gallery"); + galleryLabel.setStyle("-fx-font-weight: bold; cursor: hand;"); // Make it look interactive + galleryLabel.setOnMouseClicked(event -> switchToGalleryLayout()); // Switch layout on click + + Label settingsLabel = new Label("Settings"); + settingsLabel.setStyle("-fx-font-weight: bold; cursor: hand;"); + settingsLabel.setOnMouseClicked(event -> switchToSettingsLayout()); + + // Add menu items + menu.getChildren().addAll(new Label("Menu"), galleryLabel, settingsLabel); + this.setLeft(menu); // Set the menu on the left side + + // Set up the '+' button + Button addButton = new Button("+"); + addButton.setStyle("-fx-font-size: 24px; -fx-background-color: lightblue;"); + + // Set up the action for the '+' button to show the add dialog + addButton.setOnAction(e -> showAddDialog()); + + // Create an HBox to hold the button and align it to the bottom right + HBox buttonContainer = new HBox(addButton); + buttonContainer.setAlignment(Pos.BOTTOM_RIGHT); + buttonContainer.setPadding(new Insets(10)); // Optional padding + + // Add the buttonContainer to the bottom of the layout + this.setBottom(buttonContainer); + + // Optionally, set the center to another pane or leave it empty + // this.setCenter(someOtherPane); + } + + private void showAddDialog() { + Dialog dialog = new Dialog<>(); + dialog.setTitle("Add Build"); + + // Create the dialog layout + GridPane grid = new GridPane(); + grid.setHgap(10); + grid.setVgap(10); + grid.setPadding(new Insets(20)); + + TextField nameField = new TextField(); + nameField.setPromptText("Build Name"); + TextField builderField = new TextField(); + builderField.setPromptText("Builder Name"); + // Add more fields as needed... + + grid.add(new Label("Name:"), 0, 0); + grid.add(nameField, 1, 0); + grid.add(new Label("Builder:"), 0, 1); + grid.add(builderField, 1, 1); + // Add more fields to the grid as needed... + + dialog.getDialogPane().setContent(grid); + + // Add buttons for adding and canceling + dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + + // Show dialog and handle button events + dialog.setResultConverter(button -> { + if (button == ButtonType.OK) { + // Insert data into the database and handle image upload + String name = nameField.getText(); + String builder = builderField.getText(); + // Handle database insert... + System.out.println("Name: " + name + ", Builder: " + builder); // Debugging line + } + return null; + }); + + dialog.showAndWait(); + } + // This method is essential for switching to the GalleryLayout + private void switchToGalleryLayout() { + // Create an instance of GalleryLayout + GalleryLayout galleryLayout = new GalleryLayout(); + + // Set the center of the MainLayout to the GalleryLayout + this.setCenter(galleryLayout); + } + private void switchToSettingsLayout() { + SettingsLayout settingsLayout = new SettingsLayout(); + this.setCenter(settingsLayout); + } +} diff --git a/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsLayout.java b/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsLayout.java new file mode 100644 index 0000000..9002e60 --- /dev/null +++ b/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsLayout.java @@ -0,0 +1,26 @@ +package com.example.bricklog.view; + +import javafx.geometry.Insets; +//import javafx.geometry.Pos; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.VBox; + +public class SettingsLayout extends VBox { + + public SettingsLayout() { + this.setSpacing(10); + this.setPadding(new Insets(20)); + + Label settingsTitle = new Label("Settings"); + settingsTitle.setStyle("-fx-font-size: 20px; -fx-font-weight: bold;"); + + // Example settings: toggle for sound, username input + CheckBox soundToggle = new CheckBox("Enable Sound"); + TextField usernameField = new TextField(); + usernameField.setPromptText("Enter your username"); + + this.getChildren().addAll(settingsTitle, soundToggle, usernameField); + } +} diff --git a/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsWindow.java b/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsWindow.java deleted file mode 100644 index 3ea967b..0000000 --- a/BrickLog-Client/src/main/java/com/example/bricklog/view/SettingsWindow.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.example.bricklog.view; - -import javafx.application.Application; -import javafx.geometry.Insets; -import javafx.scene.Scene; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.RadioButton; -import javafx.scene.control.Slider; -import javafx.scene.control.Tab; -import javafx.scene.control.TabPane; -import javafx.scene.control.TextField; -import javafx.scene.control.ToggleGroup; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.VBox; -import javafx.stage.Stage; - -public class SettingsWindow extends Application { - - @Override - public void start(Stage primaryStage) { - primaryStage.setTitle("Settings"); - - // Create a TabPane for organizing settings - TabPane tabPane = new TabPane(); - - // Tab 1: Display Settings - Tab displayTab = new Tab("Display Settings"); - displayTab.setContent(createDisplaySettingsContent()); - displayTab.setClosable(false); - - // Tab 2: Server Settings - Tab serverTab = new Tab("Server Settings"); - serverTab.setContent(createServerSettingsContent()); - serverTab.setClosable(false); - - tabPane.getTabs().addAll(displayTab, serverTab); - - // Set up the scene - VBox vbox = new VBox(tabPane); - Scene scene = new Scene(vbox, 400, 300); - primaryStage.setScene(scene); - primaryStage.show(); - } - - private GridPane createDisplaySettingsContent() { - GridPane grid = new GridPane(); - grid.setPadding(new Insets(10)); - grid.setVgap(10); - grid.setHgap(10); - - // Font Size Adjuster - Label fontSizeLabel = new Label("Font Size:"); - Slider fontSizeSlider = new Slider(10, 30, 14); - fontSizeSlider.setShowTickLabels(true); - fontSizeSlider.setShowTickMarks(true); - - // Dark/Light Mode Toggle - Label themeLabel = new Label("Theme:"); - ToggleGroup themeGroup = new ToggleGroup(); - RadioButton lightMode = new RadioButton("Light"); - RadioButton darkMode = new RadioButton("Dark"); - lightMode.setToggleGroup(themeGroup); - darkMode.setToggleGroup(themeGroup); - lightMode.setSelected(true); - - grid.add(fontSizeLabel, 0, 0); - grid.add(fontSizeSlider, 1, 0); - grid.add(themeLabel, 0, 1); - grid.add(lightMode, 1, 1); - grid.add(darkMode, 2, 1); - - return grid; - } - - private GridPane createServerSettingsContent() { - GridPane grid = new GridPane(); - grid.setPadding(new Insets(10)); - grid.setVgap(10); - grid.setHgap(10); - - // Server IP - Label ipLabel = new Label("Server IP:"); - TextField ipField = new TextField(); - - // Authentication Token - Label authLabel = new Label("Auth Token:"); - PasswordField authField = new PasswordField(); - - grid.add(ipLabel, 0, 0); - grid.add(ipField, 1, 0); - grid.add(authLabel, 0, 1); - grid.add(authField, 1, 1); - - return grid; - } - - public static void main(String[] args) { - launch(args); - } -} diff --git a/BrickLog-Client/target/bricklog-client-0.1-SNAPSHOT.jar b/BrickLog-Client/target/bricklog-client-0.1-SNAPSHOT.jar index 71c40904f33ef9b70bb3c424c5f60f35637b0bea..6940f79d638f2fe9c8aff90d74d38f345d30c10c 100644 GIT binary patch delta 7115 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 delta 2488 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 Ct#-`- diff --git a/BrickLog-Client/target/classes/com/example/bricklog/BrickLogClientApplication.class b/BrickLog-Client/target/classes/com/example/bricklog/BrickLogClientApplication.class index 9c5fc9824142f332f50c0fd78d0363502498fb97..3c9ae1dfcf1072b1fd91c774c19b5c68b5977fce 100644 GIT binary patch literal 1086 zcmb7ETTc@~6#l07*0n8dL0SbXAoK!V6z??#g!r@&6G#){({x?i(d}-t-Ew&|G4a{I z;!A5J@dx;$jAwQmOG$lTAI_P}ne(0RJ2U(H&(B`~cJLyB0D@736oe6BSp3LO_=hu< zce|$0xhrf--5HM=A}@s{+*b_2Qn?XBj3NEn5&Ea1X19vFrZ6lwfdpZ4MV-QeVV{BR-(ACU=?c&wW&-zGqr zE2Pd4rp7t$1od$zi8_PQbwr0d=cC@{yn3amm*N-_oqsK3Se;(SmDYObvNH_hq~qq& zc1R{A$DJ0j%TAGsfDi4yqZ@C86ld|jn%Cqlqz*3Ai;!Os#2pc`C7P+^8ToK!2=<)@ z0hGzgZ6J;cS;Y@P73(x(*g%b}Jp2Xp!pN^xGtmL!7f2lsF|&Vx%<*~-xg6$(m_Mj) z3~;+Tz}<2B0s(-YQ3PouF+VJ?~kD-~YP*D}ZVI;6ocjOfiaa zUXhC>jmNX5s;p{8K0YHhDI-6tsa&_GOC?QJWLq_KA3O|$H{~^Xr4pAL@_3UDgZHGW ztM+Mz_Q>cmgJ;&raX;G8C7}aehMttF^Z9Zy%grS@t8s=v%1~r&SvFPiy(aY71=V7h zNc}&INrn!~mQ9;sPb5{tN`gF(r^T8aUG795Lzfd}n8Ng97k2v)BpeT`OX$ZQhE9vy zOR6ov?smP#HCfM-OHckTa!8Dgmr4U{*%y71>YB?(wi;3fd5)KKR zI|%2ZX%tJgu=XLs@K_6|y7QT`Z5w(g#u(VRA0s#{Q0?hNjNwLfr4r4`%4*&;%6cxU z7@A=w!kU^d*jcU2lVPE-LNKG2dYdQ0lgCRHS6GsBIUP^P^FSc(@J^C88szjpR$9}?!VK!j0#rZtVBKXT3C#4Y26>`l5lIeOKH z=bPHVp)xI2@6@`R9q*L+o3ry{5tl{HTw&O|MUh*N=rLY`GQ0uy1?yT7ik7BkpU)*Ay59QWMZP08G2_7 z!?tWwF3oYfVB{=6-o)EJyv1-pXt;%|>TAX-kEa|mNKsyq727Zg?>o3h%~ouP82)gH zYO!>kyR*O=P8r5(xs-IGa@A^tH%V$&x`s>ZCEl$5-w)j@|Jl}^4J~+QWlc+~Hc$3= zaksgTnuZhQv={G*n)*<}%P>jx17hugGTEjQdhv11@N)^TIfkE+jC$~*u5)u%lP!x| zK72!i>!BQM$D|M6)!uF`LA0n+#k;g)KOt^+hD!(S=zj%Tee^v}Pe#v&Jj9EXeUXtA#5A;?M*u+34h`k$ld~Op%nGNipj|L7@ zF}#V9Oki{a;|Wj56Npw34|#%kl76c=8Y0F%e*e)@0~XFGnug-m-iogtm{ z&v>>Cmp8GPIUK~LAeJ_;oah)2bySfVui}LU`UGJF{dv(xKS6}Bo8IFC7^B@J_TnV= z;Q|g~3FBBr46hIkcQHYAJ?TVz+Ks9fF~x_MAXChJC?gAnI0~VN95_)rhU-{C9v<@2 zjRI66w+lDPuS@U|db$Mv1g!zlPfmcNWOl5DWCJCj*Dp$|=3tsG5xPBNL0DCk-AAS2 zYNwOfLCVDt#eAU2T@PV;6^z_b!PVTIs=4bP>k-aqdC1iv3SoqjA8B&c?Ybi4*9l7- k-oPDt_S5cNlD&_Q@QJhg6kp&=d_`xXN500l_#UCZ0rDi=IRF3v diff --git a/BrickLog-Client/target/classes/com/example/bricklog/view/GalleryLayout.class b/BrickLog-Client/target/classes/com/example/bricklog/view/GalleryLayout.class new file mode 100644 index 0000000000000000000000000000000000000000..f23b1fc758e3c96c729eeb240cde7d3f2b6eb8fc GIT binary patch literal 5108 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 literal 0 HcmV?d00001 diff --git a/BrickLog-Client/target/classes/com/example/bricklog/view/MainLayout.class b/BrickLog-Client/target/classes/com/example/bricklog/view/MainLayout.class new file mode 100644 index 0000000000000000000000000000000000000000..47593c72423a8258edd2e32663777422abece8d3 GIT binary patch literal 6358 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 hPNzv4mkn%^@v7p{sR5QK&Aiy literal 0 HcmV?d00001 diff --git a/BrickLog-Client/target/classes/com/example/bricklog/view/SettingsWindow.class b/BrickLog-Client/target/classes/com/example/bricklog/view/SettingsWindow.class deleted file mode 100644 index 56ac58831dd885dd36b4d2c3edcd320d92097ae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3548 zcma)9`F9)D8NFjm8d(`2v7JS6k~%bLWy_8NlmN1E?8L-4l^qkQP88a}NSa6!k2UIO zywOuyN?Vq+Ko<&h-#1DLT_lJaO8aB~p#Ip?``(N!S+UQ-K4;#W_rCRh_j~j7pa0$Z z5Wp1vt)fdoEN?F-jCFmvVi}2?W9FAEyO>xtjkQGDa9y)ptX?w91$#|JK*5pg`l^0y zJ)u`BmYLUG(=I2bT5|=VakFf?6AHRxLyHOmXYGO!K{t9d1QAkjPs%JC^DE0a!^!A5 z%TUmpvh%vNs5_>3_ZI_h$*d|EPJP_y#uNmruI{)B_Qz6wlw2qpiL`i*4K0STM?tum zR0Mt4tD>I)+$pVLANEtYYPcEG6;bZ>j3z9-T%<*ZxX`4EsDeXH{k%~&5_!AqI<}Qy zA`5z%xgS7}ibDzx>?9V(5e2)a&1%KcHwIhr4Pa1!wm$*|_iFegj?q`%F?84Pg`2Wx z>C-4P^}*QCX6`Z?TC`W(#EfGWL^NX&4B%55K8=`y2(#PN+}8q4D$cWROi;)VYlve+ z!7d?h*;TJ>f!GxR=?RuJZ8)oj(-ygclN#<5@eX+LdJ-Ms3TPhC@EJU)KrIq!J;#zC zZ>5m8Ez8IYj#U#Ea#eZ}u2W{!9ovP6@Q8|s6&&?p-C0;e5~N2+FBGOMOToU_lM*Da zmKSo@>0@l@ii$@&i{zuXc*b5=aazHiEhQ8XMKF#jQKd72cb;9gN3|V871M1blRIhg z3{7sZ5BV3GbUu=k2+rcXu=ZI62RjO~pgSz_*z~k0N+0Gl%;SPbQE6=p?^{k}4g2tf zhKr*80@aeera-GW=CbZ=$ktHMze$?5hG9`$kHc*HO#x}SgX07@Qt;@@8Zz`9r777X z>L{C^(X8g|^*iL-P^WxQV%Z*JTXHI%>g>M`#z$~f^dFriSZS@_J=~1Y+Bh)SIR0uqDC1ie(LDVMV3=#iCvjF;p~s zvAOm**Hn<}2eksJ(xD1F_IBD7*s*D2DVj7TV}y#x>R%G=Rc0g>}qt6CRF$j2CDo zQ!7h#;A|UA#x52uW5%&pnEQ(Y|8MOidQmT!_L&vewaa0=!g8m~V#$r*1_s0U z4l6NDzvA_K8orO$72M63+U$!1V+Xpmf{=B&fj2a~**wV7hB#V`f~d_8HT(!a<|m5< z<`K|gPo9Lcv+`?Jn6%3Atgh%k5KMX{O+c>S40Jex0m;}sSt5R z1$^V)iv*kBiS0Gp0Hb=3B`}`j@wKBuTUn?OF0cqfK8!!oyMNx#E|3F%YTXIEL$Ar= zjIr*XGYyLfzm1+S-sJ~mYQ-%LX6z-SOwIS`d|UP`=+)|)?G$|No9JOHnH4`>&g2FO zwL`8=$0Adm9(_eQ_f?N=ue!xE)dS1AS?>H`Y<~R3cljS0ZsQhv!qQjD`4Uxhr^wFk zYyZUf8Ui_c#mO7zOmU;=OK-Veoe)^yC~bDj&JA+L8xx-@-xC}aj=|wN!tZg?#q)|^ z4!PKiU7Ty40LQ!dMpoe-KB=r6=2IAXKHj^#hTaAaWa~IM*T6uw_i!Dbm>(Uk;b;xV zN4sknlFOr9P6na@ZX~!74TznQ8txC?rdIc8I?K)U2RPM*OAU-?1Gh1e?H)IWJV-QDhoEV(My?BHdp3{6= zL<~g?VI9MGmKPBoTQc3py_EcPnH2CiAU&OmH=t+xk*~w3p%mw=2Fn}l2ApiKTgNJ)ToXe5 z*yzWX>iF{fXrP9#ipTR(=$jNu1{!#gHeVJ1-N^QSyN*|rAvt|bOx0*88m!^FQPmql z)c!$yq?^dU6(1D^cq`62aFt^y;EiffjyD;y$B0GjVv2> zrtvUlF-EAynf#+DVFFd|JcCI*hbg?kE66L9dL579Cpd@SU32aOMT7{8;$ zPYK)!YW@sAX9TBF!7uPjLY^VWzv5beUM}L-v=gMS8T^)7A$lCg?>XZy5OGiRz{h_j z;eqQP8~i_b;J-~+-oqAK;dc!2=wiTR<}e56p$yJ1?jTc>>uKvTvzZBpI!LZ{{c;LjyM1S diff --git a/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index bfe2cb7..32bafbc 100644 --- a/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,2 +1,3 @@ com\example\bricklog\BrickLogClientApplication.class -com\example\bricklog\view\SettingsWindow.class +com\example\bricklog\view\MainLayout.class +com\example\bricklog\view\GalleryLayout.class diff --git a/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 9d2b4dc..a0da825 100644 --- a/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/BrickLog-Client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,3 +1,5 @@ C:\Users\bryce\Documents\Git\BrickLog\BrickLog-Client\src\main\java\com\example\bricklog\BrickLogClientApplication.java C:\Users\bryce\Documents\Git\BrickLog\BrickLog-Client\src\main\java\com\example\bricklog\controller\SettingsController.java +C:\Users\bryce\Documents\Git\BrickLog\BrickLog-Client\src\main\java\com\example\bricklog\view\MainLayout.java C:\Users\bryce\Documents\Git\BrickLog\BrickLog-Client\src\main\java\com\example\bricklog\view\SettingsWindow.java +C:\Users\bryce\Documents\Git\BrickLog\BrickLog-Client\src\main\java\com\example\bricklog\view\GalleryLayout.java