From 52a05f8b9ffe7be6bec2fd28c23ec4db98adb5ae Mon Sep 17 00:00:00 2001 From: Kiljala Renne Lauri Olavi <renne.l.o.kiljala@student.jyu.fi> Date: Thu, 27 Mar 2025 16:49:18 +0200 Subject: [PATCH] =?UTF-8?q?projektin=20lis=C3=A4=C3=A4minen=20toimii=20nyt?= =?UTF-8?q?=20oikein?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fxHarakka/HarakkaController.java | 63 +++++++++++++++++++++++- src/fxHarakka/LuoProjektiController.java | 10 ++-- src/fxHarakka/luokat/Harakka.java | 2 +- src/fxHarakka/luokat/Naytto.java | 17 +++++++ 4 files changed, 84 insertions(+), 8 deletions(-) diff --git a/src/fxHarakka/HarakkaController.java b/src/fxHarakka/HarakkaController.java index 01e270d..bf83eca 100644 --- a/src/fxHarakka/HarakkaController.java +++ b/src/fxHarakka/HarakkaController.java @@ -3,6 +3,7 @@ package fxHarakka; import fi.jyu.mit.fxgui.Dialogs; import fi.jyu.mit.fxgui.ModalController; import fxHarakka.luokat.Harakka; +import fxHarakka.luokat.Naytto; import fxHarakka.luokat.Projekti; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -152,7 +153,7 @@ public class HarakkaController { //------------------------------------------------------------------------------------------- - private Harakka harakka = new Harakka(); + private static Harakka harakka = new Harakka(); @@ -167,6 +168,19 @@ public class HarakkaController { Dialogs.showMessageDialog("Myöhemmin: Tästä saat piilotettua viikonlopun"); } + /**Asettaa muokattavan harakan controllerille + * + * @param uusiHarakka muokattava harakka + * + * esim. Naytto-luokalla on harakan instanssi joka halutaan olla käyttäjän harakka "istunto" + * --> setHarakka asettaa tämän istunnoksi + */ + public static void setHarakka(Harakka uusiHarakka){ + harakka = uusiHarakka; + } + + + /** Tapahtumankäsittelijä kun painetaan lisää Projekti painiketta päämenussa. * avaa modaalisen ikkunan ja pyytää uuden projektin tiedot, jonka jälkeen hierarkiaa pitkin @@ -207,41 +221,85 @@ public class HarakkaController { } + + /** Tapahtumankäsittelijä päämenun "Lisää tehtävä" painikkeelle + * + * @param event tapahtuma + */ @FXML void handleLisaaTeht(ActionEvent event) { ModalController.showModal(HarakkaController.class.getResource("LisääTehtävä.fxml"), "Muokkaa", null, ""); } + /** Tapahtumankäsittelijä tehtävänmuokkausta varten + * + * @param event tapahtuma + */ @FXML void handleMuokkaa(ActionEvent event) { Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua tehtävää"); } + /** Tapahtumankäsittelijä Muokkaa tehtävää päämenussa + * + * @param event tapahtuma + */ @FXML void handleTehtava(ActionEvent event) { ModalController.showModal(HarakkaController.class.getResource("Oksa.fxml"), "Muokkaa", null, ""); } + /** Tapahtumankäsittelijä kun klikataan tileä tilematriisissa + * + * @param event + */ @FXML void handleTile(ActionEvent event) { Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua tileä"); } + /** Ylä toolbaarissa oleva tabi joka sulkee ohjelman + * + * TODO lisää promptin "haluatko tallentaa ennen sulkemista" + * + * @param event + */ @FXML void suljeOhjelma(ActionEvent event) { Dialogs.showMessageDialog("Myöhemmin: Sulkee ohjelman"); } + /** + * Poista projekti tapahtumankäsittelikä + * @param event + */ @FXML void handlePoistaPro(ActionEvent event) { - Dialogs.showMessageDialog("Myöhemmin: Poistaa projektin"); + //klikattu poista projekti nappia --> tarvitaan tieto mikä tabi on auki projekti valikossa + Tab valittuLehti = lehti.getSelectionModel().getSelectedItem(); //valittu lehti + + //poistaessa pitää mennä tietorakenteeseen ja poistaa sieltä kyseinen projekti + //jonka jälkeen kun tämä tehty niin poistetaan valitun projektin lehti/tabi + // CRC --> projektit-luokka "lisää ja poistaa projekteja" --> kutustaan harakka.projektit luokkaa + + //harakka.projektit.poistaProjekti(); + + } + /** Ylä toolbaarissa apu tabin tapahtumankäsittelijä --> avaa FAQ tai ohjevalikon ohjelmalle + * + * @param event + */ @FXML void handleApu(ActionEvent event) { Dialogs.showMessageDialog("Myöhemmin: Saat lisätietoja ohjelmasta"); } + /** Lisaa tabin + * + * @param nimi + */ @FXML public void lisaaLehti(String nimi){ @@ -254,6 +312,7 @@ public class HarakkaController { private Projekti lisaaProjekti (){ Projekti projekti = new Projekti(); //tähän palautetaan luotu projekti return LuoProjektiController.kysyProjekti(null, projekti); + //suuntaa ProjektinluontiControllerille --> pitää koodin selkeänä tässä controllerissa } diff --git a/src/fxHarakka/LuoProjektiController.java b/src/fxHarakka/LuoProjektiController.java index d087279..1d60ee4 100644 --- a/src/fxHarakka/LuoProjektiController.java +++ b/src/fxHarakka/LuoProjektiController.java @@ -55,15 +55,17 @@ public class LuoProjektiController implements ModalControllerInterface<Projekti> */ @FXML void HylkaaProjekti(ActionEvent event) { - projektiNimi = null; - projektiAihe = null; + projektiNimi = null; //null koska kun palataan ikkunasta takaisin päämenuun ja jos nimi tai aihe null niin + projektiAihe = null; //niin poistetaan alustettu uusi tabi ModalController.closeStage(projektiNimi); } /** * * @param modalityStage jos halutaan että on modaalinen vain tietylle (null ==> modaalinen kaikille) - * @param oletus oletusprojekti joka palautetaan + * @param oletus oletusprojekti joka palautetaan -> modaali vaatii oletuspalautuksen + * mutta muuten ei käyttöä projektin luomisessa + * koska ei tarvitse populoida ikkunaa valmiilla datalla * @return Käyttämän luoma projekti */ public static Projekti kysyProjekti(Stage modalityStage, Projekti oletus){ @@ -77,8 +79,6 @@ public class LuoProjektiController implements ModalControllerInterface<Projekti> /**Jos tietokentät täytetty uusi projekti ikkunassa niin antaa modaalin kautta tiedon luodusta projektista * eteenpäin * - * - * * @param event kun painetaan luo projekti projektin luomisikkunassa */ @FXML diff --git a/src/fxHarakka/luokat/Harakka.java b/src/fxHarakka/luokat/Harakka.java index 3f27f07..bf7386e 100644 --- a/src/fxHarakka/luokat/Harakka.java +++ b/src/fxHarakka/luokat/Harakka.java @@ -5,7 +5,7 @@ import fxHarakka.HarakkaController; public class Harakka { //harakalla on tehtavat ja projektit instanssit private final Tehtavat tehtavat = new Tehtavat(); - private final Projektit projektit = new Projektit(); + public final Projektit projektit = new Projektit(); public static void main (String[] args) { diff --git a/src/fxHarakka/luokat/Naytto.java b/src/fxHarakka/luokat/Naytto.java index a41754d..ce237cc 100644 --- a/src/fxHarakka/luokat/Naytto.java +++ b/src/fxHarakka/luokat/Naytto.java @@ -7,6 +7,23 @@ public class Naytto { public Harakka harakka = new Harakka(); //luodaan ns. uusi istunto --> voi olla useampi harakka //jos jatkossa haluaa useamman käyttäjän + //TODO tarvitaan aliohjelma joka vie tästä luokasta harakka controllerille sen harakan jota ollaan + //muokkaamassa --> staattinen aliohjelma jolle viedään parametrinä harakka + //vai harakan oma metodi? harakka.lisääOhjain(); + + + /**Vie harakan HarakkaControllerille jotta harakka controller tietää mihin harakka instanssiin + * projektit ja tehtävät lisätään + * + * @param harakka ohjailmelle vietävä harakka + */ + private static void lisaaHarakka(Harakka harakka){ + HarakkaController.setHarakka(harakka); // setHarakka lisää harakan muokattavaksi harakaksi + } + + + + public void main(){ } -- GitLab