From d78b873de0a78eeb58daf68c35eacc9b29d37af1 Mon Sep 17 00:00:00 2001 From: James Daly <dalyjame@cse.msu.edu> Date: Mon, 24 Jun 2019 22:57:37 -0400 Subject: [PATCH] Penciled out a FormeBuilder --- Builder/src/fmon/builder/FormeBuilder.fxml | 112 ++++++++++++++++++++ Builder/src/fmon/builder/FormeBuilder.scala | 98 +++++++++++++++++ 2 files changed, 210 insertions(+) create mode 100644 Builder/src/fmon/builder/FormeBuilder.fxml create mode 100644 Builder/src/fmon/builder/FormeBuilder.scala diff --git a/Builder/src/fmon/builder/FormeBuilder.fxml b/Builder/src/fmon/builder/FormeBuilder.fxml new file mode 100644 index 0000000..a2189f8 --- /dev/null +++ b/Builder/src/fmon/builder/FormeBuilder.fxml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ComboBox?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.ListView?> +<?import javafx.scene.control.Spinner?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.RowConstraints?> +<?import javafx.scene.layout.VBox?> + + +<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fmon.builder.FormeBuilder"> + <left> + <VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER"> + <children> + <ListView fx:id="formes" prefWidth="200.0" /> + <HBox prefHeight="16.0" prefWidth="100.0"> + <children> + <Button mnemonicParsing="false" onAction="#addForme" text="+" /> + </children> + </HBox> + </children> + </VBox> + </left> + <center> + <GridPane BorderPane.alignment="CENTER"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="78.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="10.0" prefWidth="98.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="127.0" minWidth="10.0" prefWidth="62.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="162.0" minWidth="10.0" prefWidth="125.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="137.0" minWidth="10.0" prefWidth="137.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + <RowConstraints vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <Label text="Name:" /> + <TextField fx:id="name" promptText="Name" GridPane.columnIndex="1" /> + <TextField fx:id="height" promptText="Height (m)" GridPane.columnIndex="1" GridPane.rowIndex="1" /> + <TextField fx:id="weight" promptText="Weight (kg)" GridPane.columnIndex="1" GridPane.rowIndex="2" /> + <Label text="Height:" GridPane.rowIndex="1" /> + <Label text="Weight:" GridPane.rowIndex="2" /> + <Label text="Level Rate:" GridPane.rowIndex="3" /> + <ComboBox fx:id="levelRate" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3" /> + <Label text="Catch Rate:" GridPane.rowIndex="4" /> + <ComboBox fx:id="genderRatio" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="5" /> + <Label text="Gender Ratio:" GridPane.rowIndex="5" /> + <ListView fx:id="abilities" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="3" /> + <Label text="Abilities:" GridPane.columnIndex="2" /> + <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="3" GridPane.rowIndex="1"> + <children> + <ComboBox fx:id="abilityList" prefHeight="25.0" prefWidth="100.0" /> + <Button mnemonicParsing="false" onAction="#addAbility" text="+" /> + </children> + </HBox> + <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="3" GridPane.rowIndex="3"> + <children> + <ComboBox fx:id="hiddenAbilityList" prefHeight="25.0" prefWidth="100.0" /> + <Button mnemonicParsing="false" onAction="#addHiddenAbility" text="+" /> + </children> + </HBox> + <ListView fx:id="hiddenAbilities" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="3" GridPane.rowIndex="2" /> + <Label text="Hidden:" GridPane.columnIndex="2" GridPane.rowIndex="2" /> + <Label text="Egg Group:" GridPane.columnIndex="2" GridPane.rowIndex="4" /> + <ListView fx:id="eggGroup" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="3" GridPane.rowIndex="4" /> + <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="3" GridPane.rowIndex="5"> + <children> + <ComboBox fx:id="eggGroupList" prefHeight="25.0" prefWidth="100.0" /> + <Button mnemonicParsing="false" onAction="#addEggGroup" text="+" /> + </children> + </HBox> + <ListView fx:id="movePool" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="4" GridPane.rowIndex="3" GridPane.rowSpan="8" /> + <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="4" GridPane.rowIndex="11"> + <children> + <ComboBox fx:id="moveList" prefHeight="25.0" prefWidth="110.0" /> + <Button mnemonicParsing="false" onAction="#addMove" text="+" /> + </children> + </HBox> + <Spinner fx:id="catchRate" GridPane.columnIndex="1" GridPane.rowIndex="4" /> + <Spinner fx:id="hp" GridPane.columnIndex="1" GridPane.rowIndex="6" /> + <Spinner fx:id="spd" GridPane.columnIndex="1" GridPane.rowIndex="11" /> + <Spinner fx:id="patk" GridPane.columnIndex="1" GridPane.rowIndex="7" /> + <Spinner fx:id="mdef" GridPane.columnIndex="1" GridPane.rowIndex="10" /> + <Spinner fx:id="pdef" GridPane.columnIndex="1" GridPane.rowIndex="8" /> + <Spinner fx:id="matk" GridPane.columnIndex="1" GridPane.rowIndex="9" /> + <Label text="Hp" GridPane.rowIndex="6" /> + <Label text="Phys Atk" GridPane.rowIndex="7" /> + <Label text="Phys Def" GridPane.rowIndex="8" /> + <Label text="Mag Atk" GridPane.rowIndex="9" /> + <Label text="Mag Def" GridPane.rowIndex="10" /> + <Label text="Speed" GridPane.rowIndex="11" /> + </children> + </GridPane> + </center> +</BorderPane> diff --git a/Builder/src/fmon/builder/FormeBuilder.scala b/Builder/src/fmon/builder/FormeBuilder.scala new file mode 100644 index 0000000..8b69aaf --- /dev/null +++ b/Builder/src/fmon/builder/FormeBuilder.scala @@ -0,0 +1,98 @@ +package fmon.builder + +import java.io._ + +import javafx.application.Application +import javafx.fxml.FXML +import javafx.fxml.FXMLLoader +import javafx.fxml.JavaFXBuilderFactory +import javafx.scene.{control => jfxsc, Parent, Scene} +import javafx.stage.Stage + +import scalafx.Includes._ +import scalafx.beans.property._ +import scalafx.collections.ObservableBuffer +import scalafx.scene.control._ +import scalafx.scene.paint.Color +import scalafx.scene.layout._ + +import fmon.stat.FormToken + +class FormeBuilder extends Savable { + @FXML var formes: jfxsc.ListView[FormToken] = _ + @FXML var name: jfxsc.TextField = _ + @FXML var height: jfxsc.TextField = _ + @FXML var weight: jfxsc.TextField = _ + @FXML var levelRate: jfxsc.ComboBox[_] = _ + @FXML var catchRate: jfxsc.Spinner[Int] = _ + @FXML var genderRatio: jfxsc.ComboBox[_] = _ + + + @FXML var abilities: jfxsc.ListView[_] = _ + @FXML var abilityList: jfxsc.ComboBox[_] = _ + @FXML var hiddenAbilities: jfxsc.ListView[_] = _ + @FXML var hiddenAbilityList: jfxsc.ComboBox[_] = _ + @FXML var eggGroup: jfxsc.ListView[_] = _ + @FXML var eggGroupList: jfxsc.ComboBox[_] = _ + + @FXML var movePool: jfxsc.ListView[_] = _ + @FXML var moveList: jfxsc.ComboBox[_] = _ + + @FXML + def initialize(): Unit = { + + } + + def addForme(): Unit = { + + } + + def addAbility(): Unit = { + + } + + def addHiddenAbility(): Unit = { + + } + + def addEggGroup(): Unit = { + + } + + def addMove(): Unit = { + + } + + override def saveTo(file: File): Unit = { + + } + + override def openFrom(file: File): Unit = { + + } +} + +object FormeBuilder { + class FBA extends Application { + override def start(primaryStage: Stage): Unit = { + val frameLoader = new FXMLLoader(getClass.getResource("App.fxml")) + val root: Parent = frameLoader.load() + val controller = frameLoader.getController[App]() + + val builderLoader = new FXMLLoader(getClass.getResource("FormeBuilder.fxml")) + val builder: Parent = builderLoader.load() + val builderController = builderLoader.getController[FormeBuilder]() + + controller.pane.children = builder + controller.builder = builderController + + val scene: Scene = new Scene(root) + primaryStage.setScene(scene) + primaryStage.show() + } + } + + def main(args: Array[String]): Unit = { + Application.launch(classOf[FBA], args: _*) + } +} \ No newline at end of file