diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-22 01:28:11 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-22 01:28:11 -0400 | 
| commit | 231c511304915d80aab89d28779d7445ad21ef70 (patch) | |
| tree | 976b3f2e19e84d71acec86607ee16c9c1d9bdef1 /src/main/java/net/sowgro/npehero/devmenu | |
| parent | d29ac15fa2311cb664f14334f3043adfac4cf5f9 (diff) | |
| download | NPEhero-231c511304915d80aab89d28779d7445ad21ef70.tar.gz NPEhero-231c511304915d80aab89d28779d7445ad21ef70.tar.bz2 NPEhero-231c511304915d80aab89d28779d7445ad21ef70.zip  | |
Refactor: pages now extend Page
Diffstat (limited to 'src/main/java/net/sowgro/npehero/devmenu')
7 files changed, 137 insertions, 138 deletions
diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java index f5c29bd..11ee274 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java @@ -14,20 +14,18 @@ import javafx.scene.control.Button;  import javafx.scene.control.TextField;  import javafx.scene.layout.VBox;  import javafx.scene.text.Text; -import net.sowgro.npehero.main.Difficulty; -import net.sowgro.npehero.main.Note; -import net.sowgro.npehero.main.Sound; -import net.sowgro.npehero.main.ValidIndicator; +import net.sowgro.npehero.main.*; -public class DiffEditor extends Pane +public class DiffEditor extends Page  {      Difficulty diff;      ScrollPane scroll; -    public Pane prev; +    HBox content = new HBox(); -    public DiffEditor(Difficulty diff, Pane prev) -    { +    public Page prev; + +    public DiffEditor(Difficulty diff, Page prev) {          this.diff = diff;          this.prev = prev; @@ -42,7 +40,7 @@ public class DiffEditor extends Pane          TextField priority = new TextField(diff.priority+"");          Button editNotes = new Button("Edit notes"); -        editNotes.setOnAction(e -> { +        editNotes.setOnAction(_ -> {              if (diff.level.song == null) {                  Driver.setMenu(new ErrorDisplay("You must import a song file before editing the notes!", this));              } @@ -52,19 +50,17 @@ public class DiffEditor extends Pane          });          Button oldEditNotes = new Button("Edit notes (legacy)"); -        oldEditNotes.setOnAction(_ -> { -            Driver.setMenu(new ErrorDisplay( -                    "Warning: \nThe legacy editor will overwrite all existing notes!", -                    this, -                    new NotesEditor(diff, this)) -            ); -        }); +        oldEditNotes.setOnAction(_ -> Driver.setMenu(new ErrorDisplay( +                "Warning: \nThe legacy editor will overwrite all existing notes!", +                this, +                new NotesEditor(diff, this)) +        ));          Button editScores = new Button("Clear leaderboard"); -        editScores.setOnAction(e -> diff.leaderboard.entries.clear()); +        editScores.setOnAction(_ -> diff.leaderboard.entries.clear());          Button playLevel = new Button("Play level"); -        playLevel.setOnAction(e -> { +        playLevel.setOnAction(_ -> {              if (diff.isValid && diff.level.isValid) {                  Driver.setMenu(new LevelSurround(diff.level, diff, this));              } @@ -74,7 +70,7 @@ public class DiffEditor extends Pane          });          Button save = new Button("Save"); -        save.setOnAction(e -> { //assigns text fields to values +        save.setOnAction(_ -> { //assigns text fields to values              diff.title = title.getText();  //            diff.bpm = Double.parseDouble(bpm.getText());  //            diff.numBeats = Integer.parseInt(numBeats.getText()); @@ -82,8 +78,8 @@ public class DiffEditor extends Pane              diff.write();          }); -        HBox content = new HBox(); -        ScrollPane scroll = new ScrollPane(content); +        HBox scrollContent = new HBox(); +        ScrollPane scroll = new ScrollPane(scrollContent);          scroll.setFitToWidth(true);          this.scroll = scroll;          scroll.getStyleClass().remove("scroll-pane"); @@ -96,9 +92,9 @@ public class DiffEditor extends Pane              lanes[i] = new Pane();          } -        content.getChildren().addAll(lanes); -        content.setSpacing(5); -        content.setAlignment(Pos.CENTER); +        scrollContent.getChildren().addAll(lanes); +        scrollContent.setSpacing(5); +        scrollContent.setAlignment(Pos.CENTER);          diff.notes.list.forEach(n -> lanes[n.lane].getChildren().add(drawNote(n))); @@ -131,18 +127,17 @@ public class DiffEditor extends Pane          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,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;      }      // Duplicates of NotesEditor2 methods, should be made generic and combined diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java index e27e90d..63c09bb 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java +++ b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java @@ -1,6 +1,5 @@  package net.sowgro.npehero.devmenu; -import javafx.beans.property.ReadOnlyBooleanWrapper;  import javafx.beans.property.ReadOnlyStringWrapper;  import javafx.geometry.Insets;  import javafx.geometry.Pos; @@ -11,12 +10,14 @@ import javafx.scene.layout.VBox;  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 DiffList extends Pane +public class DiffList extends Page  { +    private HBox content = new HBox(); -    public DiffList(Level level, Pane prev) +    public DiffList(Level level, Page prev)      {          //sets up table view: requires special getters, setters and constructors to work          TableView<Difficulty> diffs = new TableView<>(); @@ -50,9 +51,8 @@ public class DiffList extends Pane              return row ;          }); -//        diffs.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35));          diffs.setPrefWidth(400); -        diffs.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.67)); +        diffs.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.67));          Button edit = new Button("Edit");          edit.setOnAction(e -> Driver.setMenu(new DiffEditor(diffs.getSelectionModel().getSelectedItem(), this))); @@ -99,17 +99,6 @@ public class DiffList extends Pane              Driver.setMenu(prev);          }); -        VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); -        centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,exit); - -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty()); -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); -          create.setOnAction(_ -> {              if (create.isSelected()) {                  sidebar.getChildren().add(newLevelBox); @@ -127,7 +116,17 @@ public class DiffList extends Pane              create.setSelected(false);          }); -        super.getChildren().add(rootBox); +        VBox centerBox = new VBox(); +        centerBox.getChildren().addAll(main, exit); +        centerBox.setSpacing(10); +        centerBox.setAlignment(Pos.CENTER); + +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER);      } +    @Override +    public Pane getContent() { +        return content; +    }  }
\ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java b/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java index e5cd857..dc4b40c 100644 --- a/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java +++ b/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java @@ -8,10 +8,19 @@ 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.Page;  import net.sowgro.npehero.main.Sound; -public class ErrorDisplay extends Pane { -    public ErrorDisplay(String message, Pane prev) { +public class ErrorDisplay extends Page { + +    private HBox content = new HBox(); + +    /** +     * Error display with a message and Back button +     * @param message The message to display +     * @param prev The destination of the close button +     */ +    public ErrorDisplay(String message, Page prev) {          Label main = new Label(message);          main.getStyleClass().add("box"); @@ -23,35 +32,35 @@ public class ErrorDisplay extends Pane {          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,exit); -        centerBox.setMinWidth(400); - -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty()); -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); +        centerBox.setAlignment(Pos.CENTER); -        super.getChildren().add(rootBox); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER);      } -    public ErrorDisplay(String message, Pane prev, Pane next) { +    /** +     * Error display with a message and Cancel and Proceed buttons +     * @param message The message to display +     * @param prev The destination of the Cancel button +     * @param next The destination of the Proceed button +     */ +    public ErrorDisplay(String message, Page prev, Page next) {          Label main = new Label(message);          main.getStyleClass().add("box");          main.setPadding(new Insets(10));          Button exit = new Button();          exit.setText("Cancel"); -        exit.setOnAction(e -> { +        exit.setOnAction(_ -> {              Sound.playSfx(Sound.BACKWARD);              Driver.setMenu(prev);          });          Button nextButton = new Button();          nextButton.setText("Proceed"); -        nextButton.setOnAction(e -> { +        nextButton.setOnAction(_ -> {              Sound.playSfx(Sound.FORWARD);              Driver.setMenu(next);          }); @@ -61,17 +70,16 @@ public class ErrorDisplay extends Pane {          bottom.setSpacing(10);          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, bottom);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,bottom); -        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/devmenu/LevelEditor.java b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java index 7efcd05..003f929 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java @@ -10,18 +10,17 @@ import javafx.scene.text.Text;  import javafx.stage.FileChooser;  import javafx.stage.FileChooser.ExtensionFilter;  import net.sowgro.npehero.Driver; -import net.sowgro.npehero.main.Difficulty; -import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.Sound; -import net.sowgro.npehero.main.ValidIndicator; +import net.sowgro.npehero.main.*; + +public class LevelEditor extends Page +{ +    private HBox content = new HBox(); -public class LevelEditor extends Pane -{       private File selectedSong = null;      private File selectedPreview = null;      private File selectedBackground = null; -    public LevelEditor(Level level, Pane prev) +    public LevelEditor(Level level, Page prev)      {          Text folderNameLabel = new Text("Folder name");          TextField folderName = new TextField(); @@ -175,17 +174,16 @@ public class LevelEditor extends Pane          bottom.setSpacing(10);          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(mainBox, bottom);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(mainBox,bottom); -        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;      }  }
\ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java index 6bdb893..7d899bd 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java @@ -1,6 +1,5 @@  package net.sowgro.npehero.devmenu; -import javafx.beans.property.ReadOnlyBooleanWrapper;  import javafx.beans.property.ReadOnlyStringWrapper;  import javafx.geometry.Insets;  import javafx.geometry.Pos; @@ -12,12 +11,12 @@ import javafx.scene.layout.VBox;  import net.sowgro.npehero.gui.MainMenu;  import net.sowgro.npehero.main.Level;  import net.sowgro.npehero.main.Levels; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound; -import java.time.Year; - -public class LevelList extends Pane +public class LevelList extends Page  { +    private HBox content = new HBox();      public LevelList()      { @@ -56,7 +55,7 @@ public class LevelList extends Pane              return row ;          });          levels.setPrefWidth(600); -        levels.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); +        levels.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));          Button edit = new Button("Edit");          edit.setOnAction(e -> Driver.setMenu(new LevelEditor(levels.getSelectionModel().getSelectedItem(), this))); @@ -104,16 +103,12 @@ public class LevelList extends Pane          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,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);          create.setOnAction(_ -> {              if (create.isSelected()) { @@ -131,7 +126,10 @@ public class LevelList extends Pane              sidebar.getChildren().clear();              create.setSelected(false);          }); +    } -        super.getChildren().add(rootBox); +    @Override +    public Pane getContent() { +        return content;      }  }
\ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java index e024ca4..3754847 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java @@ -17,9 +17,10 @@ import javafx.scene.layout.VBox;  import javafx.scene.text.Text;  import net.sowgro.npehero.main.Control;  import net.sowgro.npehero.main.Difficulty; +import net.sowgro.npehero.main.Page;  import net.sowgro.npehero.main.Sound; -public class NotesEditor extends Pane +public class NotesEditor extends Page  {      Text help;      String t1 = "Press Start to begin recording. Use the same keys. Note: existing notes will be overwritten."; @@ -27,7 +28,10 @@ public class NotesEditor extends Pane      Difficulty diff;      Timer timer;      PrintWriter writer; -    public NotesEditor(Difficulty diff, Pane prev) + +    private HBox content = new HBox(); + +    public NotesEditor(Difficulty diff, Page prev)      {          this.diff = diff; @@ -53,18 +57,12 @@ public class NotesEditor extends Pane          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main,exit); -        centerBox.setMinWidth(400); - -        HBox rootBox = new HBox(); -        rootBox.prefWidthProperty().bind(super.prefWidthProperty()); -        rootBox.prefHeightProperty().bind(super.prefHeightProperty()); -        rootBox.getChildren().add(centerBox); -        rootBox.setAlignment(Pos.CENTER); +        centerBox.setAlignment(Pos.CENTER); -        super.getChildren().add(rootBox); +        content.getChildren().add(centerBox); +        content.setAlignment(Pos.CENTER);          try {              writer = new PrintWriter(diff.notes.getFile(), "UTF-8"); @@ -104,6 +102,11 @@ public class NotesEditor extends Pane          Driver.primaryStage.setOnCloseRequest(e -> stop());      } +    @Override +    public Pane getContent() { +        return content; +    } +      private void start()      {          Sound.playSong(new Media(diff.level.song.toString())); diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java index 46d0235..22c3f5e 100644 --- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java +++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java @@ -38,15 +38,14 @@ public class NotesEditor2 extends Page {      ListProperty<Note> noteList;      DiffEditor prev; +    private HBox content = new HBox(); +      public NotesEditor2(Difficulty diff, DiffEditor prev) {          this.diff = diff;          noteList = diff.notes.deepCopyList();          m = new MediaPlayer(new Media(diff.level.song.toURI().toString()));          this.prev = prev; -    } -    @Override -    public Pane getContent() {          // Buttons          VBox actionBox = new VBox();          actionBox.setSpacing(10); @@ -103,11 +102,11 @@ public class NotesEditor2 extends Page {          playhead.setFill(Color.WHITE);          playheadLane.getChildren().add(playhead); -        HBox content = new HBox(); -        content.setAlignment(Pos.CENTER); -        content.setSpacing(10); -        content.getChildren().addAll(playheadLane, rulerLane); -        content.getChildren().addAll(lanes); +        HBox scrollContent = new HBox(); +        scrollContent.setAlignment(Pos.CENTER); +        scrollContent.setSpacing(10); +        scrollContent.getChildren().addAll(playheadLane, rulerLane); +        scrollContent.getChildren().addAll(lanes);          Line playheadLine = new Line();          playheadLine.setStartX(0); @@ -121,7 +120,7 @@ public class NotesEditor2 extends Page {          contentOverlay.setPickOnBounds(false);          StackPane stackPane = new StackPane(); -        stackPane.getChildren().addAll(content, contentOverlay); +        stackPane.getChildren().addAll(scrollContent, contentOverlay);          scroll.setContent(stackPane);  //        scroll.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35)); @@ -169,8 +168,8 @@ public class NotesEditor2 extends Page {          // Draw and update ruler          AtomicInteger lastRuler = new AtomicInteger(-1); -        content.heightProperty().addListener(_ -> { -            int ruler1 = (int) screenPosToSecond(content.getHeight()); +        scrollContent.heightProperty().addListener(_ -> { +            int ruler1 = (int) screenPosToSecond(scrollContent.getHeight());              for (int i = lastRuler.get() + 1; i <= ruler1; i++) {                  Label l = new Label(toMinAndSec(i)+" -");                  l.layoutYProperty().bind(secondToScreenPos(i)); @@ -181,19 +180,15 @@ public class NotesEditor2 extends Page {          });          VBox centerBox = new VBox(); -        centerBox.setAlignment(Pos.CENTER); +        centerBox.getChildren().addAll(main, exit);          centerBox.setSpacing(10); -        centerBox.getChildren().addAll(main, buttons); -        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);          // write notes on key press -        rootBox.addEventFilter(KeyEvent.KEY_PRESSED, e -> { +        content.addEventFilter(KeyEvent.KEY_PRESSED, e -> {              KeyCode k = e.getCode();              if (k == Control.LANE0.getKey())           { WriteNote(0); }              if (k == Control.LANE1.getKey())           { WriteNote(1); } @@ -228,7 +223,7 @@ public class NotesEditor2 extends Page {          scrollLock.setOnAction(_ -> {              if (scrollLock.isSelected()) {                  // vvalue takes in a value between 0 and 1 NOT a pixel value -                scroll.vvalueProperty().bind(playhead.layoutYProperty().subtract(scroll.heightProperty().divide(2)).divide(content.heightProperty().subtract(scroll.heightProperty()))); +                scroll.vvalueProperty().bind(playhead.layoutYProperty().subtract(scroll.heightProperty().divide(2)).divide(scrollContent.heightProperty().subtract(scroll.heightProperty())));              }              else {                  scroll.vvalueProperty().unbind(); @@ -289,8 +284,11 @@ public class NotesEditor2 extends Page {                  helpBox.getChildren().clear();              }          }); +    } -        return rootBox; +    @Override +    public Pane getContent() { +        return content;      }      @Override  | 
