@Override public Grid<ModelData> initGrid(ListStore<ModelData> store) { List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); XTemplate tpl = XTemplate.create("<p><b>Message:</b> {message}</p>"); RowExpander expander = new RowExpander(); expander.setTemplate(tpl); ColumnConfig columnConfig = configColumn(JobExecEventBeanDesc.priorityRank, 50); columnConfig.setRenderer( new GridCellRenderer<ModelData>() { public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { ExecutionStatus status = (ExecutionStatus) model.get(property); ImageResource imageResource = null; if (status == ExecutionStatus.OK) { imageResource = Icons.INSTANCE.accept(); } else if (status == ExecutionStatus.RUNNING) { imageResource = Icons.INSTANCE.execute(); } else if (status == ExecutionStatus.WARNING) { imageResource = Icons.INSTANCE.error(); } else if (status == ExecutionStatus.ERROR) { imageResource = Icons.INSTANCE.exclamation(); } else { imageResource = Icons.INSTANCE.information(); } return new Image(imageResource); } }); columns.add(expander); columns.add(configColumn(JobExecEventBeanDesc.origin, 50)); columns.add(configColumn(JobExecEventBeanDesc.source, 50)); columns.add(columnConfig); columns.add(configColumn(JobExecEventBeanDesc.time, 120)); final ColumnModel cm = new ColumnModel(columns); Grid<ModelData> grid = new Grid<ModelData>(store, cm); grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); grid.addPlugin(expander); return grid; }
@Override public ColumnModel prepareColumnModel() { List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig nameColumn = new ColumnConfig(); nameColumn.setId(GPSimpleUserKeyValue.NAME.toString()); nameColumn.setHeader("Name"); configs.add(nameColumn); ColumnConfig usernameColumn = new ColumnConfig(); usernameColumn.setId(GPSimpleUserKeyValue.USERNAME.toString()); usernameColumn.setHeader("Username"); usernameColumn.setWidth(120); configs.add(usernameColumn); CheckColumnConfig enabledColumn = new CheckColumnConfig(); enabledColumn.setId(GPUserManageDetailKeyValue.ENABLED.toString()); enabledColumn.setHeader("Enabled"); enabledColumn.setWidth(50); enabledColumn.setFixed(true); configs.add(enabledColumn); CheckColumnConfig tempColumn = new CheckColumnConfig(); tempColumn.setId(GPUserManageDetailKeyValue.TEMPORARY.toString()); tempColumn.setHeader("Temporary"); tempColumn.setWidth(65); tempColumn.setFixed(true); configs.add(tempColumn); ColumnConfig roleColumn = new ColumnConfig(); roleColumn.setId(GPSimpleUserKeyValue.AUTORITHY.toString()); roleColumn.setHeader("Role"); roleColumn.setWidth(80); configs.add(roleColumn); ColumnConfig trustedLevelColumn = new ColumnConfig(); trustedLevelColumn.setId(GPSimpleUserKeyValue.TRUSTED_LEVEL.toString()); trustedLevelColumn.setHeader("Trusted"); trustedLevelColumn.setWidth(70); configs.add(trustedLevelColumn); ColumnConfig delColumn = new ColumnConfig(); delColumn.setId("delColumn"); delColumn.setHeader("Delete"); delColumn.setWidth(40); delColumn.setFixed(true); delColumn.setResizable(false); delColumn.setSortable(false); delColumn.setRenderer(new DeleteUserRenderer()); configs.add(delColumn); return new ColumnModel(configs); }
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); }
private Grid<BeanModel> createGrid() { List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig column = new ColumnConfig(); column.setId("containerNo"); column.setHeader("集装箱号"); column.setWidth(100); column.setRowHeader(true); configs.add(column); GridCellRenderer<BeanModel> sizeCellRenderer = new GridCellRenderer<BeanModel>() { @Override public Object render( BeanModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<BeanModel> store, Grid<BeanModel> grid) { String code = model.get(property); ContainerSize containerSize = containerSizeStore.findModel("code", code).getBean(); return containerSize.getSize(); } }; column = new ColumnConfig(); column.setRenderer(sizeCellRenderer); column.setId("size"); column.setHeader("尺寸"); column.setWidth(100); configs.add(column); column = new ColumnConfig(); column.setId("valentNum"); column.setHeader("标准箱个数"); column.setWidth(100); configs.add(column); ColumnModel cm = new ColumnModel(configs); AggregationRowConfig<BeanModel> statistics = new AggregationRowConfig<BeanModel>(); statistics.setHtml("containerNo", "统计"); statistics.setSummaryType("size", SummaryType.COUNT); statistics.setRenderer( "size", new AggregationRenderer<BeanModel>() { public Object render( Number value, int colIndex, Grid<BeanModel> grid, ListStore<BeanModel> store) { return "集装箱" + ContainerTabItem.this.store.getCount() + "个"; } }); statistics.setSummaryType("valentNum", SummaryType.SUM); statistics.setRenderer( "valentNum", new AggregationRenderer<BeanModel>() { public Object render( Number value, int colIndex, Grid<BeanModel> grid, ListStore<BeanModel> store) { if (value == null) { return ""; } return "标准箱" + value.intValue() + "个"; } }); cm.addAggregationRow(statistics); store.setMonitorChanges(true); Grid<BeanModel> grid = new Grid<BeanModel>(store, cm); grid.setView( new GridView() { @Override protected void afterRender() { refresh(true); } }); grid.setBorders(true); return grid; }
@Override protected void onRender(Element parent, int index) { super.onRender(parent, index); setLayout(new FlowLayout(10)); Folder model = TestData.getTreeModel(); TreeStore<ModelData> store = new TreeStore<ModelData>(); store.add(model.getChildren(), true); ColumnConfig name = new ColumnConfig("name", "Name", 100); name.setRenderer(new TreeGridCellRenderer<ModelData>()); ColumnConfig date = new ColumnConfig("author", "Author", 100); ColumnConfig size = new ColumnConfig("genre", "Genre", 100); ColumnModel cm = new ColumnModel(Arrays.asList(name, date, size)); ContentPanel cp = new ContentPanel(); cp.setBodyBorder(false); cp.setHeading("TreeGrid"); cp.setButtonAlign(HorizontalAlignment.CENTER); cp.setLayout(new FitLayout()); cp.setFrame(true); cp.setSize(600, 300); TreeGrid<ModelData> tree = new TreeGrid<ModelData>(store, cm); tree.setBorders(true); tree.getStyle().setLeafIcon(Resources.ICONS.music()); tree.setAutoExpandColumn("name"); tree.setTrackMouseOver(false); cp.add(tree); add(cp); StoreFilterField<ModelData> filter = new StoreFilterField<ModelData>() { @Override protected boolean doSelect( Store<ModelData> store, ModelData parent, ModelData record, String property, String filter) { // only match leaf nodes if (record instanceof Folder) { return false; } String name = record.get("name"); name = name.toLowerCase(); if (name.startsWith(filter.toLowerCase())) { return true; } return false; } }; filter.bind(store); ToolBar toolBar = new ToolBar(); toolBar.setBorders(true); toolBar.add(new LabelToolItem("Filter:")); toolBar.add(filter); cp.setTopComponent(toolBar); }
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); }
/* * (non-Javadoc) * * @see it.geosolutions.geofence.gui.client.widget.GEOFENCEGridWidget# * prepareColumnModel() */ @Override public ColumnModel prepareColumnModel() { List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig rulePriorityColumn = new ColumnConfig(); rulePriorityColumn.setId(BeanKeyValue.PRIORITY.getValue()); rulePriorityColumn.setWidth(COLUMN_PRIORITY_WIDTH); rulePriorityColumn.setMenuDisabled(false); rulePriorityColumn.setSortable(true); configs.add(rulePriorityColumn); ColumnConfig ruleUserColumn = new ColumnConfig(); ruleUserColumn.setId(BeanKeyValue.USER.getValue()); ruleUserColumn.setHeader("User"); ruleUserColumn.setWidth(COLUMN_USER_WIDTH); ruleUserColumn.setRenderer(new UserRenderer()); ruleUserColumn.setMenuDisabled(true); ruleUserColumn.setSortable(false); configs.add(ruleUserColumn); ColumnConfig ruleProfileColumn = new ColumnConfig(); ruleProfileColumn.setId(BeanKeyValue.PROFILE.getValue()); ruleProfileColumn.setHeader("Group"); ruleProfileColumn.setWidth(COLUMN_GROUP_WIDTH); ruleProfileColumn.setRenderer(new GroupRenderer()); ruleProfileColumn.setMenuDisabled(true); ruleProfileColumn.setSortable(false); configs.add(ruleProfileColumn); ColumnConfig ruleInstanceColumn = new ColumnConfig(); ruleInstanceColumn.setId(BeanKeyValue.INSTANCE.getValue()); ruleInstanceColumn.setHeader("Instance"); ruleInstanceColumn.setWidth(COLUMN_INSTANCE_WIDTH); ruleInstanceColumn.setRenderer(new InstanceRenderer()); ruleInstanceColumn.setMenuDisabled(true); ruleInstanceColumn.setSortable(false); configs.add(ruleInstanceColumn); ColumnConfig ipcfg = new ColumnConfig(); ipcfg.setId(BeanKeyValue.SOURCE_IP_RANGE.getValue()); ipcfg.setHeader("Src IP addr"); ipcfg.setWidth(COLUMN_IPRANGE_WIDTH); ipcfg.setRenderer(new IPRangeRenderer()); ipcfg.setMenuDisabled(true); ipcfg.setSortable(false); configs.add(ipcfg); ColumnConfig ruleServiceColumn = new ColumnConfig(); ruleServiceColumn.setId(BeanKeyValue.SERVICE.getValue()); ruleServiceColumn.setHeader("Service"); ruleServiceColumn.setWidth(COLUMN_SERVICE_WIDTH); ruleServiceColumn.setRenderer(new ServiceRenderer()); ruleServiceColumn.setMenuDisabled(true); ruleServiceColumn.setSortable(false); configs.add(ruleServiceColumn); ColumnConfig ruleRequestColumn = new ColumnConfig(); ruleRequestColumn.setId(BeanKeyValue.REQUEST.getValue()); ruleRequestColumn.setHeader("Request"); ruleRequestColumn.setWidth(COLUMN_REQUEST_WIDTH); ruleRequestColumn.setRenderer(new RequestRenderer()); ruleRequestColumn.setMenuDisabled(true); ruleRequestColumn.setSortable(false); configs.add(ruleRequestColumn); ColumnConfig ruleWorkspacesColumn = new ColumnConfig(); ruleWorkspacesColumn.setId(BeanKeyValue.WORKSPACE.getValue()); ruleWorkspacesColumn.setHeader("Workspace"); ruleWorkspacesColumn.setWidth(COLUMN_WORKSPACE_WIDTH); ruleWorkspacesColumn.setRenderer(new WorkspaceRenderer()); ruleWorkspacesColumn.setMenuDisabled(true); ruleWorkspacesColumn.setSortable(false); configs.add(ruleWorkspacesColumn); ColumnConfig ruleLayersColumn = new ColumnConfig(); ruleLayersColumn.setId(BeanKeyValue.LAYER.getValue()); ruleLayersColumn.setHeader("Layer"); ruleLayersColumn.setWidth(COLUMN_LAYER_WIDTH); ruleLayersColumn.setRenderer(new LayerRenderer()); ruleLayersColumn.setMenuDisabled(true); ruleLayersColumn.setSortable(false); configs.add(ruleLayersColumn); ColumnConfig ruleGrantsColumn = new ColumnConfig(); ruleGrantsColumn.setId(BeanKeyValue.GRANT.getValue()); ruleGrantsColumn.setHeader("Grant"); ruleGrantsColumn.setWidth(COLUMN_GRANT_WIDTH); ruleGrantsColumn.setRenderer(this.createGrantsCustomField()); ruleGrantsColumn.setMenuDisabled(true); ruleGrantsColumn.setSortable(false); configs.add(ruleGrantsColumn); ColumnConfig editRuleColumn = new ColumnConfig(); editRuleColumn.setId("editRuleDetails"); editRuleColumn.setWidth(COLUMN_EDIT_RULE_WIDTH); editRuleColumn.setRenderer(this.editRuleButton()); editRuleColumn.setMenuDisabled(true); editRuleColumn.setSortable(false); configs.add(editRuleColumn); ColumnConfig detailsActionColumn = new ColumnConfig(); detailsActionColumn.setId("ruleDetails"); detailsActionColumn.setWidth(COLUMN_RULE_DETAILS_WIDTH); detailsActionColumn.setRenderer(this.createRuleDetailsButton()); detailsActionColumn.setMenuDisabled(true); detailsActionColumn.setSortable(false); configs.add(detailsActionColumn); ColumnConfig removeActionColumn = new ColumnConfig(); removeActionColumn.setId("removeRule"); removeActionColumn.setWidth(COLUMN_REMOVE_RULE_WIDTH); removeActionColumn.setRenderer(this.createRuleDeleteButton()); removeActionColumn.setMenuDisabled(true); removeActionColumn.setSortable(false); configs.add(removeActionColumn); ColumnConfig addActionColumn = new ColumnConfig(); addActionColumn.setId("addRule"); addActionColumn.setWidth(COLUMN_ADD_RULE_WIDTH); addActionColumn.setRenderer(this.createRuleAddButton()); addActionColumn.setMenuDisabled(true); addActionColumn.setSortable(false); configs.add(addActionColumn); ColumnConfig priorityUpActionColumn = new ColumnConfig(); priorityUpActionColumn.setId("rulePriorityUp"); priorityUpActionColumn.setWidth(COLUMN_UP_RULE_WIDTH); priorityUpActionColumn.setRenderer(this.createRulePriorityUpButton()); priorityUpActionColumn.setMenuDisabled(true); priorityUpActionColumn.setSortable(false); configs.add(priorityUpActionColumn); ColumnConfig priorityDownActionColumn = new ColumnConfig(); priorityDownActionColumn.setId("rulePriorityDwn"); priorityDownActionColumn.setWidth(COLUMN_DOWN_RULE_WIDTH); priorityDownActionColumn.setRenderer(this.createRulePriorityDownButton()); priorityDownActionColumn.setMenuDisabled(true); priorityDownActionColumn.setSortable(false); configs.add(priorityDownActionColumn); return new ColumnModel(configs); }
public ImportItemSetupPanel() { super(); categoryStore = new ListStore<ItemModel>(); setLayout(new FitLayout()); // Grid: setup / configuration ArrayList<ColumnConfig> itemColumns = new ArrayList<ColumnConfig>(); TextField<String> textField = new TextField<String>(); textField.addInputStyleName(resources.css().gbTextFieldInput()); CellEditor textCellEditor = new CellEditor(textField); setHeading(i18n.navigationPanelImportHeader()); columnConfigName = new ColumnConfig(ItemKey.S_NM.name(), i18n.importSetupGridItemHeader(), 200); columnConfigName.setEditor(textCellEditor); itemColumns.add(columnConfigName); columnConfigPercentCategory = new ColumnConfig( ItemKey.D_PCT_CTGRY.name(), i18n.importSetupGridCategoryPercentHeader(), 100); columnConfigPercentCategory.setEditor(new CellEditor(new NumberField())); itemColumns.add(columnConfigPercentCategory); columnConfigPoints = new ColumnConfig(ItemKey.D_PNTS.name(), i18n.importSetupGridPointsHeader(), 100); columnConfigPoints.setEditor(new CellEditor(new NumberField())); itemColumns.add(columnConfigPoints); categoryComboBox = new ComboBox<ItemModel>(); categoryComboBox.setDisplayField(ItemKey.S_NM.name()); categoryComboBox.setEditable(true); categoryComboBox.setTriggerAction(TriggerAction.ALL); categoryComboBox.setForceSelection(true); categoryComboBox.setStore(categoryStore); categoryComboBox.addInputStyleName(resources.css().gbTextFieldInput()); columnConfigCategory = new ColumnConfig(ItemKey.S_ID.name(), i18n.importSetupGridCategoryHeader(), 140); categoryCellEditor = new CellEditor(categoryComboBox) { // Called before the editor sets the value on the wrapped field @Override public Object preProcessValue(Object value) { // Method argument is the selected grid item model id String assignmentId = (String) value; // Get the assignment and the associated category name ItemModel assignment = itemStore.findModel(ItemKey.S_ID.name(), assignmentId); String categoryName = assignment.get(ItemKey.S_PARENT.name()); // Find the category from the category name ItemModel category = categoryStore.findModel(ItemKey.S_NM.name(), categoryName); // Mark the assignment as the one the user is performing an action on. // We will use the marker in the postProcessValue() method to find the assignment, // since the assignment is not readily available in that method. assignment.set(ItemKey.S_CTGRY_ID.name(), ITEM_MARKER); // FIXME: // Returning the category. Interestingly, I am not quite sure what the returned // object is used for. Testing this with returning null didn't change anything. // Following GXT sample code ?? return category; } // Called after the editor completes an edit. @Override public Object postProcessValue(Object value) { // Method argument is the selected category model ItemModel category = (ItemModel) value; // Get the categoryId String categoryId = category.get(ItemKey.S_ID.name()); // We search through all the assignments to find the one that has been marked // by the preProcessValue() method List<ItemModel> assignments = itemStore.getModels(); for (ItemModel assignment : assignments) { if (ITEM_MARKER.equals(assignment.get(ItemKey.S_CTGRY_ID.name()))) { // We have found the marked assignment and are setting the string based categoryId // Also, this string based category is used on the server side to reassociate the // assignment with the correct category before things are persisted and updated assignment.set(ItemKey.S_CTGRY_ID.name(), categoryId); // Returning the assignmentId but prefix it so that the renderer thinks // that something changes. If we were to just return the assignmentId, // the renderer is not called. This also sets the assignmentId to this new // prefixed ID. This is fixed in the renderer code. return ITEM_PREFIX + assignment.get(ItemKey.S_ID.name()); } } // In case we didn't find a marked assignment, we return null return null; } }; columnConfigCategory.setEditor(categoryCellEditor); columnConfigCategory.setRenderer( new GridCellRenderer<ItemModel>() { public String render( ItemModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ItemModel> store, Grid<ItemModel> grid) { // Method argument "model" is the selected grid item model String categoryId = model.get(ItemKey.S_CTGRY_ID.name()); // Case when we render the grid for the first time if (null == categoryId || "".equals(categoryId)) { // Making sure that assignments have the categoryId // set if possible if (model.getCategoryId().equals(Long.valueOf(-1l))) { String categoryName = model.get(ItemKey.S_PARENT.name()); if (null != categoryName && !"".equals(categoryName)) { Item category = categoryStore.findModel(ItemKey.S_NM.name(), categoryName); // GRBK-681 - Since we don't care if the category id is non numeric, I assume we // don't care if there's no category at all. if (category != null) { try { Long catId = Long.valueOf((String) category.get(ItemKey.S_ID.name())); model.setCategoryId(catId); } catch (NumberFormatException nfe) { // We don't do anything } } } } return model.get(ItemKey.S_PARENT.name()); } else { // Case where a user selects a different category from the ComboBox // First we "restore" the itemId since we prefixed it in the postProcessValue() method String assignmentId = model.get(ItemKey.S_ID.name()); if (assignmentId.startsWith(ITEM_PREFIX)) { String fixedAssignmentId = assignmentId.substring(ITEM_PREFIX.length()); model.set(ItemKey.S_ID.name(), fixedAssignmentId); } ItemModel category = categoryStore.findModel(ItemKey.S_ID.name(), categoryId); // GRBK-681 if (category != null) { String categoryName = category.get(ItemKey.S_NM.name()); model.set(ItemKey.S_PARENT.name(), categoryName); return categoryName; } else { return ""; } } } }); itemColumns.add(columnConfigCategory); ColumnModel itemColumnModel = new ColumnModel(itemColumns); itemStore = new ListStore<ItemModel>(); itemGrid = new EditorGrid<ItemModel>(itemStore, itemColumnModel); itemGrid.setBorders(true); // TODO: In the old upload code, we used the BaseCustomGridView() instead of the GridView() // I am not sure yet if this is still needed. Maybe for some CSS adjustments? itemGrid.setView(new GridView()); add(itemGrid); }
/** 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); }
/** Creates the gComponents with the list of components and add it to the panel */ private void addGrid() { List<ColumnConfig> configs = new LinkedList<ColumnConfig>(); CheckBoxSelectionModel<PaletteModelData> selectionModel = new CheckBoxSelectionModel<PaletteModelData>(); configs.add(selectionModel.getColumn()); ColumnConfig column = new ColumnConfig(); column.setId(PaletteModelData.PROPERTY_NAME); column.setHeader(pmsMessages.columnHeaderName()); column.setWidth(COLUMN_NAME_WIDTH); // render to show a tooltip column.setRenderer( new GridCellRenderer<PaletteModelData>() { public Object render( PaletteModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PaletteModelData> store, Grid<PaletteModelData> grid) { String name = (String) model.get(property); Html html = new Html((String) model.get(property)); html.setToolTip(name); html.getToolTip().setAutoWidth(true); return html; } }); configs.add(column); column = new ColumnConfig(); column.setId(PaletteModelData.PROPERTY_DESCRIPTION); column.setHeader(pmsMessages.columnHeaderDescription()); column.setWidth(COLUMN_DESCRIPTION_WIDTH); configs.add(column); ColumnModel cm = new ColumnModel(configs); sGrid = new ListStore<PaletteModelData>(); sGrid.setStoreSorter((StoreSorter) storeSorter); sGrid.setSortField(PaletteModelData.PROPERTY_NAME); gComponents = new Grid<PaletteModelData>(sGrid, cm); gComponents.setSelectionModel(selectionModel); gComponents.addPlugin(selectionModel); gComponents.setAutoExpandColumn(PaletteModelData.PROPERTY_DESCRIPTION); gComponents.setLoadMask(true); gComponents.getView().setForceFit(true); gComponents .getSelectionModel() .addSelectionChangedListener( new SelectionChangedListener<PaletteModelData>() { @Override public void selectionChanged(SelectionChangedEvent<PaletteModelData> se) { if (se.getSelection() != null && !se.getSelection().isEmpty()) { ttiAddSelected.enable(); } else { ttiAddSelected.disable(); } } }); add(gComponents); }
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 MagazineManager() { curState = new State(); BasePagingLoader loader = new PagingListService().getLoader(ModelNames.MAILTEMPLATE, criteria); loader.load(0, 10); store = new ListStore<BeanObject>(loader); toolBar = new PagingToolBar(10); toolBar.bind(loader); List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); ColumnConfig title = new ColumnConfig(IMailTemplate.SUBJECT, "杂志标题", 200); columns.add(title); columns.add(new ColumnConfig(IMailTemplate.LASTMODIFY, "杂志上次编辑时间", 160)); columns.add(new ColumnConfig(IMailTemplate.LASTSEND, "杂志上次发送时间", 160)); ColumnConfig insert = new ColumnConfig("insert", "插入发送队列", 160); columns.add(insert); ColumnConfig actcol = new ColumnConfig("Action", "操作", 100); columns.add(actcol); ColumnModel cm = new ColumnModel(columns); grid = new Grid<BeanObject>(store, cm); grid.setLoadMask(true); grid.setBorders(true); ActionCellRenderer render = new ActionCellRenderer(grid); ActionCellRenderer insertRender = new ActionCellRenderer(grid); ActionCellRenderer.ActionInfo act = new ActionCellRenderer.ActionInfo(); act.setImage("icon_edit.gif"); act.setAction("editMagazine($id)"); act.setTooltip("编辑"); render.addAction(act); act = new ActionCellRenderer.ActionInfo(); act.setImage("icon_trash.gif"); act.setAction("deleteMagazine($id)"); act.setTooltip("删除"); render.addAction(act); act = new ActionCellRenderer.ActionInfo(); act.setText("插入队列"); act.setAction("insertMagazine($id)"); act.setTooltip("插入队列"); insertRender.addAction(act); actcol.setRenderer(render); insert.setRenderer(insertRender); ContentPanel panel = new ContentPanel(); panel.setFrame(true); panel.setCollapsible(true); panel.setAnimCollapse(false); panel.setButtonAlign(HorizontalAlignment.CENTER); panel.setIconStyle("icon-table"); panel.setLayout(new FitLayout()); panel.add(grid); panel.setSize(850, 350); panel.setBottomComponent(toolBar); panel.setHeading("邮件杂志列表"); panel.setButtonAlign(HorizontalAlignment.LEFT); // 添加新杂志 final com.extjs.gxt.ui.client.widget.button.Button addMagazine = new com.extjs.gxt.ui.client.widget.button.Button("添加新杂志"); addMagazine.addSelectionListener( new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { // add new magazine function NewMagazine.State state = new NewMagazine.State(); state.execute(); } }); panel.addButton(addMagazine); add(panel); initJS(this); }
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; }
@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); }
@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 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; }
private void addGrid() { // Grid bases: List<ColumnConfig> cc = new LinkedList<ColumnConfig>(); ColumnConfig ccName = new ColumnConfig( SetFilterModelData.PROPERTY_NAME, pmsMessages.columnHeaderName(), COLUMN_NAME_WIDTH); cc.add(ccName); ColumnConfig ccDescription = new ColumnConfig( SetFilterModelData.PROPERTY_DESCRIPTION, pmsMessages.columnHeaderDescription(), COLUMN_DESCRIPTION_WIDTH); cc.add(ccDescription); ColumnConfig ccType = new ColumnConfig( SetFilterModelData.PROPERTY_TYPE, pmsMessages.columnHeaderType(), COLUMN_TYPE_WIDTH); ccType.setRenderer( new GridCellRenderer<SetFilterModelData>() { public Object render( SetFilterModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<SetFilterModelData> store, Grid<SetFilterModelData> grid) { if (model.getDTO().getType() != null) { return mapFilterTypes.get(model.getDTO().getType().toString()); } return null; } }); cc.add(ccType); ColumnModel cmOwn = new ColumnModel(cc); ListStore<SetFilterModelData> store = new ListStore<SetFilterModelData>(); grid = new Grid<SetFilterModelData>(store, cmOwn); grid.setAutoExpandColumn(SetFilterModelData.PROPERTY_NAME); grid.setStyleAttribute(BORDER_TOP_KEY, BORDER_TOP_VALUE); GridView gView = grid.getView(); gView.setForceFit(true); grid.getSelectionModel() .addSelectionChangedListener( new SelectionChangedListener<SetFilterModelData>() { @Override public void selectionChanged(SelectionChangedEvent<SetFilterModelData> se) { boolean enabled = false; if (se.getSelectedItem() != null) { enabled = true; } bEdit.setEnabled(enabled); bDelete.setEnabled(enabled); } }); add(grid); }