Skip to content
Snippets Groups Projects
Commit 083d34c6 authored by Kiljala Renne Lauri Olavi's avatar Kiljala Renne Lauri Olavi
Browse files

projektejen poistaminen toimii nyt

parent 52a05f8b
No related branches found
No related tags found
No related merge requests found
......@@ -199,7 +199,7 @@ public class HarakkaController {
Projekti uusiProjekti = new Projekti();
uusiProjekti = lisaaProjekti(); //luotava projekti joka palautetaan kun tullaan pois lisääprojekti ikkunasta
if (uusiProjekti == null || uusiProjekti.getNimi().isEmpty() || uusiProjekti.getNimi().isBlank()){ //jos tullaan pois nimettömällä projektilla
if (uusiProjekti == null || uusiProjekti.getNimi().isBlank() || onJoProjekti(uusiProjekti)){ //jos tullaan pois nimettömällä projektilla
//sitten pitää poistaa luotu tabi
lehti.getTabs().removeLast();
}else {
......@@ -219,6 +219,25 @@ public class HarakkaController {
}
/** Tarkistaa onko jo projekti samalla nimellä olemassa
*
* @param uusiProjekti
* @return
*/
private boolean onJoProjekti(Projekti uusiProjekti) {
boolean totuus = false;
for (int i = 0; i < lehti.getTabs().size() - 1; i++){
if (lehti.getTabs().get(i).getText().equals(uusiProjekti.getNimi())){
totuus = true; //löytyy projekteista
}
}
return totuus;
}
......@@ -275,14 +294,23 @@ public class HarakkaController {
*/
@FXML
void handlePoistaPro(ActionEvent event) {
//onko projektilistassa poistettavia
if (lehti.getTabs().size() < 1)return;
//klikattu poista projekti nappia --> tarvitaan tieto mikä tabi on auki projekti valikossa
Tab valittuLehti = lehti.getSelectionModel().getSelectedItem(); //valittu lehti
String poistettava = valittuLehti.getText();
//poistaessa pitää mennä tietorakenteeseen ja poistaa sieltä kyseinen projekti
//jonka jälkeen kun tämä tehty niin poistetaan valitun projektin lehti/tabi
// CRC --> projektit-luokka "lisää ja poistaa projekteja" --> kutustaan harakka.projektit luokkaa
//harakka.projektit.poistaProjekti();
//poistaa projektin nimen mukaan --> ei voi olla montaa samannimistä projektia
harakka.projektit.poistaProjekti(poistettava);
//ja poistetaan lehti
lehti.getTabs().remove(valittuLehti);
}
......
......@@ -9,23 +9,8 @@ public class Harakka {
public static void main (String[] args) {
/**
Harakka harakka = new Harakka();
Projekti projekti1 = new Projekti("Projekti1","Fysiikka");
Projekti projekti2 = new Projekti("Projekti2", "Ohjelmointi");
projekti1.rekisteroiProjekti();
projekti2.rekisteroiProjekti();
projekti1.setKesto(5);
projekti1.setSuoritettu(2);
harakka.lisaaProjekti(projekti1);
harakka.lisaaProjekti(projekti2);
*/
//halutaan lisätä käyttöliittymästä luotu projekti tietokantaan TODO
......
......@@ -57,6 +57,27 @@ public class Projektit {
/**
* Lisää projektin tietorakenteeseen
* @param projekti lisättävä projekti
* @example <pre name="test">
*
* #import fxHarakka.luokat.Harakka.*;
* #import fxHarakka.luokat.Projektit.*;
* #import java.io.ByteArrayOutputStream;
* #import java.io.PrintStream;
*
* Harakka harakka = new Harakka();
* PrintStream alkuperainen = System.out;
* ByteArrayOutputStream ulosByte = new ByteArrayOutputStream();
* System.setOut(new PrintStream(ulosByte));
*
* Projekti projektiT1 = new Projekti("Projekti1", "Fysiikka");
* harakka.projektit.lisaaProjekti(projektiT1);
*
* String strg = ulosByte.toString();
* strg = strg.trim();
*
* strg === "projekti lisätty! Projekti1 | Fysiikka | 1 | 0 | 0";
* System.setOut(alkuperainen);
* </pre>
*/
public void lisaaProjekti(Projekti projekti){
projekti.rekisteroiProjekti(); //rekisteröidään ennen lisäämistä --> id päivittyy
......@@ -67,12 +88,31 @@ public class Projektit {
/** Poistaa valitun projektin tietokannasta
*
* @param ind poistettavan projektin indeksi
* @param poistettavanNimi etsittävän projekin nimi
*/
public void poistaProjekti(int ind) {
projektiAlkiot.remove(ind);
System.out.println("Poistettu projekti! : " + projektiAlkiot.get(ind));
public void poistaProjekti(String poistettavanNimi) {
//etsitään poistettavan alkion indeksin tietorakenteesta
int poistettavanIndeksi = etsiNimi(poistettavanNimi);
if (poistettavanIndeksi == -1){
System.out.println("poistettavaa projektia ei löytynyt; tarkista nimi");
return; //poistutaan aliohjelmasta jos ei löydy
}
String poistoViesti = projektiAlkiot.get(poistettavanIndeksi).toString();
projektiAlkiot.remove(poistettavanIndeksi);
System.out.println("Poistettu projekti! : " + poistoViesti);
}
/**etsii projektin nimen perusteella tietorakenteesta sen indeksin ja palauttaa indeksin
*
* @return Nimeltä etsittävän projektin indeksi tai -1 jos ei löytynyt
*
*/
public int etsiNimi(String etsittavanNimi) {
for (Projekti p: projektiAlkiot) { //toteuttaa iteraattorin --> foreach käy läpi ja etsii
if (p.getNimi().contentEquals(etsittavanNimi)) return projektiAlkiot.indexOf(p);
}
return -1;
}
......
package fxHarakka.luokat.test;
// Generated by ComTest BEGIN
import fxHarakka.luokat.Harakka.*;
import fxHarakka.luokat.Projektit.*;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.junit.Assert.*;
import org.junit.*;
import fxHarakka.luokat.*;
// Generated by ComTest END
/**
* Test class made by ComTest
* @version 2025.03.27 17:51:10 // Generated by ComTest
*
*/
@SuppressWarnings({ "PMD" })
public class ProjektitTest {
// Generated by ComTest BEGIN
/** testLisaaProjekti60 */
@Test
public void testLisaaProjekti60() { // Projektit: 60
Harakka harakka = new Harakka();
PrintStream alkuperainen = System.out;
ByteArrayOutputStream ulosByte = new ByteArrayOutputStream();
System.setOut(new PrintStream(ulosByte));
Projekti projektiT1 = new Projekti("Projekti1", "Fysiikka");
harakka.projektit.lisaaProjekti(projektiT1);
String strg = ulosByte.toString();
strg = strg.trim();
assertEquals("From: Projektit line: 78", "projekti lisätty! Projekti1 | Fysiikka | 1 | 0 | 0", strg);
System.setOut(alkuperainen);
} // Generated by ComTest END
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment