From 3e6912ffaa2373e22e525e0a00b525de3a62424a Mon Sep 17 00:00:00 2001 From: alilakj <katri.j.alila@student.jyu.fi> Date: Fri, 16 Feb 2024 03:25:45 +0200 Subject: [PATCH] =?UTF-8?q?Enemm=C3=A4n=20toimintoja=20ja=20kaksi=20lis?= =?UTF-8?q?=C3=A4kontrolleria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fxTavaranPaikka/TavaraLisaysGuiView.fxml | 7 +- .../TavaranLisaysGUIController.java | 58 ++++++++++++++++ .../TavaranPaikkaGUIController.java | 67 ++++++++++++++++--- .../fxTavaranPaikka/TavaranPaikkaGUIView.fxml | 6 +- .../fxTavaranPaikka/TavaranPaikkaMain.java | 2 +- .../TavaranSisaltoGUIController.java | 65 ++++++++++++++++++ .../TavaranSisaltoGUIView.fxml | 6 +- 7 files changed, 192 insertions(+), 19 deletions(-) create mode 100644 tavaranpaikka/src/fxTavaranPaikka/TavaranLisaysGUIController.java create mode 100644 tavaranpaikka/src/fxTavaranPaikka/TavaranSisaltoGUIController.java diff --git a/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml b/tavaranpaikka/src/fxTavaranPaikka/TavaraLisaysGuiView.fxml index f60cbeb..74d667d 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 0000000..a36766c --- /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 96ccc94..698ebb0 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 5f95462..bc682c7 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 c1de7ff..68c6527 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 0000000..fe7b2dd --- /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 9ae1358..97c830d 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> -- GitLab