diff --git a/src/fxKohtaushallinta/KohtaushallintaGUIController.java b/src/fxKohtaushallinta/KohtaushallintaGUIController.java index b01754cb505d50758be43d72a6c2fcd1e3c67dfa..cad26cd8cb059005a888397e0460334d3895b6b9 100644 --- a/src/fxKohtaushallinta/KohtaushallintaGUIController.java +++ b/src/fxKohtaushallinta/KohtaushallintaGUIController.java @@ -97,7 +97,7 @@ public class KohtaushallintaGUIController { } @FXML void handleLisaaHahmo(ActionEvent event) { - //lisaaKohtaukseen(valittuIndeksi); + lisaaKohtaukseen(Kohtaushallinta.HAHMOT,valittuIndeksi); } @FXML void handleMuokkaaKohtausta(ActionEvent event) { @@ -159,19 +159,19 @@ public class KohtaushallintaGUIController { @FXML void handleUusiAsia(ActionEvent event) { - //uusiTietue(Kohtaukset.ASIA); + uusiTietue(Kohtaushallinta.ASIAT); } @FXML void handleUusiHahmo(ActionEvent event) { - //uusiTietue(Kohtaukset.HAHMO); + uusiTietue(Kohtaushallinta.HAHMOT); } @FXML void handleUusiKohtaus(ActionEvent event) { - //uusiTietue(Kohtaukset.KOHTAUS); + uusiTietue(Kohtaushallinta.KOHTAUKSET); } @FXML void handlePoistaAsia() { - //poistaKohtauksesta(Kohtaukset.ASIA, valittuIndeksi); + poistaKohtauksesta(Kohtaushallinta.ASIAT, valittuIndeksi); } diff --git a/src/kohtaushallinta/Avainsanat.java b/src/kohtaushallinta/Avainsanat.java index d37bd047c4c5d9ac7838dafdfacd3a6fa767205f..ff829146891daff4eaa5889ed67462465d9cb21f 100644 --- a/src/kohtaushallinta/Avainsanat.java +++ b/src/kohtaushallinta/Avainsanat.java @@ -3,7 +3,6 @@ package kohtaushallinta; import java.util.ArrayList; import java.util.List; -import javafx.collections.ObservableList; import javafx.collections.transformation.SortedList; /** diff --git a/src/kohtaushallinta/Kohtaushallinta.java b/src/kohtaushallinta/Kohtaushallinta.java index f43f9a48ed38a7df4c4db6fa6c0c170ca5363ab0..76ace7f25f832c185c6a25111ea01474b23ebee1 100644 --- a/src/kohtaushallinta/Kohtaushallinta.java +++ b/src/kohtaushallinta/Kohtaushallinta.java @@ -17,7 +17,6 @@ public class Kohtaushallinta { private String asiaTdst = "asiat.dat"; private String asialinkit = "kohtauksenAsiat.dat"; private String hahmolinkit = "kohtauksenHahmot.dat"; - private String[] linkkitdst = new String[] { "kohtauksenHahmot.dat", "kohtauksenAsiat.dat" }; public static final int HAHMOT = 0; public static final int ASIAT = 1; @@ -118,31 +117,49 @@ public class Kohtaushallinta { } } + + /** + * Luo uuden tietueen haluttua tyyppiä. + * @param tyyppi HAHMOT (0) / ASIAT (1) / KOHTAUKSET (3) + * @return Tietueen + * @throws IllegalArgumentException argumentti ei viittaa mihinkään Tietueet-olioon + * @example + * <pre name="test"> + * #THROWS IOException + * #import java.io.IOException; + * Kohtaushallinta kh = new Kohtaushallinta(); + * kh.lataa(); + * Tietue t = kh.uusiTietue(Kohtaushallinta.ASIAT); + * t.getID() === 6; + * t = kh.uusiTietue(Kohtaushallinta.HAHMOT); + * t.getID() === 5; + * t = (Tietue)kh.uusiTietue(Kohtaushallinta.KOHTAUKSET); + * t.getID() === 4; + * </pre> + */ + public Tietue uusiTietue(int tyyppi) throws IllegalArgumentException { + return this.getTietueet(tyyppi).luoTietue(); + } + - //TODO: DEBUGGAUSTA VARTEN; POISTA TAI MUOKKAA PAREMMAKSI - @SuppressWarnings("unused") - private Tietueet getTt(int nro) { - switch(nro) { + /** + * Hakee halutun Tietueet olion + * @param tyyppi HAHMOT (0) / ASIAT (1) / KOHTAUKSET (3) + * @return Tietueet + * @throws IllegalArgumentException argumentti ei viittaa mihinkään Tietueet-olioon + */ + private Tietueet getTietueet(int tyyppi) throws IllegalArgumentException { + switch(tyyppi) { case 0: - return this.kohtaustietueet; - case 1: return this.hahmotietueet; - case 2: + case 1: return this.asiatietueet; + case 2: + return this.kohtaustietueet; default: - return null; + throw new IllegalArgumentException("Metodin argumentin on oltava KOHTAUS (0), HAHMOT (1) tai ASIAT: " + tyyppi + " ei kelpaa"); } } - - - /** - * Luo uuden tietueen haluttua tyyppiä. Varmistaa, että tietueen ID on validi. - * @param tyyppi HAHMO / ASIA / KOHTAUS - * @return Tietueen - */ - public Tietue uusiTietue(int tyyppi) { - return null; - } //TODO: DEBUGGAUSTA VARTEN, POISTA diff --git a/src/kohtaushallinta/Tietueet.java b/src/kohtaushallinta/Tietueet.java index 4327db0b0b0b7058b6eb1dfe9d119a3341a903c0..d4f7d43706e4d2c65a433c00152e665714badb9a 100644 --- a/src/kohtaushallinta/Tietueet.java +++ b/src/kohtaushallinta/Tietueet.java @@ -333,6 +333,32 @@ public class Tietueet implements TiedostoKayttaja { } + /** + * Luo uuden Tietueen otsikolla "Nimi" ja jos on varattu, "NimiX", jossa X = ensimmäinen vapaa kokonaisluku väliltä 1-MAX_Value + * @return uuden Tietueen + * @example + * <pre name="test"> + * Tietueet tt = new Tietueet("koe.dat"); + * tt.luoTietue(); + * tt.get(0).getOtsikko() === "Nimi"; + * tt.get(1) === null; + * tt.luoTietue(); + * tt.luoTietue(); + * tt.get(1).getOtsikko() === "Nimi1"; + * tt.get(2).getOtsikko() === "Nimi2"; + * </pre> + */ + public Tietue luoTietue() { + String otsikko = "Nimi"; + if (this.etsi(otsikko) == -1) return luoTietue(otsikko); + for (int i = 1; i < Integer.MAX_VALUE; i++) { + String vo = otsikko + i; + if (this.etsi(vo) == -1) return luoTietue(vo); + } + return null; + } + + /** * Tallentaa Tietueet tiedostoon * @throws IOException Tiedostoon kirjoittaminen ei onnistu diff --git a/src/kohtaushallinta/test/KohtaushallintaTest.java b/src/kohtaushallinta/test/KohtaushallintaTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ddae5e680aeb66b4976b75e8c0481199a20d72fe --- /dev/null +++ b/src/kohtaushallinta/test/KohtaushallintaTest.java @@ -0,0 +1,35 @@ +package kohtaushallinta.test; +// Generated by ComTest BEGIN +import static org.junit.Assert.*; +import org.junit.*; +import java.io.IOException; +import kohtaushallinta.*; +// Generated by ComTest END + +/** + * Test class made by ComTest + * @version 2025.03.24 14:16:30 // Generated by ComTest + * + */ +@SuppressWarnings({ "all" }) +public class KohtaushallintaTest { + + + + // Generated by ComTest BEGIN + /** + * testUusiTietue127 + * @throws IOException when error + */ + @Test + public void testUusiTietue127() throws IOException { // Kohtaushallinta: 127 + Kohtaushallinta kh = new Kohtaushallinta(); + kh.lataa(); + Tietue t = kh.uusiTietue(Kohtaushallinta.ASIAT); + assertEquals("From: Kohtaushallinta line: 133", 6, t.getID()); + t = kh.uusiTietue(Kohtaushallinta.HAHMOT); + assertEquals("From: Kohtaushallinta line: 135", 5, t.getID()); + t = (Tietue)kh.uusiTietue(Kohtaushallinta.KOHTAUKSET); + assertEquals("From: Kohtaushallinta line: 137", 4, t.getID()); + } // Generated by ComTest END +} \ No newline at end of file diff --git a/src/kohtaushallinta/test/TietueetTest.java b/src/kohtaushallinta/test/TietueetTest.java index b0c4eaa4e0e6d73a5e8f5a4a1786b76517dc4f7e..9a9d80ecfaf0d70b0117d0b580caf379d9afd0b7 100644 --- a/src/kohtaushallinta/test/TietueetTest.java +++ b/src/kohtaushallinta/test/TietueetTest.java @@ -7,13 +7,14 @@ import kohtaushallinta.*; /** * Test class made by ComTest - * @version 2025.03.21 11:02:23 // Generated by ComTest + * @version 2025.03.24 14:07:38 // Generated by ComTest * */ @SuppressWarnings({ "all" }) public class TietueetTest { + // Generated by ComTest BEGIN /** testKopioi112 */ @Test @@ -106,4 +107,19 @@ public class TietueetTest { assertEquals("From: Tietueet line: 327", null, tt.luoTietue("Eka")); assertEquals("From: Tietueet line: 328", 1, tt.luoTietue("Toka").getID()); } // Generated by ComTest END + + + // Generated by ComTest BEGIN + /** testLuoTietue340 */ + @Test + public void testLuoTietue340() { // Tietueet: 340 + Tietueet tt = new Tietueet("koe.dat"); + tt.luoTietue(); + assertEquals("From: Tietueet line: 343", "Nimi", tt.get(0).getOtsikko()); + assertEquals("From: Tietueet line: 344", null, tt.get(1)); + tt.luoTietue(); + tt.luoTietue(); + assertEquals("From: Tietueet line: 347", "Nimi1", tt.get(1).getOtsikko()); + assertEquals("From: Tietueet line: 348", "Nimi2", tt.get(2).getOtsikko()); + } // Generated by ComTest END } \ No newline at end of file