package HT.fx;

import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.ModalControllerInterface;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 * @author joonatan, tuomas
 * @version 13.3.2024
 *
 */
public class OtteluIkkunaGUIController implements ModalControllerInterface<String> {
    
    @FXML private VBox Joukkue1VBox;

    @FXML private VBox Joukkue2VBox;

    @FXML private VBox MuokkaaVBox;

    @FXML private VBox TulosVBox;

    @FXML private void lisaatekstikentta(VBox boksi) {
        TextField newField = new TextField();
        boksi.getChildren().add(newField);
    }
    
    @FXML private void lisaaNappi(VBox boksi) {
        Button uusiNappi = new Button("Muokkaa");
        uusiNappi.setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent arg0) {
                int i = boksi.getChildren().indexOf(uusiNappi);
                muokkaaOttelu(null, "kanat", i);
            }
        });
        boksi.getChildren().add(uusiNappi);
    }
    
    @FXML  void handleLisaaOttelu() {
        lisaakentat();
        LisaaOttelu(null, "kanat");
        SyotaTulos();
    }
    //=====================================
    
    public static String LisaaOttelu(Stage modalityStage, String oletus) {
        return ModalController.showModal(
                PadelLisaaOtteluGUIController.class.getResource("PadelLisaaOtteluGUIView.fxml"),
                "Lisää ottelu", modalityStage, oletus);
    }
    
    public static String muokkaaOttelu(Stage modalityStage, String oletus, int i) {
        return ModalController.showModal(
                PadelLisaaOtteluGUIController.class.getResource("PadelLisaaOtteluGUIView.fxml"),
                "Lisää ottelu", modalityStage, oletus);
    }
    
    
    public void lisaakentat() {
        lisaatekstikentta(Joukkue1VBox);
        lisaatekstikentta(Joukkue2VBox);
        lisaaNappi(MuokkaaVBox);
        lisaatekstikentta(TulosVBox);
    }
    
    public void SyotaTulos() {
        int i = 0;
        
        Ottelu ottelu = PadelMainGUIController.getKarkelo().noudaOttelu(i);
        int[] numerot = ottelu.getPelaajaNrot();
        
        for (Node lapsi : Joukkue1VBox.getChildren()) {
            if (lapsi instanceof TextField) {
                TextField tf = (TextField) lapsi;
            
                tf.setText(haePelaaja(numerot[0]) + ", " + haePelaaja(numerot[1]));
                i++;
            }
        }
        
        for (Node lapsi : TulosVBox.getChildren()) {
            if (lapsi instanceof TextField) {
                TextField tf = (TextField) lapsi;
            
                tf.setText(ottelu.getLopputulos());
                
            }
        }
        
        for (Node lapsi : Joukkue2VBox.getChildren()) {
            if (lapsi instanceof TextField) {
                TextField tf = (TextField) lapsi;
            
                tf.setText(haePelaaja(numerot[2]) + ", " + haePelaaja(numerot[3]));
                
            }
        }

    }
    
    public String haePelaaja(int i) {
        return PadelMainGUIController.getKarkelo().annaPelaaja(i).getNimi();
    }
    

    @Override
    public String getResult() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void handleShown() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void setDefault(String arg0) {
        // TODO Auto-generated method stub
        
    }

}