diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml b/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml index f60cbeb7a3acc341e92343ce653ac94431aa9e5a..74d667d14e7a03e6477dbfec818f271fa52df628 100644 --- a/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml @@ -10,8 +10,7 @@ <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.RowConstraints?> - -<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1"> +<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxTavaranPaikka.TavaranLisaysGUIController"> <top> <Label text="Lisää/Muokkaa tavara" BorderPane.alignment="CENTER"> <BorderPane.margin> @@ -111,12 +110,12 @@ <bottom> <HBox prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" text="Tallenna"> + <Button mnemonicParsing="false" onAction="#onActionTallenna" text="Tallenna"> <HBox.margin> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </HBox.margin> </Button> - <Button mnemonicParsing="false" text="Peruuta"> + <Button fx:id="buttonPeruuta" mnemonicParsing="false" onAction="#onActionPeruuta" text="Peruuta"> <HBox.margin> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </HBox.margin> diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranLisaysGUIController.java b/tavaranpaikka/src/fxTavaranPaikka/TavaranLisaysGUIController.java new file mode 100644 index 0000000000000000000000000000000000000000..a36766c396a9d7c7201cd8aa575288cb010a7364 --- /dev/null +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranLisaysGUIController.java @@ -0,0 +1,58 @@ +package fxTavaranPaikka; + +import fi.jyu.mit.fxgui.Dialogs; +import fi.jyu.mit.fxgui.ModalController; +import fi.jyu.mit.fxgui.ModalControllerInterface; +import javafx.fxml.FXML; +import javafx.scene.control.Button; + +/** + * @author lpjsilve, alilakj + * @version 15.2.2024 + * Kontrolleri uuden tavaran lisäämiselle(ja mahdollisesti muokkaamiseksi). + */ +public class TavaranLisaysGUIController implements ModalControllerInterface<String>{ + @FXML private Button buttonPeruuta; + + @FXML void onActionPeruuta() { + peruuta(); + } + + @FXML void onActionTallenna() { + tallenna(); + } + + /*************koodi*************/ + + @Override + public String getResult() { + return null; + } + + @Override + public void handleShown() { + buttonPeruuta.requestFocus(); + + } + + @Override + public void setDefault(String arg0) { + + } + + + /** + * Suljetaan modaalinen ikkuna ja peruutetaan uuden tavaran luonti/lisäys. + */ + public void peruuta() { + ModalController.closeStage(buttonPeruuta); + } + + + /** + * Tallennetaan luotu tavara. + */ + public void tallenna() { + Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä"); + } +} diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIController.java b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIController.java index 96ccc94e205733007ee131cfcb8832ce63a102fb..698ebb06764f13c07a7f8050ab19eae3d14ca44f 100644 --- a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIController.java +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIController.java @@ -1,7 +1,12 @@ package fxTavaranPaikka; import fi.jyu.mit.fxgui.ModalController; +//import fi.jyu.mit.fxgui.ModalControllerInterface; import javafx.fxml.FXML; +import javafx.scene.layout.GridPane; + +import java.net.URL; + import fi.jyu.mit.fxgui.Dialogs; @@ -11,32 +16,76 @@ import fi.jyu.mit.fxgui.Dialogs; * Ohjelman pääkontrolleri. */ public class TavaranPaikkaGUIController { + @FXML private GridPane GridPaneTavaranTiedot; + @FXML void onActionTallenna() { tallenna(); } + + //Sekä menu -toiminto, että Lisää tavara -painike + @FXML void onActionLisaaTavara() { + avaaUusiTavara(); + } + @FXML void onActionMuokkaaTavaraa() { + avaaMuokkaaIkkuna(); + } + @FXML void onActionNaytaSisalto() { - naytaSisalto(); + avaaSisalto(); } + + - /**************koodia****************/ + /**************Toteutukset****************/ /** - * Avataan sisältöikkuna, joka on modaalinen (eli pitää toimia, ennen kuin voi jatkaa muuta). - * Ei vielä toimi. + * Tietojen tallennus, ei vielä toimiva. */ - public void naytaSisalto() { - //ModalController.showModal(TavaranPaikkaGUIController.class.getResource(TavaranSisaltoView.fxml), null, null, null); + public static void tallenna() { + Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä"); } /** - * Tietojen tallennus, ei vielä toimiva + * Toteutetaan Lisää tavara-painikkeen toiminta + * (ja uuden tavaran ikkunan avaaminen muillekin), + * eli avataan modaalisena ikkunanan suunniteltu + * tyhjä ikkuna tavaran tietojen täyttämiseksi. */ - public void tallenna() { - Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä"); + public static void avaaUusiTavara() { + URL url = TavaranLisaysGUIController.class.getResource("TavaraLisaysGuiView.fxml"); + ModalController.showModal(url, null, null, null); } + + /** + * Toteutetaan Muokkaa Tavaraa -menuvalinnan toiminta, + * eli avataan modaalinen ikkuna, jossa valitun tavaran tiedot + * täytettynä. + */ + public void avaaMuokkaaIkkuna() { + // Täydennä toimimaan: tietojen haku GridPane -komponentista ja aseta ne lähtötiedoiksi, + //String alkupTiedot = GridPaneTavaranTiedot.getAccessibleText(); + //System.out.println(alkupTiedot); + + URL url = TavaranLisaysGUIController.class.getResource("TavaraLisaysGuiView.fxml"); + ModalController.showModal(url, null, null, null); + } + + + /** + * Toteutetaan Näytä Sisältö-painikkeen toiminta, + * eli avataan modaalisena ikkunana suunniteltu sisältöikkuna. + */ + private void avaaSisalto() { + URL url = TavaranSisaltoGUIController.class.getResource("TavaranSisaltoGUIView.fxml"); + ModalController.showModal(url, null, null, null); + + } + + + } diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIView.fxml b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIView.fxml index 5f954623e88ed26640a3df952e50ddeb8c42e1d2..bc682c7b8add1317485e15193a4d18476c001a75 100644 --- a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIView.fxml +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaGUIView.fxml @@ -31,6 +31,8 @@ </Menu> <Menu mnemonicParsing="false" text="Muokkaa"> <items> + <MenuItem mnemonicParsing="false" onAction="#onActionLisaaTavara" text="Lisää uusi tavara" /> + <MenuItem mnemonicParsing="false" onAction="#onActionMuokkaaTavaraa" text="Muokkaa tavaraa" /> <MenuItem mnemonicParsing="false" text="Delete" /> </items> </Menu> @@ -75,7 +77,7 @@ <center> <ScrollPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <content> - <GridPane> + <GridPane fx:id="GridPaneTavaranTiedot"> <columnConstraints> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="160.0" /> @@ -161,7 +163,7 @@ <left> <HBox prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" text="Lisää tavara"> + <Button mnemonicParsing="false" onAction="#onActionLisaaTavara" text="Lisää tavara"> <HBox.margin> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </HBox.margin> diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaMain.java b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaMain.java index c1de7ff85d1fcb27d57b6b3d24e9a2cdadc6653e..68c6527e7ab47cd2cd58632c523620a707b44d1a 100644 --- a/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaMain.java +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranPaikkaMain.java @@ -16,7 +16,7 @@ public class TavaranPaikkaMain extends Application { public void start(Stage primaryStage) { try { FXMLLoader ldr = new FXMLLoader(getClass().getResource("TavaranPaikkaGUIView.fxml")); - final Pane root = (Pane)ldr.load(); + final Pane root = ldr.load(); //final TavaranPaikkaGUIController tavaranpaikkaCtrl = (TavaranPaikkaGUIController) ldr.getController(); Scene scene = new Scene(root); scene.getStylesheets().add(getClass().getResource("tavaranpaikka.css").toExternalForm()); diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIController.java b/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIController.java new file mode 100644 index 0000000000000000000000000000000000000000..fe7b2ddd651e85d57adb20e54a0df9e92ca66a68 --- /dev/null +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIController.java @@ -0,0 +1,65 @@ +package fxTavaranPaikka; + +import fi.jyu.mit.fxgui.ModalController; +//import fi.jyu.mit.fxgui.Dialogs; +//import fi.jyu.mit.fxgui.ModalController; +import fi.jyu.mit.fxgui.ModalControllerInterface; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.TextArea; +//import javafx.stage.Stage; + +/** + * @author lpjsilve, alilakj + * @version 15.2.2024 + * Kontrolleri tavaran sisällön käsittelemiseen. + */ +public class TavaranSisaltoGUIController implements ModalControllerInterface<String> { + @FXML private TextArea textKentta; + @FXML private Button buttonSulje; + @FXML private Button buttonLisaaTavara; + + @FXML void onActionSulje() { + sulje(); + } + + @FXML void onActionLisaaTavara() { + uusiTavara(); + } + + /************koodi************/ + @Override + public String getResult() { + return null; + } + + @Override + public void handleShown() { + buttonSulje.requestFocus(); + } + + @Override + public void setDefault(String oletus) { + //if(textKentta.getId().equals(oletus)) { + + //} + } + + + /** + * Avataan uuden tavaran lisäysikkuna, käyttäen avaaUusiTavara -metodia pääkontrollerista. + * Huom, tässä tapauksessa tulee lisätä metodiin parametrin vastaanottamisen mahdollisuus, + * sillä tätä kautta tavaran luomisessa lisätään valmiiksi tiedoksi lokaatiotieto. + */ + public void uusiTavara() { + TavaranPaikkaGUIController.avaaUusiTavara(); + } + + + /** + * Suljetaan modaalinen ikkuna. + */ + public void sulje() { + ModalController.closeStage(buttonSulje); + } +} diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIView.fxml b/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIView.fxml index 9ae135812db666b79bf39c3d5f1e235e13c68a2d..97c830d69377e18e37040e76c877dc2ff3bb18a5 100644 --- a/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIView.fxml +++ b/tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIView.fxml @@ -7,7 +7,7 @@ <?import javafx.scene.layout.BorderPane?> <?import javafx.scene.layout.HBox?> -<BorderPane fx:id="sisaltoIkkuna" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1"> +<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxTavaranPaikka.TavaranSisaltoGUIController"> <top> <Label text="Sisältö" BorderPane.alignment="CENTER" /> </top> @@ -17,12 +17,12 @@ <bottom> <HBox prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" text="Lisää tavara"> + <Button fx:id="buttonLisaaTavara" mnemonicParsing="false" onAction="#onActionLisaaTavara" text="Lisää tavara"> <HBox.margin> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </HBox.margin> </Button> - <Button mnemonicParsing="false" text="Sulje"> + <Button fx:id="buttonSulje" mnemonicParsing="false" onAction="#onActionSulje" text="Sulje"> <HBox.margin> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </HBox.margin>