List of usage examples for com.google.gwt.dom.client NodeList getItem
public T getItem(int index)
From source file:com.extjs.gxt.ui.client.widget.ColorPalette.java
License:sencha.com license
private int indexOf(NodeList<Element> elements, Element elem) { for (int i = 0; i < elements.getLength(); i++) { if (elements.getItem(i) == elem) { return i; }//from w w w .java2 s .c o m } return -1; }
From source file:com.extjs.gxt.ui.client.widget.DataView.java
License:Open Source License
protected void renderAll() { if (template == null) { template = new Template(defaultTemplate); }/*ww w.ja v a 2s . c o m*/ StringBuffer sb = new StringBuffer(); for (DataViewItem item : getItems()) { sb.append(bulkRenderItem(item)); } getElement().setInnerHTML(sb.toString()); NodeList<Element> elems = el().select(itemSelector); for (int i = 0; i < elems.getLength(); i++) { DataViewItem item = getItem(i); item.setElement(elems.getItem(i)); } }
From source file:com.extjs.gxt.ui.client.widget.DatePicker.java
License:sencha.com license
@Override protected void onRender(Element target, int index) { setElement(DOM.createDiv(), target, index); disableTextSelection(true);/* w ww . ja va2 s . com*/ header = new Header(); header.render(getElement()); days = new Grid(1, 7); days.setStyleName("x-date-days"); days.setCellPadding(0); days.setCellSpacing(0); days.setBorderWidth(0); String[] dn = constants.narrowWeekdays(); String[] longdn = constants.weekdays(); firstDOW = getCalculatedStartDay(); days.setHTML(0, 0, "<span>" + dn[(0 + firstDOW) % 7] + "</span>"); days.setHTML(0, 1, "<span>" + dn[(1 + firstDOW) % 7] + "</span>"); days.setHTML(0, 2, "<span>" + dn[(2 + firstDOW) % 7] + "</span>"); days.setHTML(0, 3, "<span>" + dn[(3 + firstDOW) % 7] + "</span>"); days.setHTML(0, 4, "<span>" + dn[(4 + firstDOW) % 7] + "</span>"); days.setHTML(0, 5, "<span>" + dn[(5 + firstDOW) % 7] + "</span>"); days.setHTML(0, 6, "<span>" + dn[(6 + firstDOW) % 7] + "</span>"); days.getRowFormatter().getElement(0).setAttribute("role", "row"); for (int i = 0; i < 7; i++) { days.getCellFormatter().getElement(0, i).setAttribute("role", "columnheader"); days.getCellFormatter().getElement(0, i).setAttribute("aria-label", longdn[i]); } grid = new Grid(6, 7); grid.setStyleName("x-date-inner"); grid.setCellSpacing(0); grid.setCellPadding(0); grid.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { Event evt = DOM.eventGetCurrentEvent(); ComponentEvent be = new ComponentEvent(DatePicker.this, evt); onDayClick(be); } }); String s = GXT.isAriaEnabled() ? "<a role=gridcell tabindex=0><span role=presentation></span></a>" : "<a href=#><span></span></a>"; for (int row = 0; row < 6; row++) { if (GXT.isAriaEnabled()) { grid.getRowFormatter().getElement(row).setAttribute("role", "row"); } for (int col = 0; col < 7; col++) { grid.setHTML(row, col, s); if (GXT.isAriaEnabled()) { grid.getCellFormatter().getElement(row, col).setAttribute("role", "presentation"); } } } footer = new com.google.gwt.user.client.ui.HorizontalPanel(); footer.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); footer.setWidth("100%"); todayBtn = new Button(messages.getTodayText(), new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { selectToday(); } }); if (messages.getTodayTip() != null) { todayBtn.setToolTip(messages.getTodayTip()); } footer.add(todayBtn); todayBtn.getElement().getParentElement().setClassName("x-date-bottom"); monthPicker = new El(DOM.createDiv()); monthPicker.dom.setClassName("x-date-mp"); gridWrapper = new El((Element) Document.get().createElement("DIV")); gridWrapper.dom.setAttribute("role", "grid"); gridWrapper.appendChild(days.getElement()); gridWrapper.appendChild(grid.getElement()); getElement().appendChild(header.getElement()); getElement().appendChild(gridWrapper.dom); getElement().appendChild(footer.getElement()); getElement().appendChild(monthPicker.dom); El btntext = monthBtn.el().selectNode("button"); btntext.setId(XDOM.getUniqueId()); gridWrapper.dom.setAttribute("aria-labelledby", btntext.getId()); setWidth(177); cells = Util.toElementArray(el().select("table.x-date-inner tbody td")); textNodes = Util.toElementArray(el().select("table.x-date-inner tbody span")); activeDate = value != null ? value : new DateWrapper(); update(activeDate); if (GXT.isAriaEnabled()) { String[] tags = new String[] { "table", "tbody", "tr", "td" }; for (int i = 0; i < tags.length; i++) { NodeList<Element> elems = el().select(tags[i]); for (int j = 0; j < elems.getLength(); j++) { if (elems.getItem(j).getAttribute("role").equals("")) { elems.getItem(j).setAttribute("role", "presentation"); } if (i == 3) { elems.getItem(j).setId(XDOM.getUniqueId()); } } } } el().makePositionable(); el().setTabIndex(0); el().setElementAttribute("hideFocus", "true"); sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS | Event.ONFOCUS); new KeyNav<ComponentEvent>(this) { @Override public void onDown(ComponentEvent ce) { onKeyDown(ce); } @Override public void onEnd(ComponentEvent ce) { onKeyEnd(ce); } @Override public void onEnter(ComponentEvent ce) { onKeyEnter(ce); } @Override public void onHome(ComponentEvent ce) { onKeyHome(ce); } @Override public void onKeyPress(ComponentEvent ce) { // space bar pressed if (ce.getKeyCode() == 32) { selectToday(); } } @Override public void onLeft(ComponentEvent ce) { onKeyLeft(ce); } @Override public void onPageDown(ComponentEvent ce) { onKeyPageDown(ce); } @Override public void onPageUp(ComponentEvent ce) { onKeyPageUp(ce); } @Override public void onRight(ComponentEvent ce) { onKeyRight(ce); } @Override public void onUp(ComponentEvent ce) { onKeyUp(ce); } }; }
From source file:com.extjs.gxt.ui.client.widget.grid.BufferView.java
License:sencha.com license
protected void doClean() { if (grid == null || !grid.isViewReady() || !bufferEnabled) { return;//from w ww .ja v a 2 s . c o m } int count = getVisibleRowCount(); if (count > 0) { int[] vr = getVisibleRows(count); vr[0] -= cacheSize; vr[1] += cacheSize; int i = 0; NodeList<Element> rows = getRows(); // if first is less than 0, all rows have been rendered // so lets clean the end... if (vr[0] <= 0) { i = vr[1] + 1; } for (int len = grid.getStore().getCount(); i < len; i++) { // if current row is outside of first and last and // has content, update the innerHTML to nothing if ((i < vr[0] || i > vr[1])) { detachWidget(i, false); widgetList.set(i, null); cleanModel(ds.getAt(i)); rows.getItem(i).setInnerHTML(""); } } } }
From source file:com.extjs.gxt.ui.client.widget.grid.ColumnHeader.java
License:sencha.com license
protected void adjustColumnWidths(int[] columnWidths) { NodeList<Element> ths = tbody.getFirstChildElement().getChildNodes().cast(); if (ths == null) { return;/* www. j a va 2 s. c om*/ } for (int i = 0; i < columnWidths.length; i++) { if (cm.isHidden(i)) { continue; } ths.getItem(getDomIndexByColumn(i)).getStyle().setPropertyPx("width", columnWidths[i]); } cleanCells(); for (int i = 0; i < heads.size(); i++) { Head head = heads.get(i); if (head != null && !head.isRendered()) continue; String id = head.getElement().getAttribute("x-col"); ColumnConfig cc = cm.getColumnById(id); if (cc == null) return; int w = cc.getWidth(); Element cell = head.getElement().getParentElement().cast(); adjustCellWidth(cell, w); } for (int i = 0; i < groups.size(); i++) { Group group = groups.get(i); if (group != null && !group.isRendered()) continue; Element cell = group.getElement().getParentElement().cast(); int colspan = 1; String scolspan = cell.getAttribute("colspan"); if (scolspan != null && !scolspan.equals("")) { colspan = Integer.parseInt(scolspan); } int w = 0; int mark = group.config.getColumn(); for (int k = mark; k < (mark + colspan); k++) { ColumnConfig c = cm.getColumn(k); if (c.isHidden()) { mark++; continue; } w += cm.getColumnWidth(k); } mark += colspan; adjustCellWidth(cell, w); } }
From source file:com.extjs.gxt.ui.client.widget.grid.ColumnHeader.java
License:sencha.com license
protected void cleanCells() { NodeList<Element> tds = DomQuery.select("tr.x-grid3-hd-row > td", table.getElement()); for (int i = 0; i < tds.getLength(); i++) { Element td = tds.getItem(i); if (!td.hasChildNodes()) { El.fly(td).removeFromParent(); }/* www . j av a2s. co m*/ } }
From source file:com.extjs.gxt.ui.client.widget.grid.GridSelectionModel.java
License:sencha.com license
protected void onKeyDown(GridEvent<M> e) { if (GXT.isFocusManagerEnabled()) { if (selectedGroup == null && (selectedHeader != null || selected.size() == 0)) { e.cancelBubble();/*ww w .j a v a2s . c o m*/ if (e.isAltKey()) { grid.getView().getHeader().showColumnMenu(selectedHeader.column); return; } if (selectedHeader != null) { selectedHeader.deactivate(); } select(0, false); return; } if (grouped) { GroupingView view = (GroupingView) grid.getView(); NodeList<Element> groups = view.getGroups().cast(); int gc = view.getGroups().getLength(); if (selectedGroup != null) { int gindex = indexOf(groups, selectedGroup); if (!view.isExpanded(selectedGroup)) { if (gindex < gc - 1) { view.onGroupSelect(selectedGroup, false); selectedGroup = groups.getItem(gindex + 1); view.onGroupSelect(selectedGroup, true); } return; } view.onGroupSelect(selectedGroup, false); Element r = view.getGroupRow(selectedGroup, 0).cast(); selectedGroup = null; if (r != null) { int idx = view.findRowIndex(r); select(idx, false); view.focusRow(idx); return; } } if (lastSelected != null) { Element row = view.getRow(lastSelected).cast(); Element group = view.findGroup(row).cast(); int totalGroups = groups.getLength(); int groupIndex = indexOf(groups, group); NodeList<Element> groupRows = group.getChildNodes().getItem(1).getChildNodes().cast(); int rowsInGroup = group.getChildNodes().getItem(1).getChildNodes().getLength(); int rowInGroupIndex = indexOf(groupRows, row); if (rowInGroupIndex == rowsInGroup - 1) { if (groupIndex < totalGroups - 1) { deselectAll(); selectedGroup = groups.getItem(groupIndex + 1); view.onGroupSelect(selectedGroup, true); return; } } } } } if (!e.isControlKey() && selected.size() == 0 && getLastFocused() == null) { select(0, false); } else { int idx = listStore.indexOf(getLastFocused()); if (idx >= 0) { if (e.isControlKey() || (e.isShiftKey() && isSelected(listStore.getAt(idx + 1)))) { if (!e.isControlKey()) { deselect(idx); } M lF = listStore.getAt(idx + 1); if (lF != null) { setLastFocused(lF); grid.getView().focusCell(idx + 1, 0, false); } } else { if (e.isShiftKey() && lastSelected != getLastFocused()) { select(listStore.indexOf(lastSelected), idx + 1, true); grid.getView().focusCell(idx + 1, 0, false); } else { if (idx + 1 < listStore.getCount()) { selectNext(e.isShiftKey()); grid.getView().focusCell(idx + 1, 0, false); } } } } } e.preventDefault(); }
From source file:com.extjs.gxt.ui.client.widget.grid.GridSelectionModel.java
License:sencha.com license
protected void onKeyUp(GridEvent<M> e) { if (GXT.isFocusManagerEnabled()) { if (selectedHeader != null) { return; }/*from w w w. j a va 2 s.co m*/ if (listStore.indexOf(lastSelected) == 0 && !grouped) { deselectAll(); ColumnHeader header = grid.getView().getHeader(); Head h = getHead(0, false); if (h != null) { selectedHeader = h; header.selectHeader(header.indexOf(h)); } } if (grouped) { GroupingView view = (GroupingView) grid.getView(); NodeList<Element> groups = view.getGroups().cast(); if (selectedGroup != null) { int gindex = indexOf(groups, selectedGroup); if (gindex == 0) { deselectAll(); ColumnHeader header = grid.getView().getHeader(); Head h = getHead(0, false); if (h != null) { selectedHeader = h; header.selectHeader(header.indexOf(h)); } } view.onGroupSelect(selectedGroup, false); selectedGroup = null; if (gindex > 0) { selectedGroup = groups.getItem(gindex - 1); 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)); } else { view.onGroupSelect(selectedGroup, true); } return; } } if (lastSelected != null) { 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; } } } } int idx = listStore.indexOf(getLastFocused()); if (idx >= 0) { if (e.isControlKey() || (e.isShiftKey() && isSelected(listStore.getAt(idx - 1)))) { if (!e.isControlKey()) { deselect(idx); } M lF = listStore.getAt(idx - 1); if (lF != null) { setLastFocused(lF); grid.getView().focusCell(idx - 1, 0, false); } } else { if (e.isShiftKey() && lastSelected != getLastFocused()) { select(listStore.indexOf(lastSelected), idx - 1, true); grid.getView().focusCell(idx - 1, 0, false); } else { if (idx > 0) { selectPrevious(e.isShiftKey()); grid.getView().focusCell(idx - 1, 0, false); } } } } e.preventDefault(); }
From source file:com.extjs.gxt.ui.client.widget.grid.GridSelectionModel.java
License:sencha.com license
private int indexOf(NodeList<Element> elems, Element elem) { for (int i = 0; i < elems.getLength(); i++) { if (elems.getItem(i) == elem) { return i; }//from ww w. j a va 2 s . c om } return -1; }
From source file:com.extjs.gxt.ui.client.widget.grid.GridView.java
License:sencha.com license
protected void initElements() { NodeList<Node> cs = grid.getElement().getFirstChild().getChildNodes(); el = grid.el().firstChild();//from w w w .j a v a2s.c o m mainWrap = new El((com.google.gwt.user.client.Element) cs.getItem(0)); mainHd = mainWrap.firstChild(); if (grid.isHideHeaders()) { mainHd.setVisible(false); } innerHd = mainHd.firstChild(); scroller = mainWrap.getChild(1); scroller.addEventsSunk(Event.ONSCROLL); if (forceFit) { scroller.setStyleAttribute("overflowX", "hidden"); } mainBody = scroller.firstChild(); focusEl = scroller.getChild(1); grid.swallowEvent(Events.OnClick, focusEl.dom, true); }