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

käyttöliittymä toimii nyt oikein lisättäessä projekteja

parent 4b5361d7
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,8 @@ package fxHarakka;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import fxHarakka.luokat.Harakka;
import fxHarakka.luokat.Projekti;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
......@@ -11,6 +13,7 @@ import javafx.scene.layout.Pane;
public class HarakkaController {
private Harakka harakka;
@FXML
private Button p1t1;
......@@ -147,6 +150,9 @@ public class HarakkaController {
@FXML
private TabPane lehti;
@FXML
void HandleMuokkaa(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua");
......@@ -157,22 +163,38 @@ public class HarakkaController {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat piilotettua viikonlopun");
}
/** Tapahtumankäsittelijä kun painetaan lisää Projekti painiketta päämenussa.
* avaa modaalisen ikkunan ja pyytää uuden projektin tiedot.
*
* @param event klikataan päämenussa lisää projekti
*/
@FXML
void handleLisaaPro(ActionEvent event) {
Tab uusiLehti = new Tab();
uusiLehti.setContent(new Label()); //luodaan projektinäkymään uusi lehti oottamaan jos se mahdollisesti
//saa sisältöä käyttäjältä
lehti.getTabs().add(uusiLehti);
Projekti uusiProjekti = new Projekti();
uusiProjekti = lisaaProjekti(); //luotava projekti joka palautetaan kun tullaan pois lisääprojekti ikkunasta
lehti.getTabs().add(uusiLehti); // klikattu luo projekti jolloin luodaan uusi lehti
String projektiNimi = ModalController.showModal(HarakkaController.class.getResource("LuoProjekti.fxml"), "Lisää Projekti",
null, "");
if (projektiNimi.isEmpty()) { //jos ei luotukkaan projektia niin poistetaan lehti
if (uusiProjekti == null && uusiProjekti.getNimi().isEmpty()){ //jos tullaan pois nimettömällä projektilla
//sitten pitää poistaa luotu tabi
lehti.getTabs().removeLast();
}else {
uusiLehti.setText(projektiNimi); // laitetaan uuteen luotuun lehteen projektin nimi
return;
}
//muuten laitetaan uuden tabin nimeksi luodun projektin nimi
uusiLehti.setText(uusiProjekti.getNimi());
//lisätään uusiprojekti tietorakenteeseen TODO
}
@FXML
......@@ -216,4 +238,13 @@ public class HarakkaController {
}
/**Aliohjelma joka tuo esille projekin lisäämis ikkunan modalControllerin kautta
*
*/
private Projekti lisaaProjekti (){
Projekti projekti = new Projekti(); //tähän palautetaan luotu projekti
return LuoProjektiController.kysyProjekti(null, projekti);
}
}
......@@ -6,12 +6,17 @@ import fxHarakka.luokat.Harakka;
import fxHarakka.luokat.Projekti;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TabPane;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import javafx.stage.Stage;
public class LuoProjektiController implements ModalControllerInterface<String> {
import java.net.URL;
import java.util.ResourceBundle;
public class LuoProjektiController implements ModalControllerInterface<Projekti>, Initializable {
@FXML
private Button hylkaaProjekti;
......@@ -33,26 +38,41 @@ public class LuoProjektiController implements ModalControllerInterface<String> {
@FXML
private TabPane lehti;
//==================================================================================================
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
}
@FXML
void HylkaaProjekti(ActionEvent event) {
ModalController.closeStage(projektiNimi); //palataan takaisin null projektin nimellä
}
/**palauttaa projektin luonti-ikkunassa käyttäjän luoma projektin.
*
* @return luotu projekti
*/
public static Projekti kysyProjekti(Stage modalityStage, Projekti oletus){
return ModalController.showModal(HarakkaController.class.getResource("LuoProjekti.fxml"), "Lisää Projekti",
modalityStage, oletus);
}
@FXML
void luoProjekti(ActionEvent event) {
nimi = projektiNimi.getText();
aihe = projektiAihe.getText();
kesto = projektiKesto.getText();
String pNimi = projektiNimi.getText();
String pAihe = projektiAihe.getText();
int pKesto = Integer.parseInt(projektiKesto.getText());
projektiKohdalla = new Projekti(pNimi, pAihe, pKesto);
ModalController.closeStage(projektiNimi);
if (nimi.isEmpty()) {
ModalController.closeStage(projektiNimi); //painettiin luo ilman nimeä --> poistutaan aliohjelmasta
}else {
Harakka harakka = new Harakka();
harakka.luoProjekti(nimi, aihe, kesto);
ModalController.closeStage(projektiNimi); //palauttaa projektin nimen
}
}
......@@ -72,29 +92,18 @@ public class LuoProjektiController implements ModalControllerInterface<String> {
}
/**
* kun tullaa pois modaalisesta ikkunasta niin getResult palauttaa luodun projektin tiedot
* jotka voidaan näyttää sitten pääikkunassa
* @return
*/
private Projekti projektiKohdalla;
@Override
public String getResult() {
String vastaus = projektiNimi.getText();
return vastaus; //palautetaan projektin nimi joka voidaan asettaa uuteen lehteen
public Projekti getResult() {
return projektiKohdalla;
}
/**
* kun tullaan modaaliseen ponnahdysikkunaan niin mikä on näytettävien tietojen oletus
* --> nyt parametrinä tuodaan projekti joten se voi olla tyhjä projekti koska luodaan uutta projektia
* @param strg
*/
@Override
public void setDefault(String strg) {
public void setDefault(Projekti projekti) {
}
@Override
public void handleShown() {
......
package fxHarakka.luokat;
import fxHarakka.HarakkaController;
public class Harakka {
//harakalla on tehtavat ja projektit instanssit
private final Tehtavat tehtavat = new Tehtavat();
......@@ -9,18 +11,20 @@ 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");
Projekti projekti1 = new Projekti("Projekti1","Fysiikka");
Projekti projekti2 = new Projekti("Projekti2", "Ohjelmointi");
projekti1.rekisteroiProjekti();
projekti2.rekisteroiProjekti();
projekti1.setKesto(5);
projekti1.setSuoritettu(2);
projekti1.rekisteroiProjekti();
projekti2.rekisteroiProjekti();
projekti1.setKesto(5);
projekti1.setSuoritettu(2);
harakka.lisaaProjekti(projekti1);
harakka.lisaaProjekti(projekti1);
harakka.lisaaProjekti(projekti2);
harakka.lisaaProjekti(projekti2);
//halutaan lisätä käyttöliittymästä luotu projekti tietokantaan TODO
......@@ -35,6 +39,13 @@ public class Harakka {
projektit.lisaaProjekti(projekti);
}
/**projektin luonti testaamista varte
*
* @param nimi projektin nimi
* @param aihe projektin aihe
* @param kesto projektin kesto
*/
public void luoProjekti(String nimi, String aihe, String kesto){
int kestoInt = Integer.parseInt(kesto);
......
package fxHarakka.luokat;
import javafx.scene.Node;
/**
* ----------Yksittäisen projektin luokka------------
* |
......@@ -81,20 +83,24 @@ public class Projekti {
/**
*
* @return palauttaa projektin id numeron
* @return palauttaa projektin nimen
*/
public int getId() {
return id;
public String getNimi() {
return nimi;
}
/**
*
* @return palauttaa projektin nimen
* @return palauttaa projektin id numeron
*/
public String getNimi() {
return nimi;
public int getId() {
return id;
}
/**
......@@ -128,6 +134,8 @@ public class Projekti {
return strg;
}
//maini testaamista varten
public static void main(String[] args){
......
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