List of usage examples for com.google.gwt.user.cellview.client AbstractCellTable getColumnCount
public int getColumnCount()
From source file:com.bearsoft.gwt.ui.widgets.grid.builders.ThemedHeaderOrFooterBuilder.java
@Override protected boolean buildHeaderOrFooterImpl() { AbstractCellTable<T> table = getTable(); boolean isFooter = isBuildingFooter(); int columnCount = table.getColumnCount(); if (columnCount > 0) { // Early exit if there aren't any headers or footers in the columns // to render. boolean hasHeadersOrFooters = false; for (int i = 0; i < columnCount; i++) { if (getHeader(i) != null) { hasHeadersOrFooters = true; break; }// w w w . j ava 2 s . c o m } if (hasHeadersOrFooters) { List<HeaderNode<T>> headersForest; if (headerNodes == null) { headersForest = new ArrayList<>(); for (int curColumn = 0; curColumn < columnCount; curColumn++) { Header<?> headerOrFooter = getHeader(curColumn); HeaderNode<T> hn = new HeaderNode<T>(); hn.setHeader((Header<String>) headerOrFooter); headersForest.add(hn); } } else { headersForest = headerNodes; } // Get information about the sorted columns. ColumnSortList sortList; if (sortListHolder != null) { sortList = sortListHolder.getSortList(); } else { sortList = table.getColumnSortList(); } Map<Column<T, ?>, ColumnSortList.ColumnSortInfo> sortedColumns = new HashMap<>(); if (sortList != null) { for (int i = 0; i < sortList.size(); i++) { ColumnSortList.ColumnSortInfo sInfo = sortList.get(i); sortedColumns.put((Column<T, ?>) sInfo.getColumn(), sInfo); } } buildNodes(headersForest, sortedColumns); return true; } else { // No headers to render; return false; } } else { // Nothing to render; return false; } }
From source file:com.bearsoft.gwt.ui.widgets.grid.GridSection.java
@Override protected void doSetColumnWidth(int index, String aValue) { if (index >= 0 && index < getColumnCount()) { super.doSetColumnWidth(index, aValue); if (columnsPartners != null) { for (AbstractCellTable<T> partner : columnsPartners) { if (index >= 0 && index < partner.getColumnCount()) { Column<T, ?> col = partner.getColumn(index); if (aValue == null) { partner.clearColumnWidth(col); } else { partner.setColumnWidth(col, aValue); }/*from www .j a v a 2s . c om*/ } } } widthChanged(); } }
From source file:org.jbpm.console.ng.bd.client.util.DataGridUtils.java
License:Apache License
public static int getDistributedColumnWidth(AbstractCellTable table, Column col) { int width = getColumnWith(table, col); if (width <= 0) { width = table.getOffsetWidth();/*from w w w . j a v a2 s .co m*/ int columnWidth = 0; int columns = table.getColumnCount(); for (int i = 0; i < table.getColumnCount(); i++) { columnWidth = getColumnWith(table, i); if (columnWidth > 0) { columns--; width = width - columnWidth; } } width = width >= 0 ? width / (columns != 0 ? columns : 1) : -1; } return width; }
From source file:org.kaaproject.avro.ui.gwt.client.widget.grid.StringFilterHeaderBuilder.java
License:Apache License
@SuppressWarnings("unchecked") @Override/*from w w w . j ava 2s . co m*/ protected boolean buildHeaderOrFooterImpl() { boolean result = super.buildHeaderOrFooterImpl(); AbstractCellTable<T> table = getTable(); Header<?> prevHeader = getHeader(0); Style style = table.getResources().style(); StringBuilder classesBuilder = new StringBuilder(style.header()); classesBuilder.append(" ").append(Utils.avroUiStyle.fieldWidget()); TableRowBuilder tr = startRow(); for (int i = 0; i < table.getColumnCount(); i++) { appendExtraStyles(prevHeader, classesBuilder); TableCellBuilder th = tr.startTH().className(classesBuilder.toString()); Column<T, ?> column = table.getColumn(i); Header<?> header = null; if (column instanceof FiltrableStringColumn) { StringFilterHeader filterHeader = new StringFilterHeader(grid, (FiltrableStringColumn<T>) column, new Integer(i)); Set<String> headerEvents = filterHeader.getCell().getConsumedEvents(); Set<String> consumedEvents = new HashSet<String>(); if (headerEvents != null) { consumedEvents.addAll(headerEvents); } sinkEvents(table, consumedEvents); header = filterHeader; } else { header = new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant("")); } Context context = new Context(0, 0, header.getKey()); renderHeader(th, context, header); th.endTH(); } tr.endTR(); return result; }
From source file:org.roda.wui.common.client.widgets.wcag.AccessibleHeaderOrFooterBuilder.java
@Override protected boolean buildHeaderOrFooterImpl() { AbstractCellTable<T> table = getTable(); boolean isFooter = isBuildingFooter(); // Early exit if there aren't any columns to render. int columnCount = table.getColumnCount(); if (columnCount == 0) { // Nothing to render return false; }// w w w .j ava 2 s.c om // Early exit if there aren't any headers in the columns to render. boolean hasHeader = false; for (int i = 0; i < columnCount; i++) { if (getHeader(i) != null) { hasHeader = true; break; } } if (!hasHeader) { return false; } // Get information about the sorted column. ColumnSortList sortList = table.getColumnSortList(); ColumnSortInfo sortedInfo = (sortList.size() == 0) ? null : sortList.get(0); Column<?, ?> sortedColumn = (sortedInfo == null) ? null : sortedInfo.getColumn(); boolean isSortAscending = (sortedInfo == null) ? false : sortedInfo.isAscending(); // Get the common style names. Style style = getTable().getResources().style(); String className = isBuildingFooter() ? style.footer() : style.header(); String sortableStyle = " " + style.sortableHeader(); String sortedStyle = " " + (isSortAscending ? style.sortedHeaderAscending() : style.sortedHeaderDescending()); // Setup the first column. Header<?> prevHeader = getHeader(0); Column<T, ?> column = getTable().getColumn(0); int prevColspan = 1; boolean isSortable = false; boolean isSorted = false; StringBuilder classesBuilder = new StringBuilder(className); classesBuilder.append(" " + (isFooter ? style.firstColumnFooter() : style.firstColumnHeader())); if (!isFooter && column.isSortable()) { isSortable = true; isSorted = (column == sortedColumn); } // Loop through all column headers. TableRowBuilder tr = startRow(); int curColumn; for (curColumn = 1; curColumn < columnCount; curColumn++) { Header<?> header = getHeader(curColumn); if (header != prevHeader) { // The header has changed, so append the previous one. if (isSortable) { classesBuilder.append(sortableStyle); } if (isSorted) { classesBuilder.append(sortedStyle); } appendExtraStyles(prevHeader, classesBuilder); // Render the header. TableCellBuilder th = tr.startTH().colSpan(prevColspan).className(classesBuilder.toString()); enableColumnHandlers(th, column); if (prevHeader != null) { // Build the header. Context context = new Context(0, curColumn - prevColspan, prevHeader.getKey()); // Add div element with aria button role if (isSortable) { // TODO: Figure out aria-label and translation of label text th.attribute("role", "button"); th.tabIndex(-1); } updatedRenderSortableHeader(th, context, prevHeader, isSorted, isSortAscending); } th.endTH(); // Reset the previous header. prevHeader = header; prevColspan = 1; classesBuilder = new StringBuilder(className); isSortable = false; isSorted = false; } else { // Increment the colspan if the headers == each other. prevColspan++; } // Update the sorted state. column = table.getColumn(curColumn); if (!isFooter && column.isSortable()) { isSortable = true; isSorted = (column == sortedColumn); } } // Append the last header. if (isSortable) { classesBuilder.append(sortableStyle); } if (isSorted) { classesBuilder.append(sortedStyle); } // The first and last columns could be the same column. classesBuilder.append(" ").append(isFooter ? style.lastColumnFooter() : style.lastColumnHeader()); appendExtraStyles(prevHeader, classesBuilder); // Render the last header. TableCellBuilder th = tr.startTH().colSpan(prevColspan).className(classesBuilder.toString()); enableColumnHandlers(th, column); if (prevHeader != null) { Context context = new Context(0, curColumn - prevColspan, prevHeader.getKey()); updatedRenderSortableHeader(th, context, prevHeader, isSorted, isSortAscending); } th.endTH(); // End the row. tr.endTR(); return true; }
From source file:org.rstudio.studio.client.ResizableHeader.java
License:Open Source License
public ResizableHeader(AbstractCellTable<?> table, String text) { super(new ResizableHeaderCell<String>(table)); table_ = table;/*from w w w. java 2 s . c o m*/ text_ = text; index_ = table.getColumnCount(); MouseDragHandler.addHandler(table_, new MouseDragHandler() { List<Integer> columnWidths_ = new ArrayList<Integer>(); @Override public boolean beginDrag(MouseDownEvent event) { // detect a click on this splitter Element targetEl = event.getNativeEvent().getEventTarget().cast(); if (!targetEl.hasClassName(RES.styles().splitter())) return false; int index = StringUtil.parseInt(targetEl.getAttribute("data-index"), -1); if (index != index_) return false; // find the parent table row element Element rowEl = DomUtils.findParentElement(targetEl, new ElementPredicate() { @Override public boolean test(Element el) { return el.hasTagName("tr"); } }); if (rowEl == null) return false; // initialize column widths columnWidths_.clear(); for (int i = 0, n = rowEl.getChildCount(); i < n; i++) { Element childEl = rowEl.getChild(i).cast(); int width = childEl.getOffsetWidth(); columnWidths_.add(width); table_.setColumnWidth(i, width + "px"); } return true; } @Override public void onDrag(MouseDragEvent event) { // discover the change in column widths int delta = event.getTotalDelta().getMouseX(); // compute the right column width int leftWidth = columnWidths_.get(index_ - 1) + delta; int rightWidth = columnWidths_.get(index_) - delta; // avoid issues with resizing too small if (leftWidth < 0) { rightWidth = rightWidth + leftWidth; leftWidth = 0; } // update column widths table_.setColumnWidth(index_ - 1, leftWidth + "px"); table_.setColumnWidth(index_, rightWidth + "px"); } @Override public void endDrag() { } }); }