diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2024-08-28 19:50:58 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2024-08-28 19:50:58 -0400 | 
| commit | c3554cb31774afc8bf335b761649b7aacf7128c5 (patch) | |
| tree | c7b40548cfb8500fd716fd65fb03513a231c0f4a /src/main/java/net/sowgro/npehero/gui | |
| parent | f3a037701799169066c6cb12b3c7023029b8b281 (diff) | |
| download | NPEhero-c3554cb31774afc8bf335b761649b7aacf7128c5.tar.gz NPEhero-c3554cb31774afc8bf335b761649b7aacf7128c5.tar.bz2 NPEhero-c3554cb31774afc8bf335b761649b7aacf7128c5.zip  | |
Fix sizing of tables, improve display of level details, improve logo
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
5 files changed, 65 insertions, 36 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java index 7fd288b..937cdf8 100644 --- a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java @@ -31,6 +31,7 @@ public class ControlEditor extends Page {          controls.setPadding(new Insets(10));          controls.setVgap(20);          controls.setHgap(40); +        scrollPane.setFitToWidth(true);          scrollPane.setPrefWidth(700);          scrollPane.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75)); @@ -70,6 +71,7 @@ public class ControlEditor extends Page {                  // control button                  ToggleButton controlButton = new ToggleButton("<err>");                  controlButton.setText(keyToString(control.keyProperty.get())); +                GridPane.setHgrow(controlButton, Priority.ALWAYS);                  control.keyProperty.addListener(_ -> {                      controlButton.setText(keyToString(control.keyProperty.get()));                      try { diff --git a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java index 1a87e27..9176d76 100755 --- a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java +++ b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java @@ -27,6 +27,10 @@ public class LeaderboardView extends Page          TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<>("Score");          TableColumn<LeaderboardEntry, String> dateCol = new TableColumn<>("Date"); +        nameCol.prefWidthProperty().bind(scores.widthProperty().multiply(0.45)); +        scoreCol.prefWidthProperty().bind(scores.widthProperty().multiply(0.23)); +        dateCol.prefWidthProperty().bind(scores.widthProperty().multiply(0.27)); +          scores.getColumns().add(nameCol);          scores.getColumns().add(scoreCol);          scores.getColumns().add(dateCol); @@ -39,7 +43,7 @@ public class LeaderboardView extends Page          scores.getStyleClass().add("unselectable"); -        scores.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); +        scores.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.30));          scores.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));          scoreCol.setSortType(SortType.DESCENDING); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java index 1ab4ae4..844b523 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -8,11 +8,13 @@ import javafx.scene.control.ScrollPane;  import javafx.scene.control.ToggleGroup;  import javafx.scene.image.Image;  import javafx.scene.image.ImageView; +import javafx.scene.layout.BorderPane;  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; @@ -22,10 +24,7 @@ import net.sowgro.npehero.main.Sound;  public class LevelDetails extends VBox  {      /** -     * this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes. -     * 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. -     *  +     * Create a LevelDetails Pane       * @param level: the selected level on the right side       */      public LevelDetails(Level level, LevelSelector ls) @@ -59,17 +58,10 @@ public class LevelDetails extends VBox          else          { -            VBox details = new VBox(); -            details.setPadding(new Insets(5)); - -            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.getStyleClass().add("t1"); +//            title.setLineSpacing(0.5);              Text artist = new Text();              artist.setText(level.artist); @@ -79,11 +71,22 @@ public class LevelDetails extends VBox              desc.setText(level.desc);              desc.getStyleClass().add("t3"); -            ImageView previewView = new ImageView(); -            Image preview = level.preview; -            previewView.setImage(preview); -            previewView.fitWidthProperty().bind(super.prefWidthProperty().multiply(0.5)); -            previewView.setPreserveRatio(true); +            TextFlow titleFlow = new TextFlow(title); +            titleFlow.setLineSpacing(0); +            TextFlow artistFlow = new TextFlow(artist); +            VBox titleArtistDesc = new VBox(titleFlow, artistFlow); +            if (level.desc != null && !level.desc.isEmpty()) { + +            } +            titleArtistDesc.setSpacing(-5); + +            ImageView imageView = new ImageView(); +            Image image = level.preview; +            imageView.setImage(image); +            imageView.fitWidthProperty().bind(super.prefWidthProperty().multiply(0.5)); +            imageView.setPreserveRatio(true); +            VBox imageHolder = new VBox(imageView); +            imageHolder.setAlignment(Pos.CENTER);              FlowPane diffSelector = new FlowPane();              diffSelector.setAlignment(Pos.CENTER); @@ -107,17 +110,25 @@ public class LevelDetails extends VBox              leaderboard.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull());              leaderboard.setOnAction(e -> {                  Sound.playSfx(Sound.FORWARD); -                Driver.setMenu(new LeaderboardView((Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); +                Driver.setMenu(new LeaderboardView((Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), ls));              }); -              HBox diffBox = new HBox();              diffSelector.prefWidthProperty().bind(diffBox.widthProperty());              diffBox.getChildren().add(diffSelector); -             -            details.setSpacing(10); -            details.getChildren().addAll(new TextFlow(title), new TextFlow(artist), new TextFlow(desc), previewView, diffBox); + +            BorderPane details = new BorderPane(); +            details.setCenter(imageHolder); +            details.setBottom(diffBox); +            details.setTop(titleArtistDesc); +            details.setPadding(new Insets(5)); + +            ScrollPane detailsScroll = new ScrollPane(details); +            detailsScroll.prefHeightProperty().bind(rightBox.prefHeightProperty()); +            detailsScroll.prefWidthProperty().bind(rightBox.prefWidthProperty()); +            detailsScroll.getStyleClass().remove("scroll-pane");              detailsScroll.setFitToWidth(true); +            details.minHeightProperty().bind(detailsScroll.heightProperty());              rightBox.getChildren().add(detailsScroll);              rightBox.setPadding(new Insets(5)); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java index b2c028b..a92499a 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -21,10 +21,13 @@ public class LevelSelector extends Page      public LevelSelector()      {          //sets up table view: requires special getters, setters and constructors to work -        TableView<Level> levels = new TableView<Level>(); +        TableView<Level> levels = new TableView<>(); -        TableColumn<Level,String> titleCol = new TableColumn<Level,String>("Title"); -        TableColumn<Level,String> artistCol = new TableColumn<Level,String>("Artist"); +        TableColumn<Level,String> titleCol = new TableColumn<>("Title"); +        TableColumn<Level,String> artistCol = new TableColumn<>("Artist"); + +        titleCol.prefWidthProperty().bind(levels.widthProperty().multiply(0.5)); +        artistCol.prefWidthProperty().bind(levels.widthProperty().multiply(0.45));          levels.getColumns().add(titleCol);          levels.getColumns().add(artistCol); @@ -41,7 +44,7 @@ public class LevelSelector extends Page          Button exit = new Button();          exit.setText("Back"); -        exit.setOnAction(e -> { +        exit.setOnAction(_ -> {              Driver.setMenu(new MainMenu());              Sound.playSfx(Sound.BACKWARD);          }); @@ -70,8 +73,6 @@ public class LevelSelector extends Page      /**       * adds corresponding level details pane to the right side -     * @param rightBox -     * @param levels       */      private void addDetails(Pane rightBox, TableView<Level> levels)      { diff --git a/src/main/java/net/sowgro/npehero/gui/MainMenu.java b/src/main/java/net/sowgro/npehero/gui/MainMenu.java index 6160245..ac5a2f3 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -10,6 +10,7 @@ import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox;  import javafx.scene.paint.Color;  import javafx.scene.text.Text; +import javafx.scene.text.TextBoundsType;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.editor.LevelList;  import net.sowgro.npehero.main.Page; @@ -26,10 +27,22 @@ public class MainMenu extends Page {          dropShadow.setColor(Color.WHITE);          dropShadow.setBlurType(BlurType.GAUSSIAN); -        Text title = new Text(); -        title.setText("NPE Hero"); -        title.getStyleClass().add("t0"); -        title.setEffect(dropShadow); +        Text npehero = new Text(); +        npehero.setBoundsType(TextBoundsType.VISUAL); +        npehero.setText("NPE HERO"); +        npehero.getStyleClass().add("t0"); +        npehero.setEffect(dropShadow); + +        Text lessthan = new Text("<"); +        lessthan.setBoundsType(TextBoundsType.VISUAL); +        lessthan.getStyleClass().add("t0e"); + +        Text greaterthan = new Text(">"); +        greaterthan.setBoundsType(TextBoundsType.VISUAL); +        greaterthan.getStyleClass().add("t0e"); +        HBox title = new HBox(lessthan, npehero, greaterthan); +        title.setSpacing(20); +        title.setAlignment(Pos.CENTER);          Button play = new Button();          play.setText("Play"); @@ -55,9 +68,7 @@ public class MainMenu extends Page {          exit.setText("Quit");          exit.setOnAction(_ -> {              Sound.playSfx(Sound.BACKWARD); -//            Driver.quit();              Platform.exit(); -//            System.exit(0);          });          VBox buttonBox = new VBox(); @@ -68,7 +79,7 @@ public class MainMenu extends Page {          VBox centerBox = new VBox();          centerBox.setAlignment(Pos.CENTER);          centerBox.getChildren().addAll(title, buttonBox); -        centerBox.setSpacing(10); +        centerBox.setSpacing(30);          content.getChildren().add(centerBox);          content.setAlignment(Pos.CENTER);  | 
