code: private void doPaintRows(final WDataTable table, final WebXmlRenderContext renderContext) {
  		TableDataModel model = table.getDataModel();
  		WRepeater repeater = table.getRepeater();
  		List<?> beanList = repeater.getBeanList();
  		final int rowCount = beanList.size();
  		WComponent row = repeater.getRepeatedComponent();
  
  		for (int i = 0; i < rowCount; i++) {
  			if (model instanceof TreeTableDataModel) {
  				Integer nodeIdx = (Integer) beanList.get(i);
  				TableTreeNode node = ((TreeTableDataModel) model).getNodeAtLine(nodeIdx);
  
  				if (node.getLevel() != 1) {
  					// Handled by the layout, so don't paint the row.
  					continue;
  				}
  			}
  
  			// Each row has its own context. This is why we can reuse the same
  			// WComponent instance for each row.
  			UIContext rowContext = repeater.getRowContext(beanList.get(i), i);
  
  			UIContextHolder.pushContext(rowContext);
  
  			try {
  				row.paint(renderContext);
  			} finally {
  				UIContextHolder.popContext();
  			}
  		}
  	}
docs: Override paintRow so that we only paint the first-level nodes for tree-tables.
  
  @param table the table to paint the rows for.
  @param renderContext the RenderContext to paint to.