public void grabar() {
    vistaMaestro vista = new vistaMaestro(this);
    vista = (vistaMaestro) this.getSession().getVista();
    String strlngid = vista.getTxtlngid().getText();

    if (strlngid.isEmpty() || strlngid.length() == 0) {
      vista.mensageDialogo(
          "error",
          "Identificador vacío o inválido.\nÉste debe ser mayor o igual a cero.",
          vista.getTitle());
    } else {
      Maestro dto = new Maestro();
      dto.setHash(vista.getDto(dto));
      this.getSession().setUsuarioInicio(vista);
      if (dto.getLngid() == 0) {
        dto.setLngseg_usuario_creacion(this.getSession().getLngusr());
        dto.setDtmfecha_creacion(new Date());
        dto.setStrip_creacion(this.obtenerIpHost());
        dto.setStrhost_creacion(this.obtenerNombreHost());
        dto.setLngseg_usuario_modificacion(this.getSession().getLngusr());
        dto.setDtmfecha_modificacion(new Date());
        dto.setStrip_modificacion(this.obtenerIpHost());
        dto.setStrhost_modificacion(this.obtenerNombreHost());
        dto.setDtmvalido_desde(new Date());
        dto.setDtmvalido_hasta(this.sumarAnios(20));
        dto.setBolborrado(false);

      } else {
        dto.setStrip_modificacion(this.obtenerIpHost());
        dto.setStrhost_modificacion(this.obtenerNombreHost());
        dto.setDtmfecha_modificacion(new Date());
        dto.setLngseg_usuario_modificacion(this.getSession().getLngusr());
      }
      List<String> lsError = this.testValidacion(dto);
      if (lsError.isEmpty()) {
        int intDialogo =
            vista.mensageDialogo("confirmar", "¿Desea grabar los cambios?", vista.getTitle());
        if (JOptionPane.YES_OPTION == intDialogo) {
          modeloMaestro modelo = new modeloMaestro();
          modelo.grabar(dto);
          vista.mensageDialogo("informacion", "Datos Grabados.", vista.getTitle());
          vista.limpiarError();
        }
      } else {
        // vista.mensageDialogo("error","Por favor verifíque los datos. Debe ingresarlos
        // correctamente!","Error en datos");
        vista.marcarError(lsError);
      }
    }
  }