package fi.lpam;
import fi.lpam.dataluokat.Tietokanta;
import fi.lpam.gui.Asiakashallinta;
import fi.lpam.gui.Kierroshallinta;
import fi.lpam.gui.KuljetusRaportit;
import fi.lpam.gui.KuljetusListat;
import javafx.application.Application;
import javafx.geometry.Side;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.io.IOException;
import java.util.Objects;

@SuppressWarnings("InstantiationOfUtilityClass")
public class App extends Application {
    static void main() {
        launch();
    }

    @Override
    public void start(Stage primaryStage) throws IOException {
        new Tietokanta(Main.dev);
        TabPane root = new TabPane();
        root.setSide(Side.LEFT);
        root.setTabMinWidth(50);
        root.setTabMinHeight(35);
        root.setTabMaxHeight(50);

        Tab asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut;
        asiakasHallinta = new Tab("Asiakashallinta", new Asiakashallinta());
        kierrostenHallinta = new Tab("Kierrostenhallinta");
        kuljetusListat  = new Tab("Kuljetuslistat");
        kuljetetut = new Tab("Kuljetetut");
        root.getTabs().addAll(asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut);

        root.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
            switch (newValue.getText()) {
                case "Asiakashallinta": newValue.setContent(new Asiakashallinta());     break;
                case "Kierrostenhallinta": newValue.setContent(new Kierroshallinta());  break;
                case "Kuljetuslistat": newValue.setContent(new KuljetusListat());       break;
                case "Kuljetetut": newValue.setContent(new KuljetusRaportit());         break;
            }
        });

        for (Tab tab : root.getTabs()) {
            tab.setClosable(false);
            tab.setStyle("-fx-font-size: 18px; -fx-font-weight: bold; -fx-font-family: Open Sans");
        }

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setTitle("Ruokamanageri");
        primaryStage.setMaximized(true);
        primaryStage.show();
        primaryStage.getIcons().add(new Image(Objects.requireNonNull(Main.class.getResourceAsStream("kuljetusruokalaatikko.jpg"))));
    }
}