diff --git a/app/src/main/java/org/toop/app/menu/MainMenu.java b/app/src/main/java/org/toop/app/menu/MainMenu.java index 19d8040..b8d4ca2 100644 --- a/app/src/main/java/org/toop/app/menu/MainMenu.java +++ b/app/src/main/java/org/toop/app/menu/MainMenu.java @@ -4,28 +4,39 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.*; +import org.toop.framework.asset.AssetManager; +import org.toop.framework.asset.resources.CssAsset; +import org.toop.framework.asset.resources.ImageAsset; public final class MainMenu extends Menu { public MainMenu() { - final ImageView background = new ImageView(); - final Button tictactoe = createButton("Tic Tac Toe", () -> {}); final Button reversi = createButton("Reversi", () -> {}); final Button sudoku = createButton("Sudoku", () -> {}); final Button battleship = createButton("Battleship", () -> {}); final Button other = createButton("Other", () -> {}); - final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, background, other); + final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, battleship, other); gamesBox.setAlignment(Pos.TOP_CENTER); final Button credits = createButton("Credits", () -> {}); final Button options = createButton("Options", () -> {}); final Button quit = createButton("Quit", () -> {}); - final VBox creditsBox = new VBox(10, credits, options, quit); + final VBox creditsBox = new VBox(credits, options, quit); creditsBox.setAlignment(Pos.BOTTOM_CENTER); - //pane = new StackPane(background, grid); - pane.getStylesheets().add(getClass().getResource("/style/main.css").toExternalForm()); + VBox grid = new VBox(20, gamesBox, creditsBox); + grid.setAlignment(Pos.CENTER); + + ImageAsset backgroundImage = (ImageAsset) AssetManager.getByName("background.jpg").getResource(); + ImageView background = new ImageView(backgroundImage.getImage()); + background.setPreserveRatio(false); + background.fitWidthProperty().bind(grid.widthProperty()); + background.fitHeightProperty().bind(grid.heightProperty()); + + pane = new StackPane(background, grid); + CssAsset css = (CssAsset) AssetManager.getByName("main.css").getResource(); + pane.getStylesheets().add(css.getUrl()); } } \ No newline at end of file diff --git a/app/src/main/java/org/toop/app/menu/QuitMenu.java b/app/src/main/java/org/toop/app/menu/QuitMenu.java index fe359da..6d2bf5e 100644 --- a/app/src/main/java/org/toop/app/menu/QuitMenu.java +++ b/app/src/main/java/org/toop/app/menu/QuitMenu.java @@ -8,6 +8,8 @@ import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.scene.text.Text; import org.toop.app.App; +import org.toop.framework.asset.AssetManager; +import org.toop.framework.asset.resources.CssAsset; public final class QuitMenu extends Menu { public QuitMenu() { @@ -43,6 +45,7 @@ public final class QuitMenu extends Menu { StackPane.setAlignment(box, Pos.CENTER); pane = modalContainer; - pane.getStylesheets().add(getClass().getResource("/style/quit.css").toExternalForm()); + CssAsset css = (CssAsset) AssetManager.getByName("quit.css").getResource(); + pane.getStylesheets().add(css.getUrl()); } } \ No newline at end of file diff --git a/app/src/main/resources/image/game/battleship.png b/app/src/main/resources/assets/image/battleship.png similarity index 100% rename from app/src/main/resources/image/game/battleship.png rename to app/src/main/resources/assets/image/battleship.png diff --git a/app/src/main/resources/image/game/other.png b/app/src/main/resources/assets/image/other.png similarity index 100% rename from app/src/main/resources/image/game/other.png rename to app/src/main/resources/assets/image/other.png diff --git a/app/src/main/resources/image/game/reversi.png b/app/src/main/resources/assets/image/reversi.png similarity index 100% rename from app/src/main/resources/image/game/reversi.png rename to app/src/main/resources/assets/image/reversi.png diff --git a/app/src/main/resources/image/game/sudoku.png b/app/src/main/resources/assets/image/sudoku.png similarity index 100% rename from app/src/main/resources/image/game/sudoku.png rename to app/src/main/resources/assets/image/sudoku.png diff --git a/app/src/main/resources/image/game/tictactoe.png b/app/src/main/resources/assets/image/tictactoe.png similarity index 100% rename from app/src/main/resources/image/game/tictactoe.png rename to app/src/main/resources/assets/image/tictactoe.png diff --git a/app/src/main/resources/style/main.css b/app/src/main/resources/assets/style/main.css similarity index 100% rename from app/src/main/resources/style/main.css rename to app/src/main/resources/assets/style/main.css diff --git a/app/src/main/resources/style/quit.css b/app/src/main/resources/assets/style/quit.css similarity index 100% rename from app/src/main/resources/style/quit.css rename to app/src/main/resources/assets/style/quit.css diff --git a/app/src/main/resources/style/style.css b/app/src/main/resources/assets/style/style.css similarity index 100% rename from app/src/main/resources/style/style.css rename to app/src/main/resources/assets/style/style.css diff --git a/framework/src/main/java/org/toop/framework/asset/resources/CssAsset.java b/framework/src/main/java/org/toop/framework/asset/resources/CssAsset.java new file mode 100644 index 0000000..367fe80 --- /dev/null +++ b/framework/src/main/java/org/toop/framework/asset/resources/CssAsset.java @@ -0,0 +1,17 @@ +package org.toop.framework.asset.resources; + +import java.io.File; + +@FileExtension({"css"}) +public class CssAsset extends BaseResource { + private final String url; + + public CssAsset(File file) { + super(file); + this.url = file.toURI().toString(); + } + + public String getUrl() { + return url; + } +}