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

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

Introduction

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

Prototype

public int getCellIndex() 

Source Link

Document

The index of this cell in the row, starting from 0.

Usage

From source file:com.google.gwt.sample.contacts.client.view.ContactsViewImpl.java

private boolean shouldFireClickEvent(TableCellElement cell) {
    boolean shouldFireClickEvent = false;

    if (cell != null) {
        ColumnDefinition<T> columnDefinition = columnDefinitions.get(cell.getCellIndex());

        if (columnDefinition != null) {
            shouldFireClickEvent = columnDefinition.isClickable();
        }/*from   w ww .  j  a va2s. c  o m*/
    }

    return shouldFireClickEvent;
}

From source file:com.google.gwt.sample.contacts.client.view.ContactsViewImpl.java

private boolean shouldFireSelectEvent(TableCellElement cell) {
    boolean shouldFireSelectEvent = false;

    if (cell != null) {
        ColumnDefinition<T> columnDefinition = columnDefinitions.get(cell.getCellIndex());

        if (columnDefinition != null) {
            shouldFireSelectEvent = columnDefinition.isSelectable();
        }/*from   w  ww .j a v  a 2s  . com*/
    }

    return shouldFireSelectEvent;
}

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;/*from   w w w.j  av  a  2s . 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.kaaproject.avro.ui.gwt.client.widget.grid.AvroUiDataGrid.java

License:Apache License

@Override
protected void onBrowserEvent2(Event event) {
    if (hasFilterHeaders()) {
        EventTarget eventTarget = event.getEventTarget();
        if (!Element.is(eventTarget)) {
            return;
        }/* w ww  .j a  v a 2 s.  c  o  m*/
        final Element target = event.getEventTarget().cast();
        TableSectionElement thead = getTableHeadElement();
        TableSectionElement targetTableSection = null;
        TableCellElement targetTableCell = null;
        Element headerParent = null;

        Element maybeTableCell = null;
        Element cur = target;

        while (cur != null && targetTableSection == null) {
            if (cur == thead) {
                targetTableSection = cur.cast();
                if (maybeTableCell != null) {
                    targetTableCell = maybeTableCell.cast();
                    break;
                }
            }

            String tagName = cur.getTagName();
            if (TableCellElement.TAG_TD.equalsIgnoreCase(tagName)
                    || TableCellElement.TAG_TH.equalsIgnoreCase(tagName)) {
                maybeTableCell = cur;
            }

            if (headerParent == null && getHeaderBuilder().isHeader(cur)) {
                headerParent = cur;
            }

            cur = cur.getParentElement();
        }
        if (targetTableCell != null) {
            String eventType = event.getType();
            TableRowElement targetTableRow = targetTableCell.getParentElement().cast();
            int col = targetTableCell.getCellIndex();
            if (targetTableSection == thead) {
                if (headerParent != null) {
                    Header<?> header = getHeaderBuilder().getHeader(headerParent);
                    if (header != null) {
                        int headerIndex = getHeaderBuilder().getRowIndex(targetTableRow);
                        if (header instanceof StringFilterHeader) {
                            if (StringFilterHeader.isFilterFocusEvent(eventType)) {
                                filterFocusedCellColumn = col;
                                filterFocusedCellRow = headerIndex;
                            } else {
                                filterFocusedCellColumn = -1;
                                filterFocusedCellRow = -1;
                            }
                        }
                    }
                }
            }
        }
    }
    super.onBrowserEvent2(event);
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.feature.DeleteCol.java

License:Open Source License

/**
 * {@inheritDoc}/*ww  w .  j  av  a  2 s  .  com*/
 * 
 * @see AbstractTableFeature#execute(String)
 */
public boolean execute(String parameter) {
    TableCellElement caretCell = TableUtils.getInstance()
            .getCell(TableUtils.getInstance().getCaretNode(rta.getDocument()));
    int cellIndex = caretCell.getCellIndex();
    TableElement table = TableUtils.getInstance().getTable(caretCell);
    NodeList<TableRowElement> rows = table.getRows();

    // Move caret
    TableCellElement newCaretCell = TableUtils.getInstance().getPreviousCellInRow(caretCell);
    if (newCaretCell == null) {
        newCaretCell = TableUtils.getInstance().getNextCellInRow(caretCell);
    }
    if (newCaretCell != null) {
        TableUtils.getInstance().putCaretInNode(rta, newCaretCell);
    }

    // Loop over table rows to delete a cell in each of them
    for (int i = 0; i < rows.getLength(); i++) {
        TableRowElement currentRow = rows.getItem(i);
        currentRow.deleteCell(cellIndex);
    }

    return true;
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.util.TableUtils.java

License:Open Source License

/**
 * Get next cell in cell's row.//from w  w  w. j a  v a  2  s.com
 * 
 * @param cell currently edited cell.
 * @return the next TableCellElement if any, null otherwise.
 */
public TableCellElement getNextCellInRow(TableCellElement cell) {
    TableRowElement row = getRow(cell);
    NodeList<TableCellElement> cells = row.getCells();
    if (cells.getLength() > cell.getCellIndex() + 1) {
        return cells.getItem(cell.getCellIndex() + 1);
    } else {
        return null;
    }
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.util.TableUtils.java

License:Open Source License

/**
 * Get previous cell in cell's row./*from w  w w  .ja va  2  s  .c o m*/
 * 
 * @param cell currently edited cell.
 * @return the previous TableCellElement if any, null otherwise.
 */
public TableCellElement getPreviousCellInRow(TableCellElement cell) {
    TableRowElement row = getRow(cell);
    NodeList<TableCellElement> cells = row.getCells();
    if (cell.getCellIndex() > 0) {
        return cells.getItem(cell.getCellIndex() - 1);
    } else {
        return null;
    }
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.util.TableUtils.java

License:Open Source License

/**
 * Get next cell in cell's column./*from   ww  w.  j a v a2 s  .c o m*/
 * 
 * @param cell currently edited cell.
 * @return the next TableCellElement if any, null otherwise.
 */
public TableCellElement getNextCellInColumn(TableCellElement cell) {
    TableRowElement row = getRow(cell);
    TableElement table = getTable(row);
    NodeList<TableRowElement> rows = table.getRows();
    if (rows.getLength() > row.getRowIndex() + 1) {
        return rows.getItem(row.getRowIndex() + 1).getCells().getItem(cell.getCellIndex());
    } else {
        return null;
    }
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.util.TableUtils.java

License:Open Source License

/**
 * Get previous cell in cell's column.//from  ww w.j a  va 2  s.  c o m
 * 
 * @param cell currently edited cell.
 * @return the previous TableCellElement if any, null otherwise.
 */
public TableCellElement getPreviousCellInColumn(TableCellElement cell) {
    TableRowElement row = getRow(cell);
    TableElement table = getTable(row);
    NodeList<TableRowElement> rows = table.getRows();
    if (row.getRowIndex() > 0) {
        return rows.getItem(row.getRowIndex() - 1).getCells().getItem(cell.getCellIndex());
    } else {
        return null;
    }
}

From source file:org.xwiki.gwt.wysiwyg.client.plugin.table.util.TableUtils.java

License:Open Source License

/**
 * Insert a column in the currently edited table.
 * //from  www.  ja v  a  2 s . c  om
 * @param doc the Document to get the selection from.
 * @param insertBefore indicates the creation position relatively to the currently edited column.
 */
public void insertCol(Document doc, boolean insertBefore) {
    TableCellElement cell = getCell(getCaretNode(doc));
    TableElement table = getTable(cell);
    NodeList<TableRowElement> rows = table.getRows();
    int index = cell.getCellIndex();

    // Loop over table rows to create a new cell in each of them
    for (int i = 0; i < rows.getLength(); i++) {
        TableRowElement currentRow = rows.getItem(i);
        TableCellElement newCell;

        if (isHeaderRow(currentRow)) {
            newCell = doc.createTHElement();
            if (insertBefore) {
                currentRow.insertBefore(newCell, currentRow.getCells().getItem(index));
            } else {
                DOMUtils.getInstance().insertAfter(newCell, currentRow.getCells().getItem(index));
            }
        } else {
            newCell = currentRow.insertCell(insertBefore ? index : index + 1);
        }
        newCell.setInnerHTML(CELL_DEFAULTHTML);
    }
}