Example usage for com.google.gwt.i18n.client NumberFormat format

List of usage examples for com.google.gwt.i18n.client NumberFormat format

Introduction

In this page you can find the example usage for com.google.gwt.i18n.client NumberFormat format.

Prototype

public String format(Number number) 

Source Link

Document

This method formats a Number to produce a string.

Usage

From source file:com.laskysoftware.GXTPagingGrid.client.GridExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    if (root == null) {
        final NumberFormat number = NumberFormat.getFormat("0.00");

        ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 50, "Company");
        ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
        ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

        ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
        changeCol.setCell(new AbstractCell<Double>() {

            @Override//www.ja v a  2  s .c  o  m
            public void render(Context context, Double value, SafeHtmlBuilder sb) {
                String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
                String v = number.format(value);
                sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
            }
        });

        ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
                "Last Updated");
        lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

        List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
        l.add(nameCol);
        l.add(symbolCol);
        l.add(lastCol);
        l.add(changeCol);
        l.add(lastTransCol);
        ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

        ListStore<Stock> store = new ListStore<Stock>(props.key());
        store.addAll(TestData.getStocks());

        root = new ContentPanel();
        root.setHeadingText("Basic Grid");
        root.getHeader().setIcon(ExampleImages.INSTANCE.table());
        root.setPixelSize(600, 300);
        root.addStyleName("margin-10");

        ToolButton info = new ToolButton(ToolButton.QUESTION);
        ToolTipConfig config = new ToolTipConfig("Example Info",
                "This examples includes resizable panel, reorderable columns and grid state.");
        config.setMaxWidth(225);
        info.setToolTipConfig(config);
        root.addTool(info);

        new Resizable(root, Dir.E, Dir.SE, Dir.S);

        final Grid<Stock> grid = new Grid<Stock>(store, cm);
        grid.getView().setAutoExpandColumn(nameCol);
        grid.getView().setStripeRows(true);
        grid.getView().setColumnLines(true);
        grid.setBorders(false);

        grid.setColumnReordering(true);
        grid.setStateful(true);
        grid.setStateId("gridExample");

        GridStateHandler<Stock> state = new GridStateHandler<Stock>(grid);
        state.loadState();

        ToolBar toolBar = new ToolBar();
        toolBar.add(new LabelToolItem("Selection Mode: "));

        SimpleComboBox<String> type = new SimpleComboBox<String>(new StringLabelProvider<String>());
        type.setTriggerAction(TriggerAction.ALL);
        type.setEditable(false);
        type.setWidth(100);
        type.add("Row");
        type.add("Cell");
        type.setValue("Row");
        // we want to change selection model on select, not value change which fires on blur
        type.addSelectionHandler(new SelectionHandler<String>() {

            @Override
            public void onSelection(SelectionEvent<String> event) {
                boolean cell = event.getSelectedItem().equals("Cell");
                if (cell) {
                    CellSelectionModel<Stock> c = new CellSelectionModel<Stock>();
                    c.addCellSelectionChangedHandler(new CellSelectionChangedHandler<Stock>() {

                        @Override
                        public void onCellSelectionChanged(CellSelectionChangedEvent<Stock> event) {

                        }
                    });

                    grid.setSelectionModel(c);
                } else {
                    grid.setSelectionModel(new GridSelectionModel<Stock>());
                }
            }
        });
        type.addValueChangeHandler(new ValueChangeHandler<String>() {

            @Override
            public void onValueChange(ValueChangeEvent<String> event) {

            }
        });
        toolBar.add(type);

        VerticalLayoutContainer con = new VerticalLayoutContainer();
        root.setWidget(con);

        con.add(toolBar, new VerticalLayoutData(1, -1));
        con.add(grid, new VerticalLayoutData(1, 1));

        // needed to enable quicktips (qtitle for the heading and qtip for the
        // content) that are setup in the change GridCellRenderer
        new QuickTip(grid);
    }

    return root;
}

From source file:com.laskysoftware.GXTPagingGrid.client.GridExampleLocking.java

License:sencha.com license

@Override
public Widget asWidget() {
    if (root == null) {
        final NumberFormat number = NumberFormat.getFormat("0.00");

        ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 50,
                SafeHtmlUtils.fromTrustedString("<b>Company</b>"));

        ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
        ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

        ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
        changeCol.setCell(new AbstractCell<Double>() {

            @Override// w  ww  .  j a va 2  s  .  c  o m
            public void render(Context context, Double value, SafeHtmlBuilder sb) {
                String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
                String v = number.format(value);
                sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
            }
        });

        ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
                "Last Updated");
        lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

        List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
        //Remove name from main set of columns
        //l.add(nameCol);
        l.add(symbolCol);
        l.add(lastCol);
        l.add(changeCol);
        l.add(lastTransCol);

        //create two column models, one for the locked section
        ColumnModel<Stock> lockedCm = new ColumnModel<Stock>(
                Collections.<ColumnConfig<Stock, ?>>singletonList(nameCol));
        ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

        ListStore<Stock> store = new ListStore<Stock>(props.key());
        store.addAll(TestData.getStocks());

        root = new ContentPanel();
        root.setHeadingText("Locked Grid Sample");
        root.setPixelSize(600, 300);

        final Resizable resizable = new Resizable(root, Dir.E, Dir.SE, Dir.S);
        root.addExpandHandler(new ExpandHandler() {
            @Override
            public void onExpand(ExpandEvent event) {
                resizable.setEnabled(true);
            }
        });
        root.addCollapseHandler(new CollapseHandler() {
            @Override
            public void onCollapse(CollapseEvent event) {
                resizable.setEnabled(false);
            }
        });

        //locked grid
        final Grid<Stock> lockedGrid = new Grid<Stock>(store, lockedCm) {
            @Override
            protected Size adjustSize(Size size) {
                //this is a tricky part - convince the grid to draw just slightly too wide
                //and so push the scrollbar out of sight
                return new Size(size.getWidth() + XDOM.getScrollBarWidth() - 1, size.getHeight());
            }
        };
        lockedGrid.setView(new GridView<Stock>() {
            {
                this.scrollOffset = 0;
            }
        });
        //require columns to always fit, preventing scrollbar
        lockedGrid.getView().setForceFit(true);

        //main grid, with horiz scrollbar
        final Grid<Stock> grid = new Grid<Stock>(store, cm);
        //don't want this feature, want to encourage horizontal scrollbars
        //grid.getView().setAutoExpandColumn(nameCol);
        grid.getView().setStripeRows(true);
        grid.getView().setColumnLines(true);
        grid.setBorders(false);

        grid.setColumnReordering(true);
        grid.setStateful(true);
        grid.setStateId("gridExample");

        //link scrolling
        lockedGrid.addBodyScrollHandler(new BodyScrollHandler() {
            @Override
            public void onBodyScroll(BodyScrollEvent event) {
                grid.getView().getScroller().scrollTo(ScrollDirection.TOP, event.getScrollTop());
            }
        });
        grid.addBodyScrollHandler(new BodyScrollHandler() {
            @Override
            public void onBodyScroll(BodyScrollEvent event) {
                lockedGrid.getView().getScroller().scrollTo(ScrollDirection.TOP, event.getScrollTop());
            }
        });

        HorizontalLayoutContainer gridWrapper = new HorizontalLayoutContainer();
        root.setWidget(gridWrapper);

        //add locked column, only 300px wide (in this example, use layouts to change how this works
        HorizontalLayoutData lockedColumnLayoutData = new HorizontalLayoutData(300, 1.0);

        //this is optional - without this, you get a little offset issue at the very bottom of the non-locked grid
        lockedColumnLayoutData.setMargins(new Margins(0, 0, XDOM.getScrollBarWidth(), 0));

        gridWrapper.add(lockedGrid, lockedColumnLayoutData);

        //add non-locked section, taking up all remaining width
        gridWrapper.add(grid, new HorizontalLayoutData(1.0, 1.0));
    }

    return root;
}

From source file:com.lushprojects.circuitjs1.client.CircuitElm.java

License:Open Source License

static String myGetUnitText(double v, String u, boolean sf) {
    NumberFormat s;
    String sp = "";
    if (sf)/*from w  w  w. j av  a2  s.  c o  m*/
        s = shortFormat;
    else {
        s = showFormat;
        sp = " ";
    }
    double va = Math.abs(v);
    if (va < 1e-14)
        // this used to return null, but then wires would display "null" with 0V
        return "0" + sp + u;
    if (va < 1e-9)
        return s.format(v * 1e12) + sp + "p" + u;
    if (va < 1e-6)
        return s.format(v * 1e9) + sp + "n" + u;
    if (va < 1e-3)
        return s.format(v * 1e6) + sp + CirSim.muString + u;
    if (va < 1)
        return s.format(v * 1e3) + sp + "m" + u;
    if (va < 1e3)
        return s.format(v) + sp + u;
    if (va < 1e6)
        return s.format(v * 1e-3) + sp + "k" + u;
    if (va < 1e9)
        return s.format(v * 1e-6) + sp + "M" + u;
    return s.format(v * 1e-9) + sp + "G" + u;
}

From source file:com.lushprojects.circuitjs1.client.element.CircuitElm.java

License:Open Source License

static String myGetUnitText(double v, String u, boolean sf) {
    NumberFormat s;
    if (sf)/*from   w w  w . j a va 2  s.c  o m*/
        s = shortFormat;
    else
        s = showFormat;
    double va = Math.abs(v);
    if (va < 1e-14)
        return "0 " + u;
    if (va < 1e-9)
        return s.format(v * 1e12) + " p" + u;
    if (va < 1e-6)
        return s.format(v * 1e9) + " n" + u;
    if (va < 1e-3)
        return s.format(v * 1e6) + " " + Gui.muString + u;
    if (va < 1)
        return s.format(v * 1e3) + " m" + u;
    if (va < 1e3)
        return s.format(v) + " " + u;
    if (va < 1e6)
        return s.format(v * 1e-3) + " k" + u;
    if (va < 1e9)
        return s.format(v * 1e-6) + " M" + u;
    return s.format(v * 1e-9) + " G" + u;
}

From source file:com.mecatran.otp.gwt.client.view.PrintWidgetWindowImpl.java

License:Open Source License

private List<String> getMapUrl(Wgs84LatLonBean[] path) {
    final int MAP_PATH_SIZE = 100;
    NumberFormat dec5Format = NumberFormat.getFormat("#.00000");
    List<String> retval = new ArrayList<String>();
    int n = (path.length - 1) / MAP_PATH_SIZE + 1;
    int m = path.length / n + 1;
    int js = 0;/*from w ww  .j av a2  s .  co  m*/
    for (int i = 0; i < n; i++) {
        StringBuilder urlBuilder = new StringBuilder();
        int je = js + m;
        if (je > path.length)
            je = path.length;
        boolean start = i == 0;
        boolean end = je == path.length;
        urlBuilder.append(
                "http://maps.googleapis.com/maps/api/staticmap?sensor=false&scale=2&size=800x800&maptype=roadmap");
        if (start)
            urlBuilder.append("&markers=").append(dec5Format.format(path[0].getLat())).append(",")
                    .append(dec5Format.format(path[0].getLon()));
        if (end && !start)
            urlBuilder.append("&markers=");
        else
            urlBuilder.append("|");
        if (end)
            urlBuilder.append(dec5Format.format(path[path.length - 1].getLat())).append(",")
                    .append(dec5Format.format(path[path.length - 1].getLon()));
        urlBuilder.append("&path=color:blue|enc:");
        Wgs84LatLonBean[] subPath = new Wgs84LatLonBean[je - js];
        // GWT does not have Arrays.copyOfRange() ...
        for (int k = js; k < je; k++) {
            subPath[k - js] = path[k];
        }
        urlBuilder.append(PolylineEncoder.encode(subPath));
        retval.add(urlBuilder.toString());
        js = je;
    }
    assert (js == path.length);
    return retval;
}

From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.CheckBoxGridExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    final NumberFormat number = NumberFormat.getFormat("0.00");

    IdentityValueProvider<Stock> identity = new IdentityValueProvider<Stock>();

    final CheckBoxSelectionModel<Stock> sm = new CheckBoxSelectionModel<Stock>(identity);

    ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 200, "Company");
    ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
    ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

    ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
    changeCol.setCell(new AbstractCell<Double>() {

        @Override//from   w w w.  j  a v a2  s .c o m
        public void render(Context context, Double value, SafeHtmlBuilder sb) {
            String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
            String v = number.format(value);
            sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
        }
    });

    ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
            "Last Updated");
    lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

    List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
    l.add(sm.getColumn());
    l.add(nameCol);
    l.add(symbolCol);
    l.add(lastCol);
    l.add(changeCol);
    l.add(lastTransCol);
    ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

    ListStore<Stock> store = new ListStore<Stock>(props.key());
    store.addAll(TestData.getStocks());

    ContentPanel cp = new ContentPanel();
    cp.setHeadingText("CheckBox Grid");
    cp.getHeader().setIcon(ExampleImages.INSTANCE.table());
    cp.setPixelSize(600, 320);
    cp.addStyleName("margin-10");

    final Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setSelectionModel(sm);
    grid.getView().setAutoExpandColumn(nameCol);
    grid.setBorders(false);
    grid.getView().setStripeRows(true);
    grid.getView().setColumnLines(true);

    ToolBar toolBar = new ToolBar();
    toolBar.add(new LabelToolItem("Selection Mode: "));

    SimpleComboBox<String> type = new SimpleComboBox<String>(new StringLabelProvider<String>());
    type.setTriggerAction(TriggerAction.ALL);
    type.setEditable(false);
    type.setWidth(100);
    type.add("Multi");
    type.add("Simple");
    type.setValue("Multi");
    type.addValueChangeHandler(new ValueChangeHandler<String>() {

        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            boolean simple = event.getValue().equals("Simple");
            sm.deselectAll();
            sm.setSelectionMode(simple ? SelectionMode.SIMPLE : SelectionMode.MULTI);
        }
    });
    toolBar.add(type);

    VerticalLayoutContainer con = new VerticalLayoutContainer();
    cp.setWidget(con);

    con.add(toolBar, new VerticalLayoutData(1, -1));
    con.add(grid, new VerticalLayoutData(1, 1));

    return cp;
}

From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.FilterGridExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    final NumberFormat number = NumberFormat.getFormat("0.00");

    ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 200, "Company");
    ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
    ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

    ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
    changeCol.setCell(new AbstractCell<Double>() {

        @Override//from   w ww  . j av a 2  s  .c o  m
        public void render(Context context, Double value, SafeHtmlBuilder sb) {
            String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
            String v = number.format(value);
            sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
        }
    });

    ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
            "Last Updated");
    lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

    ColumnConfig<Stock, Boolean> splitCol = new ColumnConfig<Stock, Boolean>(props.split(), 75, "Split");
    splitCol.setCell(new AbstractCell<Boolean>() {
        @Override
        public void render(Context context, Boolean value, SafeHtmlBuilder sb) {
            sb.appendHtmlConstant(value ? "Yes" : "No");
        }
    });

    ColumnConfig<Stock, String> typeCol = new ColumnConfig<Stock, String>(props.industry(), 75, "Type");

    List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
    l.add(nameCol);
    l.add(symbolCol);
    l.add(lastCol);
    l.add(changeCol);
    l.add(lastTransCol);
    l.add(splitCol);
    l.add(typeCol);

    ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

    ListStore<Stock> store = new ListStore<Stock>(props.key());
    store.addAll(TestData.getStocks());

    ContentPanel cp = new ContentPanel();
    cp.setHeadingText("Filter Grid");
    cp.getHeader().setIcon(ExampleImages.INSTANCE.table());
    cp.setPixelSize(700, 300);
    cp.addStyleName("margin-10");

    final Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.getView().setAutoExpandColumn(nameCol);
    grid.setBorders(false);
    grid.getView().setStripeRows(true);
    grid.getView().setColumnLines(true);

    ListStore<String> typeStore = new ListStore<String>(new ModelKeyProvider<String>() {
        @Override
        public String getKey(String item) {
            return item;
        }
    });

    typeStore.add("Auto");
    typeStore.add("Media");
    typeStore.add("Medical");
    typeStore.add("Tech");

    NumericFilter<Stock, Double> lastFilter = new NumericFilter<Stock, Double>(props.last(),
            new DoublePropertyEditor());
    StringFilter<Stock> nameFilter = new StringFilter<Stock>(props.name());
    DateFilter<Stock> dateFilter = new DateFilter<Stock>(props.lastTrans());
    BooleanFilter<Stock> booleanFilter = new BooleanFilter<Stock>(props.split());
    ListFilter<Stock, String> listFilter = new ListFilter<Stock, String>(props.industry(), typeStore);

    GridFilters<Stock> filters = new GridFilters<Stock>();
    filters.initPlugin(grid);
    filters.setLocal(true);
    filters.addFilter(lastFilter);
    filters.addFilter(nameFilter);
    filters.addFilter(dateFilter);
    filters.addFilter(booleanFilter);
    filters.addFilter(listFilter);

    cp.setWidget(grid);

    return cp;
}

From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.GridUiBinderExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    final NumberFormat number = NumberFormat.getFormat("0.00");

    ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 50, "Company");
    ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
    ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

    ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
    changeCol.setCell(new AbstractCell<Double>() {

        @Override//  ww  w.  jav  a  2s.  c  o m
        public void render(Context context, Double value, SafeHtmlBuilder sb) {
            String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
            String v = number.format(value);
            sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
        }
    });

    ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
            "Last Updated");
    lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

    List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
    l.add(nameCol);
    l.add(symbolCol);
    l.add(lastCol);
    l.add(changeCol);
    l.add(lastTransCol);
    cm = new ColumnModel<Stock>(l);

    store = new ListStore<Stock>(props.key());
    store.addAll(TestData.getStocks());

    Widget component = uiBinder.createAndBindUi(this);

    view.setAutoExpandColumn(nameCol);

    return component;
}

From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.RemoteFilterGridExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    if (root == null) {
        final ExampleServiceAsync service = GWT.create(ExampleService.class);

        ListStore<Stock> store = new ListStore<Stock>(props.key());

        RpcProxy<FilterPagingLoadConfig, PagingLoadResult<Stock>> proxy = new RpcProxy<FilterPagingLoadConfig, PagingLoadResult<Stock>>() {
            @Override/*from   ww  w . j  a  v a  2s . co m*/
            public void load(FilterPagingLoadConfig loadConfig,
                    AsyncCallback<PagingLoadResult<Stock>> callback) {
                service.getStocks(loadConfig, callback);
            }
        };

        final PagingLoader<FilterPagingLoadConfig, PagingLoadResult<Stock>> remoteLoader = new PagingLoader<FilterPagingLoadConfig, PagingLoadResult<Stock>>(
                proxy) {
            @Override
            protected FilterPagingLoadConfig newLoadConfig() {
                return new FilterPagingLoadConfigBean();
            }
        };
        remoteLoader.setRemoteSort(true);
        remoteLoader.addLoadHandler(
                new LoadResultListStoreBinding<FilterPagingLoadConfig, Stock, PagingLoadResult<Stock>>(store));

        final NumberFormat number = NumberFormat.getFormat("0.00");

        ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 200, "Company");
        ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
        ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

        ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
        changeCol.setCell(new AbstractCell<Double>() {

            @Override
            public void render(Context context, Double value, SafeHtmlBuilder sb) {
                String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
                String v = number.format(value);
                sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
            }
        });

        ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
                "Last Updated");
        lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

        ColumnConfig<Stock, Boolean> splitCol = new ColumnConfig<Stock, Boolean>(props.split(), 75, "Split");
        splitCol.setCell(new AbstractCell<Boolean>() {
            @Override
            public void render(Context context, Boolean value, SafeHtmlBuilder sb) {
                sb.appendHtmlConstant(value ? "Yes" : "No");
            }
        });

        ColumnConfig<Stock, String> typeCol = new ColumnConfig<Stock, String>(props.industry(), 75, "Type");

        List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
        l.add(nameCol);
        l.add(symbolCol);
        l.add(lastCol);
        l.add(changeCol);
        l.add(lastTransCol);
        l.add(splitCol);
        l.add(typeCol);

        ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

        root = new ContentPanel();
        root.setHeadingText("Remote Filter Grid");
        root.getHeader().setIcon(ExampleImages.INSTANCE.table());
        root.setPixelSize(700, 300);
        root.addStyleName("margin-10");
        new Resizable(root);

        final Grid<Stock> grid = new Grid<Stock>(store, cm) {
            @Override
            protected void onAfterFirstAttach() {
                super.onAfterFirstAttach();
                Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                    @Override
                    public void execute() {
                        remoteLoader.load();
                    }
                });
            }
        };
        grid.setLoader(remoteLoader);
        grid.getView().setAutoExpandColumn(nameCol);
        grid.setBorders(false);
        grid.getView().setStripeRows(true);
        grid.getView().setColumnLines(true);

        ListStore<String> typeStore = new ListStore<String>(new ModelKeyProvider<String>() {
            @Override
            public String getKey(String item) {
                return item;
            }
        });

        typeStore.add("Auto");
        typeStore.add("Media");
        typeStore.add("Medical");
        typeStore.add("Tech");

        NumericFilter<Stock, Double> lastFilter = new NumericFilter<Stock, Double>(props.last(),
                new DoublePropertyEditor());
        StringFilter<Stock> nameFilter = new StringFilter<Stock>(props.name());
        DateFilter<Stock> dateFilter = new DateFilter<Stock>(props.lastTrans());
        BooleanFilter<Stock> booleanFilter = new BooleanFilter<Stock>(props.split());
        ListFilter<Stock, String> listFilter = new ListFilter<Stock, String>(props.industry(), typeStore);

        GridFilters<Stock> filters = new GridFilters<Stock>(remoteLoader);
        filters.initPlugin(grid);
        filters.addFilter(lastFilter);
        filters.addFilter(nameFilter);
        filters.addFilter(dateFilter);
        filters.addFilter(booleanFilter);
        filters.addFilter(listFilter);

        VerticalLayoutContainer con = new VerticalLayoutContainer();

        final PagingToolBar toolBar = new PagingToolBar(25);
        toolBar.bind(remoteLoader);

        con.add(grid, new VerticalLayoutData(1, 1));
        con.add(toolBar, new VerticalLayoutData(1, -1));

        root.setWidget(con);
    }

    return root;

}

From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.RowExpanderGridExample.java

License:sencha.com license

@Override
public Widget asWidget() {
    final NumberFormat number = NumberFormat.getFormat("0.00");

    IdentityValueProvider<Stock> identity = new IdentityValueProvider<Stock>();

    final String desc = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna.<br/><br/>Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit.";

    RowExpander<Stock> expander = new RowExpander<Stock>(identity, new AbstractCell<Stock>() {

        @Override//from  ww  w. j a v a  2 s.  c  o  m
        public void render(Context context, Stock value, SafeHtmlBuilder sb) {
            sb.appendHtmlConstant("<p style='margin: 5px 5px 10px'><b>Company:</b>" + value.getName() + "</p>");
            sb.appendHtmlConstant("<p style='margin: 5px 5px 10px'><b>Summary:</b> " + desc);
        }
    });

    ColumnConfig<Stock, String> nameCol = new ColumnConfig<Stock, String>(props.name(), 200, "Company");
    ColumnConfig<Stock, String> symbolCol = new ColumnConfig<Stock, String>(props.symbol(), 100, "Symbol");
    ColumnConfig<Stock, Double> lastCol = new ColumnConfig<Stock, Double>(props.last(), 75, "Last");

    ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change");
    changeCol.setCell(new AbstractCell<Double>() {

        @Override
        public void render(Context context, Double value, SafeHtmlBuilder sb) {
            String style = "style='color: " + (value < 0 ? "red" : "green") + "'";
            String v = number.format(value);
            sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>");
        }
    });

    ColumnConfig<Stock, Date> lastTransCol = new ColumnConfig<Stock, Date>(props.lastTrans(), 100,
            "Last Updated");
    lastTransCol.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));

    List<ColumnConfig<Stock, ?>> l = new ArrayList<ColumnConfig<Stock, ?>>();
    l.add(expander);
    l.add(nameCol);
    l.add(symbolCol);
    l.add(lastCol);
    l.add(changeCol);
    l.add(lastTransCol);
    ColumnModel<Stock> cm = new ColumnModel<Stock>(l);

    ListStore<Stock> store = new ListStore<Stock>(props.key());
    store.addAll(TestData.getStocks());

    ContentPanel cp = new ContentPanel();
    cp.setHeadingText("RowExpander Grid");
    cp.getHeader().setIcon(ExampleImages.INSTANCE.table());
    cp.setPixelSize(600, 320);
    cp.addStyleName("margin-10");

    final Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.getView().setAutoExpandColumn(nameCol);
    grid.setBorders(false);
    grid.getView().setStripeRows(true);
    grid.getView().setColumnLines(true);

    expander.initPlugin(grid);
    cp.setWidget(grid);

    return cp;
}