List of usage examples for com.google.gwt.i18n.client NumberFormat getCurrencyFormat
public static NumberFormat getCurrencyFormat()
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); }