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

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

Introduction

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

Prototype

public static NumberFormat getCurrencyFormat() 

Source Link

Document

Provides the standard currency format for the default locale.

Usage

From source file:cimav.client.view.catalogos.tabulador.NivelesUi.java

/**
 * Add the columns to the table./*from   w ww  .jav  a2 s .  c om*/
 */
private void initTableColumns(ColumnSortEvent.ListHandler<Tabulador> sortHandler) {

    // ID
    Column<Tabulador, String> idCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            return object.getId().toString();
        }
    };
    dataGrid.addColumn(idCol, "ID");
    dataGrid.setColumnWidth(idCol, 40, Style.Unit.PX);

    // Code
    Column<Tabulador, String> codigoCol = new Column<Tabulador, String>((new TextCell())) {
        @Override
        public String getValue(Tabulador object) {
            return object.getCode();
        }
    };
    codigoCol.setSortable(true);
    sortHandler.setComparator(codigoCol, new Comparator<Tabulador>() {
        @Override
        public int compare(Tabulador o1, Tabulador o2) {
            return o1.getCode().compareTo(o2.getCode());
        }
    });
    dataGrid.addColumn(codigoCol, "Cdigo");
    dataGrid.setColumnWidth(codigoCol, 70, Style.Unit.PX);

    // Sueldo
    Column<Tabulador, String> sueldoCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            NumberFormat fmt = NumberFormat.getCurrencyFormat();
            String output = object.getSueldo().toString();
            Double value = Double.parseDouble(output);
            String formatted = fmt.format(value);
            return formatted;
        }
    };
    sueldoCol.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    sueldoCol.setSortable(true);
    sortHandler.setComparator(sueldoCol, new Comparator<Tabulador>() {
        @Override
        public int compare(Tabulador o1, Tabulador o2) {
            return o1.getSueldo().compareTo(o2.getSueldo());
        }
    });
    dataGrid.addColumn(sueldoCol, "Sueldo");
    dataGrid.setColumnWidth(sueldoCol, 60, Style.Unit.PX);

    // matDidacticos
    Column<Tabulador, String> matDidacticosCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            return object.getMatDidacticos().toString();
        }
    };
    dataGrid.addColumn(matDidacticosCol, "Mat. Didacticos");
    dataGrid.setColumnWidth(matDidacticosCol, 60, Style.Unit.PX);

    // honorarios
    Column<Tabulador, String> honorariosCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            return object.getHonorarios().toString();
        }
    };
    dataGrid.addColumn(honorariosCol, "Honorarios");
    dataGrid.setColumnWidth(honorariosCol, 60, Style.Unit.PX);

    // compGarantizadaCol
    Column<Tabulador, String> compGarantizadaCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            return object.getCompGarantizada().toString();
        }
    };
    dataGrid.addColumn(compGarantizadaCol, "Comp. Garantizada");
    dataGrid.setColumnWidth(compGarantizadaCol, 60, Style.Unit.PX);

    // cargaAdmin
    Column<Tabulador, String> cargaAdminCol = new Column<Tabulador, String>(new TextCell()) {
        @Override
        public String getValue(Tabulador object) {
            return object.getCargaAdmin().toString();
        }
    };
    dataGrid.addColumn(cargaAdminCol, "Carga Admin.");
    dataGrid.setColumnWidth(cargaAdminCol, 60, Style.Unit.PX);

}

From source file:cimav.client.view.common.Utils.java

/**
 * @param bigDecimal//  w ww  .  ja  v  a  2s.c  o  m
 * @return $123,451.60
 */
public static String formatCurrency(BigDecimal bigDecimal) {
    NumberFormat fmt = NumberFormat.getCurrencyFormat();
    String formatted = fmt.format(bigDecimal);
    return formatted;
}

From source file:com.dotrow.projects.webdesktop.client.MainEntryPoint.java

License:Open Source License

private Window createGridWindow() {
    Window w = new Window();
    w.setIcon(IconHelper.createStyle("icon-grid"));
    w.setMinimizable(true);/*ww  w .jav a  2s. c  om*/
    w.setMaximizable(true);
    w.setHeading("Grid Window");
    w.setSize(500, 400);
    w.setLayout(new FitLayout());

    GroupingStore<Stock> store = new GroupingStore<Stock>();
    store.add(TestData.getCompanies());
    store.groupBy("industry");

    ColumnConfig company = new ColumnConfig("name", "Company", 60);
    ColumnConfig price = new ColumnConfig("open", "Price", 20);
    price.setNumberFormat(NumberFormat.getCurrencyFormat());
    ColumnConfig change = new ColumnConfig("change", "Change", 20);
    ColumnConfig industry = new ColumnConfig("industry", "Industry", 20);
    ColumnConfig last = new ColumnConfig("date", "Last Updated", 20);
    last.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/y"));

    List<ColumnConfig> config = new ArrayList<ColumnConfig>();
    config.add(company);
    config.add(price);
    config.add(change);
    config.add(industry);
    config.add(last);

    final ColumnModel cm = new ColumnModel(config);

    GroupingView view = new GroupingView();
    view.setForceFit(true);
    view.setGroupRenderer(new GridGroupRenderer() {
        public String render(GroupColumnData data) {
            String f = cm.getColumnById(data.field).getHeader();
            String l = data.models.size() == 1 ? "Item" : "Items";
            return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
        }
    });

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setView(view);
    grid.setBorders(true);

    w.add(grid);
    return w;
}

From source file:com.etx.mortgagecalculator.client.ui.widgets.uiwidget.java

License:GNU General Public License

public uiwidget() {
    initWidget(uiBinder.createAndBindUi(this));

    Window.enableScrolling(false);
    Window.setMargin("0px");
    Date d = new Date();
    firstdate.setValue(d);/* w  ww.  j  av  a 2  s .  c  o m*/

    fmt = NumberFormat.getCurrencyFormat();

    mortgageamountTextbox.addStyleName("gwt-mortgageamountTextbox");
    terminyearsTextbox.addStyleName("gwt-Textbox");
    interestrateTextbox.addStyleName("gwt-Textbox");
    onetimeprepaymentTextbox.addStyleName("gwt-Textbox");
    annualprepaymentTextbox.addStyleName("gwt-Textbox");
    increasepaymentbyTextbox.addStyleName("gwt-Textbox");
    htmlpanel.addStyleName("gwt-htmlpanel");
    monthlyPayments.addStyleName("gwt-monthlypayment");
    terminyears.addStyleName("gwt-terminyears");
    lblpaymentlabel.addStyleName("gwt-paymentlabel");
    payoffdate.addStyleName("gwt-PayoffDate");
    lblamortlabel.addStyleName("gwt-amortizationschedlabel");
    firstdate.setFormat(new DateBox.DefaultFormat(DateTimeFormat.getFormat("MMM dd, yyyy")));

    calculatemortgage();
    click(button);

    button.setVisible(false);
    lblonetimeprepayment.setVisible(false);
    onetimeprepaymentTextbox.setVisible(false);
    lblannualprepayment.setVisible(false);
    annualprepaymentTextbox.setVisible(false);
    firstdate.setVisible(false);
    try {

        lang = com.google.gwt.user.client.Window.Location.getParameter("lang");

        if (lang == null) {
            lang = "en";
        }

        /*
        This section is not very good solution for separating languages, it needs to be reworked
        Ideally this should go to XML file.
        Developed this way to test it and never had a chance to change it.
        */

        //Slovak
        if (lang.equals("sk") == true) {
            lblMortgageLabel.setText("Vyska Hypoteky");
            lblmortgageamortization.setText("Doba Splacania (mesiace)");
            lblannualinterestrate.setText("Rocna urokova miera (%)");
            lblpaymentfrequency.setText("Frekvencia Platby");
            //lblmortgagestartdate.setText ( "Datum Zaciatku Hypoteky" ) ;
            lblpaymentlabel.setText("Mesacna Splatka:");
            lblpayoffdate.setText("Datum Splatenia:");
            lblonetimeprepayment.setText("Jednorazovo pridat");
            lblannualprepayment.setText("Rocne pridat");
            lblincreasepaymentby.setText("Mesacne Pridat");
            lbltotalcostoftheloan.setText(" Celkova Suma Uveru:");
            lblinterestpaidforterm.setText("Celkovy Urok:");
            lblextrapaymentssaved.setText("Platby navyse usetrili:");
            //lblextrapaymentnewdate.setText ( "Datum splatenia s platbami navyse:" ) ;
            lblamortlabel.setText("Splatkovy Kalendar (Mesacna Amortizacna Tabulka)");
            lblcopyright.setText("Licensed under GNU GPL v2.0 - Developed by ETX Software Inc. (ETX.ca)"); // This line can be changed to your liking, as long as you reference open source project: https://github.com/JozefJarosciak/MortgageCalculator and www.ETX.ca
            years = "rokov";
            days = "dni";

            amortizationtable1lang = "<table style=\"width:100%\">" + "<tr>" + "<td><b>Mesiac</b></td>"
                    + "<td><b>Platba</b></td>" + "<td><b>Umor</b></td>" + "<td><b>Urok</b></td>"
                    + "<td><b>Urok (sucet)</b></td>" + "<td><b>Zostatok</b></td>" + "</tr>";

        }

        //English
        if (lang.equals("en") == true) {
            lblMortgageLabel.setText("Mortgage Amount");
            lblmortgageamortization.setText("Mortgage Amortization (months)");
            lblannualinterestrate.setText("Annual Interest Rate (%)");
            lblpaymentfrequency.setText("Payment Frequency");
            //lblmortgagestartdate.setText("Mortgage start date");
            lblpaymentlabel.setText("Monthly Payment:");
            lblpayoffdate.setText("Pay-Off Date (from today's date):");
            lblonetimeprepayment.setText("One-Time Prepayment");
            lblannualprepayment.setText("Annual Prepayment");
            lblincreasepaymentby.setText("Add to Mortgage (montly)");
            lbltotalcostoftheloan.setText("Total cost of the loan:");
            lblinterestpaidforterm.setText("Interest Paid for Term:");
            lblextrapaymentssaved.setText("Extra Payments Saved:");
            //lblextrapaymentnewdate.setText("Pay-Off Date with Extra Payments. In:");
            lblamortlabel.setText("Amortization Schedule (monthly payments)");
            lblcopyright.setText("Licensed under GNU GPL v2.0 - Developed by ETX Software Inc. (ETX.ca)"); // This line can be changed to your liking, as long as you reference open source project: https://github.com/JozefJarosciak/MortgageCalculator and www.ETX.ca
            years = "years";
            days = "days";

            amortizationtable1lang = "<table style=\"width:100%\">" + "<tr>" + "<td><b>Month</b></td>"
                    + "<td><b>Payment</b></td>" + "<td><b>Principal Paid</b></td>"
                    + "<td><b>Interest Paid</b></td>" + "<td><b>Total Interest</b></td>"
                    + "<td><b>Balance</b></td>" + "</tr>";

        }
    } catch (Exception e) {
    }

}

From source file:com.extjs.gxt.samples.client.examples.binding.GridBindingExample.java

License:Open Source License

private Grid<Stock> createGrid() {
    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");
    final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(currency);

    GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {

        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            double val = (Double) model.get(property);
            String style = val < 0 ? "red" : "green";
            return "<span style='color:" + style + "'>" + number.format(val) + "</span>";
        }//from  ww  w .ja  v  a  2 s.  co  m
    };

    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            return numberRenderer.render(null, property, model.get(property));
        }
    };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeader("Symbol");
    column.setWidth(75);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeader("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(75);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 90);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", "Last Updated", 90);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    ListStore<Stock> store = new ListStore<Stock>();
    store.setMonitorChanges(true);
    store.add(TestData.getStocks());

    ColumnModel cm = new ColumnModel(configs);

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.getView().setEmptyText("sdfd");
    grid.setBorders(false);
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);

    return grid;
}

From source file:com.extjs.gxt.samples.client.examples.dnd.ReorderingGridExample.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from   w  w w. jav  a2  s.co m*/
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");
    final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(currency);

    GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            double val = (Double) model.get(property);
            String style = val < 0 ? "red" : "green";
            return "<span style='color:" + style + "'>" + number.format(val) + "</span>";
        }
    };

    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            return numberRenderer.render(null, property, model.get(property));
        }
    };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setSortable(false);
    column.setHeader("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeader("Symbol");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeader("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(75);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", "Last Updated", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    ListStore<Stock> store = new ListStore<Stock>();
    store.add(Util.subList(TestData.getStocks(), 0, 12));

    ColumnModel cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setIcon(Resources.ICONS.table());
    cp.setHeading("Reordering Grid");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(600, 304);

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setStyleAttribute("borderTop", "none");
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);
    grid.setStripeRows(true);
    cp.add(grid);

    new GridDragSource(grid);

    GridDropTarget target = new GridDropTarget(grid);
    target.setAllowSelfAsSource(true);
    target.setFeedback(Feedback.INSERT);

    add(cp);
}

From source file:com.extjs.gxt.samples.client.examples.grid.AggregationGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(15));

    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");
    final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(currency);

    GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            double val = (Double) model.get(property);
            String style = val < 0 ? "red" : "green";
            return "<span style='color:" + style + "'>" + number.format(val) + "</span>";
        }/*from  w  w  w .  j  ava 2  s  . c  o m*/
    };

    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            return numberRenderer.render(null, property, model.get(property));
        }
    };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeader("Symbol");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeader("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(100);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", "Last Updated", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    final ListStore<Stock> store = new ListStore<Stock>();
    store.add(TestData.getStocks());

    ColumnModel cm = new ColumnModel(configs);

    cm.addHeaderGroup(0, 2, new HeaderGroupConfig("Stock Performance", 1, 2));
    cm.addHeaderGroup(0, 0, new HeaderGroupConfig("Stock Information", 1, 2));

    AggregationRowConfig<Stock> averages = new AggregationRowConfig<Stock>();
    averages.setHtml("name", "Average");

    // with summary type and format
    averages.setSummaryType("last", SummaryType.AVG);
    averages.setSummaryFormat("last", NumberFormat.getCurrencyFormat());

    // with renderer
    averages.setSummaryType("change", SummaryType.AVG);
    averages.setRenderer("change", new AggregationRenderer<Stock>() {
        public Object render(Number value, int colIndex, Grid<Stock> grid, ListStore<Stock> store) {
            // you can return html here
            return number.format(value.doubleValue());
        }
    });
    cm.addAggregationRow(averages);

    averages = new AggregationRowConfig<Stock>();
    averages.setHtml("name", "Maximum");

    averages.setSummaryType("last", SummaryType.MAX);
    averages.setSummaryFormat("last", NumberFormat.getCurrencyFormat());

    averages.setSummaryType("change", SummaryType.MAX);
    averages.setRenderer("change", new AggregationRenderer<Stock>() {
        public Object render(Number value, int colIndex, Grid<Stock> grid, ListStore<Stock> store) {
            return number.format(value.doubleValue());
        }
    });
    cm.addAggregationRow(averages);

    ContentPanel cp = new ContentPanel();
    cp.setCollapsible(true);
    cp.setAnimCollapse(false);
    cp.setFrame(true);
    cp.setHeading("Aggregation Rows");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setBounds(10, 10, 600, 350);

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setBorders(false);
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);
    cp.add(grid);

    add(cp);
}

From source file:com.extjs.gxt.samples.client.examples.grid.AutoHeightGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Common Name");
    column.setWidth(220);/* ww w. jav  a2s.c  o m*/

    TextField<String> text = new TextField<String>();
    text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    final SimpleComboBox<String> combo = new SimpleComboBox<String>();
    combo.setForceSelection(true);
    combo.setTriggerAction(TriggerAction.ALL);
    combo.add("Shade");
    combo.add("Mostly Shady");
    combo.add("Sun or Shade");
    combo.add("Mostly Sunny");
    combo.add("Sunny");

    CellEditor editor = new CellEditor(combo) {
        @Override
        public Object preProcessValue(Object value) {
            if (value == null) {
                return value;
            }
            return combo.findModel(value.toString());
        }

        @Override
        public Object postProcessValue(Object value) {
            if (value == null) {
                return value;
            }
            return ((ModelData) value).get("value");
        }
    };

    column = new ColumnConfig();
    column.setId("light");
    column.setHeader("Light");
    column.setWidth(130);
    column.setEditor(editor);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("price");
    column.setHeader("Price");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(70);
    column.setNumberFormat(NumberFormat.getCurrencyFormat());
    column.setEditor(new CellEditor(new NumberField()));

    configs.add(column);

    DateField dateField = new DateField();
    dateField.getPropertyEditor().setFormat(DateTimeFormat.getFormat("MM/dd/y"));

    column = new ColumnConfig();
    column.setId("available");
    column.setHeader("Available");
    column.setWidth(95);
    column.setEditor(new CellEditor(dateField));
    column.setDateTimeFormat(DateTimeFormat.getFormat("MMM dd yyyy"));
    configs.add(column);

    CheckColumnConfig checkColumn = new CheckColumnConfig("indoor", "Indoor?", 55);
    CellEditor checkBoxEditor = new CellEditor(new CheckBox());
    checkColumn.setEditor(checkBoxEditor);
    configs.add(checkColumn);

    final ListStore<Plant> store = new ListStore<Plant>();

    ColumnModel cm = new ColumnModel(configs);

    cp = new ContentPanel();
    cp.setHeading("Auto Height Edit Plants");
    cp.setFrame(true);
    cp.setIcon(Resources.ICONS.table());
    cp.setWidth(600);
    cp.setLayout(new FitLayout());

    grid = new EditorGrid<Plant>(store, cm);
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);
    grid.addPlugin(checkColumn);
    cp.add(grid);

    ToolBar toolBar = new ToolBar();
    Button add = new Button("Add Plant");
    add.addSelectionListener(new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {

            grid.stopEditing();
            store.insert(createPlant(), 0);
            grid.startEditing(0, 0);

        }

    });
    toolBar.add(add);
    cp.setTopComponent(toolBar);
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.addButton(new Button("Reset", new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            store.rejectChanges();
        }
    }));

    cp.addButton(new Button("Save", new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            store.commitChanges();
        }
    }));

    add(cp);
    store.insert(createPlant(), 0);
    store.insert(createPlant(), 1);
    store.insert(createPlant(), 2);

    grid.addListener(Events.ViewReady, new Listener<ComponentEvent>() {
        public void handleEvent(ComponentEvent be) {
            grid.getStore().addListener(Store.Add, new Listener<StoreEvent<Plant>>() {
                public void handleEvent(StoreEvent<Plant> be) {
                    doAutoHeight();
                }
            });
            doAutoHeight();
        }
    });
    grid.addListener(Events.ColumnResize, new Listener<ComponentEvent>() {
        public void handleEvent(ComponentEvent be) {
            doAutoHeight();
        }
    });
    grid.getColumnModel().addListener(Events.HiddenChange, new Listener<ColumnModelEvent>() {
        public void handleEvent(ColumnModelEvent be) {
            doAutoHeight();
        }
    });
}

From source file:com.extjs.gxt.samples.client.examples.grid.EditableGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    List<Stock> stocks = TestData.getStocks();
    for (Stock s : stocks) {
        DateWrapper w = new DateWrapper();
        w = w.clearTime();//w  w  w.  j a  v  a 2  s  .  co m
        w = w.addDays((int) (Math.random() * 1000));
        s.set("date", w.asDate());
    }

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Common Name");
    column.setWidth(220);

    TextField<String> text = new TextField<String>();
    text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    final SimpleComboBox<String> combo = new SimpleComboBox<String>();
    combo.setForceSelection(true);
    combo.setTriggerAction(TriggerAction.ALL);
    combo.add("Shade");
    combo.add("Mostly Shady");
    combo.add("Sun or Shade");
    combo.add("Mostly Sunny");
    combo.add("Sunny");

    CellEditor editor = new CellEditor(combo) {
        @Override
        public Object preProcessValue(Object value) {
            if (value == null) {
                return value;
            }
            return combo.findModel(value.toString());
        }

        @Override
        public Object postProcessValue(Object value) {
            if (value == null) {
                return value;
            }
            return ((ModelData) value).get("value");
        }
    };

    column = new ColumnConfig();
    column.setId("light");
    column.setHeader("Light");
    column.setWidth(130);
    column.setEditor(editor);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("price");
    column.setHeader("Price");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(70);
    column.setNumberFormat(NumberFormat.getCurrencyFormat());
    column.setEditor(new CellEditor(new NumberField()));

    configs.add(column);

    DateField dateField = new DateField();
    dateField.getPropertyEditor().setFormat(DateTimeFormat.getFormat("MM/dd/y"));

    column = new ColumnConfig();
    column.setId("available");
    column.setHeader("Available");
    column.setWidth(95);
    column.setEditor(new CellEditor(dateField));
    column.setDateTimeFormat(DateTimeFormat.getFormat("yyyy MMM dd"));
    configs.add(column);

    CheckColumnConfig checkColumn = new CheckColumnConfig("indoor", "Indoor?", 55);
    CellEditor checkBoxEditor = new CellEditor(new CheckBox());
    checkColumn.setEditor(checkBoxEditor);
    configs.add(checkColumn);

    final ListStore<Plant> store = new ListStore<Plant>();
    store.add(TestData.getPlants());

    ColumnModel cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setHeading("Edit Plants");
    cp.setFrame(true);
    cp.setIcon(Resources.ICONS.table());
    cp.setSize(600, 300);
    cp.setLayout(new FitLayout());

    final EditorGrid<Plant> grid = new EditorGrid<Plant>(store, cm);
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);
    grid.addPlugin(checkColumn);
    cp.add(grid);

    ToolBar toolBar = new ToolBar();
    Button add = new Button("Add Plant");
    add.addSelectionListener(new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            Plant plant = new Plant();
            plant.setName("New Plant 1");
            plant.setLight("Mostly Shady");
            plant.setPrice(0);
            plant.setAvailable(new DateWrapper().clearTime().asDate());
            plant.setIndoor(false);

            grid.stopEditing();
            store.insert(plant, 0);
            grid.startEditing(store.indexOf(plant), 0);
        }

    });
    toolBar.add(add);
    cp.setTopComponent(toolBar);
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.addButton(new Button("Reset", new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            store.rejectChanges();
        }
    }));

    cp.addButton(new Button("Save", new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            store.commitChanges();
        }
    }));

    add(cp);
}

From source file:com.extjs.gxt.samples.client.examples.grid.FilterGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);
    setLayout(new FlowLayout(10));
    getAriaSupport().setPresentation(true);

    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");
    final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(currency);

    GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            double val = (Double) model.get(property);
            String style = val < 0 ? "red" : GXT.isHighContrastMode ? "#00ff5a" : "green";
            return "<span style='font-weight: bold;color:" + style + "'>" + number.format(val) + "</span>";
        }//w  w w.j a  va 2 s  .  c  o  m
    };

    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {
        public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            return numberRenderer.render(null, property, model.get(property));
        }
    };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeader("Symbol");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeader("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(100);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", "Last Updated", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    column = new ColumnConfig("split", "Split", 75);
    column.setRenderer(new GridCellRenderer<Stock>() {
        public Object render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,
                ListStore<Stock> store, Grid<Stock> grid) {
            Boolean b = model.get(property);
            return b != null && b.booleanValue() ? "Yes" : "No";
        }
    });
    configs.add(column);

    column = new ColumnConfig("type", "Type", 75);
    configs.add(column);

    ListStore<Stock> store = new ListStore<Stock>();
    store.add(TestData.getStocks());

    ColumnModel cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(true);
    cp.setIcon(Resources.ICONS.table());
    cp.setHeading("Filter Grid");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(660, 300);

    GridFilters filters = new GridFilters();
    filters.setLocal(true);

    NumericFilter last = new NumericFilter("last");
    NumericFilter filter = new NumericFilter("change");
    StringFilter nameFilter = new StringFilter("name");
    DateFilter dateFilter = new DateFilter("date");
    BooleanFilter booleanFilter = new BooleanFilter("split");

    ListStore<ModelData> typeStore = new ListStore<ModelData>();
    typeStore.add(type("Auto"));
    typeStore.add(type("Media"));
    typeStore.add(type("Medical"));
    typeStore.add(type("Tech"));
    ListFilter listFilter = new ListFilter("type", typeStore);
    listFilter.setDisplayProperty("type");

    filters.addFilter(last);
    filters.addFilter(nameFilter);
    filters.addFilter(filter);
    filters.addFilter(dateFilter);
    filters.addFilter(booleanFilter);
    filters.addFilter(listFilter);

    final Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.getView().setForceFit(true);
    grid.setStyleAttribute("borderTop", "none");
    grid.setAutoExpandColumn("name");
    grid.setBorders(false);
    grid.setStripeRows(true);
    grid.setColumnLines(true);
    grid.addPlugin(filters);
    cp.add(grid);

    ToolBar toolBar = new ToolBar();
    toolBar.getAriaSupport().setLabel("Grid Options");

    toolBar.add(new LabelToolItem("Selection Mode: "));
    final SimpleComboBox<String> type = new SimpleComboBox<String>();
    type.setTriggerAction(TriggerAction.ALL);
    type.setEditable(false);
    type.setFireChangeEventOnSetValue(true);
    type.setWidth(100);
    type.add("Row");
    type.add("Cell");
    type.setSimpleValue("Row");
    type.addListener(Events.Change, new Listener<FieldEvent>() {
        public void handleEvent(FieldEvent be) {
            boolean cell = type.getSimpleValue().equals("Cell");
            grid.getSelectionModel().deselectAll();
            if (cell) {
                grid.setSelectionModel(new CellSelectionModel<Stock>());
            } else {
                grid.setSelectionModel(new GridSelectionModel<Stock>());
            }
        }
    });
    toolBar.add(type);
    cp.setTopComponent(toolBar);
    add(cp);
}