diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2023-05-23 00:39:57 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2023-05-23 00:39:57 -0400 |
commit | 005c645b3cd991079dfd9bac2f207cdd2068d161 (patch) | |
tree | ed82f11d248a1a0e08ea0ed82380913250a0f278 /src/gui/Leaderboard.java | |
parent | f941b529f1cb12312041516e6799ece0f6df2cac (diff) | |
download | NPEhero-005c645b3cd991079dfd9bac2f207cdd2068d161.tar.gz NPEhero-005c645b3cd991079dfd9bac2f207cdd2068d161.tar.bz2 NPEhero-005c645b3cd991079dfd9bac2f207cdd2068d161.zip |
finish gui, add new leaderboard system, redesign settings, switch lists to tables
Diffstat (limited to 'src/gui/Leaderboard.java')
-rw-r--r-- | src/gui/Leaderboard.java | 31 |
1 files changed, 25 insertions, 6 deletions
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<String> scores = new ListView<String>(); - ObservableList<String> 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<LeaderboardEntry> scores = new TableView<LeaderboardEntry>(); + + TableColumn<LeaderboardEntry, String> nameCol = new TableColumn<LeaderboardEntry, String>("Name"); + TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<LeaderboardEntry, String>("Score"); + //scoreCol.minWidthProperty().bind(scores.widthProperty().subtract(nameCol.widthProperty())); + + scores.getColumns().add(nameCol); + scores.getColumns().add(scoreCol); + + nameCol.setCellValueFactory(new PropertyValueFactory<LeaderboardEntry, String>("name")); + scoreCol.setCellValueFactory(new PropertyValueFactory<LeaderboardEntry, String>("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); |