public void updateSortIcon(int colIndex, SortDir dir) { for (int i = 0; i < heads.size(); i++) { Head h = heads.get(i); if (h.isRendered()) { if (i == colIndex && dir != SortDir.NONE) { h.addStyleName(dir == SortDir.DESC ? "sort-desc" : "sort-asc"); h.removeStyleName(dir != SortDir.DESC ? "sort-desc" : "sort-asc"); h.el().setElementAttribute("aria-sort", dir != SortDir.DESC ? "descending" : "ascending"); // fixes issue with IE initially hiding sort icon on change h.el().repaint(); } else { h.el().removeStyleName("sort-asc", "sort-desc"); h.el().setElementAttribute("aria-sort", "none"); } } } }
if ((g == null && s == null) || (g != null && g.equals(s))) { active = h; boolean before = de.getClientX() < active.getAbsoluteLeft() + active.getWidth() / 2; showStatusIndicator(true); statusIndicatorTop.alignTo(active.el().dom, "b-tl", new int[] {-1, 0}); statusIndicatorBottom.alignTo(active.el().dom, "t-bl", new int[] {-1, 0}); } else { statusIndicatorTop.alignTo(active.el().dom, "b-tr", new int[] {1, 0}); statusIndicatorBottom.alignTo(active.el().dom, "t-br", new int[] {1, 0});
if (head != null && !head.isRendered()) continue; String id = head.getElement().getAttribute("x-col"); Element cell = head.getElement().getParentElement().cast(); adjustCellWidth(cell, w);
return; } else if (selectedHeader != null && kc == KeyCodes.KEY_DOWN) { selectedHeader.deactivate(); int idx = selectedHeader.column; selectCell(0, idx);
selectedHeader.deactivate();
h.getElement().removeAttribute("aria-haspopup"); if (GXT.isAriaEnabled()) { h.getElement().setTitle(headerCheckTitle); int idx = grid.getView().getHeader().indexOf(selectedHeader); if (grid.getColumnModel().getColumn(idx) == config) { boolean isChecked = selectedHeader.el().getParent().hasStyleName("x-grid3-hd-checker-on"); Head h = selectedHeader; h.getElement().getFirstChildElement().setAttribute("aria-selected", isChecked ? "true" : "false"); if (isChecked) { setChecked(false);
@Override protected void onRender(Element target, int index) { setElement(DOM.createDiv(), target, index); btn = Document.get().createAnchorElement(); btn.setHref("#"); btn.setClassName("x-grid3-hd-btn"); img = Document.get().createImageElement(); img.setSrc(GXT.BLANK_IMAGE_URL); img.setClassName("x-grid3-sort-icon"); el().dom.appendChild(btn); if (config.getWidget() != null) { Element span = Document.get().createSpanElement().cast(); widget = config.getWidget(); span.appendChild(widget.getElement()); getElement().appendChild(span); } else { text = new Html(config.getHeaderHtml()); text.setTagName("span"); text.render(el().dom); } el().dom.appendChild(img); String tip = config.getToolTip(); if (tip != null) { getElement().setAttribute("qtip", tip); } setAriaRole(config.ariaIgnore ? "presentation" : "columnheader"); setAriaState("aria-haspopup", "true"); setAriaState("aria-owns", getId() + "-menu"); sinkEvents(Event.ONCLICK | Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.FOCUSEVENTS | Event.ONKEYPRESS); }
Region r = header.el().getRegion(); int hw = splitterWidth;
/** * Shows the column's header context menu. * * @param column the column index */ public void showColumnMenu(final int column) { menu = getContextMenu(column); ComponentEvent ge = createColumnEvent(this, column, menu); if (!container.fireEvent(Events.HeaderContextMenu, ge)) { return; } if (menu != null) { final Head h = getHead(column); menu.setId(h.getId() + "-menu"); h.activateTrigger(true); menu.addListener(Events.Hide, new Listener<BaseEvent>() { public void handleEvent(BaseEvent be) { h.activateTrigger(false); container.focus(); if (GXT.isFocusManagerEnabled()) { selectHeader(column); } } }); menu.show(h.getTrigger(), "tl-bl?"); } }
protected void onDragStart(DragEvent e) { headerDisabled = true; dragging = true; setStyleAttribute("borderLeft", "1px solid black"); setStyleAttribute("cursor", "default"); el().setStyleAttribute("opacity", "1"); el().setWidth(1); startX = e.getX(); int cols = cm.getColumnCount(); for (int i = 0, len = cols; i < len; i++) { if (cm.isHidden(i) || !cm.isResizable(i)) continue; Element hd = getHead(i).getElement(); if (hd != null) { Region rr = El.fly(hd).getRegion(); if (startX > rr.right - 5 && startX < rr.right + 5) { colIndex = heads.indexOf(getHead(i)); if (colIndex != -1) break; } } } if (colIndex > -1) { Element c = getHead(colIndex).getElement(); int x = startX; int minx = x - fly((com.google.gwt.user.client.Element) c).getX() - minColumnWidth; int maxx = (container.el().getX() + container.el().getWidth()) - e.getEvent().getClientX(); d.setXConstraint(minx, maxx); } }
public void updateColumnHeadings() { int cols = grid.getColumnModel().getColumnCount(); for (int i = 0; i < cols; i++) { ColumnConfig config = grid.getColumnModel().getColumn(i); if (!config.isHidden()) { ColumnHeader header = grid.getView().getHeader(); if (header != null) { Head h = header.getHead(i); if (h != null && h.isRendered()) { Filter f = getFilter(config.getDataIndex()); if (f != null) { h.el().setStyleName(filterStyle, f.isActive()); } } } } } }
private void onMouseOut(ComponentEvent ce) { deactivate(); }
protected Head createNewHead(ColumnConfig config) { return new Head(config); }
private void onMouseOver(ComponentEvent ce) { if (headerDisabled) { return; } activate(); } }
protected void selectHeader(int index) { Head h = getHead(index); if (h != null && h.isVisible()) { for (Head head : heads) { head.removeStyleName("x-column-header-sel"); head.deactivate(); } h.addStyleName("x-column-header-sel"); h.activate(); FocusFrame.get().frame(h); container.getAriaSupport().setState("aria-activedescendant", h.getId()); } }
public Head(ColumnConfig column) { this.config = column; this.column = cm.indexOf(column); baseStyle = "x-grid3-hd-inner x-grid3-hd-" + column.getId(); if (column.getColumnStyleName() != null) { baseStyle += " " + column.getColumnStyleName(); } heads.add(this); render(DOM.createDiv()); getElement().setAttribute("x-col", column.getId()); }
protected void deactivate() { if (isRendered()) { el().findParent("td", 3).removeStyleName("x-grid3-hd-over"); } }
public void activateTrigger(boolean activate) { El e = el().findParent("td", 3); if (e != null) { e.setStyleName("x-grid3-hd-menu-open", activate); } }
public void updateWidth(int width) { if (!config.isHidden()) { El td = el().findParent("td", 3); td.setWidth(width); el().setWidth(width - td.getFrameWidth("lr"), true); Element th = getTableHeader(column); th.getStyle().setPropertyPx("width", width); } }