diff options
Diffstat (limited to '')
-rw-r--r-- | src/gui/LevelDetails.java | 73 |
1 files changed, 45 insertions, 28 deletions
diff --git a/src/gui/LevelDetails.java b/src/gui/LevelDetails.java index 427ede0..8ca4811 100644 --- a/src/gui/LevelDetails.java +++ b/src/gui/LevelDetails.java @@ -3,31 +3,28 @@ package gui; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; -import javafx.scene.control.ListView; -import javafx.scene.control.ToggleButton; +import javafx.scene.control.RadioButton; +import javafx.scene.control.ScrollPane; import javafx.scene.control.ToggleGroup; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; -import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; -import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.scene.text.TextAlignment; +import javafx.scene.text.TextFlow; import main.Level; public class LevelDetails extends VBox { public LevelDetails(Level level) { - VBox details = new VBox(); - details.prefWidthProperty().bind(super.prefWidthProperty()); - details.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); - details.maxWidthProperty().bind(super.prefWidthProperty()); - details.maxHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); - details.getStyleClass().add("textBox"); - details.setPadding(new Insets(10)); + VBox rightBox = new VBox(); + rightBox.prefWidthProperty().bind(super.prefWidthProperty()); + rightBox.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); + rightBox.getStyleClass().add("textBox"); Button play = new Button(); play.setDisable(true); @@ -40,22 +37,33 @@ public class LevelDetails extends VBox desc.setFill(Color.WHITE); desc.wrappingWidthProperty().bind(super.prefWidthProperty().subtract(10)); desc.setTextAlignment(TextAlignment.CENTER); - details.setAlignment(Pos.CENTER); - details.getChildren().addAll(desc); + + rightBox.setAlignment(Pos.CENTER); + rightBox.getChildren().addAll(desc); } else { + VBox details = new VBox(); + + ScrollPane detailsScroll = new ScrollPane(details); + detailsScroll.prefHeightProperty().bind(rightBox.prefHeightProperty()); + detailsScroll.prefWidthProperty().bind(rightBox.prefWidthProperty()); + detailsScroll.getStyleClass().remove("scroll-pane"); + Text title = new Text(); title.setText(level.title); title.setFill(Color.WHITE); - title.setFont(new Font(50)); - title.wrappingWidthProperty().bind(super.prefWidthProperty().subtract(10)); + title.setStyle("-fx-font-size: 50;"); + + Text artist = new Text(); + artist.setText(level.aritst); + artist.setFill(Color.WHITE); + artist.setStyle("-fx-font-size: 30;"); Text desc = new Text(); desc.setText(level.desc); desc.setFill(Color.WHITE); - desc.wrappingWidthProperty().bind(super.prefWidthProperty().subtract(10)); ImageView previewView = new ImageView(); Image preview = level.preview; @@ -63,31 +71,40 @@ public class LevelDetails extends VBox previewView.fitWidthProperty().bind(super.prefWidthProperty().multiply(0.5)); previewView.setPreserveRatio(true); - HBox diffBox = new HBox(); - diffBox.setPadding(new Insets(30,0,0,0)); - HBox diffSelector = new HBox(); + FlowPane diffSelector = new FlowPane(); diffSelector.setAlignment(Pos.CENTER); ToggleGroup diffToggleGroup = new ToggleGroup(); for (String diff : level.diffList) { - ToggleButton temp = new ToggleButton(); + RadioButton temp = new RadioButton(); + temp.getStyleClass().remove("radio-button"); + temp.getStyleClass().add("button"); + temp.getStyleClass().add("custom-radio-button"); temp.setText(diff); + temp.setUserData(diff); diffToggleGroup.getToggles().add(temp); diffSelector.getChildren().add(temp); } play.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); - + play.setOnAction(e -> Driver.setMenu(new LevelSurround(level, (String)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu()))); + HBox diffBox = new HBox(); + diffSelector.prefWidthProperty().bind(diffBox.widthProperty()); diffBox.getChildren().add(diffSelector); - details.getChildren().addAll(title,desc,previewView, diffBox); - play.setOnAction(e -> Driver.setMenu(new LevelSurround(level, "easy", Driver.getMenu()))); + + details.setSpacing(10); + details.getChildren().addAll(new TextFlow(title), new TextFlow(artist), new TextFlow(desc), previewView, diffBox); + detailsScroll.setFitToWidth(true); + + rightBox.getChildren().add(detailsScroll); + rightBox.setPadding(new Insets(5)); } - VBox rightBox = new VBox(); - rightBox.setAlignment(Pos.CENTER_RIGHT); - rightBox.setSpacing(10); - rightBox.getChildren().addAll(details,play); + VBox rightSide = new VBox(); + rightSide.setAlignment(Pos.CENTER_RIGHT); + rightSide.setSpacing(10); + rightSide.getChildren().addAll(rightBox,play); super.setAlignment(Pos.CENTER_RIGHT); - super.getChildren().add(rightBox); + super.getChildren().add(rightSide); } } |