Refine search
@Override public void redraw() { if (this.colspan != null) { TableCellElement.as(this.getElement()).setColSpan(this.colspan); } }
this.colGroupEnabled = enableColGroup; table = getElement().cast(); table.setCellSpacing(0); if (enableColGroup) { if (table.getTBodies().getLength() > 0) { tbody = table.getTBodies().getItem(0); } else { tbody = Document.get().createTBodyElement(); TableRowElement tr = Document.get().createTRElement(); tbodyLoading.appendChild(tr); tr.appendChild(tbodyLoadingCell); tbodyLoadingCell.setAlign("center"); tbodyLoadingCell.appendChild(messagesPanel.getElement()); adopt(messagesPanel); messagesPanel.add(emptyTableWidgetContainer);
@Override protected void onFocus() { TableCellElement td = getKeyboardSelectedTableCellElement(); if (td != null) { TableRowElement tr = td.getParentElement().cast(); td.addClassName(style.keyboardSelectedCell()); setRowStyleName(tr, style.keyboardSelectedRow(), style.keyboardSelectedRowCell(), true); } }
/** * Get the keyboard selected element from the selected table cell. * * @return the keyboard selected element, or null if there is none */ private Element getKeyboardSelectedElement(TableCellElement td) { if (td == null) { return null; } /* * The TD itself is a cell parent, which means its internal structure * (including the tabIndex that we set) could be modified by its Cell. We * return the TD to be safe. */ if (tableBuilder.isColumn(td)) { return td; } /* * The default table builder adds a focusable div to the table cell because * TDs aren't focusable in all browsers. If the user defines a custom table * builder with a different structure, we must assume the keyboard selected * element is the TD itself. */ Element firstChild = td.getFirstChildElement(); if (firstChild != null && td.getChildCount() == 1 && "div".equalsIgnoreCase(firstChild.getTagName())) { return firstChild; } return td; }
/** * Given a click event, return the Cell that was clicked, or null if the event * did not hit this table. The cell can also be null if the click event does * not occur on a specific cell. * * @param event A click event of indeterminate origin * @return The appropriate cell, or null */ public Cell getCellForEvent(ClickEvent event) { Element td = getEventTargetCell(Event.as(event.getNativeEvent())); if (td == null) { return null; } int row = TableRowElement.as(td.getParentElement()).getSectionRowIndex(); int column = TableCellElement.as(td).getCellIndex(); return new Cell(row, column); }
wrapper.getStyle().setPosition( Position.RELATIVE ); wrapper.setTabIndex( 0 ); // for focusability theadTable.getStyle().setWidth( 100, Unit.PCT ); theadTable.getStyle().setTableLayout( TableLayout.FIXED ); div0.getStyle().setWidth( 100, Unit.PCT ); TableRowElement tr1 = Document.get().createTRElement(); tr1.getStyle().setHeight( 100, Unit.PCT ); TableCellElement td1 = Document.get().createTDElement(); DivElement div1 = Document.get().createDivElement(); thead.appendChild( theadtr.<Node> cast() ); table.appendChild( tableColgroup ); table.appendChild( tbody.<Node> cast() ); td0.appendChild( div0 ); div0.appendChild( theadTable.<Node> cast() ); div1.appendChild( div2 ); div2.appendChild( table ); td1.appendChild( div1.<Node> cast() ); tr0.appendChild( td0 ); tr1.appendChild( td1 ); wrapperTable.appendChild( tr0 );
public TooltipHint(String text) { setElement(uiBinder.createAndBindUi(this)); messageElement.setInnerHTML(SafeHtmlUtils.htmlEscape(text)); DOM.sinkEvents((com.google.gwt.dom.client.Element) closeButton.cast(), Event.ONCLICK); DOM.setEventListener((com.google.gwt.dom.client.Element) closeButton.cast(), event -> close()); getElement().getStyle().setProperty("opacity", "0"); getElement().getStyle().setTop(top, Unit.PX); RootPanel.get().getElement().appendChild(getElement()); getElement().getStyle().setZIndex(Integer.MAX_VALUE); new Timer() { @Override public void run() { opacity += 1; top += delta; getElement().getStyle().setTop(top, Unit.PX); if (opacity >= 10) { getElement().getStyle().setProperty("opacity", "1"); cancel(); } else { getElement().getStyle().setProperty("opacity", "0." + opacity); } } }.scheduleRepeating(50); }
/** * Setup to recalculate column widths. * * @param table the table * @param columnCount the number of columns in the table * @param offset the offset of the first logical column * @return info used to calculate ideal column widths */ public IdealColumnWidthInfo recalculateIdealColumnWidthsSetup( HTMLTable table, int columnCount, int offset) { // Switch to normal layout table.getElement().getStyle().setProperty("tableLayout", ""); // Add a full row to get ideal widths TableRowElement tr = Document.get().createTRElement(); TableCellElement td = Document.get().createTDElement(); td.setInnerHTML("<div style=\"height:1px;width:1px;\"></div>"); for (int i = 0; i < columnCount + offset; i++) { tr.appendChild(td.cloneNode(true)); } getTableBody(table).appendChild(tr); return new IdealColumnWidthInfo(table, tr, columnCount, offset); }
@Override protected void initCellWithText(String text, char align, String style, boolean textIsHTML, boolean sorted, String description, TableCellElement td) { super.initCellWithText(text, align, style, textIsHTML, sorted, description, td); final Element tdElement = td.cast(); Tools.textSelectionEnable(tdElement, _delegate.textSelectionEnabled); if (_delegate.clickableColumns != null && _delegate.clickableColumns.contains(currentColumnKey)) { Element wrapperElement = tdElement.getFirstChildElement(); final Element clickableSpan = DOM.createSpan().cast(); clickableSpan.setClassName(CUBA_TABLE_CLICKABLE_CELL_STYLE); clickableSpan.setInnerText(wrapperElement.getInnerText()); wrapperElement.removeAllChildren(); DOM.appendChild(wrapperElement, clickableSpan); } if (_delegate.multiLineCells) { Style wrapperStyle = tdElement.getFirstChildElement().getStyle(); wrapperStyle.setWhiteSpace(Style.WhiteSpace.PRE_LINE); } }
if (!Element.is(eventTarget)) { return; if (TableCellElement.TAG_TD.equalsIgnoreCase(cur.getTagName()) && tableBuilder.isColumn(cur.getFirstChildElement())) { cur = cur.getFirstChildElement(); cellParent = targetTableCell.getFirstChildElement(); TableRowElement targetTableRow = targetTableCell.getParentElement().cast(); String eventType = event.getType(); boolean isSelect = BrowserEvents.CLICK.equals(eventType) || (BrowserEvents.KEYDOWN.equals(eventType) && event.getKeyCode() == KeyCodes.KEY_ENTER); int col = targetTableCell.getCellIndex(); if (targetTableSection == thead || targetTableSection == tfoot) { boolean isHeader = (targetTableSection == thead); int rowLeft = hoveringRow.getAbsoluteLeft(); int rowTop = hoveringRow.getAbsoluteTop(); int rowWidth = hoveringRow.getOffsetWidth(); int rowHeight = hoveringRow.getOffsetHeight(); int rowBottom = rowTop + rowHeight;
private void setCursorType( Cursor cursor ) { for ( int iRow = 0; iRow < widget.rowHeaders.length; iRow++ ) { TableRowElement tre = widget.rowHeaders[ iRow ].<TableRowElement>cast(); for ( int iCol = 0; iCol < tre.getCells().getLength(); iCol++ ) { TableCellElement tce = tre.getCells().getItem( iCol ); tce.getStyle().setCursor( cursor ); } } }
TableRowElement rowElement = row.getElement().cast(); NodeList<TableCellElement> list = rowElement.getCells(); if (list.getLength() == 0) { continue; Element divWrapper = list.getItem(columnIndex).getFirstChildElement(); if (divWrapper.getChildCount() != 0) { if (isAggregationEditable(uidl, columnIndex)) { InputElement inputElement = divWrapper.getChild(0).cast(); inputElement.setValue(updateUIDL.getChildString(updInd)); } else { divWrapper.setInnerText(updateUIDL.getChildString(updInd));
private void setHeaderWidthInformation(boolean shouldAffix) { // header if (shouldAffix) { table.getTableHeadElement().getStyle().setWidth(headerWidth, Style.Unit.PX); } else { table.getTableHeadElement().getStyle().clearWidth(); } final NodeList<TableRowElement> headerRows = table.getTableHeadElement().getRows(); for (int i = 0; i < headerRows.getLength(); i++) { final TableRowElement row = headerRows.getItem(i); // rows if (shouldAffix) { row.getStyle().setWidth(headerRowToWidthMap.get(i), Style.Unit.PX); } else { row.getStyle().clearWidth(); } // cells final NodeList<TableCellElement> cells = row.getCells(); for (int j = 0; j < cells.getLength(); j++) { final TableCellElement cell = cells.getItem(j); if (shouldAffix) { cell.getStyle().setWidth(headerCellToWidthMap.get(new Pair<>(i, j)), Style.Unit.PX); } else { cell.getStyle().clearWidth(); } } } }
/** * Ensure that a td cell exists for the row at the given column * index. * @param tr the row * @param colIndex the column index (0 based) * @return the new or already existing td */ private Element ensureCell(Element tr, int colIndex) { NodeList<Node> tds = tr.getChildNodes(); int numTDs = tds.getLength(); if (colIndex < numTDs) { return tds.getItem(colIndex).cast(); } Element td = null; for (int c = numTDs; c <= colIndex; c++) { td = Document.get().createTDElement().cast(); if (this.columnClasses.containsKey(colIndex)) { td.setAttribute("class", this.columnClasses.get(colIndex)); //$NON-NLS-1$ } DOM.appendChild(tr, td); } return td; }
/** * Returns the width available for column content. * * @param columnIndex * @return */ public int getColWidth(int columnIndex) { if (tBodyMeasurementsDone) { if (renderedRows.isEmpty()) { // no rows yet rendered return 0; } for (Widget row : renderedRows) { if (!(row instanceof VScrollTableGeneratedRow)) { TableRowElement tr = row.getElement().cast(); // Spanned rows might cause an NPE. if (columnIndex < tr.getChildCount()) { Element wrapperdiv = tr.getCells() .getItem(columnIndex).getFirstChildElement() .cast(); return wrapperdiv.getOffsetWidth(); } } } return 0; } else { return 0; } }
protected void initCellWithText(String text, char align, String style, boolean textIsHTML, boolean sorted, String description, final TableCellElement td) { final Element container = DOM.createDiv(); container.setClassName(VScrollTablePatched.this.getStylePrimaryName() + "-cell-wrapper"); td.setClassName(VScrollTablePatched.this.getStylePrimaryName() + "-cell-content"); if (style != null && !style.equals("")) { td.addClassName(VScrollTablePatched.this.getStylePrimaryName() + "-cell-content-" + style); } if (sorted) { td.addClassName(VScrollTablePatched.this.getStylePrimaryName() + "-cell-content-sorted"); } if (textIsHTML) { container.setInnerHTML(text); } else { container.setInnerText(text); } setAlign(align, container); setTooltip(td, description); td.appendChild(container); getElement().appendChild(td); }
private void detectExtrawidth() { NodeList<TableRowElement> rows = tBodyElement.getRows(); if (rows.getLength() == 0) { } else { boolean noCells = false; TableRowElement item = rows.getItem(0); TableCellElement firstTD = item.getCells().getItem(0); if (firstTD == null) { : false; next.addCell(null, "", ALIGN_LEFT, "", true, sorted); firstTD = item.getCells().getItem(0); .getFirstChildElement(); cellExtraWidth = firstTD.getOffsetWidth() - wrapper.getOffsetWidth(); if (noCells) { firstTD.getParentElement().removeChild(firstTD);
protected void addCell(String text, char align, String style, boolean sorted) { final TableCellElement td = DOM.createTD().cast(); final Element container = DOM.createDiv(); container.setClassName(tableWidget.getStylePrimaryName() + "-cell-wrapper"); td.setClassName(tableWidget.getStylePrimaryName() + "-cell-content"); td.addClassName(tableWidget.getStylePrimaryName() + "-aggregation-cell"); if (style != null && !style.equals("")) { td.addClassName(tableWidget.getStylePrimaryName() + "-cell-content-" + style); } if (sorted) { td.addClassName(tableWidget.getStylePrimaryName() + "-cell-content-sorted"); } container.setInnerText(text); setAlign(align, container); td.appendChild(container); tr.appendChild(td); Tools.textSelectionEnable(td, tableWidget.isTextSelectionEnabled()); }
@Override public void onRowOver(int rowNum) { if(!table.isEnabled()) return; // toggle rollover tools if(rowNum<provider.getList().size()) { TableCellElement rollOverItem = table.getRowElement(rowNum).getCells().getItem(2); rollOverItem.getFirstChildElement().getFirstChildElement().addClassName("row-tools-enabled"); } }
protected void addCellWithField(String text, char align, int colIndex) { final TableCellElement td = DOM.createTD().cast(); final DivElement container = DOM.createDiv().cast(); container.setClassName(tableWidget.getStylePrimaryName() + "-cell-wrapper" + " " + "widget-container"); setAlign(align, container); InputElement inputElement = DOM.createInputText().cast(); inputElement.setValue(text); inputElement.addClassName("v-textfield v-widget"); inputElement.addClassName("c-total-aggregation-textfield"); Style elemStyle = inputElement.getStyle(); elemStyle.setWidth(100, Style.Unit.PCT); container.appendChild(inputElement); if (inputsList == null) { inputsList = new ArrayList<>(); } inputsList.add(new AggregationInputFieldInfo(text, tableWidget.getColKeyByIndex(colIndex), inputElement)); DOM.sinkEvents(inputElement, Event.ONCHANGE | Event.ONKEYDOWN); td.setClassName(tableWidget.getStylePrimaryName() + "-cell-content"); td.addClassName(tableWidget.getStylePrimaryName() + "-aggregation-cell"); td.appendChild(container); tr.appendChild(td); }