aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/gui
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-07-16 17:33:03 -0400
committersowgro <tpoke.ferrari@gmail.com>2024-07-16 17:33:03 -0400
commitc2137b3fc13ee89cfbaedd1e4c2f48101fa07a9b (patch)
tree1f4e385f156a62420e29d23691dad26e238e2942 /src/main/java/net/sowgro/npehero/gui
parentd8b8d88e97cfd732ea0e81847762e93412377dd9 (diff)
downloadNPEhero-c2137b3fc13ee89cfbaedd1e4c2f48101fa07a9b.tar.gz
NPEhero-c2137b3fc13ee89cfbaedd1e4c2f48101fa07a9b.tar.bz2
NPEhero-c2137b3fc13ee89cfbaedd1e4c2f48101fa07a9b.zip
Fix control editor and file writing for notes editor
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
-rw-r--r--src/main/java/net/sowgro/npehero/gui/ControlEditor.java106
1 files changed, 58 insertions, 48 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java
index 637a9d8..ecd2fab 100644
--- a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java
+++ b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java
@@ -1,23 +1,28 @@
package net.sowgro.npehero.gui;
+import javafx.beans.InvalidationListener;
+import javafx.beans.binding.DoubleBinding;
+import javafx.beans.property.Property;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
+import javafx.scene.Node;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
-import javafx.scene.layout.GridPane;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.Pane;
-import javafx.scene.layout.VBox;
+import javafx.scene.layout.*;
+import javafx.scene.paint.Color;
import net.sowgro.npehero.Driver;
import net.sowgro.npehero.main.Control;
import net.sowgro.npehero.main.SoundController;
import org.w3c.dom.events.Event;
+import java.util.List;
+import java.util.Map;
+
public class ControlEditor extends Pane {
public ControlEditor() {
@@ -27,8 +32,8 @@ public class ControlEditor extends Pane {
scrollPane.getStyleClass().add("box");
scrollPane.setPadding(new Insets(10));
controls.setPadding(new Insets(10));
- controls.setHgap(40);
controls.setVgap(20);
+ controls.setHgap(40);
scrollPane.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35));
@@ -55,51 +60,56 @@ public class ControlEditor extends Pane {
rootBox.setAlignment(Pos.CENTER);
ToggleGroup tg = new ToggleGroup();
- for (int i = 0; i < Control.values().length; i++) {
- Control control = Control.values()[i];
-
-
- // label
- Label label = new Label(control.label);
- controls.add(label, 0, i);
-
- // control button
- ToggleButton controlButton = new ToggleButton("<err>");
- controlButton.setText(keyToString(control.keyProperty.get()));
- control.keyProperty.addListener(_ -> {
- System.out.println(control.label + " set to " + control.keyProperty.get());
- System.out.println(controlButton.getText());
+ int i = 0;
+ for (Map.Entry<String, List<Control>> section : Control.sections) {
+ // section header
+ Label sectionLabel = new Label(section.getKey());
+ sectionLabel.getStyleClass().add("gray");
+ BorderPane sectionBox = new BorderPane();
+ sectionBox.setCenter(sectionLabel);
+ controls.add(sectionBox, 0, i, 3, 1);
+ i++;
+
+ for (Control control : section.getValue()) {
+
+ // label
+ Label label = new Label(control.label);
+ controls.add(label, 0, i);
+
+ // control button
+ ToggleButton controlButton = new ToggleButton("<err>");
controlButton.setText(keyToString(control.keyProperty.get()));
- net.sowgro.npehero.main.Control.writeToFile();
- });
- controlButton.setOnMouseClicked(_ -> {
- EventHandler<KeyEvent> keyListener = new EventHandler<>() {
- @Override
- public void handle(KeyEvent k) {
- control.keyProperty.set(k.getCode());
- rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, this);
- controlButton.setSelected(false);
- k.consume();
+ control.keyProperty.addListener(_ -> {
+ controlButton.setText(keyToString(control.keyProperty.get()));
+ Control.writeToFile();
+ });
+ controlButton.setOnMouseClicked(_ -> {
+ EventHandler<KeyEvent> keyListener = new EventHandler<>() {
+ @Override
+ public void handle(KeyEvent k) {
+ control.keyProperty.set(k.getCode());
+ rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, this);
+ controlButton.setSelected(false);
+ k.consume();
+ }
+ };
+ if (controlButton.isSelected()) {
+ rootBox.addEventFilter(KeyEvent.KEY_PRESSED, keyListener);
+ } else {
+ rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener);
}
- };
- if (controlButton.isSelected()) {
- System.out.println("Event registered");
- rootBox.addEventFilter(KeyEvent.KEY_PRESSED, keyListener);
- }
- else {
- System.out.println("Event un-registered");
- rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener);
- }
- });
- tg.getToggles().add(controlButton);
- controls.add(controlButton, 1, i);
-
- // label button
- Button resetButton = new Button("Reset");
- resetButton.setOnMouseClicked(_ -> {
- control.keyProperty.set(control.defaultKey);
- });
- controls.add(resetButton, 2, i);
+ });
+ tg.getToggles().add(controlButton);
+ controls.add(controlButton, 1, i);
+
+ // reset button
+ Button resetButton = new Button("Reset");
+ resetButton.setOnMouseClicked(_ -> {
+ control.keyProperty.set(control.defaultKey);
+ });
+ controls.add(resetButton, 2, i);
+ i++;
+ }
}