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

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

Introduction

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

Prototype

@Override
    public void setAttribute(String name, String value) 

Source Link

Usage

From source file:com.extjs.gxt.ui.client.widget.layout.TableLayout.java

License:sencha.com license

protected Element getNextCell(Component widget) {
    if (cells == null) {
        cells = new ArrayList<List<Boolean>>();
    }/* www .  j a  va2s . c o  m*/

    TableData data = (TableData) getLayoutData(widget);
    if (data == null) {
        data = new TableData();
        setLayoutData(widget, data);
    }

    TableCellElement td = DOM.createTD().cast();
    td.setClassName("x-table-layout-cell");
    td.setAttribute("role", "presentation");

    int[] cell = getNextNonSpan(currentColumn, currentRow);
    int curCol = currentColumn = cell[0];
    int curRow = currentRow = cell[1];

    for (int rowIndex = curRow; rowIndex < curRow
            + (data.getRowspan() != -1 ? data.getRowspan() : 1); rowIndex++) {
        setupList(rowIndex);
        for (int colIndex = curCol; colIndex < curCol
                + (data.getColspan() != -1 ? data.getColspan() : 1); colIndex++) {
            cells.get(rowIndex).set(colIndex, true);
        }
    }

    if (data.getColspan() != 1) {
        td.setColSpan(data.getColspan());
    }

    if (data.getRowspan() != 1) {
        td.setRowSpan(data.getRowspan());
    }

    if (data.getPadding() > 0) {
        td.getStyle().setPropertyPx("padding", data.getPadding());
    } else if (cellPadding > 0) {
        td.getStyle().setPropertyPx("padding", cellPadding);
    }

    if (data.getStyleName() != null) {
        fly(td).addStyleName(data.getStyleName());
    }

    if (data.horizontalAlign != null) {
        td.setAlign(data.horizontalAlign.name());
    } else if (cellHorizontalAlign != null) {
        td.setAlign(cellHorizontalAlign.name());
    }

    if (data.verticalAlign != null) {
        td.setVAlign(data.verticalAlign.name());
    } else if (cellVerticalAlign != null) {
        td.setVAlign(cellVerticalAlign.name());
    }

    if (data.getHeight() != null) {
        td.setAttribute("height", data.getHeight());
    }
    if (data.getWidth() != null) {
        td.setAttribute("width", data.getWidth());
    }

    if (data.getStyle() != null) {
        fly(td).applyStyles(data.getStyle());
    }
    getRow(curRow).dom.appendChild(td);
    return td.cast();
}

From source file:com.jwh.gwt.fasttable.sample.client.FastTableSample.java

License:Open Source License

private CellListener<SampleModel> buildCellListener() {
    return new CellListener<SampleModel>() {

        /**/*from   w  w w  . j  av a 2 s. c  om*/
         * @param event
         */
        @Override
        public void handlerCellEvent(final CellEvent<SampleModel> event) {
            final Document document = tablePanel.getElement().getOwnerDocument();
            switch (event.getOnEvent()) {
            case onClick:
                SelectionListener<SampleModel> listener = new SelectionListener<SampleModel>() {
                    @Override
                    public void select(SampleModel object) {
                        try {
                            showDetailPanel(event, document);
                        } catch (NotFound e) {
                        }
                    }

                    @Override
                    public void unselect(SampleModel object) {
                        try {
                            builder.findRowElement(object).getNextSibling().removeFromParent();
                        } catch (NotFound e) {
                        }
                    }
                };
                try {
                    final Element rowElement = event.getRowElement(document);
                    final Element columnElement = rowElement.getFirstChildElement();
                    // Test multi vs single select by changing this flag
                    boolean isMultiSelect = true;
                    isMultiSelect = false;
                    if (isMultiSelect) {
                        builder.multiSelect(columnElement, event.domainObject, listener);
                    } else {
                        builder.singleSelect(columnElement, event.domainObject, listener);
                    }
                } catch (NotFound e) {
                } catch (AbortOperation e) {
                }
                break;
            case onMouseOver:
                try {
                    event.getRowElement(document).addClassName(HIGHLIGHT);
                } catch (final NotFound e1) {
                }
                break;
            case onMouseOut:
                try {
                    event.getRowElement(document).removeClassName(HIGHLIGHT);
                } catch (final NotFound e1) {
                }
                break;
            default:
                break;
            }

        }

        /**
         * Show a panel under the selected item
         * 
         * @param event
         * @param document
         * @throws NotFound
         */
        private void showDetailPanel(CellEvent<SampleModel> event, final Document document) throws NotFound {
            final SampleModel d = event.getDomainObject();
            final TableRowElement newRow = event.insertRowAfter(document);
            final TableCellElement td = document.createTDElement();
            td.addClassName(DROP_PANEL);
            // Note: "colSpan" must have uppercase 'S' for IE
            td.setAttribute("colSpan", "6");
            newRow.appendChild(td);
            try {
                LabelValueUtil util = new LabelValueUtil();
                util.table.setStyle(Style.BORDER_NONE);
                util.labelValue("Name", d.name);
                util.prepareAttribute("rowSpan", "2");
                final String buttonId = util.button("OK");
                util.newRow();
                util.labelValue("Street", d.street);
                util.newRow();
                util.labelValue("City, State ", d.city + ", " + d.state);
                util.newRow();
                util.labelValue("Zip", d.zip);
                util.newRow();
                final String html = util.toHtml();
                td.setInnerHTML(html);
                final Element okButton = document.getElementById(buttonId);
                DOM.setEventListener((com.google.gwt.user.client.Element) okButton, new EventListener() {
                    @Override
                    public void onBrowserEvent(Event event) {
                        switch (event.getTypeInt()) {
                        case Event.ONMOUSEDOWN:
                            Window.alert(
                                    "This demonstrates how to attach events to content created with setInnerHtml()");
                            break;
                        case Event.ONMOUSEOVER:
                            okButton.addClassName(Style.BUTTON_OVER);
                            break;
                        case Event.ONMOUSEOUT:
                            okButton.removeClassName(Style.BUTTON_OVER);
                            break;
                        default:
                            break;
                        }
                    }
                });
                DOM.sinkEvents((com.google.gwt.user.client.Element) okButton,
                        Event.ONMOUSEOUT | Event.ONMOUSEDOWN | Event.ONMOUSEOVER);
            } catch (Exception e) {
            }
        }
    };
}

From source file:org.cruxframework.crux.widgets.client.grid.GridFlexTable.java

License:Apache License

public void joinCells(int row) {
    TableRowElement tr = this.getRowElement(row).cast();
    NodeList<TableCellElement> cells = tr.getCells();
    int numTds = cells.getLength();

    if (numTds > 1) {
        for (int i = 1; i < numTds; i++) {
            // We always remove the second cell. 
            // This is because we want to keep the first one 
            //    and the cell indexes are in movement due 
            //    to the removing process.
            tr.removeChild(cells.getItem(1));
        }/*from   w ww. ja v  a2  s  . c om*/

        TableCellElement td = this.getCellElement(row, 0).cast();
        td.setAttribute("colSpan", "" + numTds);
        td.setInnerHTML(".");
    }
}