BaseGrid<BusiObject> create_bcode_famify_Grid() { CheckBoxSelectionModel<BusiObject> cbs = new CheckBoxSelectionModel<BusiObject>(); List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); columns.add(cbs.getColumn()); ColumnConfig C3 = new ColumnConfig("ChineseName", "中文名", 80); C3.setEditor(new CellEditor(new TextField<String>())); columns.add(C3); ColumnConfig C4 = new ColumnConfig("englishname", "英文名称", 80); C4.setEditor(new CellEditor(new TextField<String>())); columns.add(C4); ColumnConfig C5 = new ColumnConfig("Relationship", "关系", 80); BaseComboBoxX bc5 = new BaseComboBoxX("name", "dictionary", "where type='hr_relationship'"); C5.setEditor(bc5.getCellEditor()); columns.add(C5); ColumnConfig C6 = new ColumnConfig("Birthday", "生日", 80); DateField dateField6 = new DateField(); dateField6.getPropertyEditor().setFormat(DateTimeFormat.getFormat("yyyy-MM-dd")); C6.setEditor(new CellEditor(dateField6)); C6.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd")); columns.add(C6); ColumnConfig C7 = new ColumnConfig("sex", "性别", 80); BaseComboBoxX bc7 = new BaseComboBoxX("name", "dictionary", "where type='hr_sex'"); C7.setEditor(bc7.getCellEditor()); columns.add(C7); ColumnConfig C8 = new ColumnConfig("Nationality", "国籍", 80); BaseComboBoxX bc8 = new BaseComboBoxX("name", "dictionary", "where type='hr_Country'"); C8.setEditor(bc8.getCellEditor()); columns.add(C8); ColumnConfig C9 = new ColumnConfig("PassportNo", "护照编码", 80); C9.setEditor(new CellEditor(new TextField<String>())); columns.add(C9); ColumnConfig C10 = new ColumnConfig("PassportIssueCountry", "护照发出地", 80); C10.setEditor(new CellEditor(new TextField<String>())); columns.add(C10); ColumnConfig C11 = new ColumnConfig("PassportIssueDate", "护照发出日期", 80); DateField dateField11 = new DateField(); dateField11.getPropertyEditor().setFormat(DateTimeFormat.getFormat("yyyy-MM-dd")); C11.setEditor(new CellEditor(dateField11)); C11.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd")); columns.add(C11); ColumnConfig C12 = new ColumnConfig("Occupation", "职业", 80); C12.setEditor(new CellEditor(new TextField<String>())); columns.add(C12); ColumnConfig C13 = new ColumnConfig("Company", "公司", 80); C13.setEditor(new CellEditor(new TextField<String>())); columns.add(C13); ColumnConfig C14 = new ColumnConfig("JobPosition", "职位", 80); C14.setEditor(new CellEditor(new TextField<String>())); columns.add(C14); ColumnModel cm = new ColumnModel(columns); bcode_famify_grid = new BaseGrid<BusiObject>(get_bcode_famify_Store(), cm, true, true); cbs.setSelectionMode(SelectionMode.SINGLE); bcode_famify_grid.setSelectionModel(cbs); bcode_famify_grid.setHeight(400); return bcode_famify_grid; }
public UpcomingEventsTab() { super("Upcoming Events"); addEventHandlers(); setLayout(new FitLayout()); store = new GroupingStore<UpcomingEventModelData>(); // store.add(TestData.getStocks()); ColumnConfig country = new ColumnConfig("country", "Country", 30); ColumnConfig city = new ColumnConfig("city", "City", 20); ColumnConfig venueName = new ColumnConfig("venueName", "Venue Name", 20); ColumnConfig startDate = new ColumnConfig("startDate", "Start Date", 20); ColumnConfig street = new ColumnConfig("street", "Street", 20); startDate.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/y")); List<ColumnConfig> config = new ArrayList<ColumnConfig>(); config.add(country); config.add(city); config.add(venueName); config.add(street); config.add(startDate); final ColumnModel cm = new ColumnModel(config); GroupingView view = new GroupingView(); view.setShowGroupedColumn(false); 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<UpcomingEventModelData> grid = new Grid<UpcomingEventModelData>(store, cm); grid.setView(view); grid.setBorders(true); grid.addListener( Events.RowDoubleClick, new Listener<GridEvent<UpcomingEventModelData>>() { public void handleEvent(GridEvent<UpcomingEventModelData> be) { Window.open(be.getModel().getUrl(), "Events", ""); } }); grid.setStateful(true); grid.setAutoExpandColumn("city"); grid.setLoadMask(true); // grid.setBorders(true); // grid.setStripeRows(true); add(grid); }
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); }
BaseGrid createGrid() { CheckBoxSelectionModel cbs = new CheckBoxSelectionModel(); List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); columns.add(cbs.getColumn()); // ColumnConfig C3 = new ColumnConfig("icode", // "icode", 180); // columns.add(C3); ColumnConfig C1 = new ColumnConfig("bcode", "人员", 100); columns.add(C1); ColumnConfig C2 = new ColumnConfig("employstatus", "状态", 100); TextField<String> C2_t = new TextField<String>(); C2.setEditor(new CellEditor(C2_t)); columns.add(C2); ColumnConfig C3 = new ColumnConfig("leavereason", "离职原因", 100); TextField<String> C3_t = new TextField<String>(); C3.setEditor(new CellEditor(C3_t)); C3.setHidden(true); columns.add(C3); ColumnConfig C4 = new ColumnConfig("leavemark", "离职备注", 100); TextField<String> C4_t = new TextField<String>(); C4.setEditor(new CellEditor(C4_t)); C4.setHidden(true); columns.add(C4); ColumnConfig C5 = new ColumnConfig("Resignationdate", "离职日期", 180); C5.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd")); // C5.setEditor(new CellEditor(C4_t)); C5.setHidden(true); columns.add(C5); ColumnModel cm = new ColumnModel(columns); grid = new BaseGrid(getStore(), cm); cbs.setSelectionMode(SelectionMode.SIMPLE); grid.setSelectionModel(cbs); return grid; }
private Grid<AuditEventEntryWeb> setupGrid() { GridCellRenderer<AuditEventEntryWeb> refButtonRenderer = new GridCellRenderer<AuditEventEntryWeb>() { private boolean init; @Override public Object render( final AuditEventEntryWeb model, String property, com.extjs.gxt.ui.client.widget.grid.ColumnData config, int rowIndex, int colIndex, ListStore<AuditEventEntryWeb> store, Grid<AuditEventEntryWeb> grid) { if (!init) { init = true; grid.addListener( Events.ColumnResize, new Listener<GridEvent<AuditEventEntryWeb>>() { public void handleEvent(GridEvent<AuditEventEntryWeb> 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); } } } }); } AuditEventEntryWeb auditEvent = model; Long refRecordId = auditEvent.getRefRecordId(); Button b = null; if (refRecordId != null) { b = new Button( "" + refRecordId.longValue(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { AuditEventEntryWeb auditEvent = model; // Info.display("Information", "Ref Record: "+ // auditEvent.getRefRecordId()); if (currentEntity != null) { AppEvent event = new AppEvent(AppEvents.EntityByIdRequest); event.setData("entityModel", currentEntity); event.setData("recordId", auditEvent.getRefRecordId()); controller.handleEvent(event); } } }); b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10); b.setToolTip("Click for record detail information"); } return b; } }; GridCellRenderer<AuditEventEntryWeb> altButtonRenderer = new GridCellRenderer<AuditEventEntryWeb>() { private boolean init; @Override public Object render( final AuditEventEntryWeb model, String property, com.extjs.gxt.ui.client.widget.grid.ColumnData config, int rowIndex, int colIndex, ListStore<AuditEventEntryWeb> store, Grid<AuditEventEntryWeb> grid) { if (!init) { init = true; grid.addListener( Events.ColumnResize, new Listener<GridEvent<AuditEventEntryWeb>>() { public void handleEvent(GridEvent<AuditEventEntryWeb> 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); } } } }); } AuditEventEntryWeb auditEvent = model; Long refRecordId = auditEvent.getAltRefRecordId(); Button b = null; if (refRecordId != null) { b = new Button( "" + refRecordId.longValue(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { AuditEventEntryWeb auditEvent = model; // Info.display("Information", "Alt Ref Record: "+ // auditEvent.getAltRefRecordId()); if (currentEntity != null) { AppEvent event = new AppEvent(AppEvents.EntityByIdRequest); event.setData("entityModel", currentEntity); event.setData("recordId", auditEvent.getAltRefRecordId()); controller.handleEvent(event); } } }); b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10); b.setToolTip("Click for record detail information"); } return b; } }; // Render to display "Created By" as firstName LastName (Account) GridCellRenderer<AuditEventEntryWeb> adminRenderer = new GridCellRenderer<AuditEventEntryWeb>() { @Override public Object render( final AuditEventEntryWeb model, String property, com.extjs.gxt.ui.client.widget.grid.ColumnData config, int rowIndex, int colIndex, ListStore<AuditEventEntryWeb> store, Grid<AuditEventEntryWeb> grid) { AuditEventEntryWeb auditEvent = model; UserWeb user = auditEvent.getUserCreatedBy(); String createdBy = ""; if (user != null) { createdBy = user.getFirstName() + " " + user.getLastName() + " (" + user.getUsername() + ")"; } return createdBy; } }; // Audit Event Grid ColumnConfig typeColumn = new ColumnConfig("auditEventType.auditEventTypeName", "Event Type", 150); ColumnConfig descriptionColumn = new ColumnConfig("auditEventDescription", "Description", 350); ColumnConfig dateTimeColumn = new ColumnConfig("dateCreated", "Date Created", 120); dateTimeColumn.setDateTimeFormat(DateTimeFormat.getShortDateTimeFormat()); ColumnConfig refPersonColumn = new ColumnConfig("refRecordId", "Reference Record", 150); refPersonColumn.setRenderer(refButtonRenderer); ColumnConfig altRefPersonColumn = new ColumnConfig("altRefRecordId", "Alt Reference Record", 150); altRefPersonColumn.setRenderer(altButtonRenderer); ColumnConfig userCreatedByColumn = new ColumnConfig("userCreatedBy.username", "Created By", 150); userCreatedByColumn.setRenderer(adminRenderer); List<ColumnConfig> config = new ArrayList<ColumnConfig>(); config.add(typeColumn); config.add(descriptionColumn); config.add(dateTimeColumn); config.add(refPersonColumn); config.add(altRefPersonColumn); config.add(userCreatedByColumn); final ColumnModel cm = new ColumnModel(config); Grid<AuditEventEntryWeb> grid = new Grid<AuditEventEntryWeb>(store, cm); grid.setBorders(true); grid.setAutoWidth(true); grid.setStripeRows(true); grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); grid.setHeight(330); grid.getSelectionModel() .addListener( Events.SelectionChange, new Listener<SelectionChangedEvent<AuditEventEntryWeb>>() { public void handleEvent(SelectionChangedEvent<AuditEventEntryWeb> be) { List<AuditEventEntryWeb> selection = be.getSelection(); } }); grid.addListener( Events.SortChange, new Listener<GridEvent<AuditEventEntryWeb>>() { public void handleEvent(GridEvent<AuditEventEntryWeb> be) { AuditEventEntryWeb selectField = be.getGrid().getSelectionModel().getSelectedItem(); } }); return 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 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); }
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; }
/** * Creates and configure the column model for the grid contained in this component. * * @param enabled <code>true</code> to enable the delete column, <code>false</code> to disable it. * @return A new array of column configs. */ private ColumnConfig[] createColumnModel(final boolean enabled) { final boolean canRemove = enabled && userCanPerformChangeType(ValueEventChangeType.REMOVE); // Creating columns final ColumnConfig lastEditDateColumn = new ColumnConfig("lastEditDate", I18N.CONSTANTS.reportLastEditDate(), 60); final ColumnConfig nameColumn = new ColumnConfig("name", I18N.CONSTANTS.reportName(), 100); final ColumnConfig editorNameColumn = new ColumnConfig("editorName", I18N.CONSTANTS.reportEditor(), 100); final ColumnConfig deleteColumn = new ColumnConfig("delete", "", 10); // Date column specificities lastEditDateColumn.setDateTimeFormat(DateUtils.DATE_SHORT); // Name column specificities nameColumn.setRenderer( new GridCellRenderer<ReportReference>() { @Override public Object render( final ReportReference model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { final Anchor anchor = new Anchor((String) model.get(property)); anchor.addStyleName("flexibility-link"); anchor.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { eventBus.navigateRequest(createPageRequest(model.getId())); } }); return anchor; } }); // Delete column specificities deleteColumn.setSortable(false); deleteColumn.setRenderer( new GridCellRenderer<ReportReference>() { @Override public Object render( final ReportReference model, String property, ColumnData config, int rowIndex, int colIndex, final ListStore store, Grid grid) { if (!canRemove) { return "-"; } final Image image = IconImageBundle.ICONS.remove().createImage(); image.setTitle(I18N.CONSTANTS.remove()); image.addStyleName("flexibility-action"); // Action image.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { N10N.confirmation( I18N.CONSTANTS.remove(), I18N.MESSAGES.reportRemoveConfirm(model.getName()), new ConfirmCallback() { @Override public void onAction() { // TODO: Delete the report if (Log.isDebugEnabled()) { Log.debug("Removing '" + model.getName() + "' report..."); } dispatch.execute( new Delete(ProjectReportDTO.ENTITY_NAME, model.getId()), new CommandResultHandler<VoidResult>() { @Override public void onCommandSuccess(final VoidResult result) { store.remove(model); N10N.validNotif("OK", "OK"); } @Override public void onCommandFailure(final Throwable caught) { N10N.warn("ERROR", "ERROR"); } }); } }); } }); return image; } }); return new ColumnConfig[] {lastEditDateColumn, nameColumn, editorNameColumn, deleteColumn}; }
@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; }