package com.example.schedulerapp;

import javafx.geometry.HPos;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;

import java.util.ArrayList;
import java.util.Arrays;

public class WeeklyView extends ScheduleView{
    ArrayList<Label> days;

    public WeeklyView(){
        //list of day labels
        days = new ArrayList<>();
        days.addAll(Arrays.asList(new Label("Sunday"), new Label("Monday"), new Label("Tuesday"),
                new Label("Wednesday"), new Label("Thursday"), new Label("Friday"), new Label("Saturday")));

        for (Label label : days){
            GridPane.setHalignment(label, HPos.CENTER);
            label.setAlignment(Pos.CENTER);
            label.setPrefWidth(80);
            //label.setStyle(" -fx-border-color: black");
        }
    }

    public void draw(){
        //clear
        this.getChildren().clear();

        //add to gridpane - time axis never changes
        int i = 1;
        for (Label time : times){
            contents.add(time, 0, i);
            i++;
        }

        //add to gridpane - day axis never changes
        i = 1;
        for (Label time : days){
            contents.add(time, i, 0);
            i++;
        }

        int col;        //depends on day of week

        //get updated schedule
        ArrayList<Shift> schedule = model.getWeeklySchedule();

        for (Shift shift : schedule){
            col = (shift.getStart().getDayOfWeek().getValue() % 7) + 1; //need Sunday=7 to be 1
            contents.add(this.formatShiftButton(shift), col, this.shiftGetRow(shift), 1, this.shiftGetLength(shift));
        }
    }
}