diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2024-08-29 00:02:14 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2024-08-29 00:02:14 -0400 | 
| commit | 721eb61fc0f2db09611a220d523be764e0817da6 (patch) | |
| tree | d764a1abee1520570ef3c2cd241d3131c14bdb88 /src/main | |
| parent | ef00dc1104a15cc33a54a05bc752f9add14f3397 (diff) | |
| download | NPEhero-721eb61fc0f2db09611a220d523be764e0817da6.tar.gz NPEhero-721eb61fc0f2db09611a220d523be764e0817da6.tar.bz2 NPEhero-721eb61fc0f2db09611a220d523be764e0817da6.zip | |
Improve resizing of level selector
Diffstat (limited to 'src/main')
| -rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelDetails.java | 45 | ||||
| -rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelSelector.java | 46 | 
2 files changed, 32 insertions, 59 deletions
| diff --git a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java index 38e8a01..11602aa 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -2,10 +2,7 @@ package net.sowgro.npehero.gui;  import javafx.geometry.Insets;  import javafx.geometry.Pos; -import javafx.scene.control.Button; -import javafx.scene.control.RadioButton; -import javafx.scene.control.ScrollPane; -import javafx.scene.control.ToggleGroup; +import javafx.scene.control.*;  import javafx.scene.image.Image;  import javafx.scene.image.ImageView;  import javafx.scene.layout.BorderPane; @@ -13,8 +10,6 @@ import javafx.scene.layout.FlowPane;  import javafx.scene.layout.HBox;  import javafx.scene.layout.VBox;  import javafx.scene.text.Text; -import javafx.scene.text.TextAlignment; -import javafx.scene.text.TextBoundsType;  import javafx.scene.text.TextFlow;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.levelapi.Difficulty; @@ -29,10 +24,10 @@ public class LevelDetails extends VBox       */      public LevelDetails(Level level, LevelSelector ls)      { -        VBox rightBox = new VBox(); -        rightBox.prefWidthProperty().bind(super.prefWidthProperty()); -        rightBox.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); -        rightBox.setMinWidth(350); +        BorderPane rightBox = new BorderPane(); +        rightBox.prefWidthProperty().bind(super.widthProperty()); +        rightBox.prefHeightProperty().bind(super.heightProperty().multiply(0.75)); +//        rightBox.setMinWidth(350);          rightBox.getStyleClass().add("box");          rightBox.setPadding(new Insets(5)); @@ -44,24 +39,16 @@ public class LevelDetails extends VBox          leaderboard.setDisable(true);          leaderboard.setText("Leaderboard"); -        if (level == null) //if no level is selected from the list on the left -        { -            Text desc = new Text(); +        if (level == null) { //if no level is selected from the list on the left +            Label desc = new Label();              desc.setText("Select a level from the left pane");              desc.getStyleClass().add("t3"); -            desc.wrappingWidthProperty().bind(super.prefWidthProperty().subtract(10)); -            desc.setTextAlignment(TextAlignment.CENTER); - -            rightBox.setAlignment(Pos.CENTER); -            rightBox.getChildren().addAll(desc); +            rightBox.setCenter(desc);          } - -        else -        { +        else {              Text title = new Text();              title.setText(level.title);              title.getStyleClass().add("t1"); -//            title.setLineSpacing(0.5);              Text artist = new Text();              artist.setText(level.artist); @@ -84,7 +71,7 @@ public class LevelDetails extends VBox              ImageView imageView = new ImageView();              Image image = level.preview;              imageView.setImage(image); -            imageView.fitWidthProperty().bind(super.prefWidthProperty().multiply(0.5)); +            imageView.fitWidthProperty().bind(rightBox.widthProperty().multiply(0.5));              imageView.setPreserveRatio(true);              VBox imageHolder = new VBox(imageView);              imageHolder.setAlignment(Pos.CENTER); @@ -130,23 +117,19 @@ public class LevelDetails extends VBox              detailsScroll.getStyleClass().remove("scroll-pane");              detailsScroll.setFitToWidth(true);              details.minHeightProperty().bind(detailsScroll.heightProperty()); +            detailsScroll.setFitToHeight(true); -            rightBox.getChildren().add(detailsScroll); +            rightBox.setCenter(detailsScroll);              rightBox.setPadding(new Insets(5));          } -        VBox rightSide = new VBox(); -        rightSide.setAlignment(Pos.CENTER_RIGHT); -        rightSide.setSpacing(10); -          HBox buttonBox = new HBox();          buttonBox.getChildren().addAll(leaderboard,play);          buttonBox.setSpacing(5);          buttonBox.setAlignment(Pos.CENTER_RIGHT); -        rightSide.getChildren().addAll(rightBox,buttonBox); - +        super.setSpacing(10);          super.setAlignment(Pos.CENTER_RIGHT); -        super.getChildren().add(rightSide); +        super.getChildren().addAll(rightBox,buttonBox);      }  } diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java index a92499a..35856df 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -5,6 +5,7 @@ import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.control.TableColumn;  import javafx.scene.control.TableView; +import javafx.scene.layout.BorderPane;  import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox; @@ -20,7 +21,6 @@ public class LevelSelector extends Page      public LevelSelector()      { -        //sets up table view: requires special getters, setters and constructors to work          TableView<Level> levels = new TableView<>();          TableColumn<Level,String> titleCol = new TableColumn<>("Title"); @@ -36,11 +36,7 @@ public class LevelSelector extends Page          artistCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().artist));          levels.setItems(Levels.getValidList()); - -        levels.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); -        levels.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75)); -        levels.setMinWidth(300); - +        levels.prefHeightProperty().bind(content.heightProperty().multiply(0.75));          Button exit = new Button();          exit.setText("Back"); @@ -54,16 +50,27 @@ public class LevelSelector extends Page          leftBox.setSpacing(10);          leftBox.getChildren().addAll(levels,exit); -        Pane rightBox = new Pane(); -        addDetails(rightBox, levels); +        BorderPane rightBox = new BorderPane(new LevelDetails(levels.getSelectionModel().getSelectedItem(), this)); +//        details1.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); +        rightBox.prefHeightProperty().bind(content.heightProperty()); +//        details1.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); +//        details1.maxHeightProperty().bind(content.prefHeightProperty()); -        content.getChildren().addAll(leftBox, rightBox); -        content.setSpacing(10); +        HBox centerBox = new HBox(leftBox, rightBox); +        centerBox.setSpacing(10); +        content.getChildren().addAll(centerBox); +//        content.setSpacing(10);          content.setAlignment(Pos.CENTER); +        leftBox.prefWidthProperty().bind(centerBox.widthProperty().multiply(0.4)); +        rightBox.prefWidthProperty().bind(centerBox.widthProperty().multiply(0.6)); +        centerBox.setPrefWidth(1200);          levels.getStyleClass().remove("list-view");          //listens for change in selected item of the list -        levels.getSelectionModel().selectedItemProperty().addListener(_ -> addDetails(rightBox, levels)); +        levels.getSelectionModel().selectedItemProperty().addListener(_ -> { +            rightBox.setCenter(new LevelDetails(levels.getSelectionModel().getSelectedItem(), this)); +            System.out.println("Got here"); +        });      }      @Override @@ -71,21 +78,4 @@ public class LevelSelector extends Page          return content;      } -    /** -     * adds corresponding level details pane to the right side -     */ -    private void addDetails(Pane rightBox, TableView<Level> levels) -    { -        VBox details = new LevelDetails(levels.getSelectionModel().getSelectedItem(), this); -        if (! rightBox.getChildren().isEmpty()) -        { -            rightBox.getChildren().remove(0); -        } -        rightBox.getChildren().add(details); -        details.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); -        details.prefHeightProperty().bind(content.prefHeightProperty()); -        details.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); -        details.maxHeightProperty().bind(content.prefHeightProperty()); -    } -  } | 
