List of usage examples for com.google.gwt.dom.client TableCellElement getFirstChildElement
@Override
public Element getFirstChildElement()
From source file:com.bearsoft.gwt.ui.widgets.grid.GridSection.java
public <C> void redrawAllRowsInColumn(int aIndex, ListDataProvider<T> aDataProvider) { if (aIndex >= 0 && aIndex < getColumnCount()) { int start = getVisibleRange().getStart(); Column<T, C> column = (Column<T, C>) getColumn(aIndex); Cell<C> cell = column.getCell(); List<T> data = aDataProvider.getList(); ProvidesKey<T> keys = getKeyProvider(); NodeList<TableRowElement> rows = getTableBodyElement().getRows(); for (int i = 0; i < rows.getLength(); i++) { TableRowElement row = rows.getItem(i); NodeList<TableCellElement> cells = row.getCells(); if (aIndex >= 0 && aIndex < cells.getLength()) { TableCellElement toRerender = cells.getItem(aIndex); if (toRerender != null) { SafeHtmlBuilder sb = new SafeHtmlBuilder(); int dataIdx = start + i; if (dataIdx >= 0 && dataIdx < data.size()) { T object = data.get(dataIdx); Cell.Context cx = new Cell.Context(start + i, aIndex, keys.getKey(object)); cell.render(cx, column.getValue(object), sb); // Take into account, that cell builder supports // some // maps // to cells' divs // and generates them. So we have to work with first // <div> // in <td>. toRerender.getFirstChildElement().setInnerSafeHtml(sb.toSafeHtml()); }//w w w .j av a2 s. c o m } } } } }
From source file:com.google.gwt.sample.contacts.client.view.ContactsViewImpl.java
public void setRowData(List<T> rowData) { this.rowData = rowData; TableElement table = Document.get().createTableElement(); TableSectionElement tbody;/* w ww . j a v a 2 s . c o m*/ table.appendChild(tbody = Document.get().createTBodyElement()); for (int i = 0; i < rowData.size(); ++i) { TableRowElement row = tbody.insertRow(-1); T t = rowData.get(i); for (int j = 0; j < columnDefinitions.size(); ++j) { TableCellElement cell = row.insertCell(-1); StringBuilder sb = new StringBuilder(); columnDefinitions.get(j).render(t, sb); cell.setInnerHTML(sb.toString()); // TODO: Really total hack! There's gotta be a better way... Element child = cell.getFirstChildElement(); if (child != null) { Event.sinkEvents(child, Event.ONFOCUS | Event.ONBLUR); } } } contactsTable.setHTML(table.getInnerHTML()); }
From source file:com.gwtmodel.table.view.table.edit.PresentationEditCellHelper.java
License:Apache License
protected void removeErrorStyle() { if (errorInfo.isActive()) { errorInfo.setActive(false);/*w ww . j a v a2 s .com*/ int rowno = errorInfo.getI().row(errorInfo.getKey()); if (rowno == -1) { return; } NodeList<TableCellElement> cList = table.getRowElement(rowno).getCells(); for (int i = 0; i < cList.getLength(); i++) { TableCellElement el = cList.getItem(i); Element elex = el.getFirstChildElement(); assert elex != null : LogT.getT().cannotBeNull(); Element ele = elex.getFirstChildElement(); // assert ele != null : LogT.getT().cannotBeNull(); // it is possible for a cell do not have inner element if (ele == null) { continue; } // assuming that it is HTML describing inner cell String cl = ele.getClassName(); int x = cl.indexOf(IConsts.errorStyle); if (x != -1) { // remove error class attribute cl = cl.replace(IConsts.errorStyle, ""); ele.setClassName(cl); } } } }
From source file:com.vaadin.client.renderers.WidgetRenderer.java
License:Apache License
/** * Returns the widget contained inside the given cell element, or null if it * is not an instance of the given class. Cannot be called for cells that do * not contain a widget.//from w ww . ja v a 2 s. c om * * @param e * the element inside to find a widget * @param klass * the type of the widget to find * @return the widget inside the element, or null if its type does not match */ protected static <W extends Widget> W getWidget(TableCellElement e, Class<W> klass) { W w = WidgetUtil.findWidget(e.getFirstChildElement(), klass); assert w == null || w.getElement() == e.getFirstChildElement() : "Widget not found inside cell"; return w; }
From source file:com.vaadin.client.ui.VTabsheet.java
License:Apache License
/** For internal use only. May be removed or replaced in the future. */ public void updateDynamicWidth() { // Find width consumed by tabs TableCellElement spacerCell = ((TableElement) tb.getElement().cast()).getRows().getItem(0).getCells() .getItem(tb.getTabCount());/*from ww w.j av a 2s . c o m*/ int spacerWidth = spacerCell.getOffsetWidth(); DivElement div = (DivElement) spacerCell.getFirstChildElement(); int spacerMinWidth = spacerCell.getOffsetWidth() - div.getOffsetWidth(); int tabsWidth = tb.getOffsetWidth() - spacerWidth + spacerMinWidth; // Find content width Style style = tabPanel.getElement().getStyle(); String overflow = style.getProperty("overflow"); style.setProperty("overflow", "hidden"); style.setPropertyPx("width", tabsWidth); boolean hasTabs = tabPanel.getWidgetCount() > 0; Style wrapperstyle = null; if (hasTabs) { wrapperstyle = getCurrentlyDisplayedWidget().getElement().getParentElement().getStyle(); wrapperstyle.setPropertyPx("width", tabsWidth); } // Get content width from actual widget int contentWidth = 0; if (hasTabs) { contentWidth = getCurrentlyDisplayedWidget().getOffsetWidth(); } style.setProperty("overflow", overflow); // Set widths to max(tabs,content) if (tabsWidth < contentWidth) { tabsWidth = contentWidth; } int outerWidth = tabsWidth + getContentAreaBorderWidth(); tabs.getStyle().setPropertyPx("width", outerWidth); style.setPropertyPx("width", tabsWidth); if (hasTabs) { wrapperstyle.setPropertyPx("width", tabsWidth); } contentNode.getStyle().setPropertyPx("width", tabsWidth); super.setWidth(outerWidth + "px"); updateOpenTabSize(); }
From source file:com.vaadin.terminal.gwt.client.ui.VTabsheet.java
License:Open Source License
private void updateDynamicWidth() { // Find width consumed by tabs TableCellElement spacerCell = ((TableElement) tb.getElement().cast()).getRows().getItem(0).getCells() .getItem(tb.getTabCount());/* ww w . j ava2 s . c o m*/ int spacerWidth = spacerCell.getOffsetWidth(); DivElement div = (DivElement) spacerCell.getFirstChildElement(); int spacerMinWidth = spacerCell.getOffsetWidth() - div.getOffsetWidth(); int tabsWidth = tb.getOffsetWidth() - spacerWidth + spacerMinWidth; // Find content width Style style = tp.getElement().getStyle(); String overflow = style.getProperty("overflow"); style.setProperty("overflow", "hidden"); style.setPropertyPx("width", tabsWidth); boolean hasTabs = tp.getWidgetCount() > 0; Style wrapperstyle = null; if (hasTabs) { wrapperstyle = tp.getWidget(tp.getVisibleWidget()).getElement().getParentElement().getStyle(); wrapperstyle.setPropertyPx("width", tabsWidth); } // Get content width from actual widget int contentWidth = 0; if (hasTabs) { contentWidth = tp.getWidget(tp.getVisibleWidget()).getOffsetWidth(); } style.setProperty("overflow", overflow); // Set widths to max(tabs,content) if (tabsWidth < contentWidth) { tabsWidth = contentWidth; } int outerWidth = tabsWidth + getContentAreaBorderWidth(); tabs.getStyle().setPropertyPx("width", outerWidth); style.setPropertyPx("width", tabsWidth); if (hasTabs) { wrapperstyle.setPropertyPx("width", tabsWidth); } contentNode.getStyle().setPropertyPx("width", tabsWidth); super.setWidth(outerWidth + "px"); updateOpenTabSize(); }
From source file:org.drools.guvnor.client.widgets.decoratedgrid.VerticalMergableGridWidget.java
License:Apache License
@Override public void onBrowserEvent(Event event) { String eventType = event.getType(); // Get the event target EventTarget eventTarget = event.getEventTarget(); if (!Element.is(eventTarget)) { return;//ww w .ja va2 s .c o m } Element target = event.getEventTarget().cast(); //Check whether "group" widget has been clicked boolean bGroupWidgetClick = isGroupWidgetClicked(event, target); // Find the cell where the event occurred. TableCellElement eventTableCell = findNearestParentCell(target); if (eventTableCell == null) { return; } int htmlCol = eventTableCell.getCellIndex(); Element trElem = eventTableCell.getParentElement(); if (trElem == null) { return; } TableRowElement tr = TableRowElement.as(trElem); int htmlRow = tr.getSectionRowIndex(); // Convert HTML coordinates to physical coordinates CellValue<?> htmlCell = data.get(htmlRow).get(htmlCol); Coordinate eventPhysicalCoordinate = htmlCell.getPhysicalCoordinate(); CellValue<?> eventPhysicalCell = data.get(eventPhysicalCoordinate.getRow()) .get(eventPhysicalCoordinate.getCol()); //Event handlers if (eventType.equals("mousedown")) { handleMousedownEvent(event, eventPhysicalCoordinate, bGroupWidgetClick); return; } else if (eventType.equals("mousemove")) { handleMousemoveEvent(event, eventPhysicalCoordinate); return; } else if (eventType.equals("mouseup")) { handleMouseupEvent(event, eventPhysicalCoordinate); return; } else if (eventType.equals("keydown")) { handleKeyboardNavigationEvent(event); if (event.getKeyCode() == KeyCodes.KEY_ENTER) { // Enter key is a special case; as the selected cell needs to be // sent events and not the cell that GWT deemed the target for // events. switch (rangeDirection) { case UP: eventPhysicalCell = selections.first(); break; case DOWN: eventPhysicalCell = selections.last(); break; } eventPhysicalCoordinate = eventPhysicalCell.getCoordinate(); eventTableCell = tbody.getRows().getItem(eventPhysicalCell.getHtmlCoordinate().getRow()).getCells() .getItem(eventPhysicalCell.getHtmlCoordinate().getCol()); } } // Pass event and physical cell to Cell Widget for handling Cell<CellValue<? extends Comparable<?>>> cellWidget = columns.get(eventPhysicalCoordinate.getCol()) .getCell(); // Implementations of AbstractCell aren't forced to initialise consumed events Set<String> consumedEvents = cellWidget.getConsumedEvents(); if (consumedEvents != null && consumedEvents.contains(eventType)) { Context context = new Context(eventPhysicalCoordinate.getRow(), eventPhysicalCoordinate.getCol(), eventPhysicalCoordinate); //The element containing the cell's HTML is nested inside two DIVs Element parent = eventTableCell.getFirstChildElement().getFirstChildElement(); cellWidget.onBrowserEvent(context, parent, eventPhysicalCell, event, null); } }
From source file:org.jboss.ballroom.client.widgets.tables.DefaultOptionRolloverHandler.java
License:Open Source License
@Override public void onRowOver(int rowNum) { if (!table.isEnabled()) return;/*www. j a v a2 s . c om*/ // toggle rollover tools if (rowNum < provider.getList().size()) { TableCellElement rollOverItem = table.getRowElement(rowNum).getCells().getItem(2); rollOverItem.getFirstChildElement().getFirstChildElement().addClassName("row-tools-enabled"); } }
From source file:org.jboss.ballroom.client.widgets.tables.DefaultOptionRolloverHandler.java
License:Open Source License
@Override public void onRowOut(int rowNum) { if (!table.isEnabled()) return;//from w w w .j av a2s.c o m if (rowNum < provider.getList().size()) { TableCellElement rollOverItem = table.getRowElement(rowNum).getCells().getItem(2); rollOverItem.getFirstChildElement().getFirstChildElement().removeClassName("row-tools-enabled"); } }