diff --git a/javatui/commands/Command.java b/javatui/commands/Command.java new file mode 100644 index 0000000..066951f --- /dev/null +++ b/javatui/commands/Command.java @@ -0,0 +1,10 @@ +package commands; + +public abstract class Command { + + /** + * Runs the Command + */ + public abstract void run(); + +} diff --git a/javatui/events/WidgetAdd.java b/javatui/events/WidgetAdd.java new file mode 100644 index 0000000..cc1b08a --- /dev/null +++ b/javatui/events/WidgetAdd.java @@ -0,0 +1,57 @@ +package events; + +import controller.App; +import javafx.event.EventHandler; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.*; +import javafx.scene.input.*; +import javafx.scene.Node; + +import java.util.Random; + +/** + * UIOP to spawn widgets + * u = left + * i = down + * o = up + * p = right + */ +public class WidgetAdd implements EventHandler { + + // Find better way of doing this, maybe each widget has x,y associated with it? + // private int yAmount = 0; + private int xAmount = 0; + + @Override + public void handle(KeyEvent keyEvent) { + System.out.println(keyEvent.getCode().getName()); + if (keyEvent.getCode() == KeyCode.P) { // Spawn Widget Right + xAmount++; + StackPane sp = new StackPane(); + sp.setStyle( + String.format("-fx-background-color: rgb(%02d, %02d, %02d);", + new Random().nextInt(256), + new Random().nextInt(256), + new Random().nextInt(256))); + App.root.getChildren().add(sp); + for(Node n : App.root.getChildren()){ + if(n instanceof StackPane){ + ((StackPane)n).setMinSize(App.scene.getWidth() / xAmount, App.scene.getHeight()); + } + } + } else if (keyEvent.getCode() == KeyCode.U) { // Delete Widget Left + App.root.getChildren().remove(App.root.getChildren().size() - 1); + xAmount--; + for(Node n : App.root.getChildren()){ + if(n instanceof StackPane){ + ((StackPane)n).setMinSize(App.scene.getWidth() /xAmount, App.scene.getHeight()); + } + } + } else if (keyEvent.getCode() == KeyCode.I) { // Spawn Widget Down + + } else if (keyEvent.getCode() == KeyCode.O) { // Delete Widget Up + + } + } + +}