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