protected void toggleGroup(Element g, boolean expanded) { if (grid.editSupport != null) { grid.editSupport.stopEditing(); } state.put(fly(g).getId(), expanded); fly(g).setStyleName("x-grid-group-collapsed", !expanded); g.getFirstChildElement().setAttribute("aria-expanded", expanded ? "true" : "false"); calculateVBar(false); }
private void onBeforeRowSelect(SelectionEvent<ModelData> se) { if (!enableGrouping) { return; } Element row = getRow(se.getIndex()); if (row != null) { Element g = findGroup(row); toggleGroup(g, true); } }
@Override protected void onRemove(ListStore<ModelData> ds, ModelData m, int index, boolean isUpdate) { super.onRemove(ds, m, index, isUpdate); String groupField = getGroupField(); if (enableGrouping) { String id = getGroupId(grid.getId(), groupField, getGroup(m.get(groupField), m, index, cm.findColumnIndex(groupField), ds)); Element g = XDOM.getElementById(id); if (g != null && !g.getChildNodes().getItem(1).hasChildNodes()) { fly(g).removeFromParent(); removeGroupId(id); } } // apply empty text }
NodeList<Element> groups = view.getGroups().cast(); if (selectedGroup != null) { int gindex = indexOf(groups, selectedGroup); view.onGroupSelect(selectedGroup, false); selectedGroup = null; if (view.isExpanded(selectedGroup)) { int grows = view.getGroupRowCount(selectedGroup); Element r = view.getGroupRow(selectedGroup, grows - 1).cast(); selectedGroup = null; select(view.findRowIndex(r), false); view.focusRow(view.findRowIndex(r)); view.onGroupSelect(selectedGroup, true); Element row = view.getRow(lastSelected).cast(); Element group = view.findGroup(row).cast(); if (row == view.getGroupRow(group, 0)) { deselectAll(); selectedGroup = group; view.onGroupSelect(selectedGroup, true); return;
String groupField = getGroupField(); int colIndex = cm.findColumnIndex(groupField); String gstyle = "width:" + getTotalWidth() + "px;"; String gidPrefix = grid.getId(); String g = getGroup(gvalue, model, rowIndex, colIndex, ds); gid = getGroupId(gidPrefix, groupField, g); doGroupStart(buf, g, cs, colCount); buf.append(super.doRender(cs, g.models, g.startRow, colCount, stripe)); doGroupEnd(buf, g, cs, colCount);
private boolean isGroupExpanded(Element g) { return fly(g).hasStyleName("x-grid-group-collapsed"); }
@Override protected String renderRows(int startRow, int endRow) { String groupField = getGroupField(); boolean eg = groupField != null; if (!showGroupedColumn) { int colIndex = cm.findColumnIndex(groupField); if (!eg && lastGroupField != null) { mainBody.update(""); cm.setHidden(cm.findColumnIndex(lastGroupField), false); lastGroupField = null; } else if (eg && (lastGroupField == null || lastGroupField == groupField)) { lastGroupField = groupField; cm.setHidden(colIndex, true); } else if (eg && lastGroupField != null && !groupField.equals(lastGroupField)) { mainBody.update(""); int oldIndex = cm.findColumnIndex(lastGroupField); cm.setHidden(oldIndex, false); lastGroupField = groupField; cm.setHidden(colIndex, true); } } return super.renderRows(startRow, endRow); }
NodeList<Element> groups = view.getGroups().cast(); int gc = view.getGroups().getLength(); if (!view.isExpanded(selectedGroup)) { if (gindex < gc - 1) { view.onGroupSelect(selectedGroup, false); selectedGroup = groups.getItem(gindex + 1); view.onGroupSelect(selectedGroup, true); view.onGroupSelect(selectedGroup, false); Element r = view.getGroupRow(selectedGroup, 0).cast(); int idx = view.findRowIndex(r); select(idx, false); view.focusRow(idx); return; Element row = view.getRow(lastSelected).cast(); Element group = view.findGroup(row).cast(); deselectAll(); selectedGroup = groups.getItem(groupIndex + 1); view.onGroupSelect(selectedGroup, true); return;
protected Element findGroup(Element el) { return fly(el).findParentElement(".x-grid-group", 10); }