Basic Grid In Ext Gwt

Basic Grid In Ext Gwt Example





  1. package com.extjs.gxt.samples.client.examples.grid;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import com.extjs.gxt.samples.resources.client.Resources;  
  7. import com.extjs.gxt.samples.resources.client.TestData;  
  8. import com.extjs.gxt.samples.resources.client.model.Stock;  
  9. import com.extjs.gxt.ui.client.GXT;  
  10. import com.extjs.gxt.ui.client.Style.HorizontalAlignment;  
  11. import com.extjs.gxt.ui.client.event.Events;  
  12. import com.extjs.gxt.ui.client.event.FieldEvent;  
  13. import com.extjs.gxt.ui.client.event.Listener;  
  14. import com.extjs.gxt.ui.client.store.ListStore;  
  15. import com.extjs.gxt.ui.client.widget.ContentPanel;  
  16. import com.extjs.gxt.ui.client.widget.LayoutContainer;  
  17. import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;  
  18. import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;  
  19. import com.extjs.gxt.ui.client.widget.grid.CellSelectionModel;  
  20. import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;  
  21. import com.extjs.gxt.ui.client.widget.grid.ColumnData;  
  22. import com.extjs.gxt.ui.client.widget.grid.ColumnModel;  
  23. import com.extjs.gxt.ui.client.widget.grid.Grid;  
  24. import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;  
  25. import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;  
  26. import com.extjs.gxt.ui.client.widget.layout.FitLayout;  
  27. import com.extjs.gxt.ui.client.widget.layout.FlowLayout;  
  28. import com.extjs.gxt.ui.client.widget.table.NumberCellRenderer;  
  29. import com.extjs.gxt.ui.client.widget.tips.QuickTip;  
  30. import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem;  
  31. import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;  
  32. import com.google.gwt.i18n.client.DateTimeFormat;  
  33. import com.google.gwt.i18n.client.NumberFormat;  
  34. import com.google.gwt.user.client.Element;  
  35. public class GridExample extends LayoutContainer {  
  36.   
  37.   private ColumnModel cm;  
  38.   
  39.   @Override  
  40.   protected void onRender(Element parent, int index) {  
  41.     super.onRender(parent, index);  
  42.     setLayout(new FlowLayout(10));  
  43.     getAriaSupport().setPresentation(true);  
  44.   
  45.     final NumberFormat currency = NumberFormat.getCurrencyFormat();  
  46.     final NumberFormat number = NumberFormat.getFormat("0.00");  
  47.     final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(currency);  
  48.   
  49.     GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {  
  50.       public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,  
  51.           ListStore<Stock> store, Grid<Stock> grid) {  
  52.         double val = (Double) model.get(property);  
  53.         String style = val < 0 ? "red" : GXT.isHighContrastMode ? "#00ff5a" : "green";  
  54.         String v = number.format(val);  
  55.   
  56.         return "<span qtitle='" + cm.getColumnById(property).getHeader() + "' qtip='" + v  
  57.             + "' style='font-weight: bold;color:" + style + "'>" + v + "</span>";  
  58.       }  
  59.     };  
  60.   
  61.     GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {  
  62.       public String render(Stock model, String property, ColumnData config, int rowIndex, int colIndex,  
  63.           ListStore<Stock> store, Grid<Stock> grid) {  
  64.         return numberRenderer.render(null, property, model.get(property));  
  65.       }  
  66.     };  
  67.   
  68.     List<ColumnConfig> configs = new ArrayList<ColumnConfig>();  
  69.   
  70.     ColumnConfig column = new ColumnConfig();  
  71.     column.setId("name");  
  72.     column.setHeader("Company");  
  73.     column.setWidth(200);  
  74.     column.setRowHeader(true);  
  75.     configs.add(column);  
  76.   
  77.     column = new ColumnConfig();  
  78.     column.setId("symbol");  
  79.     column.setHeader("Symbol");  
  80.     column.setWidth(100);  
  81.     configs.add(column);  
  82.   
  83.     column = new ColumnConfig();  
  84.     column.setId("last");  
  85.     column.setHeader("Last");  
  86.     column.setAlignment(HorizontalAlignment.RIGHT);  
  87.     column.setWidth(75);  
  88.     column.setRenderer(gridNumber);  
  89.     configs.add(column);  
  90.   
  91.     column = new ColumnConfig("change""Change"100);  
  92.     column.setAlignment(HorizontalAlignment.RIGHT);  
  93.     column.setRenderer(change);  
  94.     configs.add(column);  
  95.   
  96.     column = new ColumnConfig("date""Last Updated"100);  
  97.     column.setAlignment(HorizontalAlignment.RIGHT);  
  98.     column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));  
  99.     configs.add(column);  
  100.       
  101.     ListStore<Stock> store = new ListStore<Stock>();  
  102.     store.add(TestData.getStocks());  
  103.   
  104.     cm = new ColumnModel(configs);  
  105.   
  106.     ContentPanel cp = new ContentPanel();  
  107.     cp.setBodyBorder(true);  
  108.     cp.setIcon(Resources.ICONS.table());  
  109.     cp.setHeading("Basic Grid");  
  110.     cp.setButtonAlign(HorizontalAlignment.CENTER);  
  111.     cp.setLayout(new FitLayout());  
  112.     cp.getHeader().setIconAltText("Grid Icon");  
  113.     cp.setSize(600300);  
  114.   
  115.     final Grid<Stock> grid = new Grid<Stock>(store, cm);  
  116.     grid.setStyleAttribute("borderTop""none");  
  117.     grid.setAutoExpandColumn("name");  
  118.     grid.setBorders(false);  
  119.     grid.setStripeRows(true);  
  120.     grid.setColumnLines(true);  
  121.     grid.setColumnReordering(true);  
  122.     grid.getAriaSupport().setLabelledBy(cp.getHeader().getId() + "-label");  
  123.     cp.add(grid);  
  124.   
  125.     ToolBar toolBar = new ToolBar();  
  126.     toolBar.getAriaSupport().setLabel("Grid Options");  
  127.   
  128.     toolBar.add(new LabelToolItem("Selection Mode: "));  
  129.     final SimpleComboBox<String> type = new SimpleComboBox<String>();  
  130.     type.getAriaSupport().setLabelledBy(toolBar.getItem(0).getId());  
  131.     type.setTriggerAction(TriggerAction.ALL);  
  132.     type.setEditable(false);  
  133.     type.setFireChangeEventOnSetValue(true);  
  134.     type.setWidth(100);  
  135.     type.add("Row");  
  136.     type.add("Cell");  
  137.     type.setSimpleValue("Row");  
  138.     type.addListener(Events.Change, new Listener<FieldEvent>() {  
  139.       public void handleEvent(FieldEvent be) {  
  140.         boolean cell = type.getSimpleValue().equals("Cell");  
  141.         grid.getSelectionModel().deselectAll();  
  142.         if (cell) {  
  143.           grid.setSelectionModel(new CellSelectionModel<Stock>());  
  144.         } else {  
  145.           grid.setSelectionModel(new GridSelectionModel<Stock>());  
  146.         }  
  147.       }  
  148.     });  
  149.     toolBar.add(type);  
  150.   
  151.     cp.setTopComponent(toolBar);  
  152.   
  153.     add(cp);  
  154.   
  155.     // needed to enable quicktips (qtitle for the heading and qtip for the  
  156.     // content) that are setup in the change GridCellRenderer  
  157.     new QuickTip(grid);  
  158.   }  
  159.   
  160. }  

Comments

Popular posts from this blog

Five More Indian Languages - Google Translate

Connect To JioFi Device Without Knowing The Passwords Using WPS