public void setTableProperties() {

    setVisibleTableProperties("selected", "recapno", "divisionBean", "invoicedate");

    //		table.setColumnCollapsingAllowed(true);
    //		try{
    //			table.setColumnCollapsed("state", true);
    //			table.setColumnCollapsed("birthDate", true);
    //			table.setColumnCollapsed("joinDate", true);
    //
    //		} catch(Exception ex){}

    // ALIGNMENT
    table.setColumnAlignment("id", Align.CENTER);
    table.setColumnAlignment("invoicedate", Align.CENTER);
    table.setColumnAlignment("closing", Align.CENTER);
    table.setColumnAlignment("entrydate", Align.CENTER);

    // SET HEADER
    table.setColumnHeader("selected", "<input type='checkbox'/>");
    table.setColumnHeader("id", "DIV-REFNO");
    table.setColumnHeader("divisionBean", "DIVISI");
    table.setColumnHeader("invoicedate", "RECAP/INV. DATE");
    table.setColumnHeader("recapno", "NO. REKAP");

    //		table.setColumnExpandRatio("selected", 2);
    //		table.setColumnExpandRatio("recapno", 3);

  }
  private void cargarUsuarios(List<Usuario> lstUsuarios, boolean flagLimpiar) {

    IndexedContainer container = new IndexedContainer();
    container.addContainerProperty("id", Long.class, null);
    container.addContainerProperty("usuario", String.class, null);
    container.addContainerProperty("clave", String.class, null);
    container.addContainerProperty("nombres", String.class, null);
    container.addContainerProperty("apePat", String.class, null);
    container.addContainerProperty("apeMat", String.class, null);
    container.addContainerProperty("cargo", String.class, null);
    container.addContainerProperty("descCargo", String.class, null);
    container.addContainerProperty("rol", Rol.class, null);
    container.addContainerProperty("policia", Policia.class, null);
    container.addContainerProperty("dependencia", Dependencia.class, null);
    container.addContainerProperty("oficina.id", Long.class, null);
    container.addContainerProperty("oficina.nombre", String.class, null);
    container.addContainerProperty("rol.id", Long.class, null);

    tblUsuarios.setContainerDataSource(container);
    tblUsuarios.setVisibleColumns(
        new Object[] {"usuario", "nombres", "apePat", "apeMat", "cargo", "oficina.nombre"});

    tblUsuarios.setColumnWidth("usuario", 50);
    tblUsuarios.setColumnWidth("nombres", 75);
    tblUsuarios.setColumnWidth("apePat", 75);
    tblUsuarios.setColumnWidth("apeMat", 75);
    tblUsuarios.setColumnWidth("cargo", 130);
    tblUsuarios.setColumnWidth("oficina.nombre", 160);

    tblUsuarios.setColumnHeader("usuario", "Usuario");
    tblUsuarios.setColumnHeader("nombres", "Nombres");
    tblUsuarios.setColumnHeader("apePat", "Ape. Paterno");
    tblUsuarios.setColumnHeader("apeMat", "Ape. Materno");
    tblUsuarios.setColumnHeader("cargo", "Cargo");
    tblUsuarios.setColumnHeader("oficina.nombre", "Oficina");

    int con = 1;
    for (Usuario usuario : lstUsuarios) {
      Item item = container.addItem(con++);
      item.getItemProperty("id").setValue(usuario.getId());
      item.getItemProperty("usuario").setValue(usuario.getUsuario());
      item.getItemProperty("clave").setValue(usuario.getClave());
      item.getItemProperty("nombres").setValue(usuario.getNombres());
      item.getItemProperty("apePat").setValue(usuario.getApePat());
      item.getItemProperty("apeMat").setValue(usuario.getApeMat());
      item.getItemProperty("rol").setValue(usuario.getRol());
      item.getItemProperty("cargo").setValue(usuario.getCargo());
      item.getItemProperty("dependencia").setValue(usuario.getOficina());
      item.getItemProperty("policia").setValue(usuario.getPolicia());
      item.getItemProperty("descCargo").setValue(usuario.getDescCargo());
      item.getItemProperty("rol.id")
          .setValue(usuario.getRol() != null ? usuario.getRol().getId() : null);
      item.getItemProperty("oficina.id")
          .setValue(usuario.getOficina() != null ? usuario.getOficina().getId() : null);
      item.getItemProperty("oficina.nombre")
          .setValue(usuario.getOficina() != null ? usuario.getOficina().getNombre() : null);
    }
    limpiar();
  }
  @SuppressWarnings("serial")
  private Component getTable() {
    List<UserOprYayasan> lm = GenericPersistence.findList(UserOprYayasan.class);

    dashboardPanels = new VerticalLayout();
    dashboardPanels.addStyleName("dashboard-panels");
    Responsive.makeResponsive(dashboardPanels);
    beans.setBeanIdProperty("id");
    beans.removeAllItems();
    if (lm != null) {
      beans.addAll(lm);
    } else {
      beans.addBean(new UserOprYayasan());
    }

    tabel.addGeneratedColumn(
        "aksi",
        new ColumnGenerator() {
          @Override
          public Object generateCell(Table source, Object itemId, Object columnId) {
            HorizontalLayout hl = new HorizontalLayout();
            Button edit = new Button(FontAwesome.EDIT);
            Button hapus = new Button(FontAwesome.TRASH_O);
            edit.addStyleName(ValoTheme.BUTTON_FRIENDLY);
            edit.addStyleName(ValoTheme.BUTTON_SMALL);
            hapus.addStyleName(ValoTheme.BUTTON_FRIENDLY);
            hapus.addStyleName(ValoTheme.BUTTON_SMALL);
            BeanItem<?> i = (BeanItem<?>) source.getContainerDataSource().getItem(itemId);
            final UserOprYayasan o = (UserOprYayasan) i.getBean();
            edit.addClickListener(
                new ClickListener() {
                  @Override
                  public void buttonClick(ClickEvent event) {
                    tambahUserYayasanbaru(o);
                  }
                });
            hl.addComponent(edit);
            hl.addComponent(hapus);
            return hl;
          }
        });
    tabel.setSizeFull();
    tabel.setImmediate(true);
    tabel.setSelectable(true);
    tabel.setContainerDataSource(beans);
    tabel.setRowHeaderMode(Table.RowHeaderMode.INDEX);
    tabel.setColumnHeader("useNnama", "NAMA PENGGUNA");
    tabel.setColumnHeader("nama", "NAMA");
    tabel.setColumnHeader("realName", "NAMA LENGKAP");
    tabel.setColumnHeader("registerDate", "TANGGAL REGISTRASI");
    tabel.setColumnHeader("email", "E-MAIL");
    tabel.setColumnHeader("lastSuccessfulLogin", "TERAKHIR LOGIN");
    tabel.setColumnHeader("aksi", "AKSI");
    tabel.setVisibleColumns(
        "aksi", "nama", "realName", "registerDate", "email", "lastSuccessfulLogin");
    dashboardPanels.addComponent(tabel);
    return dashboardPanels;
  }
  public void setTablePropertiesList() {

    setVisibleTablePropertiesList("refno", "norek", "trdate", "posting");

    tableList.setColumnCollapsingAllowed(true);
    try {
      tableList.setColumnCollapsed("refno", true);
      tableList.setColumnCollapsed("amount", true);

    } catch (Exception ex) {
    }

    // ALIGNMENT
    tableList.setColumnAlignment("invoicedate", Align.CENTER);
    tableList.setColumnAlignment("trdate", Align.CENTER);
    tableList.setColumnAlignment("posting", Align.CENTER);
    tableList.setColumnAlignment("amountafterdisc", Align.RIGHT);
    tableList.setColumnAlignment("amountafterdiscafterppn", Align.RIGHT);
    tableList.setColumnAlignment("amountpay", Align.RIGHT);

    // SET HEADER
    tableList.setColumnHeader("refno", "REF");
    tableList.setColumnHeader("norek", "NO. DOC");
    tableList.setColumnHeader("trdate", "MULAI BERLAKU");
    tableList.setColumnHeader("posting", "POSTING");

    tableList.setColumnHeader("podate", "PO. DATE");
    tableList.setColumnHeader("amount", "AMOUNT");
    tableList.setColumnHeader("amountafterdisc", "DPP");
    tableList.setColumnHeader("amountafterdiscafterppn", "DPP+PPN");
    tableList.setColumnHeader("amountpay", "AMOUNTPAY");

    //		tableList.setColumnExpandRatio("nopo", 1);
    //		tableList.setColumnExpandRatio("invoiceno", 4);
    //		tableList.setColumnExpandRatio("invoicedate", 10);
    //		tableList.setColumnExpandRatio("pprice", 5);
    //		tableList.setColumnExpandRatio("podate", 4);
    //		tableList.setColumnExpandRatio("amount", 4);
    //		tableList.setColumnExpandRatio("amountpay", 4);
    //		tableList.setColumnExpandRatio("podate", 4);
    //		tableList.setColumnExpandRatio("amount", 4);
    //		tableList.setColumnExpandRatio("amountpay", 4);

  }
  private void cargarDatos() {
    Notificacion notificacionBuscar = new Notificacion();
    notificacionBuscar.setInforme(informe);
    List<Notificacion> notificaciones = notificacionService.buscar(notificacionBuscar);

    IndexedContainer container = new IndexedContainer();
    container.addContainerProperty(COLUMNA_UNIDAD_PROCURADURIA, String.class, null);
    container.addContainerProperty(COLUMNA_TIPO_NOTIFICACION, String.class, null);
    container.addContainerProperty(COLUMNA_FECHA_RECEPCION, String.class, null);
    container.addContainerProperty(COLUMNA_FECHA_VENCIMIENTO, String.class, null);
    container.addContainerProperty(COLUMNA_FECHA_PLAZO, String.class, null);
    container.addContainerProperty(COLUMNA_ESTADO_NOTIFICACION, String.class, null);
    container.addContainerProperty(COLUMNA_OPCION_ELIMINAR, Button.class, null);
    container.addContainerProperty(COLUMNA_OPCION_SEGUIMIENTO, Button.class, null);

    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

    int con = 1;
    for (final Notificacion notificacion : notificaciones) {
      Item item = container.addItem(con++);
      item.getItemProperty(COLUMNA_UNIDAD_PROCURADURIA)
          .setValue(notificacion.getUnidad() == null ? null : notificacion.getUnidad().getNombre());
      item.getItemProperty(COLUMNA_TIPO_NOTIFICACION)
          .setValue(
              notificacion.getTipoNotificacion() == null
                  ? null
                  : notificacion.getTipoNotificacion().getNombre());
      item.getItemProperty(COLUMNA_FECHA_RECEPCION)
          .setValue(
              notificacion.getFechaRecepcion() == null
                  ? null
                  : df.format(notificacion.getFechaRecepcion()));
      item.getItemProperty(COLUMNA_FECHA_VENCIMIENTO)
          .setValue(
              notificacion.getFechaVencimiento() == null
                  ? null
                  : df.format(notificacion.getFechaVencimiento()));
      item.getItemProperty(COLUMNA_FECHA_PLAZO)
          .setValue(
              notificacion.getFechaPlazo() == null
                  ? null
                  : df.format(notificacion.getFechaPlazo()));
      item.getItemProperty(COLUMNA_ESTADO_NOTIFICACION)
          .setValue(notificacion.getEstado() == null ? null : notificacion.getEstado().getNombre());
      Button eliminar = new Button();
      eliminar.setCaption("Eliminar");
      eliminar.addListener(
          new ClickListener() {

            @Override
            public void buttonClick(ClickEvent event) {
              notificacionService.eliminar(notificacion);
              cargarDatos();
            }
          });
      item.getItemProperty(COLUMNA_OPCION_ELIMINAR).setValue(eliminar);
      Button seguimiento = new Button();
      seguimiento.setCaption("Seguimiento");
      seguimiento.addListener(
          new ClickListener() {

            @Override
            public void buttonClick(ClickEvent event) {

              PanelRegistroInformeSeguimientoNotificacion
                  panelRegistroInformeSeguimientoNotificacion =
                      new PanelRegistroInformeSeguimientoNotificacion(notificacion);

              Window wdSeguimiento = new Window();

              wdSeguimiento.setModal(true);
              wdSeguimiento.setResizable(false);
              wdSeguimiento.addComponent(panelRegistroInformeSeguimientoNotificacion);

              wdSeguimiento.setCaption("Seguimiento");
              wdSeguimiento.setWidth("1050px");
              getApplication().getMainWindow().getWindow().addWindow(wdSeguimiento);
            }
          });
      item.getItemProperty(COLUMNA_OPCION_SEGUIMIENTO).setValue(seguimiento);
    }

    tblNotificacion.setContainerDataSource(container);
    tblNotificacion.setVisibleColumns(
        new Object[] {
          COLUMNA_UNIDAD_PROCURADURIA,
          COLUMNA_TIPO_NOTIFICACION,
          COLUMNA_FECHA_RECEPCION,
          COLUMNA_FECHA_VENCIMIENTO,
          COLUMNA_FECHA_PLAZO,
          COLUMNA_ESTADO_NOTIFICACION,
          COLUMNA_OPCION_ELIMINAR,
          COLUMNA_OPCION_SEGUIMIENTO
        });
    tblNotificacion.setColumnWidth(COLUMNA_UNIDAD_PROCURADURIA, 100);
    tblNotificacion.setColumnWidth(COLUMNA_TIPO_NOTIFICACION, 100);
    tblNotificacion.setColumnWidth(COLUMNA_FECHA_RECEPCION, 100);
    tblNotificacion.setColumnWidth(COLUMNA_FECHA_VENCIMIENTO, 100);
    tblNotificacion.setColumnWidth(COLUMNA_FECHA_PLAZO, 100);
    tblNotificacion.setColumnWidth(COLUMNA_ESTADO_NOTIFICACION, 100);
    tblNotificacion.setColumnWidth(COLUMNA_OPCION_ELIMINAR, 100);
    tblNotificacion.setColumnWidth(COLUMNA_OPCION_SEGUIMIENTO, 100);
    tblNotificacion.setColumnHeader(COLUMNA_UNIDAD_PROCURADURIA, "Unidad");
    tblNotificacion.setColumnHeader(COLUMNA_TIPO_NOTIFICACION, "Tipo");
    tblNotificacion.setColumnHeader(COLUMNA_FECHA_RECEPCION, "F. Recepcion");
    tblNotificacion.setColumnHeader(COLUMNA_FECHA_VENCIMIENTO, "F. Vencimiento");
    tblNotificacion.setColumnHeader(COLUMNA_FECHA_PLAZO, "F. Plazo");
    tblNotificacion.setColumnHeader(COLUMNA_ESTADO_NOTIFICACION, "Estado");
    tblNotificacion.setColumnHeader(COLUMNA_OPCION_ELIMINAR, "");
    tblNotificacion.setColumnHeader(COLUMNA_OPCION_SEGUIMIENTO, "");
  }
  public void setTablePropertiesDetil() {
    setVisibleTablePropertiesDetil(
        "id",
        "nourut",
        "fproductBean.pcode",
        "fproductBean.pname",
        "fproductBean.packaging",
        "fproductBean.pprice",
        "fproductBean.ppriceafterppn",
        "fproductBean.pprice2",
        "fproductBean.pprice2afterppn",
        "fproductBean.sprice",
        "fproductBean.spriceafterppn",
        "fproductBean.sprice2",
        "fproductBean.sprice2afterppn",
        "pprice",
        "ppriceafterppn",
        "pprice2",
        "pprice2afterppn",
        "sprice",
        "spriceafterppn",
        "sprice2",
        "sprice2afterppn",
        "ppricebefore",
        "pprice2before",
        "spricebefore",
        "sprice2before",
        "ftpricehBean",
        "fproductBean");

    tableDetil.setColumnCollapsingAllowed(true);

    try {
      tableDetil.setColumnCollapsed("id", true);
      tableDetil.setColumnCollapsed("nourut", true);

      tableDetil.setColumnCollapsed("fproductBean.pprice", true);
      tableDetil.setColumnCollapsed("fproductBean.ppriceafterppn", true);
      tableDetil.setColumnCollapsed("fproductBean.pprice2", true);
      tableDetil.setColumnCollapsed("fproductBean.pprice2afterppn", true);
      tableDetil.setColumnCollapsed("fproductBean.sprice", true);
      tableDetil.setColumnCollapsed("fproductBean.spriceafterppn", true);
      tableDetil.setColumnCollapsed("fproductBean.sprice2", true);
      tableDetil.setColumnCollapsed("fproductBean.sprice2afterppn", true);

      tableDetil.setColumnCollapsed("fproductBean.sprice", true);
      tableDetil.setColumnCollapsed("fproductBean.spriceafterppn", true);
      tableDetil.setColumnCollapsed("fproductBean.sprice2", true);
      tableDetil.setColumnCollapsed("fproductBean.sprice2afterppn", true);

      tableDetil.setColumnCollapsed("pprice", true);
      tableDetil.setColumnCollapsed("pprice2", true);
      tableDetil.setColumnCollapsed("sprice", true);
      tableDetil.setColumnCollapsed("sprice2", true);

      tableDetil.setColumnCollapsed("ppricebefore", true);
      tableDetil.setColumnCollapsed("pprice2before", true);
      tableDetil.setColumnCollapsed("spricebefore", true);
      tableDetil.setColumnCollapsed("sprice2before", true);

      tableDetil.setColumnCollapsed("ftpricehBean", true);
      tableDetil.setColumnCollapsed("fproductBean", true);

    } catch (Exception ex) {
    }

    // ALIGNMENT
    tableDetil.setColumnAlignment("id", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pprice", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.ppriceafterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pprice2", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pprice2afterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.sprice", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.spriceafterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.sprice2", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.sprice2afterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pcode", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pcode", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pcode", Align.RIGHT);
    tableDetil.setColumnAlignment("fproductBean.pcode", Align.RIGHT);

    tableDetil.setColumnAlignment("pprice", Align.RIGHT);
    tableDetil.setColumnAlignment("ppriceafterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("pprice2", Align.RIGHT);
    tableDetil.setColumnAlignment("pprice2afterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("pprice2", Align.RIGHT);
    tableDetil.setColumnAlignment("sprice", Align.RIGHT);
    tableDetil.setColumnAlignment("spriceafterppn", Align.RIGHT);
    tableDetil.setColumnAlignment("sprice2", Align.RIGHT);
    tableDetil.setColumnAlignment("sprice2afterppn", Align.RIGHT);

    tableDetil.setColumnAlignment("ppricebefore", Align.RIGHT);
    tableDetil.setColumnAlignment("pprice2before", Align.RIGHT);
    tableDetil.setColumnAlignment("spricebefore", Align.RIGHT);
    tableDetil.setColumnAlignment("sprice2before", Align.RIGHT);

    // SET HEADER
    tableDetil.setColumnHeader("id", "ID");
    tableDetil.setColumnHeader("nourut", "No.");
    tableDetil.setColumnHeader("fproductBean.pcode", "KODE");
    tableDetil.setColumnHeader("fproductBean.pname", "NAMA PRODUK");
    tableDetil.setColumnHeader("fproductBean.packaging", "PACKAGING");
    tableDetil.setColumnHeader("fproductBean.pprice", "H.BELI ACTUAL");
    tableDetil.setColumnHeader("fproductBean.ppriceafterppn", "H.BELI+PPN ACTUAL");
    tableDetil.setColumnHeader("fproductBean.pprice2", "H.BELI+PPN ACTUAL");
    tableDetil.setColumnHeader("fproductBean.pprice2afterppn", "H.BELIPCS+PPN ACTUAL");
    tableDetil.setColumnHeader("fproductBean.sprice", "H.JUAL+PPN ACTUAL");
    tableDetil.setColumnHeader("fproductBean.spriceafterppn", "H.JUAL+PPN ACTUAL");
    tableDetil.setColumnHeader("fproductBean.sprice2", "H.JUALPCS ACTUAL");
    tableDetil.setColumnHeader("fproductBean.sprice2afterppn", "H.JUALPCS+PPN ACTUAL");

    tableDetil.setColumnHeader("ppricebefore", "H.BELI SEBELUM");
    tableDetil.setColumnHeader("pprice2before", "H.BELI PCS SEBELUM");
    tableDetil.setColumnHeader("spricebefore", "H.JUAL SEBELUM");
    tableDetil.setColumnHeader("sprice2before", "H.JUALPCS SEBELUM");

    tableDetil.setColumnHeader("pprice", "H.BELI");
    tableDetil.setColumnHeader("ppriceafterppn", "H.BELI+PPN");
    tableDetil.setColumnHeader("pprice2", "H.BELIPCS");
    tableDetil.setColumnHeader("pprice2afterppn", "H.BELIPCS+PPN");
    tableDetil.setColumnHeader("sprice", "H.JUAL");
    tableDetil.setColumnHeader("spriceafterppn", "H.JUAL+PPN");
    tableDetil.setColumnHeader("sprice2", "H.JUALPCS");
    tableDetil.setColumnHeader("sprice2afterppn", "H.JUALPCS+PPN");
    tableDetil.setColumnHeader("ftpricehBean", "PRICEH");
    tableDetil.setColumnHeader("fproductBean", "PRODUCT");

    tableDetil.setColumnExpandRatio("id", 1);
    tableDetil.setColumnExpandRatio("fproductBean.pcode", 4);
    tableDetil.setColumnExpandRatio("fproductBean.pname", 10);
    tableDetil.setColumnExpandRatio("fproductBean.packaging", 5);
    tableDetil.setColumnExpandRatio("pprice", 5);
    tableDetil.setColumnExpandRatio("ppriceafterppn", 5);
    tableDetil.setColumnExpandRatio("pprice2", 5);
    tableDetil.setColumnExpandRatio("pprice2afterppn", 5);
    tableDetil.setColumnExpandRatio("sprice", 5);
    tableDetil.setColumnExpandRatio("spriceafterppn", 5);
    tableDetil.setColumnExpandRatio("sprice2", 5);
    tableDetil.setColumnExpandRatio("sprice2afterppn", 5);
  }