diff --git a/src/fxHarakka/Projekti.java b/src/fxHarakka/Projekti.java deleted file mode 100644 index 437222e41799e6918acbaef0a85a9ef7c133c392..0000000000000000000000000000000000000000 --- a/src/fxHarakka/Projekti.java +++ /dev/null @@ -1,74 +0,0 @@ -package fxHarakka; - - -/** - * Tää on siis luokka joka sisältää "projekti" alustajia ja sen metodeita. - * Tehään tällein jotta asiat löytyy helposti oikeista paikoista - * - * eli kun käyttöliittymästä painetaan luo projekti nii hypätään tänne - * kutsumaan aliohjelmaa luo projekti - * - * - */ -public class Projekti { - - private int id; //projekti id --> ensimmäinen projekti 1 - private String nimi; //projektin nimi - private String aihe; //en tiiä onko vielä käyttöä mut voidaan leimata projekti tietyks aiheeks - //samalla aiheella sama värikoodaus käyttöliittymässä - - private static int seuraavaNro = 1; - - //default parametritön muodostaja - public Projekti() { - this.id = 0; - this.nimi = ""; - this.aihe = ""; - } - - //parametrillinen muodostaja - public Projekti(int id, String nimi, String aihe){ - this.id = id; - this.nimi = nimi; - this.aihe = aihe; - } - - //-----------------------METODIT - PROJEKTI---------------------------- - - public static Projekti luoProjekti(String nimi, String aihe){ //static koska ei tarvita this - int nro = seuraavaNro++; // huom jälkilisäys - Projekti projekti = new Projekti(nro, nimi, aihe); - - - return projekti; - - } - - public int getId() { - return id; - } - public String getNimi() { - return nimi; - } - public String getAihe() { - return aihe; - } - - @Override - public String toString(){ - String strg = this.nimi + " | " + this.aihe + " | " + this.id; - - return strg; - } - - //maini testaamista varten - public static void main(String[] args){ - Projekti testi1 = luoProjekti("kvantti", "fysiikka"); - System.out.println(testi1); - - Projekti testi2 = luoProjekti("Nakki", "Keitto"); - System.out.println(testi2); //ID toimii - } - - -} diff --git a/src/fxHarakka/Projektit.java b/src/fxHarakka/Projektit.java deleted file mode 100644 index ac1fc259302e074a93190f6c7672a073e0154d5a..0000000000000000000000000000000000000000 --- a/src/fxHarakka/Projektit.java +++ /dev/null @@ -1,42 +0,0 @@ -package fxHarakka; - -public class Projektit { - private int maara; - private int maxMaara; - - - //-----------------------MUODOSTAJAT - PROJEKTIT---------------------------- - - public Projektit(int maara, int maxMaara) { - this.maara = maara; - this.maxMaara = maxMaara; - } - - public Projektit() { - this.maara = 0; - this.maxMaara = 0; - } - - - - //-----------------------METODIT - PROJEKTIT---------------------------- - - - public int getMaara() { - return maara; - } - - public void setMaara(int maara) { - this.maara = maara; - } - - public int getMaxMaara() { - return maxMaara; - } - - public void setMaxMaara(int maxMaara) { - this.maxMaara = maxMaara; - } - - -} diff --git a/src/fxHarakka/Tehtava.java b/src/fxHarakka/Tehtava.java deleted file mode 100644 index f07d610db712944baa8c2dc7c173009ab3fe955e..0000000000000000000000000000000000000000 --- a/src/fxHarakka/Tehtava.java +++ /dev/null @@ -1,43 +0,0 @@ -package fxHarakka; - -public class Tehtava { - - private String nimi; //tehtävän nimi - //private Pvm pvm; //päivämäärä TODO otetaan kommenteista pois kun Pvm luokka tehty - //private Aika aika; // TODO tehään myös aika luokka - private int id; //tehtävän id numero - private static int seuraavaNro = 1; //countteri missä tehtävässä mennään - - /** - *TODO sitten kun Pvm ja Aika luokat lisätty ne pitää lisätä muodostajaan ja ainakin tällä hetkellä - * lisaa Tehtaa metodiin - */ - //-----------------------MUODOSTAJAT - TEHTAVA---------------------------- - //parametritön muodostaja - public Tehtava() { - this.nimi = ""; - } - - //parametrillinen muodostaja - public Tehtava(String nimi, int id) { - this.nimi = nimi; - this.id = id; - } - - - //-----------------------METODIT - TEHTAVA---------------------------- - - public Tehtava lisaaTehtava(String nimi, int id) { - - Tehtava tehtava = new Tehtava(nimi, id); - return tehtava; - - } - - - - - - - -} diff --git a/src/fxHarakka/Tehtavat.java b/src/fxHarakka/Tehtavat.java deleted file mode 100644 index 3a3fc3afa30f583812bf64eb5641c1c703fea35e..0000000000000000000000000000000000000000 --- a/src/fxHarakka/Tehtavat.java +++ /dev/null @@ -1,37 +0,0 @@ -package fxHarakka; - -public class Tehtavat { - private int maara; - private int maxMaara; - - //-----------------------MUODOSTAJAT-TEHTAVAT---------------------------- - - public Tehtavat(int maara, int maxMaara) { - this.maara = maara; - this.maxMaara = maxMaara; - } - - public Tehtavat() { - this.maara = 0; - this.maxMaara = 0; - } - - - //-----------------------METODIT - TEHTAVAT---------------------------- - - public int getMaara() { - return maara; - } - - public void setMaara(int maara) { - this.maara = maara; - } - - public int getMaxMaara() { - return maxMaara; - } - - public void setMaxMaara(int maxMaara) { - this.maxMaara = maxMaara; - } -} diff --git a/src/fxHarakka/luokat/Harakka.java b/src/fxHarakka/luokat/Harakka.java new file mode 100644 index 0000000000000000000000000000000000000000..e0adb2e2daabfcd78958df9cce78dc1b67d4abfa --- /dev/null +++ b/src/fxHarakka/luokat/Harakka.java @@ -0,0 +1,13 @@ +package fxHarakka.luokat; + +public class Harakka { +//harakalla on tehtavat ja projektit instanssit + private final Tehtavat tehtavat = new Tehtavat(); + private final Projektit projektit = new Projektit(); + + + + + + +} diff --git a/src/fxHarakka/luokat/Naytto.java b/src/fxHarakka/luokat/Naytto.java new file mode 100644 index 0000000000000000000000000000000000000000..af29158483b67e8840ffaba8088ceacfe937511b --- /dev/null +++ b/src/fxHarakka/luokat/Naytto.java @@ -0,0 +1,8 @@ +package fxHarakka.luokat; + +public class Naytto { +//Naytöllä on viite harakkaan --> naytossa pitää olla instanssi harakalle + private final Harakka harakka = new Harakka(); //luodaan ns. uusi istunto --> voi olla useampi harakka + //jos jatkossa haluaa useamman käyttäjän + +} diff --git a/src/fxHarakka/luokat/Projekti.java b/src/fxHarakka/luokat/Projekti.java new file mode 100644 index 0000000000000000000000000000000000000000..1c595d76e87f6cf467bb7304bd1fd4b99ba0eb21 --- /dev/null +++ b/src/fxHarakka/luokat/Projekti.java @@ -0,0 +1,105 @@ +package fxHarakka.luokat; + + +/** + * ----------Yksittäisen projektin luokka------------ + * | + * | - Ei tiedä muista luokista mitään. + * | - Huolehtii yksittäisen projektin kentistä eli: + * | -aihe + * | -nimi + * | -kesto (viikoissa) + * | -suoritettu (viikoissa) + * | - Osaa get metodit omille attribuuteille. + * | - Osaa parsia itsensä merkkijonoksi + * -------------------------------------------------- + */ +public class Projekti { + + private String aihe; //projektin aihealue + private String nimi; //projektin nimi + private final int id; //projekti id --> ensimmäinen projekti alkaa id nro 1 + private int kesto; + private int suoritettu; + private static int seuraavaNro = 1; + + + //default parametritön muodostaja + public Projekti() { + this.id = 0; + this.nimi = ""; + this.aihe = ""; + } + + //parametrillinen muodostaja + public Projekti(int id, String nimi, String aihe){ + this.id = id; + this.nimi = nimi; + this.aihe = aihe; + } + + //-----------------------METODIT - PROJEKTI---------------------------- + + /** aliohjelma uuden projektin luomiselle. varaa id numeron itselleen. + * + * @param nimi projektin nimi + * @param aihe projektin aihealue + * + * @return + * @example <pre name="test"> + * #import fxHarakka.luokat.*; + * + * Projekti testi1 = luoProjekti("kvantti", "fysiikka"); + * testi1.toString() === "kvantti | fysiikka | 1"; + * + * Projekti testi2 = luoProjekti("Nakki", "Keitto"); + * testi2.toString() === "Nakki | Keitto | 2"; + * </pre> + */ + public static Projekti luoProjekti(String nimi, String aihe){ //static koska ei tarvita this + int nro = seuraavaNro++; // huom jälkilisäys + Projekti projekti = new Projekti(nro, nimi, aihe); + + + return projekti; + + } + + /** + * + * @return palauttaa projektin id numeron + */ + public int getId() { + return id; + } + + /** + * + * @return palauttaa projektin nimen + */ + public String getNimi() { + return nimi; + } + + /** + * + * @return palauttaa projektin aiheen + */ + public String getAihe() { + return aihe; + } + + @Override + public String toString(){ + String strg = this.nimi + " | " + this.aihe + " | " + this.id; + + return strg; + } + + //maini testaamista varten + public static void main(String[] args){ + + } + + +} diff --git a/src/fxHarakka/luokat/Projektit.java b/src/fxHarakka/luokat/Projektit.java new file mode 100644 index 0000000000000000000000000000000000000000..e6d7cb2e5f7f86cf89f5559218161d1eaea2ad94 --- /dev/null +++ b/src/fxHarakka/luokat/Projektit.java @@ -0,0 +1,76 @@ +package fxHarakka.luokat; + +import java.util.ArrayList; +import java.util.Collections; + +/**---------------Projektien (monikko) luokka-------------------------------- + * | | -Projekti | + * | - lisää ja poistaa projekteja | | + * | | | + * | - Huolehtii listan pituuden riittävyydestä jos | | + * | täyttyy | | + * | | | + * | - Lukee ja kirjoittaa projektit.dat tiedostoon | | + * | | | + * | - Etsii ja lajittelee (avustajana projekti luokka) | | + */ +public class Projektit { + private int maara; + //private int maxMaara; //tätä ei näillänäkymin tarvitse johtuen tietorakenteesta + //--> ei tarvitse itse huolehtia kasvatuksesta + private String kokoNimi = ""; //projektit nimi + private String tied = ""; //tiedostosijainti josta luetaan ja kirjoitetaa + private ArrayList<Projekti> alkiot = new ArrayList<>(); //varaa autom. oikean määrän alkioita + + + //-----------------------MUODOSTAJAT - PROJEKTIT---------------------------- + + /** + * + * @param maara Nykyinen alkioiden määrä + * @param kokoNimi projektikokoelman nimi + * @param tied tiedostosijainti josta luetaan ja talletetaan + */ + public Projektit(int maara, String kokoNimi, String tied) { + this.maara = maara; + this.kokoNimi = kokoNimi; + this.tied = tied; + } + + /** + * Oletusmuodostaja. voidaan käyttää ylempää jos halutaan muokata ominaisuuksia kuten nimeä esim tilanteessa + * jossa halutaan jatkossa lisätä uusi "istunto". + * + * + * oletuksena luo 10 tyhjää alkioita + */ + public Projektit() { + this.maara = 0; + this.kokoNimi = "Harakka"; + this.tied = "projektit.dat"; + } + + + + //-----------------------METODIT - PROJEKTIT---------------------------- + + /** + * + * @return palauttaa tietorakenteen alkioiden määrän + */ + public int getMaara() { + return maara; + } + + /** + * + * @param maara asettaa tietorakenteen alkioiden määrän + */ + public void setMaara(int maara) { + this.maara = maara; + } + + + + +} diff --git a/src/fxHarakka/luokat/Tehtava.java b/src/fxHarakka/luokat/Tehtava.java new file mode 100644 index 0000000000000000000000000000000000000000..dbf49ac99bb03808cc0ad9c8d08c9c422cf3ad22 --- /dev/null +++ b/src/fxHarakka/luokat/Tehtava.java @@ -0,0 +1,138 @@ +package fxHarakka.luokat; + +/** + * ---------------------Tehtava == yhden tehtän luokka----------------------- + * | Vastuualueet: | | + * | | | + * | - Ei tiedä muista luokista mitään | | + * | - Omien kenttien muokkaus pyydettäessä omista | | + * | kentistä | | + * | -id | | + * | -nimi | | + * | -aika | | + * | -päivä | | + * | -lisätietoa | | + * | | | + * | - Osaa hyväksyä vain kentille määritellyn muodon | | + * | (syntaksi) | | + * | - Osaa get metodit omille attribuuteille | | + * | - Osaa muodostaa itsensä merkkijonoksi | | + * ------------------------------------------------------------------------- + */ +public class Tehtava { + + private String nimi; //tehtävän nimi + //private Aika aika; // TODO tehään myös aika luokka + private String paiva = ""; //tehtävän viikonpäivä (voidaan tehtä Vpaiva luokka) + private int id; //tehtävän id numero + private String lisatieto = ""; //tehtävän lisätiedot + + /** + *TODO sitten kun Pvm ja Aika luokat lisätty ne pitää lisätä muodostajaan ja ainakin tällä hetkellä + * lisaa Tehtaa metodiin + */ + //-----------------------MUODOSTAJAT - TEHTAVA---------------------------- + public Tehtava() { + this.nimi = ""; + this.paiva = ""; + this.id = 0; //id 0 varattu tehtäville joille ei asetettu linkkiä projektiin + this.lisatieto = ""; + + } + + public Tehtava(String nimi, int id) { + this.nimi = nimi; + this.paiva = ""; //päivää ei määritetty + this.id = id; //id 0 varattu tehtäville joille ei asetettu linkkiä projektiin + this.lisatieto = ""; + } + + + public Tehtava(String nimi, String paiva, int id, String lisatieto) { + this.nimi = nimi; + this.paiva = paiva; + this.id = id; //id 0 varattu tehtäville joille ei asetettu linkkiä projektiin + this.lisatieto = lisatieto; + } + + + //-----------------------METODIT - TEHTAVA---------------------------- + + /** + * asettaa tehtävälle nimen + * @param nimi + */ + public void setNimi(String nimi){ + this.nimi = nimi; + + } + + /** + * voidaan tehdä jos on aikaa niin Vpaiva luokka joka ottaa vastaan vaan viikonpäiviä + * formaatilla Ma,Ti,Ke,To,Pe,La,Su + * mutta tällä hetkellä ottaa vastaan String + */ + public void setPaiva(String paiva){ + String[] paivat = {"Ma", "Ti", "Ke", "To", "Pe", "La", "Su"}; + for (String i : paivat){ + if (paiva.equalsIgnoreCase(i)) this.paiva = paiva; //ottaa vastaan vaan päivän ja ei välitä asusta + } + } + + /** + * asettaa tehtävälle id numeron + */ + public void setId(){ + + + } + + /** + * + * @return tehtävän lisätiedot String muodossa + */ + public String getLisatieto(){ + + return this.lisatieto; + } + + /** + * lisää tehtävälle lisätietoaja + * + * @param lisatieto String: lisättävät lisätiedot + * @param append jos true niin append modessa eli lisätään vanhan tekstin perään + * jos false niin korvataan vanha. + * @example <pre name="test"> + * #import fxHarakka.luokat.Tehtava; + * Tehtava teht1 = new Tehtava(); + * teht1.setLisatieto("testi", false); + * teht1.getLisatieto() === "testi"; + * teht1.setLisatieto("testi2", false); + * teht1.getLisatieto() === "testi2"; + * teht1.setLisatieto("testi3", true); + * teht1.getLisatieto() === "testi2testi3"; + * </pre> + */ + public void setLisatieto(String lisatieto, boolean append){ + //append moodi päällä lisää vanhan perään + if (append) { + String lisattava = ""; + lisattava = this.getLisatieto() + lisatieto; + this.lisatieto = lisattava; + }else { + //ilman append moodia korvaa vanhan uudella lisätiedolla + this.lisatieto = lisatieto; + } + + + + + } + + + + + + + +} diff --git a/src/fxHarakka/luokat/Tehtavat.java b/src/fxHarakka/luokat/Tehtavat.java new file mode 100644 index 0000000000000000000000000000000000000000..594587a857275a5bc7feb18f680849f7b9f92405 --- /dev/null +++ b/src/fxHarakka/luokat/Tehtavat.java @@ -0,0 +1,50 @@ +package fxHarakka.luokat; + +import java.util.ArrayList; + +/** + * --------------------Tehtavat == (monikko) tehtävien luokka---------------- + * | | - Tehtävä | + * | -Lisää ja poistaa tehtäviä. | | + * | -Huolehtii listan pituuden riittävyydestä jos | | + * täyttyy. | | + * | -Lukee ja kirjoittaa tapahtumat.dat tiedostoa. | | + * | -Etsii ja lajittelee(avustaja tehtävä). | | + * | | | + * | | | + * -------------------------------------------------------------------------- + */ +public class Tehtavat { + private int maara; + private int id; + private ArrayList<Tehtava> alkiot = new ArrayList<>(); + + //-----------------------MUODOSTAJAT-TEHTAVAT---------------------------- + + public Tehtavat(int maara, int maxMaara) { + this.maara = maara; + + } + + public Tehtavat() { + this.maara = 0; + + } + + + //-----------------------METODIT - TEHTAVAT---------------------------- + + /** + * + * @return palauttaa tehtävien määrän + */ + public int getMaara() { + return maara; + } + + + + + + +} diff --git a/src/fxHarakka/luokat/test/ProjektiTest.java b/src/fxHarakka/luokat/test/ProjektiTest.java new file mode 100644 index 0000000000000000000000000000000000000000..43f3750205a1b1a5413f7d674c087df87b312eee --- /dev/null +++ b/src/fxHarakka/luokat/test/ProjektiTest.java @@ -0,0 +1,28 @@ +package fxHarakka.luokat.test; +// Generated by ComTest BEGIN +import fxHarakka.luokat.*; +import static org.junit.Assert.*; +import org.junit.*; +import static fxHarakka.luokat.Projekti.*; +// Generated by ComTest END + +/** + * Test class made by ComTest + * @version 2025.03.19 17:59:29 // Generated by ComTest + * + */ +@SuppressWarnings({ "PMD" }) +public class ProjektiTest { + + + + // Generated by ComTest BEGIN + /** testLuoProjekti46 */ + @Test + public void testLuoProjekti46() { // Projekti: 46 + Projekti testi1 = luoProjekti("kvantti", "fysiikka"); + assertEquals("From: Projekti line: 50", "kvantti | fysiikka | 1", testi1.toString()); + Projekti testi2 = luoProjekti("Nakki", "Keitto"); + assertEquals("From: Projekti line: 53", "Nakki | Keitto | 2", testi2.toString()); + } // Generated by ComTest END +} \ No newline at end of file diff --git a/src/fxHarakka/luokat/test/TehtavaTest.java b/src/fxHarakka/luokat/test/TehtavaTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b40d2f683303ce6ccad013128e858f2d5968227e --- /dev/null +++ b/src/fxHarakka/luokat/test/TehtavaTest.java @@ -0,0 +1,31 @@ +package fxHarakka.luokat.test; +// Generated by ComTest BEGIN +import fxHarakka.luokat.Tehtava; +import static org.junit.Assert.*; +import org.junit.*; +import fxHarakka.luokat.*; +// Generated by ComTest END + +/** + * Test class made by ComTest + * @version 2025.03.19 20:02:29 // Generated by ComTest + * + */ +@SuppressWarnings({ "PMD" }) +public class TehtavaTest { + + + + // Generated by ComTest BEGIN + /** testSetLisatieto105 */ + @Test + public void testSetLisatieto105() { // Tehtava: 105 + Tehtava teht1 = new Tehtava(); + teht1.setLisatieto("testi", false); + assertEquals("From: Tehtava line: 109", "testi", teht1.getLisatieto()); + teht1.setLisatieto("testi2", false); + assertEquals("From: Tehtava line: 111", "testi2", teht1.getLisatieto()); + teht1.setLisatieto("testi3", true); + assertEquals("From: Tehtava line: 113", "testi2testi3", teht1.getLisatieto()); + } // Generated by ComTest END +} \ No newline at end of file