private ColumnModel getColumnModel() { final DateTimeFormat dateFormat = DateTimeFormat.getFormat("dd/MM/yyyy"); final NumberFormat number = NumberFormat.getFormat("R$ 0.00"); GridCellRenderer<DTOContrato> numberRender = new GridCellRenderer<DTOContrato>() { public String render( DTOContrato model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<DTOContrato> store, Grid<DTOContrato> grid) { float val = (Float) model.get(property); return number.format(val); } }; List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig columnConfig = new ColumnConfig("id", "Código", 50); configs.add(columnConfig); columnConfig = new ColumnConfig("nomeCliente", "Cliente", 250); configs.add(columnConfig); columnConfig = new ColumnConfig("dataInicio", "Início", 80); columnConfig.setDateTimeFormat(dateFormat); columnConfig.setAlignment(HorizontalAlignment.CENTER); configs.add(columnConfig); columnConfig = new ColumnConfig("dataTermino", "Término", 80); columnConfig.setDateTimeFormat(dateFormat); columnConfig.setAlignment(HorizontalAlignment.CENTER); configs.add(columnConfig); columnConfig = new ColumnConfig("valor", "Valor", 80); columnConfig.setRenderer(numberRender); columnConfig.setAlignment(HorizontalAlignment.RIGHT); configs.add(columnConfig); return new ColumnModel(configs); }
/** Creates and configures the users grid.<br> */ private void addGrid() { // renderer for active column GridCellRenderer<PortalUserSelModelData> activeRenderer = new GridCellRenderer<PortalUserSelModelData>() { public String render( PortalUserSelModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PortalUserSelModelData> s) { String checked = ""; if (model.getDTO().isActive()) { checked = "checked='checked'"; } return "<input type='checkbox' disabled='disabled' " + checked + " />"; } }; List<ColumnConfig> configs = new LinkedList<ColumnConfig>(); ColumnConfig ccName = new ColumnConfig(); ccName.setId(PortalUserSelModelData.PROPERTY_NAME); ccName.setWidth(COLUMN_NAME_WIDTH); ccName.setHeader(COLUMN_NAME_HEADER); configs.add(ccName); ColumnConfig ccDisplay = new ColumnConfig(); ccDisplay.setId(PortalUserSelModelData.PROPERTY_DISPLAY_NAME); ccDisplay.setWidth(COLUMN_DISPLAY_NAME_WIDTH); ccDisplay.setHeader(COLUMN_DISPLAY_NAME_HEADER); configs.add(ccDisplay); ColumnConfig ccActive = new ColumnConfig(); ccActive.setId(PortalUserSelModelData.PROPERTY_ACTIVE); ccActive.setWidth(COLUMN_ACTIVE_WIDTH); ccActive.setHeader(COLUMN_ACTIVE_HEADER); ccActive.setRenderer(activeRenderer); ccActive.setAlignment(HorizontalAlignment.CENTER); configs.add(ccActive); ColumnModel cm = new ColumnModel(configs); store = new ListStore<PortalUserSelModelData>(); grid = new Grid<PortalUserSelModelData>(store, cm); grid.setAutoExpandColumn(PortalUserSelModelData.PROPERTY_NAME); grid.setSelectionModel(new GridSelectionModel<PortalUserSelModelData>()); grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); grid.addListener( Events.RowClick, new Listener<GridEvent>() { public void handleEvent(GridEvent ge) { if (grid.getSelectionModel().getSelectedItem() != null) { enableButtons(true); } } }); grid.getView().setForceFit(true); add(grid); }
@Override protected void onRender(Element parent, int index) { super.onRender(parent, index); setLayout(new FlowLayout(10)); GridCellRenderer<Stock> buttonRenderer = new GridCellRenderer<Stock>() { private boolean init; public Object render( final Stock model, String property, ColumnData config, final int rowIndex, final int colIndex, ListStore<Stock> store, Grid<Stock> grid) { if (!init) { init = true; grid.addListener( Events.ColumnResize, new Listener<GridEvent<Stock>>() { public void handleEvent(GridEvent<Stock> be) { for (int i = 0; i < be.getGrid().getStore().getCount(); i++) { if (be.getGrid().getView().getWidget(i, be.getColIndex()) != null && be.getGrid().getView().getWidget(i, be.getColIndex()) instanceof BoxComponent) { ((BoxComponent) be.getGrid().getView().getWidget(i, be.getColIndex())) .setWidth(be.getWidth() - 10); } } } }); } Button b = new Button( (String) model.get(property), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { Info.display( model.getName(), "<ul><li>" + model.getSymbol() + "</li></ul>"); } }); b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10); b.setToolTip("Click for more information"); return b; } }; final NumberFormat currency = NumberFormat.getCurrencyFormat(); final NumberFormat number = NumberFormat.getFormat("0.00"); 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> stor, Grid<Stock> grid) { Number value = model.<Number>get(property); return value == null ? null : currency.format(model.<Number>get(property)); } }; List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig column = new ColumnConfig(); column.setId("name"); column.setHeaderHtml("Company"); column.setWidth(200); configs.add(column); column = new ColumnConfig(); column.setId("symbol"); column.setHeaderHtml("Symbol"); column.setWidth(100); column.setRenderer(buttonRenderer); configs.add(column); column = new ColumnConfig(); column.setId("last"); column.setHeaderHtml("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); final ListStore<Stock> store = new ListStore<Stock>(); store.add(Stock.getStocks()); ColumnModel cm = new ColumnModel(configs); ContentPanel cp = new ContentPanel(); cp.setBodyBorder(false); // cp.setIconStyle("icon-printer"); cp.setIcon( AbstractImagePrototype.create( new ImageResource() { public int getHeight() { return 0; } public int getLeft() { return 0; } public SafeUri getSafeUri() { return null; } public int getTop() { return 0; } public String getURL() { return "resources/images/fam/printer.png"; } public int getWidth() { return 0; } public boolean isAnimated() { return false; } public String getName() { return null; } })); // cp.setIcon(Resources.ICONS.table()); cp.setHeadingHtml("Widget Renderer Grid"); cp.setButtonAlign(HorizontalAlignment.CENTER); cp.setLayout(new FitLayout()); cp.setSize(600, 300); Grid<Stock> grid = new Grid<Stock>(store, cm); grid.setStyleAttribute("borderTop", "none"); grid.setAutoExpandColumn("name"); grid.setBorders(true); cp.add(grid); add(cp); }
private ColumnModel createColumnModel() { ArrayList<ColumnConfig> columns = new ArrayList<ColumnConfig>(); mainGridSelectionModel = new CheckBoxSelectionModel<ModelData>(); mainGridSelectionModel.setSelectionMode(Style.SelectionMode.MULTI); columns.add(mainGridSelectionModel.getColumn()); countryColumn = new ColumnConfig("country", HarvesterUI.ICONS.worldmap().getHTML(), 35); countryColumn.setAlignment(Style.HorizontalAlignment.CENTER); countryColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { if (model instanceof DataProviderUI) { if (model.get("country") != null && !model.get("country").equals("none")) { return "<img src=\"resources/images/countries/" + model.get("country") + ".png\" alt=\"" + model.get("countryName") + "\" title=\"" + model.get("countryName") + "\"/> "; } } return ""; } }); columns.add(countryColumn); ColumnConfig name = new ColumnConfig("name", "<CENTER>" + HarvesterUI.CONSTANTS.name() + "</CENTER>", 100); name.setRenderer(new TreeGridCellRenderer<ModelData>()); name.setWidth(260); columns.add(name); // Europeana column only if (HarvesterUI.getProjectType().equals("EUROPEANA")) { ColumnConfig nameCode = new ColumnConfig( "nameCode", "<CENTER>" + HarvesterUI.CONSTANTS.nameCodeHeader() + "</CENTER>", 100); columns.add(nameCode); } ColumnConfig dataSourceSet = new ColumnConfig( "dataSourceSet", "<CENTER>" + HarvesterUI.CONSTANTS.dataSetHeader() + "</CENTER>", 100); columns.add(dataSourceSet); ColumnConfig metadataFormat = new ColumnConfig( "metadataFormat", "<CENTER>" + HarvesterUI.CONSTANTS.oaiSchemasHeader() + "</CENTER>", 100); metadataFormat.setWidth(110); columns.add(metadataFormat); ColumnConfig ingest = new ColumnConfig( "ingest", "<CENTER>" + HarvesterUI.CONSTANTS.ingestTypeHeader() + "</CENTER>", 150); ingest.setRenderer(new IngestTypeRenderer()); columns.add(ingest); ColumnConfig lastIngest = new ColumnConfig( "lastIngest", "<CENTER>" + HarvesterUI.CONSTANTS.lastIngestHeader() + "</CENTER>", 100); lastIngest.setWidth(130); lastIngest.setAlignment(Style.HorizontalAlignment.CENTER); lastIngest.setRenderer(new LastIngestRenderer()); columns.add(lastIngest); ColumnConfig nextIngest = new ColumnConfig( "nextIngest", "<CENTER>" + HarvesterUI.CONSTANTS.nextIngestHeader() + "</CENTER>", 100); nextIngest.setRenderer(new NextIngestRenderer()); nextIngest.setAlignment(Style.HorizontalAlignment.CENTER); nextIngest.setWidth(130); columns.add(nextIngest); ColumnConfig records = new ColumnConfig( "records", "<CENTER>" + HarvesterUI.CONSTANTS.records() + "</CENTER>", 100); records.setAlignment(Style.HorizontalAlignment.RIGHT); records.setRenderer(new RecordsRenderer()); columns.add(records); ColumnConfig ingestStatus = new ColumnConfig( "status", "<CENTER>" + HarvesterUI.CONSTANTS.ingestStatusHeader() + "</CENTER>", 100); ingestStatus.setRenderer(new IngestStatusRenderer()); ingestStatus.setAlignment(Style.HorizontalAlignment.CENTER); columns.add(ingestStatus); return new ColumnModel(columns); }
@Override public Grid<ModelData> initGrid(ListStore<ModelData> store) { List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); columns.add(configColumn(AdminUserBeanDesc.login, 380)); ColumnConfig roleColumn = configColumn(AdminUserBeanDesc.role, 400); roleColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, com.extjs.gxt.ui.client.widget.grid.ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { Object obj = model.get(AdminUserBeanDesc.role.getName()); String label = ""; try { label = (String) ((BeanModel) obj).get("label"); } catch (Exception e) { log.log( java.util.logging.Level.INFO, "can't cast obj:" + obj + "|class:" + (null != obj ? obj.getClass() : "null") + "|to RoleBean"); } return getSortedGroupLabel(label); } }); columns.add(roleColumn); columns.add(configColumn(AdminUserBeanDesc.lastName, 110)); columns.add(configColumn(AdminUserBeanDesc.firstName, 110)); ColumnConfig typeColumn = configColumn(AdminUserBeanDesc.userType, 60); typeColumn.setAlignment(HorizontalAlignment.CENTER); typeColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { Type type = Type.valueOf((String) model.get(property)); return TypeDecorator.decorate(type); } }); columns.add(typeColumn); ColumnConfig activeColumn = configColumn(AdminUserBeanDesc.active, 100); activeColumn.setAlignment(HorizontalAlignment.CENTER); CheckBoxImageRender.getInstance().render(activeColumn); columns.add(activeColumn); // columns.add(configCheckColumn(AdminUserBeanDesc.active, 55)); ColumnConfig creationDateColumn = configColumn(AdminUserBeanDesc.creationDate, 120); creationDateColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, com.extjs.gxt.ui.client.widget.grid.ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { return DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss") .format((Date) model.get(AdminUserBeanDesc.creationDate.getName())); } }); columns.add(creationDateColumn); columns.add(configColumn(AdminUserBeanDesc.authenticationLogin, 100)); final ColumnModel cm = new ColumnModel(columns); GroupingView gridview = new GroupingView() { // for RoleBean grouping @Override protected String getGroup( Object value, ModelData m, int rowIndex, int colIndex, ListStore<ModelData> ds) { if (value instanceof RoleBean) { // return ((RoleBean) value).getLabel(); return getSortedGroupLabel(((RoleBean) value).getLabel()); } else { return value == null ? "" : value.toString(); } } }; gridview.setShowGroupedColumn(false); gridview.setForceFit(true); gridview.setGroupRenderer( new GridGroupRenderer() { public String render(GroupColumnData data) { String f = cm.getColumnById(data.field).getHeader(); String l = data.models.size() == 1 ? I18nUtils.getMessages().user_groupTextTpl_member() : I18nUtils.getMessages().user_groupTextTpl_members(); String label = ""; if (null != data && null != data.gvalue) { label = data.gvalue.toString(); } return f + ": " + getSortedGroupLabel(label) + " (" + data.models.size() + " " + l + ")"; } }); Grid<ModelData> grid = new Grid<ModelData>(store, cm); grid.setView(gridview); grid.setAutoExpandColumn(AdminUserBeanDesc.login.getName()); grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); return grid; }
private void createGrid(boolean widget) { 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(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", 125); if (widget) { Button btn = new Button("Updated"); btn.addListener( Events.OnClick, new Listener<ButtonEvent>() { public void handleEvent(ButtonEvent be) { // stop column from getting click and causing sort be.cancelBubble(); } }); btn.setStyleAttribute("float", "left"); column.setWidget(btn, "Last Updated"); } else { column.setAlignment(HorizontalAlignment.RIGHT); column.setHeader("Last Updated"); } column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy")); configs.add(column); ListStore<Stock> store = new ListStore<Stock>(); store.add(TestData.getStocks()); ColumnModel cm = new ColumnModel(configs); cm.addHeaderGroup(0, 0, new HeaderGroupConfig("Header Grouping Example", 1, 5)); cm.addHeaderGroup(1, 2, new HeaderGroupConfig("Stock Performance", 1, 2)); if (widget) { Slider s = new Slider(); s.setWidth(100); // ugly, but centers slider FlexTable tbl = new FlexTable(); tbl.setWidth("100%"); tbl.setHTML(0, 0, " "); tbl.setHTML( 0, 1, "<span style='white-space: nowrap;font-size: 11px'>Slide Me: </span>"); tbl.setWidget(0, 2, s); tbl.setHTML(0, 3, " "); tbl.getCellFormatter().setWidth(0, 0, "50%"); tbl.getCellFormatter().setWidth(0, 3, "50%"); cm.addHeaderGroup(1, 0, new HeaderGroupConfig(tbl, 1, 2)); } else { cm.addHeaderGroup(1, 0, new HeaderGroupConfig("Stock Information", 1, 2)); } ContentPanel cp = new ContentPanel(); cp.setBodyBorder(false); cp.setIcon(Resources.ICONS.table()); cp.setHeading(widget ? "Column Grouping with Widget" : "Column Grouping"); cp.setButtonAlign(HorizontalAlignment.CENTER); cp.setLayout(new FitLayout()); cp.setSize(600, 300); Grid<Stock> grid = new Grid<Stock>(store, cm); grid.setStyleAttribute("borderTop", "none"); grid.getView().setForceFit(true); grid.setBorders(true); cp.add(grid); vp.add(cp); }
protected void onRender(Element parent, int index) { super.onRender(parent, index); criteria.addCondition(new Condition(IGoods.DELETED, Condition.EQUALS, "true")); BasePagingLoader loader = new PagingListService().getLoader(ModelNames.GOODS, criteria); loader.load(0, 10); final ListStore<BeanObject> store = new ListStore<BeanObject>(loader); toolBar = new PagingToolBar(10); toolBar.bind(loader); List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); final CheckBoxSelectionModel<BeanObject> smRowSelection = new CheckBoxSelectionModel<BeanObject>(); columns.add(smRowSelection.getColumn()); columns.add(new ColumnConfig(IGoods.ID, "ID", 50)); ColumnConfig col = new ColumnConfig(IGoods.NAME, Resources.constants.Goods_name(), 100); columns.add(col); col = new ColumnConfig(IGoods.SN, Resources.constants.Goods_SN(), 100); columns.add(col); col = new ColumnConfig(IGoods.SHOPPRICE, Resources.constants.Goods_shopPrice(), 80); col.setAlignment(HorizontalAlignment.RIGHT); col.setNumberFormat(NumberFormat.getCurrencyFormat()); columns.add(col); ColumnConfig actcol = new ColumnConfig("Action", Resources.constants.GoodsList_action(), 100); // columns.add(actcol); ColumnModel cm = new ColumnModel(columns); Grid<BeanObject> grid = new EditorGrid<BeanObject>(store, cm); grid.setLoadMask(true); grid.setBorders(true); grid.setSelectionModel(smRowSelection); // grid.setAutoExpandColumn("forum"); ActionCellRenderer render = new ActionCellRenderer(grid); ActionCellRenderer.ActionInfo act = new ActionCellRenderer.ActionInfo(); act.setImage("icon_edit.gif"); act.setAction("editGoods($id)"); act.setTooltip(Resources.constants.GoodsList_action_edit()); render.addAction(act); act = new ActionCellRenderer.ActionInfo(); act.setImage("icon_trash.gif"); act.setAction("deleteGoods($id)"); act.setTooltip(Resources.constants.GoodsList_action_delete()); render.addAction(act); actcol.setRenderer(render); HorizontalPanel header = new HorizontalPanel(); header.add(Resources.images.icon_search().createImage()); header.add(new Label(" " + Resources.constants.GoodsList_keyword())); header.add(txtKeyword); header.add(btnFind); add(header); btnFind.addSelectionListener( new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { search(); } }); ContentPanel panel = new ContentPanel(); panel.setFrame(true); panel.setCollapsible(true); panel.setAnimCollapse(false); panel.setButtonAlign(HorizontalAlignment.CENTER); panel.setIconStyle("icon-table"); // panel.setHeading("Paging Grid"); panel.setLayout(new FitLayout()); panel.add(grid); panel.setSize(880, 350); panel.setBottomComponent(toolBar); panel.setButtonAlign(HorizontalAlignment.CENTER); panel.addButton( new Button( "彻底删除", new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { List<BeanObject> items = smRowSelection.getSelectedItems(); purgeGoods(items); } })); panel.addButton( new Button( "恢复", new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { List<BeanObject> items = smRowSelection.getSelectedItems(); restoreGoods(items); } })); add(panel); }
public TaskGrid() { 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) { Object o = model.get(property); String v = "(not set)"; if(o == null) { double val = (Double)o; String style = val < 0 ? "red" : GXT.isHighContrastMode ? "#00ff5a" : "green"; v = number.format(val); } return "<span qtitle='" + cm.getColumnById(property).getHeader() + "' qtip='" + v + "' style='font-weight: bold;color:" + style + "'>" + v + "</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.setHeader("Linkset name"); column.setWidth(200); column.setRowHeader(true); configs.add(column); column = new ColumnConfig(); column.setId("direction"); column.setHeader("Direction"); column.setAlignment(HorizontalAlignment.RIGHT); column.setWidth(100); configs.add(column); column = new ColumnConfig(); column.setId("sampled"); column.setHeader("Sampled"); column.setAlignment(HorizontalAlignment.RIGHT); column.setWidth(100); configs.add(column); column = new ColumnConfig(); column.setId("sampleSize"); column.setHeader("Sample size"); 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", "Finished", 100); column.setAlignment(HorizontalAlignment.RIGHT); column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy")); configs.add(column); // ListStore<TaskDescription> store = new ListStore<TaskDescription>(); // store.add(getStocks()); // store.add(TaskData.getStocks()); // store.add(getStocks()); cm = new ColumnModel(configs); ContentPanel cp = new ContentPanel(); cp.setBodyBorder(true); // cp.setIcon(Resources.ICONS.table()); cp.setHeading("Available Linksets"); cp.setButtonAlign(HorizontalAlignment.CENTER); cp.setLayout(new FitLayout()); cp.getHeader().setIconAltText("Grid Icon"); cp.setSize(600, 300); // final Grid<TaskDescription> grid = new Grid<TaskDescription>(getStocks(), cm); grid.setStyleAttribute("borderTop", "none"); grid.setAutoExpandColumn("name"); grid.setBorders(false); grid.setStripeRows(true); grid.setColumnLines(true); grid.setColumnReordering(true); grid.getAriaSupport().setLabelledBy(cp.getHeader().getId() + "-label"); 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.getAriaSupport().setLabelledBy(toolBar.getItem(0).getId()); 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<TaskDescription>()); } else { grid.setSelectionModel(new GridSelectionModel<TaskDescription>()); } } }); toolBar.add(type); cp.setTopComponent(toolBar); add(cp); // needed to enable quicktips (qtitle for the heading and qtip for the // content) that are setup in the change GridCellRenderer new QuickTip(grid); }
private Window createGridWindow() { Window w = new Window(); w.setIcon(IconHelper.createStyle("icon-grid")); w.setMinimizable(true); w.setMaximizable(true); w.setHeading("Messages Window"); w.setSize(500, 400); w.setLayout(new FitLayout()); GroupingStore<Employee> employeeList = new GroupingStore<Employee>(); employeeList.add(TestData.getEmployees()); employeeList.groupBy("department"); List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig column = new ColumnConfig(); column.setId("name"); column.setHeader("Sender Name"); column.setWidth(200); configs.add(column); column = new ColumnConfig("department", "User group", 150); column.setAlignment(HorizontalAlignment.LEFT); configs.add(column); column = new ColumnConfig("designation", "Taggs", 150); column.setAlignment(HorizontalAlignment.LEFT); configs.add(column); column = new ColumnConfig("salary", "Length", 100); column.setAlignment(HorizontalAlignment.RIGHT); final NumberFormat number = NumberFormat.getFormat("0.00"); GridCellRenderer<Employee> checkSalary = new GridCellRenderer<Employee>() { public String render( Employee model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Employee> employeeList, Grid<Employee> grid) { double val = (Double) model.get(property); String style = val < 70000 ? "red" : "green"; return "<span style='color:" + style + "'>" + number.format(val) + "</span>"; } }; column.setRenderer(checkSalary); configs.add(column); column = new ColumnConfig("joiningdate", "Date", 100); column.setAlignment(HorizontalAlignment.RIGHT); column.setDateTimeFormat(DateTimeFormat.getShortDateFormat()); configs.add(column); final ColumnModel cm = new ColumnModel(configs); 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<Employee> grid = new Grid<Employee>(employeeList, cm); grid.setView(view); grid.setBorders(true); ContentPanel cp = new ContentPanel(); cp.setBodyBorder(false); cp.setHeading("Friends List"); cp.setButtonAlign(HorizontalAlignment.CENTER); cp.setLayout(new FitLayout()); cp.setSize(700, 420); cp.add(grid); w.add(cp); return w; }
@Override public Grid<ModelData> initGrid(ListStore<ModelData> store) { List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); ColumnConfig referenceColumn = configColumn(ProjectBeanDesc.reference, 100); referenceColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { boolean reference = (Boolean) model.get(property); Image image = new Image(Icons.INSTANCE.star()); return reference ? image : ""; } }); columns.add(referenceColumn); columns.add(configColumn(ProjectBeanDesc.label, 100)); columns.add(configColumn(ProjectBeanDesc.description, 100)); ColumnConfig createDateColumn = configColumn(ProjectBeanDesc.creationDate, 120); createDateColumn.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss")); columns.add(createDateColumn); ColumnConfig activeColumn = configColumn(ProjectBeanDesc.active, 100); activeColumn.setAlignment(HorizontalAlignment.CENTER); CheckBoxImageRender.getInstance().render(activeColumn); columns.add(activeColumn); ColumnConfig projectTypeColumn = configColumn(ProjectBeanDesc.projectType, 60); projectTypeColumn.setAlignment(HorizontalAlignment.CENTER); projectTypeColumn.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { Type type = Type.valueOf((String) model.get(property)); return TypeDecorator.decorate(type); } }); columns.add(projectTypeColumn); columns.add(configColumn(ProjectBeanDesc.url, 100)); ColumnConfig warningColumn = configColumn(ProjectBeanDesc.warning, 100); warningColumn.setRenderer(new WarningInfoRenderer()); columns.add(warningColumn); ColumnModel cm = new ColumnModel(columns); Grid<ModelData> grid = new Grid<ModelData>(store, cm); grid.setAutoExpandColumn(ProjectBeanDesc.label.getName()); grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); return grid; }