From 005c645b3cd991079dfd9bac2f207cdd2068d161 Mon Sep 17 00:00:00 2001 From: sowgro Date: Tue, 23 May 2023 00:39:57 -0400 Subject: finish gui, add new leaderboard system, redesign settings, switch lists to tables --- src/gui/Leaderboard.java | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'src/gui/Leaderboard.java') diff --git a/src/gui/Leaderboard.java b/src/gui/Leaderboard.java index 36cbd90..5b7c4c8 100644 --- a/src/gui/Leaderboard.java +++ b/src/gui/Leaderboard.java @@ -6,9 +6,15 @@ import javafx.collections.ObservableList; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ListView; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; +import main.Difficulty; +import main.LeaderboardEntry; +import main.Level; public class Leaderboard extends Pane { @@ -17,19 +23,32 @@ public class Leaderboard extends Pane * the creation of these UI elements are mostly not commented due to their repetitive and self explanatory nature. * style classes are defined in the style.css file. */ - public Leaderboard() + public Leaderboard(Level level, Difficulty diff, Pane prev) { - ListView scores = new ListView(); - ObservableList scoreList= FXCollections.observableArrayList ("Test Score 1", "Test Score 2", "Test Score 3", "Test Score 4"); - scores.getStyleClass().remove("list-view"); + //sets up table view: requires special getters, setters and constructors to work + TableView scores = new TableView(); + + TableColumn nameCol = new TableColumn("Name"); + TableColumn scoreCol = new TableColumn("Score"); + //scoreCol.minWidthProperty().bind(scores.widthProperty().subtract(nameCol.widthProperty())); + + scores.getColumns().add(nameCol); + scores.getColumns().add(scoreCol); + + nameCol.setCellValueFactory(new PropertyValueFactory("name")); + scoreCol.setCellValueFactory(new PropertyValueFactory("score")); + + scores.setItems(diff.leaderboard); + scores.getStyleClass().add("unselectable"); - scores.setItems(scoreList); + scores.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25)); scores.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); + Button exit = new Button(); exit.setText("Back"); - exit.setOnAction(e -> Driver.setMenu(new MainMenu())); + exit.setOnAction(e -> Driver.setMenu(prev)); VBox centerBox = new VBox(); centerBox.setAlignment(Pos.CENTER); -- cgit v1.2.3