Example usage for com.google.gwt.user.cellview.client SafeHtmlHeader SafeHtmlHeader

List of usage examples for com.google.gwt.user.cellview.client SafeHtmlHeader SafeHtmlHeader

Introduction

In this page you can find the example usage for com.google.gwt.user.cellview.client SafeHtmlHeader SafeHtmlHeader.

Prototype

public SafeHtmlHeader(SafeHtml text) 

Source Link

Document

Construct a Header with a given SafeHtml text value.

Usage

From source file:cimav.client.view.nomina.HorasExtrasUI.java

private void initTableColumns() {

    // id + icon remove
    Column<HoraExtra, String> iconCol = new Column<HoraExtra, String>(
            new NomIconInputCell(NomIconInputCell.HORA_EXTRA)) {
        @Override//ww  w.  j  av  a  2 s .  c  o m
        public String getValue(HoraExtra object) {
            return "" + object.getId();
        }
    };
    dataGrid.addColumn(iconCol, "");
    dataGrid.setColumnWidth(iconCol, 16, Style.Unit.PX);

    // Semana
    Column<HoraExtra, SafeHtml> semanaCol = new Column<HoraExtra, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(HoraExtra object) {
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            a.appendHtmlConstant("<span>" + object.getWeekOfYear() + "</span>");
            //                if (object.getConcepto().getSuma()) {
            //                    a.appendHtmlConstant("<span>" + object.getConcepto().getName() + "</span>");
            //                } else {
            //                    a.appendHtmlConstant("<span style='color: grey; font-style: italic;'>" + object.getConcepto().getName() + "</span>");
            //                }
            return a.toSafeHtml();
        }
    };
    dataGrid.addColumn(semanaCol, "Semana");
    dataGrid.setColumnWidth(semanaCol, 120, Style.Unit.PCT);

    // Fecha
    Column<HoraExtra, Date> diaCol = new Column<HoraExtra, Date>(diaCell) {
        @Override
        public Date getValue(HoraExtra object) {
            return object.getDia();
        }
    };
    diaCol.setFieldUpdater(new FieldUpdater<HoraExtra, Date>() {
        @Override
        public void update(int index, HoraExtra object, Date value) {
            try {
                object.setDia(value);

                //object.ajustar();

                getHorasExtrasREST().update(object);
            } catch (Exception ex) {

            }
            diaCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    dataGrid.addColumn(diaCol, "Da (fecha)");
    dataGrid.setColumnWidth(diaCol, 120, Style.Unit.PX);

    // Horas
    Column<HoraExtra, String> horasCol = new Column<HoraExtra, String>(horasCell) {
        @Override
        public String getValue(HoraExtra object) {
            Double result = object == null || object.getHoras() == null ? 0 : object.getHoras();
            return Double.toString(result);
        }
    };
    horasCol.setFieldUpdater(new FieldUpdater<HoraExtra, String>() {
        @Override
        public void update(int index, HoraExtra object, String value) {
            try {
                Double horas = Double.parseDouble(value);
                object.setHoras(horas);

                //object.ajustar();

                getHorasExtrasREST().update(object);
            } catch (Exception ex) {

            }
            horasCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    horasCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    Header<String> forzarFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            return "  ";
        }
    };
    dataGrid.addColumn(horasCol, new SafeHtmlHeader(SafeHtmlUtils.fromString("Horas")), forzarFooter);
    dataGrid.setColumnWidth(horasCol, 68, Style.Unit.PX);

}

From source file:cimav.client.view.nomina.NominaFaltasUI.java

private void initTableColumns() {

    // id + icon remove
    Column<Incidencia, String> iconCol = new Column<Incidencia, String>(
            new NomIconInputCell(NomIconInputCell.FALTA)) {
        @Override// w  w  w .  j  av  a 2 s  .  c o m
        public String getValue(Incidencia object) {
            return "" + object.getId();
        }
    };
    dataGrid.addColumn(iconCol, "");
    dataGrid.setColumnWidth(iconCol, 16, Style.Unit.PX);

    // Id+Tipo
    Column<Incidencia, SafeHtml> tipoCol = new Column<Incidencia, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Incidencia object) {
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant(
                    "<div style='outline-style:none; white-space: nowrap;'><strong style='font-size: 12px; padding-right: 3px;'>"
                            + object.getCode() + "</strong> " + "<span>" + object.getTipo().getDescripcion()
                            + "</span></div>");
            return sb.toSafeHtml();
        }
    };
    dataGrid.addColumn(tipoCol, "Tipo");
    dataGrid.setColumnWidth(tipoCol, 60, Style.Unit.PCT);

    // Fecha
    Column<Incidencia, Date> fechaCol = new Column<Incidencia, Date>(fechaInicioCell) {
        @Override
        public Date getValue(Incidencia object) {
            return object.getFechaInicial();
        }
    };
    fechaCol.setFieldUpdater(new FieldUpdater<Incidencia, Date>() {
        @Override
        public void update(int index, Incidencia object, Date value) {
            try {
                object.setFechaInicial(value);

                object.ajustar();

                getIncidenciasREST().update(object);
            } catch (Exception ex) {

            }
            fechaInicioCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    dataGrid.addColumn(fechaCol, "Fecha");
    dataGrid.setColumnWidth(fechaCol, 120, Style.Unit.PX);

    // Dias
    Column<Incidencia, String> diasCol = new Column<Incidencia, String>(diasCell) {
        @Override
        public String getValue(Incidencia object) {
            Integer result = object == null || object.getDias() == null ? 0 : object.getDias();
            return Integer.toString(result);
        }
    };
    diasCol.setFieldUpdater(new FieldUpdater<Incidencia, String>() {
        @Override
        public void update(int index, Incidencia object, String value) {
            try {
                Integer dias = Integer.parseInt(value);
                object.setDias(dias);

                object.ajustar();
                getIncidenciasREST().update(object);
            } catch (Exception ex) {

            }
            diasCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    diasCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(diasCol, "Das");
    dataGrid.setColumnWidth(diasCol, 88, Style.Unit.PX);

    // Dias Habiles
    Column<Incidencia, SafeHtml> diasHabilesCols = new Column<Incidencia, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Incidencia object) {
            Integer result = object == null || object.getDiasHabiles() == null ? 0 : object.getDiasHabiles();
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant(
                    "<div style='outline-style:none; white-space: nowrap;'><strong style='font-size: 12px; padding-right: 6px;'>"
                            + Integer.toString(result) + "</strong></div>");
            return sb.toSafeHtml();
        }
    };
    diasHabilesCols.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(diasHabilesCols, new SafeHtmlHeader(SafeHtmlUtils.fromString("Hbiles")));
    dataGrid.setColumnWidth(diasHabilesCols, 68, Style.Unit.PX);

    // Dias Inhabiles
    Column<Incidencia, SafeHtml> diasInhabiles = new Column<Incidencia, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Incidencia object) {
            Integer result = object == null || object.getDiasInhabiles() == null ? 0
                    : object.getDiasInhabiles();
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant(
                    "<div style='outline-style:none; white-space: nowrap;'><strong style='font-size: 12px; padding-right: 6px;'>"
                            + Integer.toString(result) + "</strong></div>");
            return sb.toSafeHtml();
        }
    };
    diasInhabiles.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(diasInhabiles, new SafeHtmlHeader(SafeHtmlUtils.fromString("Inhbiles")));
    dataGrid.setColumnWidth(diasInhabiles, 68, Style.Unit.PX);

    // Dias Restantes
    Column<Incidencia, SafeHtml> diasRestantesCol = new Column<Incidencia, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Incidencia object) {
            Integer result = object == null || object.getDiasRestantes() == null ? 0
                    : object.getDiasRestantes();
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant(
                    "<div style='outline-style:none; white-space: nowrap;'><strong style='font-size: 12px; padding-right: 6px;'>"
                            + Integer.toString(result) + "</strong></div>");
            return sb.toSafeHtml();
        }
    };
    diasRestantesCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(diasRestantesCol, new SafeHtmlHeader(SafeHtmlUtils.fromString("Restantes")));
    dataGrid.setColumnWidth(diasRestantesCol, 68, Style.Unit.PX);

    // Folio
    Column<Incidencia, String> folioCol = new Column<Incidencia, String>(folioCell) {
        @Override
        public String getValue(Incidencia object) {
            return object.getFolio();
        }
    };
    folioCol.setFieldUpdater(new FieldUpdater<Incidencia, String>() {
        @Override
        public void update(int index, Incidencia object, String value) {
            try {
                object.setFolio(value);
                getIncidenciasREST().update(object);
            } catch (Exception ex) {

            }
            folioCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    Header<String> forzarFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            return "  ";
        }
    };
    dataGrid.addColumn(folioCol, new SafeHtmlHeader(SafeHtmlUtils.fromString("Folio")), forzarFooter);
    dataGrid.setColumnWidth(folioCol, 40, Style.Unit.PCT);

}

From source file:cimav.client.view.nomina.NominaMovimientosUI.java

private void initTableColumns() {

    // Concepto/*from w w w.  j  a va  2  s.c  om*/
    Column<Movimiento, SafeHtml> conceptoCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            if (object.getConcepto().getSuma()) {
                a.appendHtmlConstant("<span>" + object.getConcepto().getName() + "</span>");
            } else {
                a.appendHtmlConstant("<span style='color: grey; font-style: italic;'>"
                        + object.getConcepto().getName() + "</span>");
            }
            return a.toSafeHtml();
        }
    };
    dataGrid.addColumn(conceptoCol, "Concepto");
    dataGrid.setColumnWidth(conceptoCol, 80, Style.Unit.PCT);

    // Cantidad
    Column<Movimiento, SafeHtml> cantidadCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            String result = Utils.formatCantidad(object.getCantidad());
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            if (object.getConcepto().getSuma()) {
                a.appendHtmlConstant("<span style='padding-right: 5px;'>" + result + "</span>");
            } else {
                a.appendHtmlConstant("<span style='padding-right: 5px; color: grey; font-style: italic;'>"
                        + result + "</span>");
            }
            return a.toSafeHtml();
        }
    };
    cantidadCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    SafeHtmlHeader headerCantidad = new SafeHtmlHeader(new SafeHtml() {
        @Override
        public String asString() {
            return "<p style='text-align:center; margin-bottom: 0px;'>Cantidad</p>";
        }
    });
    if (ETipoConcepto.PERCEPCION.equals(this.tipoConcepto)
            || ETipoConcepto.DEDUCCION.equals(this.tipoConcepto)) {
        SafeHtmlHeader footerCantidad = new SafeHtmlHeader(new SafeHtml() {
            @Override
            public String asString() {
                String result = "0.00";
                List<Movimiento> items = dataGrid.getVisibleItems();
                if (!items.isEmpty()) {
                    // create MathContext object with 2 precision
                    BigDecimal totalPercepciones = BigDecimal.ZERO;
                    for (Movimiento nomQuin : items) {
                        if (nomQuin.getConcepto().getSuma()) { // si el concepto suma (ej. Despensa no suma)
                            totalPercepciones = totalPercepciones.add(nomQuin.getCantidad());
                        }
                    }
                    result = Utils.formatCurrency(totalPercepciones);
                }
                return "<p style=\"text-align:right;\">" + result.trim() + "</p>";
            }
        });
        dataGrid.addColumn(cantidadCol, headerCantidad, footerCantidad);
    } else {
        dataGrid.addColumn(cantidadCol, headerCantidad);
    }
    dataGrid.setColumnWidth(cantidadCol, 20, Style.Unit.PCT);
}

From source file:cimav.client.view.nomina.NominaRepercucionesUI.java

private void initTableColumns() {

    // Concepto//from  w  ww . j a va2s  . co m
    Column<Movimiento, SafeHtml> conceptoCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            if (object.getConcepto().getSuma()) {
                a.appendHtmlConstant("<span>" + object.getConcepto().getName() + "</span>");
            } else {
                a.appendHtmlConstant("<span style='color: grey; font-style: italic;'>"
                        + object.getConcepto().getName() + "</span>");
            }
            return a.toSafeHtml();
        }
    };
    dataGrid.addColumn(conceptoCol, "Concepto");
    dataGrid.setColumnWidth(conceptoCol, 80, Style.Unit.PCT);

    // Cantidad
    Column<Movimiento, SafeHtml> cantidadCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            String result = Utils.formatCantidad(object.getCantidad());
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            if (object.getConcepto().getSuma()) {
                a.appendHtmlConstant("<span style='padding-right: 5px;'>" + result + "</span>");
            } else {
                a.appendHtmlConstant("<span style='padding-right: 5px; color: grey; font-style: italic;'>"
                        + result + "</span>");
            }
            return a.toSafeHtml();
        }
    };
    cantidadCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    SafeHtmlHeader headerCantidad = new SafeHtmlHeader(new SafeHtml() {
        @Override
        public String asString() {
            return "<p style='text-align:center; margin-bottom: 0px;'>Empleado</p>";
        }
    });
    dataGrid.addColumn(cantidadCol, headerCantidad);
    dataGrid.setColumnWidth(cantidadCol, 20, Style.Unit.PCT);

    // Cantidad_empresa
    Column<Movimiento, SafeHtml> cantidadEmpresaCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            String result = Utils.formatCantidad(object.getCantidadEmpresa());
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            a.appendHtmlConstant("<span style='padding-right: 5px;'>" + result + "</span>");
            return a.toSafeHtml();
        }
    };
    cantidadEmpresaCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    SafeHtmlHeader headerCantidadEmpresa = new SafeHtmlHeader(new SafeHtml() {
        @Override
        public String asString() {
            return "<p style='text-align:center; margin-bottom: 0px;'>Empresa</p>";
        }
    });
    dataGrid.addColumn(cantidadEmpresaCol, headerCantidadEmpresa);
    dataGrid.setColumnWidth(cantidadEmpresaCol, 20, Style.Unit.PCT);

}

From source file:cimav.client.view.nomina.NominaSaldoUI.java

/**
 * Add the columns to the table.//from w w  w .jav a 2  s . c om
 */
private void initTableColumns() {

    // id + icon remove
    Column<Movimiento, String> iconCol = new Column<Movimiento, String>(
            new NomIconInputCell(NomIconInputCell.SALDO)) {
        @Override
        public String getValue(Movimiento object) {
            return "" + object.getId();
        }
    };
    Header<String> forzarFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            return "  ";
        }
    };
    dataGrid.addColumn(iconCol, new SafeHtmlHeader(SafeHtmlUtils.fromString("")), forzarFooter);
    dataGrid.setColumnWidth(iconCol, 16, Style.Unit.PX);

    // Concepto
    Column<Movimiento, String> conceptoCol = new Column<Movimiento, String>((new TextCell())) {
        @Override
        public String getValue(Movimiento object) {
            Concepto concepto = object.getConcepto();
            return concepto.getName();
        }
    };
    dataGrid.addColumn(conceptoCol, "Concepto");
    dataGrid.setColumnWidth(conceptoCol, 100, Style.Unit.PCT);

    // Permanente
    Column<Movimiento, Boolean> permanenteCol = new Column<Movimiento, Boolean>(permanenteCell) {
        @Override
        public Boolean getValue(Movimiento object) {
            Boolean result = object.getPermanente();
            return result;
        }
    };
    permanenteCol.setFieldUpdater(new FieldUpdater<Movimiento, Boolean>() {
        @Override
        public void update(int index, Movimiento object, Boolean value) {
            try {
                object.setPermanente(value);
                getNominaQuincenalsREST().update(object);
            } catch (Exception e) {

            }
            saldoCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    permanenteCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    TextHeader permanenteHeader = new TextHeader("");
    permanenteHeader.setHeaderStyleNames("permanenteHeader");
    dataGrid.addColumn(permanenteCol, permanenteHeader);
    dataGrid.setColumnWidth(permanenteCol, 20, Style.Unit.PX);

    // Pago
    Column<Movimiento, SafeHtml> pagoCol = new Column<Movimiento, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(Movimiento object) {
            BigDecimal pago = object == null || object.getPago() == null ? BigDecimal.ZERO : object.getPago();
            Utils.formatCantidad(pago);
            SafeHtmlBuilder a = new SafeHtmlBuilder();
            if (object.getPermanente()) {
                a.appendHtmlConstant(
                        "<span style='padding-right:3px; '>" + Utils.formatCantidad(pago) + "</span>");
            } else {
                a.appendHtmlConstant("<span style='padding-right:3px; color: grey; font-style: italic;'>"
                        + Utils.formatCantidad(pago) + "</span>");
            }
            return a.toSafeHtml();
        }
    };
    pagoCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(pagoCol, "Pago");
    dataGrid.setColumnWidth(pagoCol, 90, Style.Unit.PCT);

    // Saldo 
    Column<Movimiento, String> saldoCol = new Column<Movimiento, String>(saldoCell) {
        @Override
        public String getValue(Movimiento object) {
            BigDecimal result = object == null || object.getSaldo() == null ? BigDecimal.ZERO
                    : object.getSaldo();
            return Utils.formatCantidad(result);
        }
    };
    saldoCol.setFieldUpdater(new FieldUpdater<Movimiento, String>() {
        @Override
        public void update(int index, Movimiento object, String value) {
            BigDecimal nuevoSaldo;
            try {
                nuevoSaldo = new BigDecimal(value.trim());
                object.setSaldo(nuevoSaldo);
                getNominaQuincenalsREST().update(object);
            } catch (Exception e) {

            }
            saldoCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    saldoCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(saldoCol, "Saldo");
    dataGrid.setColumnWidth(saldoCol, 110, Style.Unit.PX);

    // Quincenas
    Column<Movimiento, String> quincenasCol = new Column<Movimiento, String>(quincenasCell) {
        @Override
        public String getValue(Movimiento object) {
            Integer result = object == null || object.getNumQuincenas() == null ? 0 : object.getNumQuincenas();
            return Integer.toString(result);
        }
    };
    quincenasCol.setFieldUpdater(new FieldUpdater<Movimiento, String>() {
        @Override
        public void update(int index, Movimiento object, String value) {
            // Push the changes into the MyDTO. At this point, you could send an
            // asynchronous request to the server to update the database.
            // value es el valor capturado
            // si es valido, pasar al object y a la DB
            // NOTA requiere de un Ajax con icono chiquito
            // Tiene su propio loading el DataGrid

            // Intenta convertir el value a Integer
            // si falla lo deja como estaba
            // si no falla lo actualiza
            Integer numQuin = 0;
            try {
                numQuin = Integer.parseInt(value.trim());
                object.setNumQuincenas(numQuin);

                getNominaQuincenalsREST().update(object);

            } catch (NumberFormatException | NullPointerException e) {
            }
            quincenasCell.clearViewData(object);
            int absRowIndex = index;
            dataGrid.redrawRow(absRowIndex);
        }
    });
    quincenasCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    dataGrid.addColumn(quincenasCol, "Veces");
    dataGrid.setColumnWidth(quincenasCol, 68, Style.Unit.PX);

}

From source file:com.databasepreservation.visualization.client.common.lists.AsyncTableCell.java

protected void addColumn(Column<T, ?> column, SafeHtml headerHTML, boolean nowrap, boolean alignRight) {
    SafeHtmlHeader header = new SafeHtmlHeader(headerHTML);

    display.addColumn(column, header);//from   w  ww . ja  va 2  s.c o m

    if (nowrap && alignRight) {
        header.setHeaderStyleNames("nowrap text-align-right");
        column.setCellStyleNames("nowrap text-align-right");
    } else if (nowrap) {
        header.setHeaderStyleNames("cellTableFadeOut");
        column.setCellStyleNames("cellTableFadeOut");
    }
}

From source file:com.google.gwt.sample.showcase.client.content.cell.CwDataGrid.java

License:Apache License

/**
 * Add the columns to the table./*from w w  w .  ja va 2 s .  c  o m*/
 */
@ShowcaseSource
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        ListHandler<ContactInfo> sortHandler) {
    // Checkbox column. This table will uses a checkbox column for selection.
    // Alternatively, you can call dataGrid.setSelectionEnabled(true) to enable
    // mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    dataGrid.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    dataGrid.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    };
    firstNameColumn.setSortable(true);
    sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getFirstName().compareTo(o2.getFirstName());
        }
    });
    dataGrid.addColumn(firstNameColumn, constants.cwDataGridColumnFirstName());
    firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setFirstName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(firstNameColumn, 20, Unit.PCT);

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(lastNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getLastName().compareTo(o2.getLastName());
        }
    });
    dataGrid.addColumn(lastNameColumn, constants.cwDataGridColumnLastName());
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(lastNameColumn, 20, Unit.PCT);

    // Age.
    Column<ContactInfo, Number> ageColumn = new Column<ContactInfo, Number>(new NumberCell()) {
        @Override
        public Number getValue(ContactInfo object) {
            return object.getAge();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(ageColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getBirthday().compareTo(o2.getBirthday());
        }
    });
    Header<String> ageFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            List<ContactInfo> items = dataGrid.getVisibleItems();
            if (items.size() == 0) {
                return "";
            } else {
                int totalAge = 0;
                for (ContactInfo item : items) {
                    totalAge += item.getAge();
                }
                return "Avg: " + totalAge / items.size();
            }
        }
    };
    dataGrid.addColumn(ageColumn,
            new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant(constants.cwDataGridColumnAge())), ageFooter);
    dataGrid.setColumnWidth(ageColumn, 7, Unit.EM);

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    dataGrid.addColumn(categoryColumn, constants.cwDataGridColumnCategory());
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(categoryColumn, 130, Unit.PX);

    // Address.
    Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>(new TextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    };
    addressColumn.setSortable(true);
    sortHandler.setComparator(addressColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getAddress().compareTo(o2.getAddress());
        }
    });
    dataGrid.addColumn(addressColumn, constants.cwDataGridColumnAddress());
    dataGrid.setColumnWidth(addressColumn, 60, Unit.PCT);
}

From source file:com.sensia.tools.client.swetools.editors.sensorml.panels.widgets.swe.dataarray.GenericTable.java

License:Open Source License

/**
 * Populates the table./* w w w  .j  av a 2 s  .  co m*/
 *
 * @param headers the headers to display
 * @param values the values to set
 */
public void poupulateTable(final List<String> headers, final Object[][] values) {
    //clears/creates the list
    init();
    this.originalData = getPropertiesFromValues(values);

    if (table == null) {
        //creates the table object
        createTable();
    } else {
        //remove every columns
        int nbColumn = table.getColumnCount();
        for (int i = 0; i < nbColumn; i++) {
            table.removeColumn(i);
        }
    }

    int position = 0;
    //add every column based on header list
    for (final String colName : headers) {
        final int currentPosition = position;
        final Column<Property, String> column = new Column<Property, String>(new TextCell()) {

            @Override
            public String getValue(Property object) {
                return object.properties.get(currentPosition);
            }
        };
        column.setSortable(false);

        SafeHtmlHeader colHeader = new SafeHtmlHeader(new SafeHtml() {

            @Override
            public String asString() {
                return "<p style=\"text-align:center;\">" + colName + "</p>";
            }

        });
        colHeader.setHeaderStyleNames("data-table-header");

        table.addColumn(column, colHeader);
        position++;
    }

    //add extra column if editable
    if (isEditable) {
        SafeHtmlHeader removeRowLabelHeader = getRemoveRowLabelHeader();
        final Column<Property, String> removeColumn = new Column<Property, String>(new ButtonCell()) {
            @Override
            public String getValue(Property c) {
                return "x";
            }
        };

        removeColumn.setSortable(false);

        //updates when the user remove a row
        removeColumn.setFieldUpdater(new FieldUpdater<Property, String>() {

            @Override
            public void update(int index, Property object, String value) {
                List<Property> newOriginalData = new ArrayList<Property>();
                for (int i = 0; i < originalData.size(); i++) {
                    if (i != index) {
                        newOriginalData.add(originalData.get(i));
                    }
                }
                originalData = newOriginalData;

                table.setRowCount(originalData.size());
                table.setRowData(originalData);

                dataProvider.setList(originalData);
                dataProvider.refresh();

                deselect();
            }
        });

        table.addColumn(removeColumn, removeRowLabelHeader);
    }

    table.setRowCount(originalData.size());
    table.setRowData(originalData);

    dataProvider.setList(originalData);
    dataProvider.refresh();
}

From source file:com.sensia.tools.client.swetools.editors.sensorml.panels.widgets.swe.dataarray.GenericTable.java

License:Open Source License

/**
 * Gets the removes the row label header.
 *
 * @return the removes the row label header
 *//*from w  w w.  j a v  a  2s . com*/
private SafeHtmlHeader getRemoveRowLabelHeader() {
    SafeHtmlHeader removeRowLabelHeader = new SafeHtmlHeader(new SafeHtml() {

        @Override
        public String asString() {
            return "<p style=\"text-align:center;\"></p>";
        }

    });
    removeRowLabelHeader.setHeaderStyleNames("data-table-header");
    return removeRowLabelHeader;
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.tasklist.PriorityColumn.java

License:Open Source License

public Header<?> getHeader() {
    return new SafeHtmlHeader(template.header(tasksMessages.priority(), tasksMessages.pri()));
}