Example usage for com.google.gwt.dom.client TableCellElement getFirstChildElement

List of usage examples for com.google.gwt.dom.client TableCellElement getFirstChildElement

Introduction

In this page you can find the example usage for com.google.gwt.dom.client TableCellElement getFirstChildElement.

Prototype

@Override
    public Element getFirstChildElement() 

Source Link

Usage

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");
    }
}