diff --git a/Ohj2HT/src/Luokat/Reissu.java b/Ohj2HT/src/Luokat/Reissu.java index 9e29137b422f514e899b26930e2dc057a4687be8..2574e9f6eba0be5b17e64f30cee970968f688f6a 100644 --- a/Ohj2HT/src/Luokat/Reissu.java +++ b/Ohj2HT/src/Luokat/Reissu.java @@ -38,7 +38,7 @@ private boolean poistetaanko; } public LocalDate getPaivamaara() { - return Pvm; + return this.Pvm; } public String getPvmString() { DateTimeFormatter date = DateTimeFormatter.ofPattern("dd-MM-yyyy"); @@ -69,7 +69,14 @@ private boolean poistetaanko; public static LocalDate sToDate(String pvm) { DateTimeFormatter paivamaara = DateTimeFormatter.ofPattern("dd-MM-yyyy"); - pvm = pvm.replace('.', '-').replace('/', '-').replace(',', '-'); + pvm = pvm.replace('.', '-').replace(' ', '-').replace(',', '-'); + + String[] osat = pvm.split("-"); + if (osat.length == 3) { + if (osat[0].length() == 1) osat[0] = "0" + osat[0]; + if (osat[1].length() == 1) osat[1] = "0" + osat[1]; + pvm = osat[0] + "-" + osat[1] + "-" + osat[2]; + } if (onkoValid(pvm, paivamaara )) { System.out.println("Päivämäärä kelpaa: " + LocalDate.parse(pvm, paivamaara)); diff --git a/Ohj2HT/src/Luokat/Reissut.java b/Ohj2HT/src/Luokat/Reissut.java index d852331edb7123eb9167bdc74e3b36c04366733c..e691192b7aa17d607972dba3626581986fd6189a 100644 --- a/Ohj2HT/src/Luokat/Reissut.java +++ b/Ohj2HT/src/Luokat/Reissut.java @@ -1,6 +1,7 @@ package Luokat; import java.util.ArrayList; +import java.util.Comparator; import java.util.Iterator; import java.util.List; import Luokat.Reissu; @@ -78,11 +79,6 @@ public class Reissut { * @return em. päivän reissun */ - /** - * todo: palautus listana? - * - * - */ public static Reissu etsi(String paivamaara, Reissut reissut) { for (Reissu t : reissut.getReissut()) { @@ -93,25 +89,10 @@ public class Reissut { return null; } - public Reissut Sort(Reissut reissut) { - Reissu apu; - - Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); - Tulkki vieheTulkki = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); - Tulkki kokoTulkki = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); - - Reissut palautus = new Reissut(lajit, kokoTulkki, vieheTulkki); - - for (Reissu a : reissut.getReissut()) { + public void sort() { - for (Reissu t : reissut.getReissut()) { - if (a.getPaivamaara().isAfter(t.getPaivamaara())) { - - } - } - } + reissut.sort(Comparator.comparing(Reissu::getPaivamaara)); - return reissut; } @@ -134,16 +115,24 @@ public class Reissut { Tulkki kokoTulkki = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); Reissut reissut = new Reissut(lajit, kokoTulkki, vieheTulkki); + Reissu t0 = new Reissu( Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); Reissu t1 = new Reissu( Reissu.sToDate("12.12.2023"), "jk", "sade" , new ArrayList<>(), false); Reissu t2 = new Reissu( Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false ); Reissu t3 = new Reissu( Reissu.sToDate("12.12.2323"), "ka", "pilvi", new ArrayList<>(), false); - reissut.lisaaListaan(t1); reissut.lisaaListaan(t2); reissut.lisaaListaan(t3); - - System.out.println(reissut.etsi("12.12.2023",reissut)); // Testataan haku - System.out.println(reissut.etsi("12.12.1223",reissut)); // Testataan haku + reissut.lisaaListaan(t1); reissut.lisaaListaan(t2); reissut.lisaaListaan(t3); reissut.lisaaListaan(t0); + for (Reissu t: reissut.getReissut()) { + System.out.println("ennen" + t.getPvmString()); + } + reissut.sort(); + + for (Reissu t: reissut.getReissut()) { + System.out.println("jälkeen" + t.getPvmString()); + } + + } //todo: //tallenna() diff --git a/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java b/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java index 82adde457ef181aa2e8159c701d56b168bdb34cf..569bb8f9cd864144de57ac7ea2ed30e2cfa0c44f 100644 --- a/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java +++ b/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java @@ -68,7 +68,7 @@ public class KalenteriGUIController implements Initializable { reissutLista.getItems().clear(); this.Saaliisi.getItems().clear(); for (Reissu reissu : r) { - reissutLista.add(reissu.getPaivamaara() + " " + reissu.getSijainti(),reissu); + reissutLista.add(reissu.getPvmString() + " " + reissu.getSijainti(),reissu); } } @@ -92,6 +92,7 @@ public class KalenteriGUIController implements Initializable { private void tallenna() { Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä"); + kalenteri.getReissut().sort(); if ( reissumaara.get() - aluksi > 0){ TiedostonHiplailija t = new TiedostonHiplailija(System.getProperty("user.dir") + "/../reissut.dat"); TiedostonHiplailija sa = new TiedostonHiplailija(System.getProperty("user.dir")+ "/../saaliit.dat"); @@ -99,6 +100,8 @@ public class KalenteriGUIController implements Initializable { Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); Tulkki vieheTulkki = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); Tulkki kokoTulkki = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); + + kalenteri.getReissut().sort(); for (int i = aluksi; i < reissumaara.get(); i++){ System.out.println(kalenteri.getReissut().getReissut().get(i)); t.kirjoita(kalenteri.getReissut().getReissut().get(i).toString()); diff --git a/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java b/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java index 6e61d172413661a4efe7d3ececc1c84b65f7d859..808bd83c1310a4035ebf602814ca57fb1de4ae69 100644 --- a/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java +++ b/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java @@ -1,10 +1,13 @@ package fxLisaaReissu; import java.net.URL; +import java.time.LocalDate; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; +import fi.jyu.mit.fxgui.Dialogs; import fi.jyu.mit.fxgui.ModalController; import fi.jyu.mit.fxgui.ModalControllerInterface; import fxKalenteri.KalenteriMain; @@ -63,6 +66,12 @@ public class LisaaReissuGUIController implements Initializable, ModalControllerI //-------------------------// private void Kaloja() { + LocalDate date = Reissu.sToDate(Pvm.getText()); + if (date == null) { + Dialogs.showMessageDialog("Virheellinen päivämäärämuoto: " + Pvm.getText() + "\nSyötä muodossa pp-kk-vvvv."); + return; + } + ModalController.showModal(KalenteriMain.class.getResource("/fxKaljoja/KalojaGUIView.fxml"), "Lisää saalis",null,saaliit); liitaKaloja();