diff --git a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java index 764b1ed..35a92c0 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java @@ -3,16 +3,20 @@ package mx.gob.jumapacelaya.ui; import java.time.format.DateTimeFormatter; import java.util.List; +import org.vaadin.lineawesome.LineAwesomeIcon; + 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.grid.GridVariant; +import com.vaadin.flow.component.gridpro.GridPro; import com.vaadin.flow.component.html.H3; import com.vaadin.flow.component.icon.Icon; import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.data.binder.Binder; import com.vaadin.flow.function.ValueProvider; import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; @@ -44,9 +48,11 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser private TextField txtFechaRealizacion; private TextField txtUsuario; private TextField txtDepartamento; - private Grid gridHardware; + private GridPro gridHardware; private Button btnEditar; private Button btnImprimirRepo; + private Button btnCancelar; + private Button btnGuardar; public DetallesMantView() { setPadding(true); @@ -95,12 +101,30 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser txtDepartamento.setWidthFull(); layout3.add(txtUsuario,txtDepartamento); - gridHardware = new Grid<>(); - gridHardware.addColumn(HardwareDetalle::getDescripcion).setHeader("Descripción"); - gridHardware.addColumn(HardwareDetalle::getModelo).setHeader("Modelo"); - gridHardware.addColumn(HardwareDetalle::getNumSerie).setHeader("No. Serie"); - gridHardware.addColumn(HardwareDetalle::getPlaca).setHeader("Placa"); + + gridHardware = new GridPro<>(); + gridHardware.addEditColumn(HardwareDetalle::getDescripcion) + .text((item, newValue) -> item.setDescripcion(newValue)) + .setHeader("Descripción") + .setEditorComponent(new TextField()); + + gridHardware.addEditColumn(HardwareDetalle::getNumSerie) + .text((item, newValue) -> item.setNumSerie(newValue)) + .setHeader("No. Serie") + .setEditorComponent(new TextField()); + + gridHardware.addEditColumn(HardwareDetalle::getModelo) + .text((item, newValue) -> item.setModelo(newValue)) + .setHeader("Modelo") + .setEditorComponent(new TextField()); + + gridHardware.addEditColumn(HardwareDetalle::getPlaca) + .text((item, newValue) -> item.setPlaca(newValue)) + .setHeader("Placa") + .setEditorComponent(new TextField()); + gridHardware.setWidthFull(); + gridHardware.setEditOnClick(false); gridHardware.setHeight("250px"); gridHardware.addThemeVariants(GridVariant.LUMO_ROW_STRIPES); @@ -110,7 +134,45 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser botonesLayout.setJustifyContentMode(JustifyContentMode.CENTER); btnEditar = new Button("Editar", new Icon(VaadinIcon.EDIT)); btnImprimirRepo = new Button("Imprimir Reporte", new Icon(VaadinIcon.PRINT)); - botonesLayout.add(btnEditar,btnImprimirRepo); + btnGuardar = new Button("Guardar", LineAwesomeIcon.SAVE_SOLID.create()); + btnCancelar = new Button("Cancelar", new Icon(VaadinIcon.CLOSE_CIRCLE_O)); + botonesLayout.add(btnEditar,btnImprimirRepo,btnGuardar,btnCancelar); + + btnGuardar.setVisible(false); + btnGuardar.getStyle().set("background-color", "green"); + btnGuardar.getStyle().set("color", "white"); + btnCancelar.setVisible(false); + btnCancelar.getStyle().set("background-color", "red"); + btnCancelar.getStyle().set("color", "white"); + + btnEditar.addClickListener(e -> { + txtEquipo.setReadOnly(false); + txtTipo.setReadOnly(false); + txtFecha.setReadOnly(false); + txtFechaRealizacion.setReadOnly(false); + txtUsuario.setReadOnly(false); + txtDepartamento.setReadOnly(false); + btnImprimirRepo.setVisible(false); + btnEditar.setVisible(false); + btnGuardar.setVisible(true); + btnCancelar.setVisible(true); + gridHardware.setEditOnClick(true); + }); + + btnCancelar.addClickListener(e -> { + txtEquipo.setReadOnly(true); + txtTipo.setReadOnly(true); + txtFecha.setReadOnly(true); + txtFechaRealizacion.setReadOnly(true); + txtUsuario.setReadOnly(true); + txtDepartamento.setReadOnly(true); + btnImprimirRepo.setVisible(true); + btnEditar.setVisible(true); + btnGuardar.setVisible(false); + btnCancelar.setVisible(false); + gridHardware.setEditOnClick(false); + gridHardware.getEditor().cancel(); + }); mainLayout.add(headerLayout,layout2,fechasLayout,layout3,gridHardware,botonesLayout); add(mainLayout);