diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
8 files changed, 111 insertions, 125 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java index b620b17..1d1a73d 100644 --- a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java @@ -9,12 +9,16 @@ import javafx.scene.input.KeyEvent;  import javafx.scene.layout.*;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.main.Control; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound;  import java.util.List;  import java.util.Map; -public class ControlEditor extends Pane { +public class ControlEditor extends Page { + +    private final HBox content = new HBox(); +      public ControlEditor() {          GridPane controls = new GridPane(); @@ -26,29 +30,8 @@ public class ControlEditor extends Pane {          controls.setVgap(20);          controls.setHgap(40); - -//        Pane dummy1 = new Pane(); -//        Pane dummy2 = new Pane(); -//        Pane dummy3 = new Pane(); -//        controls.add(dummy1, 0, 0); -//        controls.add(dummy2, 1, 0); -//        controls.add(dummy3, 2, 0); -// -//        Runnable r = () -> { -//            var vpw = scrollPane.getViewportBounds().getWidth(); -//            var itemswidth = dummy1.getWidth() + dummy2.getWidth() + dummy3.getWidth(); -//            var out = ((vpw - itemswidth) / 2) -10; -//            if (out < 10) { -//                controls.setHgap(10); -//            } -//            else { -//                controls.setHgap(out); -//            } -//        }; -//        scrollPane.viewportBoundsProperty().addListener((_, _, _) -> r.run()); -          scrollPane.setPrefWidth(700); -        scrollPane.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); +        scrollPane.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));          Button exit = new Button();          exit.setText("Back"); @@ -58,16 +41,12 @@ public class ControlEditor extends Pane {          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(scrollPane, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(scrollPane,exit); -        centerBox.setMinWidth(400); +        centerBox.setAlignment(Pos.CENTER); -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty()); -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER);          ToggleGroup tg = new ToggleGroup();          int i = 0; @@ -98,15 +77,15 @@ public class ControlEditor extends Pane {                          @Override                          public void handle(KeyEvent k) {                              control.keyProperty.set(k.getCode()); -                            rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, this); +                            content.removeEventFilter(KeyEvent.KEY_PRESSED, this);                              controlButton.setSelected(false);                              k.consume();                          }                      };                      if (controlButton.isSelected()) { -                        rootBox.addEventFilter(KeyEvent.KEY_PRESSED, keyListener); +                        content.addEventFilter(KeyEvent.KEY_PRESSED, keyListener);                      } else { -                        rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener); +                        content.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener);                      }                  });                  tg.getToggles().add(controlButton); @@ -122,8 +101,11 @@ public class ControlEditor extends Pane {              }          } +    } -        super.getChildren().add(rootBox); +    @Override +    public Pane getContent() { +        return content;      }      public String keyToString(KeyCode key) { diff --git a/src/main/java/net/sowgro/npehero/gui/GameOver.java b/src/main/java/net/sowgro/npehero/gui/GameOver.java index cd277e6..dd23f5f 100755 --- a/src/main/java/net/sowgro/npehero/gui/GameOver.java +++ b/src/main/java/net/sowgro/npehero/gui/GameOver.java @@ -1,7 +1,5 @@  package net.sowgro.npehero.gui; -import javafx.event.ActionEvent; -import javafx.event.EventHandler;  import javafx.geometry.Insets;  import javafx.geometry.Pos;  import javafx.scene.control.Button; @@ -14,12 +12,14 @@ import javafx.scene.text.Text;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.main.Difficulty;  import net.sowgro.npehero.main.Level; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound; -public class GameOver extends Pane +public class GameOver extends Page  { +    HBox content = new HBox(); -    public GameOver(Level level, Difficulty diff, Pane lastMenu, int score2) +    public GameOver(Level level, Difficulty diff, Page prev, int score2)      {          Text topText = new Text();          topText.setText("Level Complete"); @@ -59,20 +59,15 @@ public class GameOver extends Pane          nameLabel.getStyleClass().add("t3");          TextField name = new TextField(); -//        name.getStyleClass().remove("text-filed"); -//        name.getStyleClass().add("button");          name.setText("name");          Button save = new Button();          save.setText("Add"); -        save.setOnAction(new EventHandler<ActionEvent>() { //this is the same as the "e ->" thing but it allows more than one line to be added  -            @Override -            public void handle(ActionEvent event) { -                Sound.playSfx(Sound.FORWARD); -                save.setDisable(true); -                name.setDisable(true); -                diff.leaderboard.add(name.getText(), score2); -            } +        save.setOnAction(_ -> { +            Sound.playSfx(Sound.FORWARD); +            save.setDisable(true); +            name.setDisable(true); +            diff.leaderboard.add(name.getText(), score2);          });          BorderPane b = new BorderPane(); @@ -90,32 +85,31 @@ public class GameOver extends Pane          exit.setText("Back");          exit.setOnAction(e -> {              Sound.playSfx(Sound.BACKWARD); -            Driver.setMenu(lastMenu); +            Driver.setMenu(prev);          });          Button replay = new Button();          replay.setText("Replay");          replay.setOnAction(e -> {              Sound.playSfx(Sound.FORWARD); -            Driver.setMenu(new LevelSurround(level, diff, lastMenu)); +            Driver.setMenu(new LevelSurround(level, diff, prev));          });          BorderPane buttonBox = new BorderPane();          buttonBox.setLeft(exit);          buttonBox.setRight(replay); -          VBox centerBox = new VBox();          centerBox.getChildren().addAll(topText,levelDetailsBox,scoreBox,nameBox,buttonBox);          centerBox.setSpacing(10);          centerBox.setAlignment(Pos.CENTER); -        HBox rootBox = new HBox(); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty());  -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER); +    } -        super.getChildren().add(rootBox); +    @Override +    public Pane getContent() { +        return content;      }  } diff --git a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java index c769264..46ce22f 100755 --- a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java +++ b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java @@ -10,22 +10,20 @@ import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox;  import net.sowgro.npehero.Driver; -import net.sowgro.npehero.main.Difficulty; -import net.sowgro.npehero.main.LeaderboardEntry; -import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.Sound; +import net.sowgro.npehero.main.*; -public class LeaderboardView extends Pane +public class LeaderboardView extends Page  { +    private HBox content = new HBox(); -    public LeaderboardView(Level level, Difficulty diff, Pane prev) +    public LeaderboardView(Difficulty diff, Page prev)      {          //sets up table view: requires java bean getters, setters and constructors to work -        TableView<LeaderboardEntry> scores = new TableView<LeaderboardEntry>(); +        TableView<LeaderboardEntry> scores = new TableView<>(); -        TableColumn<LeaderboardEntry, String> nameCol = new TableColumn<LeaderboardEntry, String>("Name"); -        TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<LeaderboardEntry, String>("Score"); -        TableColumn<LeaderboardEntry, String> dateCol = new TableColumn<LeaderboardEntry, String>("Date"); +        TableColumn<LeaderboardEntry, String> nameCol = new TableColumn<>("Name"); +        TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<>("Score"); +        TableColumn<LeaderboardEntry, String> dateCol = new TableColumn<>("Date");          scores.getColumns().add(nameCol);          scores.getColumns().add(scoreCol); @@ -39,8 +37,8 @@ public class LeaderboardView extends Pane          scores.getStyleClass().add("unselectable"); -        scores.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25));  -        scores.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); +        scores.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); +        scores.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));          scoreCol.setSortType(SortType.DESCENDING);          scores.getSortOrder().add(scoreCol); @@ -53,17 +51,16 @@ public class LeaderboardView extends Pane          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(scores, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(scores,exit); -        centerBox.setMinWidth(400); +        centerBox.setAlignment(Pos.CENTER); -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty());  -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER); +    } -        super.getChildren().add(rootBox); +    @Override +    public Pane getContent() { +        return content;      }  } diff --git a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java index df5529e..afbdce4 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -28,7 +28,7 @@ public class LevelDetails extends VBox       *        * @param level: the selected level on the right side       */ -    public LevelDetails(Level level) +    public LevelDetails(Level level, LevelSelector ls)      {          VBox rightBox = new VBox();          rightBox.prefWidthProperty().bind(super.prefWidthProperty()); @@ -99,13 +99,13 @@ public class LevelDetails extends VBox              play.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); //disables play button when no difficulty is selected              play.setOnAction(e -> {                  Sound.playSfx(Sound.FORWARD); -                Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); +                Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), ls));              });              leaderboard.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull());              leaderboard.setOnAction(e -> {                  Sound.playSfx(Sound.FORWARD); -                Driver.setMenu(new LeaderboardView(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); +                Driver.setMenu(new LeaderboardView((Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu()));              }); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java index eb08a99..1c840b4 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -11,10 +11,12 @@ import javafx.scene.layout.VBox;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.main.Level;  import net.sowgro.npehero.main.Levels; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound; -public class LevelSelector extends Pane -{    +public class LevelSelector extends Page +{ +    private final HBox content = new HBox();      public LevelSelector()      { @@ -32,8 +34,8 @@ public class LevelSelector extends Pane          levels.setItems(Levels.validList); -        levels.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25));  -        levels.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); +        levels.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); +        levels.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));          levels.setMinWidth(300); @@ -52,18 +54,18 @@ public class LevelSelector extends Pane          Pane rightBox = new Pane();          addDetails(rightBox, levels); - -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty());  -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().addAll(leftBox, rightBox); -        rootBox.setAlignment(Pos.CENTER); -        rootBox.setSpacing(10); +        content.getChildren().addAll(leftBox, rightBox); +        content.setSpacing(10); +        content.setAlignment(Pos.CENTER);          levels.getStyleClass().remove("list-view");          //listens for change in selected item of the list          levels.getSelectionModel().selectedItemProperty().addListener(_ -> addDetails(rightBox, levels)); -        super.getChildren().add(rootBox); +    } + +    @Override +    public Pane getContent() { +        return content;      }      /** @@ -73,16 +75,16 @@ public class LevelSelector extends Pane       */      private void addDetails(Pane rightBox, TableView<Level> levels)      { -        VBox details = new LevelDetails(levels.getSelectionModel().getSelectedItem()); +        VBox details = new LevelDetails(levels.getSelectionModel().getSelectedItem(), this);          if (! rightBox.getChildren().isEmpty())          {              rightBox.getChildren().remove(0);          }          rightBox.getChildren().add(details); -        details.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.37));  -        details.prefHeightProperty().bind(super.prefHeightProperty()); -        details.maxWidthProperty().bind(super.prefWidthProperty().multiply(0.37));  -        details.maxHeightProperty().bind(super.prefHeightProperty()); +        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());      }  } diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java index 2a0a51a..05614ff 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java @@ -14,12 +14,14 @@ import javafx.scene.text.Text;  import net.sowgro.npehero.main.Difficulty;  import net.sowgro.npehero.main.Level;  import net.sowgro.npehero.gameplay.ScoreController; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound; -public class LevelSurround extends Pane -{    +public class LevelSurround extends Page +{ +    private final HBox content = new HBox(); -    public LevelSurround(Level level, Difficulty difficulty, Pane prev) +    public LevelSurround(Level level, Difficulty difficulty, Page prev)      {          ScoreController sc = new ScoreController();          SongPlayer game = new SongPlayer(level, difficulty, prev, sc); @@ -102,13 +104,13 @@ public class LevelSurround extends Pane          comboBox.setBottomAnchor(comboTextBox, 0.0);          comboBox.setPadding(new Insets(10)); -        game.minWidthProperty().bind(super.prefHeightProperty().multiply(0.66)); -        game.minHeightProperty().bind(super.prefHeightProperty()); +        game.minWidthProperty().bind(content.heightProperty().multiply(0.66)); +        game.minHeightProperty().bind(content.heightProperty());          game.getStyleClass().add("box"); -        comboBox.minWidthProperty().bind(super.prefWidthProperty().subtract(game.minWidthProperty()).divide(2)); -        scoreBox.minWidthProperty().bind(super.prefWidthProperty().subtract(game.minWidthProperty()).divide(2)); +        comboBox.minWidthProperty().bind(Driver.primaryPane.widthProperty().subtract(game.minWidthProperty()).divide(2)); +        scoreBox.minWidthProperty().bind(Driver.primaryPane.widthProperty().subtract(game.minWidthProperty()).divide(2));          HBox centerBox = new HBox();          centerBox.getChildren().addAll(comboBox, game, scoreBox); @@ -117,10 +119,13 @@ public class LevelSurround extends Pane          StackPane root = new StackPane();          root.getChildren().addAll(centerBox, topBar); -        super.getChildren().add(root); -        root.prefWidthProperty().bind(super.prefWidthProperty()); -        root.prefHeightProperty().bind(super.prefHeightProperty()); +        content.getChildren().add(root);          game.start();      } + +    @Override +    public Pane getContent() { +        return content; +    }  }
\ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/gui/MainMenu.java b/src/main/java/net/sowgro/npehero/gui/MainMenu.java index 6511f22..f13deac 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -4,6 +4,7 @@ import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.effect.BlurType;  import javafx.scene.effect.DropShadow; +import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox;  import javafx.scene.paint.Color; @@ -16,9 +17,9 @@ import net.sowgro.npehero.main.Sound;  public class MainMenu extends Page { -    @Override -    public Pane getContent() { +    private final HBox content = new HBox(); +    public MainMenu() {          DropShadow dropShadow = new DropShadow();          dropShadow.setRadius(50.0);          dropShadow.setColor(Color.WHITE); @@ -68,10 +69,12 @@ public class MainMenu extends Page {          centerBox.getChildren().addAll(title, buttonBox);          centerBox.setSpacing(10); -        VBox rootBox = new VBox(); -        rootBox.setAlignment(Pos.CENTER); -        rootBox.getChildren().add(centerBox); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER); +    } -        return rootBox; +    @Override +    public Pane getContent() { +        return content;      }  } diff --git a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java index b00420a..d9bad03 100755 --- a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java @@ -11,11 +11,13 @@ import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox;  import javafx.scene.text.Text;  import net.sowgro.npehero.Driver; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Settings;  import net.sowgro.npehero.main.Sound; -public class SettingsEditor extends Pane +public class SettingsEditor extends Page  { +    private final HBox content = new HBox();      public SettingsEditor()      { @@ -99,16 +101,17 @@ public class SettingsEditor extends Pane          options.setSpacing(10);          options.setAlignment(Pos.CENTER);          options.getChildren().addAll(musicBox,SFXBox,fullBox,controlsBox,buttonBox); -        options.maxWidthProperty().bind(super.prefWidthProperty().multiply(0.25));  +        options.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.25));          options.setMinWidth(400); -        options.prefHeightProperty().bind(super.prefHeightProperty()); - -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty());  -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(options); -        rootBox.setAlignment(Pos.CENTER); -        super.getChildren().add(rootBox); +        options.prefHeightProperty().bind(content.prefHeightProperty()); + +        content.getChildren().add(options); +        content.setAlignment(Pos.CENTER); +    } + +    @Override +    public Pane getContent() { +        return content;      }  }  | 
