diff --git a/src/fxHarakka/HarakkaController.java b/src/fxHarakka/HarakkaController.java index 1b09068c7f1f73501abf7058bd560ed53ff4e807..f19c3b382a53407fc55577d91976758099117b1e 100644 --- a/src/fxHarakka/HarakkaController.java +++ b/src/fxHarakka/HarakkaController.java @@ -13,7 +13,7 @@ import javafx.scene.layout.Pane; public class HarakkaController { - private Harakka harakka; + @FXML private Button p1t1; @@ -151,6 +151,9 @@ public class HarakkaController { private TabPane lehti; + //------------------------------------------------------------------------------------------- + private Harakka harakka = new Harakka(); + @FXML @@ -175,21 +178,26 @@ public class HarakkaController { Tab uusiLehti = new Tab(); uusiLehti.setContent(new Label()); //luodaan projektinäkymään uusi lehti oottamaan jos se mahdollisesti lehti.getTabs().add(uusiLehti); + + Projekti uusiProjekti = new Projekti(); uusiProjekti = lisaaProjekti(); //luotava projekti joka palautetaan kun tullaan pois lisääprojekti ikkunasta - if (uusiProjekti == null && uusiProjekti.getNimi().isEmpty()){ //jos tullaan pois nimettömällä projektilla + if (uusiProjekti == null || uusiProjekti.getNimi().isEmpty() || uusiProjekti.getNimi().isBlank()){ //jos tullaan pois nimettömällä projektilla //sitten pitää poistaa luotu tabi lehti.getTabs().removeLast(); - return; - } - - //muuten laitetaan uuden tabin nimeksi luodun projektin nimi - uusiLehti.setText(uusiProjekti.getNimi()); - - //lisätään uusiprojekti tietorakenteeseen TODO + }else { + //muuten laitetaan uuden tabin nimeksi luodun projektin nimi + uusiLehti.setText(uusiProjekti.getNimi()); + //lisätään uusiprojekti tietorakenteeseen + try { + harakka.lisaaProjekti(uusiProjekti); + } catch (Exception e) { + System.out.println("Lisääminene tietorakenteeseen ei onnistunut" + e); + } + } diff --git a/src/fxHarakka/LuoProjektiController.java b/src/fxHarakka/LuoProjektiController.java index 6732fa9bed73eff40ad2eabcebf7a2b3c95af6c2..a3246f49fad7daa5021a3a2a546c552bc2a61ead 100644 --- a/src/fxHarakka/LuoProjektiController.java +++ b/src/fxHarakka/LuoProjektiController.java @@ -40,6 +40,8 @@ public class LuoProjektiController implements ModalControllerInterface<Projekti> //================================================================================================== + + @Override public void initialize(URL url, ResourceBundle resourceBundle) { @@ -52,9 +54,11 @@ public class LuoProjektiController implements ModalControllerInterface<Projekti> } - /**palauttaa projektin luonti-ikkunassa käyttäjän luoma projektin. + /** * - * @return luotu projekti + * @param modalityStage jos halutaan että on modaalinen vain tietylle (null ==> modaalinen kaikille) + * @param oletus oletusprojekti joka palautetaan + * @return Käyttämän luoma projekti */ public static Projekti kysyProjekti(Stage modalityStage, Projekti oletus){ @@ -67,11 +71,18 @@ public class LuoProjektiController implements ModalControllerInterface<Projekti> void luoProjekti(ActionEvent event) { String pNimi = projektiNimi.getText(); String pAihe = projektiAihe.getText(); - int pKesto = Integer.parseInt(projektiKesto.getText()); - - projektiKohdalla = new Projekti(pNimi, pAihe, pKesto); - ModalController.closeStage(projektiNimi); - + int pKesto = 0; + + + if (!projektiKesto.getText().isBlank()) { + pKesto = Integer.parseInt(projektiKesto.getText()); + } + if(pNimi.isBlank()){ + ModalController.closeStage(projektiAihe); + }else { + projektiKohdalla = new Projekti(pNimi, pAihe, pKesto); + ModalController.closeStage(projektiAihe); + } diff --git a/src/fxHarakka/luokat/Harakka.java b/src/fxHarakka/luokat/Harakka.java index c468653f16dd62100d2bb8eb7de71a8433ab1970..3f27f07f24638ae00ab831c60d51a7dc69a81ce3 100644 --- a/src/fxHarakka/luokat/Harakka.java +++ b/src/fxHarakka/luokat/Harakka.java @@ -9,6 +9,7 @@ public class Harakka { public static void main (String[] args) { + /** Harakka harakka = new Harakka(); Projekti projekti1 = new Projekti("Projekti1","Fysiikka"); @@ -22,13 +23,14 @@ public class Harakka { harakka.lisaaProjekti(projekti1); harakka.lisaaProjekti(projekti2); - + */ //halutaan lisätä käyttöliittymästä luotu projekti tietokantaan TODO + } /**Välittää projektit luokalle projektin ja projektit luokka lisää sen tietokantaan diff --git a/src/fxHarakka/luokat/Naytto.java b/src/fxHarakka/luokat/Naytto.java index af29158483b67e8840ffaba8088ceacfe937511b..2681a0202f9cc0132069cc52471d350cd0e372b7 100644 --- a/src/fxHarakka/luokat/Naytto.java +++ b/src/fxHarakka/luokat/Naytto.java @@ -2,7 +2,7 @@ package fxHarakka.luokat; public class Naytto { //Naytöllä on viite harakkaan --> naytossa pitää olla instanssi harakalle - private final Harakka harakka = new Harakka(); //luodaan ns. uusi istunto --> voi olla useampi harakka + public Harakka harakka = new Harakka(); //luodaan ns. uusi istunto --> voi olla useampi harakka //jos jatkossa haluaa useamman käyttäjän } diff --git a/src/fxHarakka/luokat/Projektit.java b/src/fxHarakka/luokat/Projektit.java index 7b57e086543fe0808fade9787d7a64bcd343ad2d..9d580e75b0281a935dddcb2ba626d383c80b363e 100644 --- a/src/fxHarakka/luokat/Projektit.java +++ b/src/fxHarakka/luokat/Projektit.java @@ -59,6 +59,7 @@ public class Projektit { * @param projekti lisättävä projekti */ public void lisaaProjekti(Projekti projekti){ + projekti.rekisteroiProjekti(); //rekisteröidään ennen lisäämistä --> id päivittyy projektiAlkiot.add(projekti); System.out.println("projekti lisätty! " + projekti); }