From 00313aa49dc11ca56cd8259417cc5f1413237677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Koivisto=20Ida=20Maria=20Hannuntyt=C3=A4r?= <ida.m.koivisto@student.jyu.fi> Date: Mon, 24 Mar 2025 20:49:13 +0200 Subject: [PATCH] =?UTF-8?q?ralleja=20saadaan=20lis=C3=A4tty=C3=A4=20henkil?= =?UTF-8?q?=C3=B6lle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/RalliJava/Henkilo.java | 14 +-- src/RalliJava/Ralli.java | 41 +++++-- src/RalliJava/Rallit.java | 4 +- src/RalliJava/Rekisteri.java | 27 ++--- src/application/RalliController.java | 163 +++++++++++++++++---------- src/application/Sample.fxml | 5 +- src/application/henkilonLisays.fxml | 151 +++++++++++++++++++++++++ src/application/rallinLisays.fxml | 111 ++++++++++++++++++ 8 files changed, 421 insertions(+), 95 deletions(-) create mode 100644 src/application/henkilonLisays.fxml create mode 100644 src/application/rallinLisays.fxml diff --git a/src/RalliJava/Henkilo.java b/src/RalliJava/Henkilo.java index e442247..a28ad64 100644 --- a/src/RalliJava/Henkilo.java +++ b/src/RalliJava/Henkilo.java @@ -11,7 +11,7 @@ import java.util.Random; */ public class Henkilo { - private int tunnusNro = 0; + private int henkilonTunnusNro = 0; private String nimi = ""; private String sukunimi = ""; private int ika = 0; @@ -27,7 +27,7 @@ public class Henkilo { * */ public void rekisteroi() { - this.tunnusNro = seuraavaNro; + henkilonTunnusNro = seuraavaNro; seuraavaNro++; } @@ -70,7 +70,7 @@ public class Henkilo { if(kp==5) kotipaikkakunta = "Rovaniemi"; if(kp==6) kotipaikkakunta = "Keuruu"; - Henkilo henkilo = new Henkilo(tunnusNro, nimi, sukunimi, ika, kotipaikkakunta, seura, rallienMaara, voitetutRallit); + Henkilo henkilo = new Henkilo(henkilonTunnusNro, nimi, sukunimi, ika, kotipaikkakunta, seura, rallienMaara, voitetutRallit); henkilo.tulosta(System.out); } @@ -78,8 +78,8 @@ public class Henkilo { /** * @return tunnusnro */ - public int getTunnusNro() { - return tunnusNro; + public int getHenkilonTunnusNro() { + return henkilonTunnusNro; } /** @@ -101,7 +101,7 @@ public class Henkilo { */ public Henkilo(int tunnusNro, String nimi, String sukunimi, int ika, String kotipaikkakunta, String seura, int rallienMaara, int voitetutRallit) { this.nimi = nimi; - this.tunnusNro = tunnusNro; + this.henkilonTunnusNro = tunnusNro; this.sukunimi = sukunimi; this.ika = ika; this.seura = seura; @@ -114,7 +114,7 @@ public class Henkilo { * @param tulostettava tietovirta mitä tulostetaan */ public void tulosta(PrintStream tulostettava) { - tulostettava.println(String.format("%03d", tunnusNro, 3) + " " + nimi + " " + sukunimi + ", ikä: " + ika); + tulostettava.println(String.format("%03d", henkilonTunnusNro, 3) + " " + nimi + " " + sukunimi + ", ikä: " + ika); tulostettava.println("Kotipaikkakunta: " + kotipaikkakunta); tulostettava.println("Seura: " + seura); tulostettava.println("Osallistunut " + rallienMaara + " ralliin"); diff --git a/src/RalliJava/Ralli.java b/src/RalliJava/Ralli.java index bcc9a7e..80b1fd6 100644 --- a/src/RalliJava/Ralli.java +++ b/src/RalliJava/Ralli.java @@ -18,8 +18,8 @@ public class Ralli { * Vois kirjottaa luokan CRC-kortin vastuut * */ - private int tunnusNro; - private int htunnusNro; + private int rallinTunnusNro; + private int henkilonTunnusNro; private String rallinNimi = ""; private String sijainti = ""; private int osallistujienMaara; @@ -32,14 +32,30 @@ public class Ralli { private static int seuraavaNro = 0; + /** + * Alustaa henkilön + */ + public Ralli() { + //ei välttämättä tarttis + } + + + /** + * @param henkilonTunnusNro ilmottaununeen henkilon tunnusnumero + */ + public Ralli(int henkilonTunnusNro) { + this.henkilonTunnusNro = henkilonTunnusNro; + } + + /** * @return rallille seuraava identifioiva tunnusnumero * */ public int rekisteroi() { - this.tunnusNro = seuraavaNro; + rallinTunnusNro = seuraavaNro; seuraavaNro++; - return tunnusNro; + return rallinTunnusNro; } @@ -49,7 +65,7 @@ public class Ralli { */ public void vastaaRalli(int nro) { - htunnusNro = nro; + henkilonTunnusNro = nro; Random r = new Random(); int n = r.nextInt(4); int sr = r.nextInt(5); @@ -86,17 +102,20 @@ public class Ralli { * Kun halutaan tietää jonkun rallin identifioiva tunnusnumero * @return tunnusnro */ - public int getTunnusNro() { - return tunnusNro; + public int getRallinTunnusNro() { + return rallinTunnusNro; } + /** - * Alustaa henkilön + * @return henkilon tunnusnumero */ - public Ralli() { - //ei välttämättä tarttis + public int getHenkilonTunnusNro() { + return henkilonTunnusNro; } + + /** * @param tunnusNro id @@ -122,7 +141,7 @@ public class Ralli { * @param tulostettava tietovirta mitä tulostetaan */ public void tulosta(PrintStream tulostettava) { - tulostettava.println(String.format("%03d", tunnusNro, 3) + " " + rallinNimi); + tulostettava.println(String.format("%03d", rallinTunnusNro, 3) + " " + rallinNimi); tulostettava.println("Sijainti: " + sijainti); tulostettava.println("Järjestäjäseura: " + jarjestaja); tulostettava.println("Osallistujia " + osallistujienMaara + "kpl"); diff --git a/src/RalliJava/Rallit.java b/src/RalliJava/Rallit.java index fc5fa98..ef36798 100644 --- a/src/RalliJava/Rallit.java +++ b/src/RalliJava/Rallit.java @@ -35,7 +35,7 @@ public class Rallit { List<Ralli> loydetyt = new ArrayList<Ralli>(); // Käy rallit läpi ja etsii sieltä ne, mihin kysytty henkilö on osallistunut for (Ralli ralli:alkiot) //ITERAATTORI - if(ralli.getTunnusNro() == tunnusNro) loydetyt.add(ralli); + if(ralli.getHenkilonTunnusNro() == tunnusNro) loydetyt.add(ralli); return loydetyt; } @@ -80,7 +80,7 @@ public class Rallit { // Käy listan läpi ja tulostaa halutun (yläällä indeksi) rallin luoduista for (Ralli ral : rallit2) { - System.out.print(ral.getTunnusNro() + " "); + System.out.print(ral.getHenkilonTunnusNro() + " "); ral.tulosta(System.out); } diff --git a/src/RalliJava/Rekisteri.java b/src/RalliJava/Rekisteri.java index 901afb4..185a45c 100644 --- a/src/RalliJava/Rekisteri.java +++ b/src/RalliJava/Rekisteri.java @@ -53,7 +53,7 @@ public class Rekisteri { * @return listan näistä ralleista */ public List<Ralli> annaRallit(Henkilo henkilo){ - return rallit.annaRallit(henkilo.getTunnusNro()); + return rallit.annaRallit(henkilo.getHenkilonTunnusNro()); } @@ -65,6 +65,7 @@ public class Rekisteri { Rekisteri rekisteri = new Rekisteri(); try { + //Lisätään henkilöitä Henkilo rovis = new Henkilo(); Henkilo asunmaa = new Henkilo(); Henkilo elfyn = new Henkilo(); @@ -80,22 +81,22 @@ public class Rekisteri { rekisteri.lisaa(asunmaa); rekisteri.lisaa(elfyn); - Rallit rallit = new Rallit(); - + //Lisätään ralleja + //Rallit rallit = new Rallit(); Ralli pohjanmaa = new Ralli(); Ralli kuopio = new Ralli(); Ralli secto = new Ralli(); pohjanmaa.rekisteroi(); - pohjanmaa.vastaaRalli(asunmaa.getTunnusNro()); + pohjanmaa.vastaaRalli(asunmaa.getHenkilonTunnusNro()); kuopio.rekisteroi(); - kuopio.vastaaRalli(rovis.getTunnusNro()); + kuopio.vastaaRalli(rovis.getHenkilonTunnusNro()); secto.rekisteroi(); - secto.vastaaRalli(asunmaa.getTunnusNro()); + secto.vastaaRalli(asunmaa.getHenkilonTunnusNro()); - rallit.lisaa(pohjanmaa); - rallit.lisaa(kuopio); - rallit.lisaa(secto); + rekisteri.lisaa(pohjanmaa); + rekisteri.lisaa(kuopio); + rekisteri.lisaa(secto); pohjanmaa.tulosta(System.out); kuopio.tulosta(System.out); @@ -108,19 +109,19 @@ public class Rekisteri { System.out.println("Henkilö paikassa: " + i); henkilo.tulosta(System.out); - List<Ralli> rallit2 = rallit.annaRallit(2); + List<Ralli> rallit2 = rekisteri.annaRallit(henkilo); // Käy listan läpi ja tulostaa halutun (yläällä indeksi) rallin luoduista for (Ralli ral : rallit2) { - System.out.print(ral.getTunnusNro() + " "); + System.out.print(ral.getHenkilonTunnusNro() + " "); ral.tulosta(System.out); }} int lkm = rekisteri.getHenkiloita(); System.out.println("Henkilöitä on nyt " + lkm + "!"); - } catch (SailoException e) { - System.err.println("Liikaa alkioita :("); //kun alkioita enemmän kun MAX sallii + } catch (SailoException ex) { + System.out.println(ex.getMessage()); } diff --git a/src/application/RalliController.java b/src/application/RalliController.java index d96cdaf..764c609 100644 --- a/src/application/RalliController.java +++ b/src/application/RalliController.java @@ -10,9 +10,11 @@ import javafx.scene.text.Font; import java.io.PrintStream; import java.net.URL; +import java.util.List; import java.util.ResourceBundle; import RalliJava.Henkilo; +import RalliJava.Ralli; import RalliJava.Rekisteri; import RalliJava.SailoException; import fi.jyu.mit.fxgui.Dialogs; @@ -40,30 +42,48 @@ public class RalliController implements Initializable { alusta(); } + /* - * Lisää uuden, avaa uuden ikkunan, missä pääsee lisäämään joko uuden rallin tai uuden henkilön + * Avaa uuden ikkunan missä voi lisätä uuden henkilön tiedot ja tallentaa ne */ - @FXML private void handleUusi() { - //Dialogs.showQuestionDialog("Poisto?", "Poistetaanko?", "Kyllä", "Ei"); //Otsikko, teksti, nappi1, nappi2 - //ModalController.showModal(RalliController.class.getResource("uudenlisays.fxml"), "Lisää uusi", null, ""); //Modal controller -> ei voida tehdä muuta - //TODO: miten toteutus uuden rallin ja uuden henkilön lisäämiselle, pitää varmaan olla eri ikkunat + @FXML private void handleUusiHenkilo() { uusiHenkilo(); } - private void uusiHenkilo() { - Henkilo uusi = new Henkilo(); - uusi.rekisteroi(); //TODO rekisteröinti vasta kun käyttäjä tallentaa uuden tiedot - uusi.vastaahlo(); //TODO että käyttäjä saa täyttää itse - //uusi.tulosta(System.out); - try { - rekisteri.lisaa(uusi); - } catch (SailoException e) { //catch koska määrtelty että rekisteri saattaa heittää poikkeuksen - Dialogs.showMessageDialog("Ongelmia uuden luomisessa " + e.getMessage()); - } - hae(uusi.getTunnusNro()); + @FXML private void handleUusiRalli() { + //Dialogs.showMessageDialog("Lisää uuden rallin, ei vielä osaa :(("); + uusiRalli(); + } + + /* + * Avaa ikkunan, missä pääsee muokkaamaan valitun RALLIN tietoja + */ + @FXML private void handleMuokkaa() { + //Dialogs.showMessageDialog("Muokkaa valittua henkilöä/rallia, ei osaa vielä :(("); + ModalController.showModal(RalliController.class.getResource("muokkausRalli.fxml"), "Muokkaa", null, ""); + //TODO: täytyy pystyä muokkaamaan myös henkilöitä + } + + + + /* + * + */ + @FXML private void handleRajaus() { + Dialogs.showMessageDialog("Rajaa hakutuloksia, ei osaa vielä :(("); } + /* + * Poistuu ikkunasta + */ + @FXML private void handlePoistu() { + //TODO:tallenna(); + Platform.exit(); + } + + + /** * @return true */ @@ -75,11 +95,47 @@ public class RalliController implements Initializable { /*================================================================*/ - //private Henkilo henkiloKohdalla; private Rekisteri rekisteri; + private Henkilo henkiloKohdalla; private TextArea areaHenkilo = new TextArea(); //TODO poista lopuksi!! + /** + * @param rekisteri mitä käytetään + */ + public void setRekisteri(Rekisteri rekisteri){ + this.rekisteri = rekisteri; + naytaHenkilo(); + } + + /* + * Näyttää valitun jäsenen tiedot väliaikaisesti + * @param rekisteri + */ + private void naytaHenkilo() { + henkiloKohdalla = chooserHenkilot.getSelectedObject(); + + if(henkiloKohdalla == null) return; //jos ei oo valittuna ketään, poistutaan + + areaHenkilo.setText(""); //tyhjennetään entinen näkyviltä + try (PrintStream out = TextAreaOutputStream.getTextPrintStream(areaHenkilo)) { + + out.println("======"); + henkiloKohdalla.tulosta(out); + out.println("======"); + List<Ralli> rallit = rekisteri.annaRallit(henkiloKohdalla); + for (Ralli ral: rallit) + ral.tulosta(out); + out.println("======"); + + //tulosta(out, henkiloKohdalla); + //henkiloKohdalla.tulosta(out); + //List<Ralli> rallit = rekisteri.annaRallit(henkiloKohdalla); + //for(Ralli ral: rallit) + //ral.tulosta(out); + } + } + /* * Alustaa vasemman teksti-ikkunan tyhjäksi * asettaa myös kuuntelijan listalle @@ -92,15 +148,6 @@ public class RalliController implements Initializable { chooserHenkilot.addSelectionListener(e -> naytaHenkilo()); // e on lambdalauseke //TODO: saa uudet henkilöt näkymään listassa } - - - /** - * @param rekisteri mitä käytetään - */ - public void setRekisteri(Rekisteri rekisteri){ - this.rekisteri = rekisteri; - //naytaHenkilo(); - } /* @@ -113,51 +160,47 @@ public class RalliController implements Initializable { int index = 0; for(int i = 0; i < rekisteri.getHenkiloita(); i++) { //käydään läpi henkilöt Henkilo henkilo = rekisteri.annaHenkilo(i); //indeksin perusteella käy läpi - if (henkilo.getTunnusNro() == idnro) index = i; //samalla kun käy läpi henkilöitä, etsii oikeaa indeksiä + if (henkilo.getHenkilonTunnusNro() == idnro) index = i; //samalla kun käy läpi henkilöitä, etsii oikeaa indeksiä chooserHenkilot.add(henkilo.getNimi(), henkilo); // viimeinen kohta linkittää juuri tämän henkilön chooseriin } chooserHenkilot.setSelectedIndex(index); } - /* - * Avaa ikkunan, missä pääsee muokkaamaan valitun henkilön tai rallin tietoja - */ - @FXML private void handleMuokkaa() { - //Dialogs.showMessageDialog("Muokkaa valittua henkilöä/rallia, ei osaa vielä :(("); - ModalController.showModal(RalliController.class.getResource("muokkausRalli.fxml"), "Muokkaa", null, ""); + + + private void uusiHenkilo() { + Henkilo uusi = new Henkilo(); + uusi.rekisteroi(); //TODO rekisteröinti vasta kun käyttäjä tallentaa uuden tiedot + uusi.vastaahlo(); //TODO että käyttäjä saa täyttää itse + //uusi.tulosta(System.out); + try { + rekisteri.lisaa(uusi); + } catch (SailoException e) { //catch koska määrtelty että rekisteri saattaa heittää poikkeuksen + Dialogs.showMessageDialog("Ongelmia uuden luomisessa " + e.getMessage()); + } + hae(uusi.getHenkilonTunnusNro()); } - /* - * Poistuu ikkunasta - */ - @FXML private void handlePoistu() { - //TODO:tallenna(); - Platform.exit(); + private void uusiRalli() { + henkiloKohdalla = chooserHenkilot.getSelectedObject(); + if (henkiloKohdalla == null) return; // jos ei olla minkään jäsenen kohdalla + //Chooserilta voi kysyä minkä henkilön kohdalla ollaan + //Henkilo hlovalittuna = chooserHenkilot.getSelectedObject(); + Ralli ral = new Ralli(); + ral.rekisteroi(); + ral.vastaaRalli(henkiloKohdalla.getHenkilonTunnusNro()); + rekisteri.lisaa(ral); + hae(henkiloKohdalla.getHenkilonTunnusNro()); + //TODO ei lisää rallia mutta ei anna erroria??? } + + + - /* - * Näyttää valitun jäsenen tiedot väliaikaisesti - * @param rekisteri - */ - private void naytaHenkilo() { - Henkilo henkiloKohdalla = chooserHenkilot.getSelectedObject(); - - if(henkiloKohdalla == null) return; //jos ei oo valittuna ketään, poistutaan - - areaHenkilo.setText(""); //tyhjennetään entinen näkyviltä - try (PrintStream out = TextAreaOutputStream.getTextPrintStream(areaHenkilo)) { - henkiloKohdalla.tulosta(out); - } - } + - - /* - * - */ - @FXML private void handleRajaus() { - Dialogs.showMessageDialog("Rajaa hakutuloksia, ei osaa vielä :(("); - } + } diff --git a/src/application/Sample.fxml b/src/application/Sample.fxml index 339c4ff..22d0a5f 100644 --- a/src/application/Sample.fxml +++ b/src/application/Sample.fxml @@ -44,8 +44,9 @@ <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> </BorderPane.margin> <children> - <Button mnemonicParsing="false" onAction="#handleUusi" text="Lisää uusi" /> - <Button mnemonicParsing="false" onAction="#handleMuokkaa" text="Muokkaa tietoja" /> + <Button mnemonicParsing="false" onAction="#handleUusiHenkilo" text="Lisää uusi henkilö" /> + <Button mnemonicParsing="false" onAction="#handleUusiRalli" text="Ilmoita henkilö ralliin" /> + <Button mnemonicParsing="false" onAction="#handleMuokkaa" text="Muokkaa henkilötietoja" /> <Button mnemonicParsing="false" onAction="#handlePoistu" text="Takaisin" /> <Button mnemonicParsing="false" onAction="#handlePoistu" text="Poistu" /> </children> diff --git a/src/application/henkilonLisays.fxml b/src/application/henkilonLisays.fxml new file mode 100644 index 0000000..7fcfc85 --- /dev/null +++ b/src/application/henkilonLisays.fxml @@ -0,0 +1,151 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.CheckBox?> +<?import javafx.scene.control.ChoiceBox?> +<?import javafx.scene.control.DatePicker?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.Menu?> +<?import javafx.scene.control.MenuBar?> +<?import javafx.scene.control.MenuItem?> +<?import javafx.scene.control.Tab?> +<?import javafx.scene.control.TabPane?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.RowConstraints?> + +<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="402.0" prefWidth="483.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fi.jyu.mit.fxgui.ModalController"> + <center> + <TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE" BorderPane.alignment="CENTER"> + <tabs> + <Tab text="Uusi henkilö"> + <content> + <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> + <children> + <GridPane layoutX="206.0" layoutY="29.0"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <Label text="Nimi" /> + <Label text="Syntmäpäivä" GridPane.rowIndex="1" /> + <Label text="Seura" GridPane.rowIndex="3" /> + <TextField fx:id="henkilonNimi" GridPane.columnIndex="1" /> + <DatePicker fx:id="henkilonSyntymaAika" GridPane.columnIndex="1" GridPane.rowIndex="1" /> + <ChoiceBox fx:id="henkilonSeura" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3" /> + <CheckBox fx:id="onKartturi" mnemonicParsing="false" text="Kartturi" GridPane.columnIndex="1" GridPane.rowIndex="2" /> + <CheckBox fx:id="onKuljettaja" mnemonicParsing="false" text="Kuljettaja" GridPane.rowIndex="2" /> + </children> + </GridPane> + <GridPane layoutX="135.0" layoutY="164.0"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="124.79998779296875" minWidth="10.0" prefWidth="124.79998779296875" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="124.00000000000001" minWidth="10.0" prefWidth="103.19995117187501" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="95.20001220703125" minWidth="10.0" prefWidth="72.800048828125" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <Label contentDisplay="BOTTOM" text="Ralli"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </Label> + <Label text="Auto" GridPane.columnIndex="1"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </Label> + <Label text="Sijoitus" GridPane.columnIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </Label> + <TextField GridPane.columnIndex="1" GridPane.rowIndex="1"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </TextField> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="1"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </TextField> + <TextField GridPane.columnIndex="1" GridPane.rowIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </TextField> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </TextField> + <ChoiceBox prefWidth="150.0" GridPane.rowIndex="1"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </ChoiceBox> + <ChoiceBox prefWidth="150.0" GridPane.rowIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </ChoiceBox> + </children> + </GridPane> + <Label layoutX="150.0" layoutY="276.0" text="Ideointi rallien lisäämiseen vielä kesken..." /> + </children> + </AnchorPane> + </content> + </Tab> + </tabs> + </TabPane> + </center> + <top> + <MenuBar BorderPane.alignment="CENTER"> + <menus> + <Menu mnemonicParsing="false" text="Tiedosto"> + <items> + <MenuItem mnemonicParsing="false" text="Close" /> + </items> + </Menu> + <Menu mnemonicParsing="false" text="Muokkaa"> + <items> + <MenuItem mnemonicParsing="false" text="Delete" /> + </items> + </Menu> + <Menu mnemonicParsing="false" text="Apua"> + <items> + <MenuItem mnemonicParsing="false" text="About" /> + </items> + </Menu> + </menus> + </MenuBar> + </top> + <bottom> + <HBox spacing="10.0" BorderPane.alignment="CENTER"> + <BorderPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </BorderPane.margin> + <children> + <Button mnemonicParsing="false" onAction="#handleDefaultCancel" text="Peruuta" /> + <Button mnemonicParsing="false" onAction="#handleDefaultOK" text="Tallenna" /> + </children> + </HBox> + </bottom> +</BorderPane> diff --git a/src/application/rallinLisays.fxml b/src/application/rallinLisays.fxml new file mode 100644 index 0000000..c650f23 --- /dev/null +++ b/src/application/rallinLisays.fxml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ChoiceBox?> +<?import javafx.scene.control.DatePicker?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.Menu?> +<?import javafx.scene.control.MenuBar?> +<?import javafx.scene.control.MenuItem?> +<?import javafx.scene.control.Tab?> +<?import javafx.scene.control.TabPane?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.RowConstraints?> + +<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="402.0" prefWidth="483.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fi.jyu.mit.fxgui.ModalController"> + <center> + <TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE" BorderPane.alignment="CENTER"> + <tabs> + <Tab text="Uusi ralli"> + <content> + <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> + <children> + <GridPane layoutX="46.0" layoutY="33.0"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="123.199951171875" minWidth="10.0" prefWidth="84.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="172.0" minWidth="10.0" prefWidth="151.20001220703125" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="134.79998779296875" minWidth="10.0" prefWidth="134.79998779296875" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="28.79999389648438" minHeight="0.0" prefHeight="28.00000610351563" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="60.80000000000001" minHeight="10.0" prefHeight="32.79999389648438" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <Label text="Rallin nimi" GridPane.columnIndex="1" /> + <Label text="Paikkakunta" GridPane.columnIndex="1" GridPane.rowIndex="1" /> + <Label text="Ajankohta" GridPane.rowIndex="2" /> + <TextField GridPane.columnIndex="2" /> + <ChoiceBox prefWidth="150.0" GridPane.columnIndex="2" GridPane.rowIndex="1" /> + <DatePicker GridPane.columnIndex="1" GridPane.rowIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </DatePicker> + <DatePicker prefHeight="26.0" prefWidth="128.0" GridPane.columnIndex="2" GridPane.rowIndex="2"> + <GridPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </GridPane.margin> + </DatePicker> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="3" /> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="4" /> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="5" /> + <TextField GridPane.columnIndex="2" GridPane.rowIndex="6" /> + <Label text="Tuloslista" GridPane.columnIndex="1" GridPane.rowIndex="6" /> + <Label text="Osallistujalista" GridPane.columnIndex="1" GridPane.rowIndex="5" /> + <Label text="Linkki tapahtuman sivuille" GridPane.columnIndex="1" GridPane.rowIndex="4" /> + <Label text="Järjestäjä" GridPane.columnIndex="1" GridPane.rowIndex="3" /> + </children> + <padding> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </padding> + </GridPane> + </children></AnchorPane> + </content> + </Tab> + </tabs> + </TabPane> + </center> + <top> + <MenuBar BorderPane.alignment="CENTER"> + <menus> + <Menu mnemonicParsing="false" text="Tiedosto"> + <items> + <MenuItem mnemonicParsing="false" text="Close" /> + </items> + </Menu> + <Menu mnemonicParsing="false" text="Muokkaa"> + <items> + <MenuItem mnemonicParsing="false" text="Delete" /> + </items> + </Menu> + <Menu mnemonicParsing="false" text="Apua"> + <items> + <MenuItem mnemonicParsing="false" text="About" /> + </items> + </Menu> + </menus> + </MenuBar> + </top> + <bottom> + <HBox spacing="10.0" BorderPane.alignment="CENTER"> + <BorderPane.margin> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </BorderPane.margin> + <children> + <Button mnemonicParsing="false" onAction="#handleDefaultCancel" text="Peruuta" /> + <Button mnemonicParsing="false" onAction="#handleDefaultOK" text="Tallenna" /> + </children> + </HBox> + </bottom> +</BorderPane> -- GitLab