diff --git a/src/HT/fx/Karkelot.java b/src/HT/fx/Karkelot.java index babd47637cb79a71b756c3047e8a142a6cd1fae7..6f035c5975aff8c7334634e26a1cde2fcc82ddb8 100644 --- a/src/HT/fx/Karkelot.java +++ b/src/HT/fx/Karkelot.java @@ -73,6 +73,15 @@ public class Karkelot { return ottelut.haeOttelu(i); } + /** + * Hakee i:nnen ottelun ottelut oliolta + * @param i monesko ottelu haetaan + * @return ottelun + */ + public List<Ottelu> noudaOttelut() { + return ottelut.haeOttelut(); + } + /** * Lukee tiedot tiedostosta @@ -106,9 +115,9 @@ public class Karkelot { Pelaaja aku1 = new Pelaaja(), aku2 = new Pelaaja(); aku1.rekisteroi(); - aku1.vastaaAkuAnkka(); + aku1.luoTesti(); aku2.rekisteroi(); - aku2.vastaaAkuAnkka(); + aku2.luoTesti(); karkelo.lisaa(aku1); karkelo.lisaa(aku2); diff --git a/src/HT/fx/Ottelu.java b/src/HT/fx/Ottelu.java index 24647778ed7773262b9f2c3518623d75fd8dfecd..b476e7da48ff033e43031167021bac34cdc3b2c8 100644 --- a/src/HT/fx/Ottelu.java +++ b/src/HT/fx/Ottelu.java @@ -46,6 +46,36 @@ public class Ottelu { } + /** + * Ottelun constructori + * @param idNro ottelun id + * @param paivamaara pvm + * @param pelaajaNro1 pelaaja1 + * @param pelaajaNro2 pelaaja1 + * @param pelaajaNro3 pelaaja1 + * @param pelaajaNro4 pelaaja1 + * @param voittajaNro1 voittaja 1 + * @param voittajaNro2 voittaja 2 + * @param lopputulos tulos + */ + public Ottelu(int idNro, LocalDate paivamaara, int pelaajaNro1, int pelaajaNro2, int pelaajaNro3, int pelaajaNro4, int voittajaNro1, int voittajaNro2, String lopputulos ) { + this.idNro = idNro; + this.paivamaara=paivamaara; + this.pelaajaNro1 = pelaajaNro1; + this.pelaajaNro2 = pelaajaNro2; + this.pelaajaNro3 = pelaajaNro3; + this.pelaajaNro4 = pelaajaNro4; + this.voittajaNro1 = voittajaNro1; + this.voittajaNro2 = voittajaNro2; + this.lopputulos = lopputulos; + + + } + + public String getTiedot() { + return idNro + "|" + pelaajaNro1 + "|" +pelaajaNro2 + "|" +pelaajaNro3 + "|" +pelaajaNro4 +"|" +voittajaNro1 + "|" + voittajaNro2+"|"+paivamaara+"|"+ lopputulos; + } + /** * Tyhjä contructori ottelulle */ diff --git a/src/HT/fx/OtteluIkkunaGUIController.java b/src/HT/fx/OtteluIkkunaGUIController.java index 7bedb1d46e63ec433dbb8194c4c84315b3aa9fa9..dcbfcd93e22a2cb87f360e7705836e948cba4f51 100644 --- a/src/HT/fx/OtteluIkkunaGUIController.java +++ b/src/HT/fx/OtteluIkkunaGUIController.java @@ -1,8 +1,18 @@ package HT.fx; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Scanner; + import fi.jyu.mit.fxgui.Dialogs; import fi.jyu.mit.fxgui.ModalController; import fi.jyu.mit.fxgui.ModalControllerInterface; +import fi.jyu.mit.ohj2.Mjonot; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; @@ -50,6 +60,14 @@ public class OtteluIkkunaGUIController implements ModalControllerInterface<Strin LisaaOttelu(null, "kanat"); SyotaTulos(); } + + @FXML void handleHaeTiedot(MouseEvent event) { + Lukija("/Users/joonatan/kurssit/ohj2/ht/src/Ottelutiedot"); + } + + @FXML void handleTallenna(MouseEvent event) { + tallenna(); + } //===================================== public static String LisaaOttelu(Stage modalityStage, String oletus) { @@ -64,7 +82,66 @@ public class OtteluIkkunaGUIController implements ModalControllerInterface<Strin "Lisää ottelu", modalityStage, oletus); } + public void tallenna() { + try (PrintStream fo = new PrintStream(new FileOutputStream("/Users/joonatan/kurssit/ohj2/ht/src/Ottelutiedot", false))) { + int i = 0; + while ( i<PadelMainGUIController.getKarkelo().noudaOttelut().size()) { + + fo.print(PadelMainGUIController.getKarkelo().noudaOttelu(i).getTiedot()+ "\n"); + i++; + + } + //System.out.println("Heureka ! "); + } catch(FileNotFoundException ex) { + System.err.println("Tiedosto ei aukea: " + ex.getMessage()); + } + } + + /** + * @param tiedNimi Lukee tiedot tietystä tiedostosta + */ + public void Lukija(String tiedNimi) { + try (Scanner fi = new Scanner(new FileInputStream(new File(tiedNimi)))) { // Jotta UTF8/ISO-8859 toimii + + + while ( fi.hasNext() ) { + String s = fi.nextLine(); + if(s.length()>0) { + lisaakentat(); + + StringBuffer sb = new StringBuffer(s); + int tunnus = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int os1 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int os2 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int os3 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int os4 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int voi1 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + int voi2 = Integer.parseInt(Mjonot.erota(sb,'|',false)); + String paivamaara = Mjonot.erota(sb,'|',false); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-M-d"); + LocalDate pvm = LocalDate.parse(paivamaara, formatter); + String lopputulos = Mjonot.erota(sb,'|',false); + + Ottelu uusi = new Ottelu(tunnus,pvm,os1,os2,os3,os4,voi1,voi2,lopputulos); + + + PadelMainGUIController.LisaaOttelu(uusi); + + } + } + } catch (FileNotFoundException ex) { + System.err.println("Tiedosto ei aukea! " + ex.getMessage()); + ex.printStackTrace(); + return; + } + SyotaTulos(); + + } + + + + public void lisaakentat() { lisaatekstikentta(Joukkue1VBox); lisaatekstikentta(Joukkue2VBox); @@ -72,6 +149,11 @@ public class OtteluIkkunaGUIController implements ModalControllerInterface<Strin lisaatekstikentta(TulosVBox); } + /** + * Hakee kaikki luodun karkelon ottelut ja syöttää niiden tiedot + * + * Tämän takia ei syötä tietoja oikein + */ public void SyotaTulos() { int i = 0; diff --git a/src/HT/fx/OtteluIkkunaGUIView.fxml b/src/HT/fx/OtteluIkkunaGUIView.fxml index a6cb9bd8d3acdfa01bdc3944d14ad217182ee518..30342352e24af3e618420a1535d3e9fcd28bbbbb 100644 --- a/src/HT/fx/OtteluIkkunaGUIView.fxml +++ b/src/HT/fx/OtteluIkkunaGUIView.fxml @@ -13,6 +13,8 @@ <children> <ButtonBar layoutX="200.0" layoutY="366.0" prefHeight="40.0" prefWidth="200.0" AnchorPane.bottomAnchor="-3.0" AnchorPane.leftAnchor="2.5" AnchorPane.rightAnchor="2.5"> <buttons> + <Button mnemonicParsing="false" onMouseClicked="#handleTallenna" text="Tallenna" /> + <Button mnemonicParsing="false" onMouseClicked="#handleHaeTiedot" text="Hae tiedot" /> <Button mnemonicParsing="false" onMouseClicked="#handleLisaaOttelu" text="Lisää ottelu" /> </buttons> </ButtonBar> diff --git a/src/HT/fx/Ottelut.java b/src/HT/fx/Ottelut.java index 0afa86ab5bd5f93717aa8b19ef09bd5b6e113a77..7794084cb8fd40036c2f2deb3c06270b86acb8b6 100644 --- a/src/HT/fx/Ottelut.java +++ b/src/HT/fx/Ottelut.java @@ -38,6 +38,18 @@ public class Ottelut implements Iterable<Ottelu> { loydetyt.add(ott); return loydetyt.get(i); } + + /** + * Luo listan otteluista jotta saadaan palautettua yksi ottelu. + * Ominaisuus saattaa jäädä turhaksi myöhemmin + * @return ottelut + */ + public List<Ottelu> haeOttelut() { + List<Ottelu> loydetyt = new ArrayList<Ottelu>(); + for(Ottelu ott : alkiot) + loydetyt.add(ott); + return loydetyt; + } /** * Palauttaa otteluiden lukumäärän * @return otteluiden lukumäärä diff --git a/src/HT/fx/PadelLisaaOtteluGUIController.java b/src/HT/fx/PadelLisaaOtteluGUIController.java index 4c1fe207a28cc3f6609b902ec9466483c67f1cec..6a02ef74f004aeb762f9ad2e8af95e4cfd913651 100644 --- a/src/HT/fx/PadelLisaaOtteluGUIController.java +++ b/src/HT/fx/PadelLisaaOtteluGUIController.java @@ -79,12 +79,12 @@ public class PadelLisaaOtteluGUIController implements ModalControllerInterface<S */ public void kasitteleOk() { //String pvm = datesyntaika.getValue().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); - int PelaajaNro1 = menuOsallistuja1.getSelectedIndex(); - int PelaajaNro2 = menuOsallistuja2.getSelectedIndex(); - int PelaajaNro3 = menuOsallistuja3.getSelectedIndex(); - int PelaajaNro4 = menuOsallistuja4.getSelectedIndex(); - int VoittajaNro1 = menuVoittaja1.getSelectedIndex(); - int VoittajaNro2 = menuVoittaja2.getSelectedIndex(); + int PelaajaNro1 = menuOsallistuja1.getSelectedIndex()+1; + int PelaajaNro2 = menuOsallistuja2.getSelectedIndex()+1; + int PelaajaNro3 = menuOsallistuja3.getSelectedIndex()+1; + int PelaajaNro4 = menuOsallistuja4.getSelectedIndex()+1; + int VoittajaNro1 = menuVoittaja1.getSelectedIndex()+1; + int VoittajaNro2 = menuVoittaja2.getSelectedIndex()+1; String lopputulos = textLopputulos.getText(); diff --git a/src/HT/fx/PadelMainGUIController.java b/src/HT/fx/PadelMainGUIController.java index a4e6375a7c4f1be1a8f02c9c1d608d83c89d59eb..28887f04d30efbfb4b404780476a4dd1f0674025 100644 --- a/src/HT/fx/PadelMainGUIController.java +++ b/src/HT/fx/PadelMainGUIController.java @@ -52,8 +52,8 @@ public class PadelMainGUIController { } @FXML void handleLisaapelaaja() { - LisaaTestiPelaajat(); - //handleLisaaPelaaja(null, "kanat"); + //LisaaTestiPelaajat(); + handleLisaaPelaaja(null, "kanat"); //LisaaPelaaja(); //Syotatiedot(); lisaakentat(); @@ -110,7 +110,7 @@ public class PadelMainGUIController { } public void tallenna() { - try (PrintStream fo = new PrintStream(new FileOutputStream("/Users/joonatan/kurssit/ohj2/ht/src/Pelaajatiedot", false))) { + try (PrintStream fo = new PrintStream(new FileOutputStream("Pelaajatiedot.txt", false))) { int i = 0; while ( i<karkelo.getPelaajia()) { @@ -137,9 +137,10 @@ public class PadelMainGUIController { lisaakentat(); StringBuffer sb = new StringBuffer(s); + String tunnus = Mjonot.erota(sb,'|',false); String nimi = Mjonot.erota(sb,'|',false); String syntymapaiva = Mjonot.erota(sb,'|',false); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d.M.yyyy"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-M-d"); LocalDate synt = LocalDate.parse(syntymapaiva, formatter); String rating = Mjonot.erota(sb,'|',false); String sapo = Mjonot.erota(sb,'|',false); @@ -148,7 +149,7 @@ public class PadelMainGUIController { if(Integer.parseInt(auto)==1) { onkoauto = true; } - Pelaaja uusi = new Pelaaja(nimi,synt,Integer.parseInt(rating),sapo ,onkoauto); + Pelaaja uusi = new Pelaaja(Integer.parseInt(tunnus),nimi,synt,Integer.parseInt(rating),sapo ,onkoauto); LisaaPelaaja(uusi); diff --git a/src/HT/fx/PadelMainGUIView.fxml b/src/HT/fx/PadelMainGUIView.fxml index e9f05eeb98abe76aeee91bc8f320f3119d93cebf..8f855d42a5f0126b820f1437f6087c99b43c2868 100644 --- a/src/HT/fx/PadelMainGUIView.fxml +++ b/src/HT/fx/PadelMainGUIView.fxml @@ -24,7 +24,7 @@ <Font name="System Bold" size="24.0" /> </font> </Label> - <ScrollPane layoutX="3.0" layoutY="30.0" AnchorPane.bottomAnchor="35.0" AnchorPane.leftAnchor="3.0" AnchorPane.rightAnchor="160.0" AnchorPane.topAnchor="30.0"> + <ScrollPane layoutX="3.0" layoutY="30.0" prefHeight="335.0" prefWidth="527.0" AnchorPane.bottomAnchor="35.0" AnchorPane.leftAnchor="3.0" AnchorPane.rightAnchor="137.0" AnchorPane.topAnchor="30.0"> <content> <HBox prefHeight="335.0" prefWidth="452.0"> <children> @@ -37,7 +37,7 @@ </Label> </children> </VBox> - <VBox fx:id="IkaVbox" prefHeight="100.0" prefWidth="34.0"> + <VBox fx:id="IkaVbox" prefHeight="335.0" prefWidth="49.0"> <children> <Label text="Ikä"> <font> @@ -46,7 +46,7 @@ </Label> </children> </VBox> - <VBox fx:id="RatingVbox" prefHeight="335.0" prefWidth="43.0"> + <VBox fx:id="RatingVbox" prefHeight="335.0" prefWidth="69.0"> <children> <Label text="Rating"> <font> @@ -55,7 +55,7 @@ </Label> </children> </VBox> - <VBox fx:id="SapoVbox" prefHeight="100.0" prefWidth="188.0"> + <VBox fx:id="SapoVbox" prefHeight="335.0" prefWidth="210.0"> <children> <Label text="Sähköposti"> <font> @@ -64,7 +64,7 @@ </Label> </children> </VBox> - <VBox fx:id="AutoVbox" prefHeight="100.0" prefWidth="35.0"> + <VBox fx:id="AutoVbox" prefHeight="335.0" prefWidth="59.0"> <children> <Label text="Auto?"> <font> diff --git a/src/HT/fx/Pelaaja.java b/src/HT/fx/Pelaaja.java index fae20d1824dd6a21ea676bfcc838946bd564fe5f..a1f65050eb01bf86ef24b13a172c5c740589356a 100644 --- a/src/HT/fx/Pelaaja.java +++ b/src/HT/fx/Pelaaja.java @@ -32,19 +32,21 @@ public class Pelaaja { public Pelaaja(String nimi, LocalDate syntymaaika, String sahkoposti, boolean auto) { this.nimi = nimi; this.syntymaaika = syntymaaika; - this.rating = 1000;; + this.rating = 1000; this.sahkoposti = sahkoposti; this.auto = auto; } /** + * @param tunnusnro tunnus * @param nimi pelaajan nimi * @param syntymaaika pelaajan syntymaaika * @param rating pelaajan rating * @param sahkoposti pelaajan sähköposti * @param auto onko pelaajalla auto */ - public Pelaaja(String nimi, LocalDate syntymaaika, int rating, String sahkoposti, boolean auto) { + public Pelaaja(int tunnusnro, String nimi, LocalDate syntymaaika, int rating, String sahkoposti, boolean auto) { + this.tunnusnro = tunnusnro; this.nimi = nimi; this.syntymaaika = syntymaaika; this.rating = rating; @@ -62,7 +64,7 @@ public class Pelaaja { /** * Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle. */ - public void vastaaAkuAnkka() { + public void luoTesti() { nimi = "Ankka Aku"; syntymaaika = LocalDate.of(1951, 12, 5); //5.12.1951"; sahkoposti = "ankka.aku@luukku.fi"; @@ -94,7 +96,7 @@ public class Pelaaja { public String getTiedot() { int onkoauto = 0; if(auto)onkoauto=1; - return nimi+"|"+syntymaaika+"|"+rating+"|"+sahkoposti+"|"+onkoauto; + return tunnusnro + "|"+ nimi+"|"+syntymaaika+"|"+rating+"|"+sahkoposti+"|"+onkoauto; } /** * @return palauttaa pelaajan nimen @@ -174,13 +176,13 @@ public class Pelaaja { aku.rekisteroi(); aku2.rekisteroi(); aku.tulosta(System.out); - aku.vastaaAkuAnkka(); + aku.luoTesti(); aku.tulosta(System.out); - aku2.vastaaAkuAnkka(); + aku2.luoTesti(); aku2.tulosta(System.out); - aku2.vastaaAkuAnkka(); + aku2.luoTesti(); aku2.tulosta(System.out); } diff --git a/src/Ottelutiedot b/src/Ottelutiedot new file mode 100644 index 0000000000000000000000000000000000000000..5d5f3b43c7beb65ad6f4b3374d0bb63ecd9e4163 --- /dev/null +++ b/src/Ottelutiedot @@ -0,0 +1,3 @@ +1|2|6|4|3|2|6|1996-05-13|6-4, 2-6, 7-5 +2|3|1|5|2|5|2|2024-04-09|6-0 +3|2|3|4|5|4|5|2024-04-01|6-0 diff --git a/src/Pelaajatiedot b/src/Pelaajatiedot index fd64fc3a183c90b01f2eca8de3250b2f944375c8..bf1d93c0f66c42a308a5d7d6091857a10456087b 100644 --- a/src/Pelaajatiedot +++ b/src/Pelaajatiedot @@ -1,8 +1 @@ -Rasse|1999-05-13|1000|Rasse@gmail.com|0 -Tuomas|2001-09-14|1000|Tuomas@gmail.com|0 -Joonatan|1998-02-24|1000|Joonatan@gmail.com|1 -Pepe|1998-05-13|1000|Pepe@gmail.com|1 -Levy|1999-05-13|1000|Levy@gmail.com|0 -Robbe|1998-03-14|1000|Robbe@gmail.com|1 -Riku|1998-02-24|1000|Riku@gmail.com|1 -Tommi|1998-05-13|1000|Tommi@gmail.com|1 +1|Jaakko|2024-04-01|1000|hhh|1