package mx.gob.jumapacelaya.ui;

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.html.H3;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.models.ActividadDiaria;


import java.text.SimpleDateFormat;
import java.util.*;


@PermitAll
@PageTitle("Actividades Diarias")
@Route(value = "actdiaria", layout = MainLayout.class)
@CssImport("./themes/sistema-mantenimiento/styles.css")
public class ActDiariaView extends VerticalLayout {

    //Variables Locales
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
    HorizontalLayout header = new HorizontalLayout();
    H3 titulo = new H3();
    Button btnCorrectivo = new Button("Correctivo");

    Grid<ActividadDiaria> grdColumnas = new Grid<>(ActividadDiaria.class,false);
    List<ActividadDiaria> people = Arrays.asList(
            new ActividadDiaria(11, "Soprote", "Confi", "Sol", "Urgente",new Date(), new Date()),
            new ActividadDiaria(12, "Soprote", "Confi", "Sol", "Urgente",new Date(), new Date()),
            new ActividadDiaria(13, "Soprote", "Confi", "Sol", "Urgente",new Date(), new Date()));
            //new ActividadDiaria("Johannes Kepler", 1571));

    public ActDiariaView() {
        VerticalLayout headerLayout = new VerticalLayout();
        headerLayout.addClassName("act-diaria-header");
        headerLayout.add(titulo);
        titulo.setText("Listado de Actividades por Atender - Área de Soporte Mantenimiento Técnico");
        titulo.addClassName("act-diaria-titulo");
        header.setAlignSelf(Alignment.CENTER, titulo);


        VerticalLayout gridLayout = new VerticalLayout();
        gridLayout.addClassName("act-diaria-grid");
        gridLayout.add(grdColumnas);
        //Tabla echa con un grid
        grdColumnas.addColumn(ActividadDiaria::getNumero).setHeader("Numero");
        grdColumnas.addColumn(ActividadDiaria::getProyecto).setHeader("Proyecto");
        grdColumnas.addColumn(ActividadDiaria::getTipo).setHeader("Tipo");
        grdColumnas.addColumn(ActividadDiaria::getEstado).setHeader("Estado");
        grdColumnas.addColumn(ActividadDiaria::getAsunto).setHeader("Asunto");
        grdColumnas.addColumn(date->{
            return formato.format(date.getFechaInicial());
        }).setHeader("Fecha de Inicio");
        grdColumnas.addColumn(date->{
            return formato.format(date.getFechaCierre());
        }).setHeader("Fecha de cierre");

        grdColumnas.setItems(people);
      //  grdColumnas.addColumn(
       //         new ColumnPathRenderer<>(Button::new, (btnCorrectivo, ActividadDiaria) ->{
       //             btnCorrectivo.addThemeVariants(ButtonVariant.LUMO_ICON,
       //                     ButtonVariant.LUMO_ERROR,
       //                     ButtonVariant.LUMO_TERTIARY);
       //             btnCorrectivo.setIcon(new Icon(VaadinIcon.TRASH));
       //         })).setHeader("Prueba");


       // add(titulo, header, grdColumnas);
        this.setPadding(false);
        this.setMargin(false);
        this.setSpacing(false);
        add(headerLayout, gridLayout);
    }


    }
