<p>addSurplusRow.</p>

@param example a {@link com.greenpepper.Example} object.
@param headers a {@link com.greenpepper.Example} object.
@param rowFixtureAdapter a {@link com.greenpepper.reflect.Fixture} object.
976655
protected void addSurplusRow( Example example, Example headers, Fixture rowFixtureAdapter)
    {
        Example row = example.addSibling();

        for (int i = 0; i < headers.remainings(); i++)
        {
            ExpectedColumn column = (ExpectedColumn) columns[i];
            Example cell = row.addChild();
            try
            {
                Call call = new Call( rowFixtureAdapter.check( column.header() ) );

                Object actual = call.execute();

                cell.setContent( TypeConversion.toString(actual));
                cell.annotate( Annotations.surplus() );
                if (i == 0) // Notify test listener on first cell only
                {
                    stats.wrong();
                }
            }
            catch (Exception e)
            {
                // TODO: STATS count stats?
                cell.annotate( ignored( e ) );
            }
        }
    }
548178
private void updateBeanValueForRowRenderer(final WTableRowRenderer rowRenderer,
			final UIContext rowContext,
			final Class<? extends WComponent> expandRenderer) {

		Container expandWrapper = (Container) rowRenderer.
				getExpandedTreeNodeRenderer(expandRenderer);
		if (expandWrapper == null) {
			return;
		}

		// The actual component is wrapped in a renderer wrapper, so we have to fetch it from that
		WComponent expandInstance = expandWrapper.getChildAt(0);

		UIContextHolder.pushContext(rowContext);
		try {
			// Will apply updates to the "bean" returned by the model for this expanded renderer (ie
			// getValueAt(rowIndex, -1))
			WebUtilities.updateBeanValue(expandInstance);
		} finally {
			UIContextHolder.popContext();
		}

	}
1138575
protected void addPrevExpandedRow(final Object rowKey) {
		WTableComponentModel model = getOrCreateComponentModel();
		if (model.prevExpandedRows == null) {
			model.prevExpandedRows = new HashSet<>();
		}
		model.prevExpandedRows.add(rowKey);
	}
336966
public DocServiceBuilder exampleHttpHeaders(String serviceName, HttpHeaders... exampleHttpHeaders) {
        requireNonNull(exampleHttpHeaders, "exampleHttpHeaders");
        return exampleHttpHeaders(serviceName, ImmutableList.copyOf(exampleHttpHeaders));
    }
258072
private void registerRows() {
		for (int i =  0; i < rows.length; i++) {
			DJCrosstabRow crosstabRow = rows[i];

			JRDesignCrosstabRowGroup ctRowGroup = new JRDesignCrosstabRowGroup();

			ctRowGroup.setWidth(crosstabRow.getHeaderWidth());

			ctRowGroup.setName(crosstabRow.getProperty().getProperty());

			JRDesignCrosstabBucket rowBucket = new JRDesignCrosstabBucket();

            //New in JR 4.1+
            rowBucket.setValueClassName(crosstabRow.getProperty().getValueClassName());

			ctRowGroup.setBucket(rowBucket);

			JRDesignExpression bucketExp = ExpressionUtils.createExpression("$F{"+crosstabRow.getProperty().getProperty()+"}", crosstabRow.getProperty().getValueClassName());
			rowBucket.setExpression(bucketExp);


			JRDesignCellContents rowHeaderContents = new JRDesignCellContents();
			JRDesignTextField rowTitle = new JRDesignTextField();

			JRDesignExpression rowTitExp = new JRDesignExpression();
			rowTitExp.setValueClassName(crosstabRow.getProperty().getValueClassName());
			rowTitExp.setText("$V{"+crosstabRow.getProperty().getProperty()+"}");

			rowTitle.setExpression(rowTitExp);
			rowTitle.setWidth(crosstabRow.getHeaderWidth());

			//The width can be the sum of the with of all the rows starting from the current one, up to the inner most one.
			int auxHeight = getRowHeaderMaxHeight(crosstabRow);
//			int auxHeight = crosstabRow.getHeight(); //FIXME getRowHeaderMaxHeight() must be FIXED because it breaks when 1rs row shows total and 2nd doesn't
			rowTitle.setHeight(auxHeight);

			Style headerstyle = crosstabRow.getHeaderStyle() == null ? this.djcross.getRowHeaderStyle(): crosstabRow.getHeaderStyle();

			if (headerstyle != null){
				layoutManager.applyStyleToElement(headerstyle, rowTitle);
				rowHeaderContents.setBackcolor(headerstyle.getBackgroundColor());
			}

			rowHeaderContents.addElement(rowTitle);
			rowHeaderContents.setMode( ModeEnum.OPAQUE );

			boolean fullBorder = i <= 0; //Only outer most will have full border
			applyCellBorder(rowHeaderContents, false, fullBorder);

			ctRowGroup.setHeader(rowHeaderContents );

			if (crosstabRow.isShowTotals())
				createRowTotalHeader(ctRowGroup,crosstabRow,fullBorder);


			try {
				jrcross.addRowGroup(ctRowGroup);
			} catch (JRException e) {
				log.error(e.getMessage(),e);
			}

		}
	}
461536
def before_table_row(cuke_table_row)
      if cuke_table_row.is_a?(Cucumber::Formatter::LegacyApi::ExampleTableRow)
        is_not_header_row = (@scenario_outline.example_column_names != cuke_table_row.values)
        if is_not_header_row
          example = @scenario_outline.examples.find { |example| example.column_values == cuke_table_row.values }
          test_name = scenario_outline_test_name(@scenario_outline.name, example.column_values)
          @logger.test_started(test_name)
        end
      end
    end
756470
protected void paintRows(final WList list, final WebXmlRenderContext renderContext) {
		List<?> beanList = list.getBeanList();
		WComponent row = list.getRepeatedComponent();
		XmlStringBuilder xml = renderContext.getWriter();

		for (int i = 0; i < beanList.size(); i++) {
			Object rowData = beanList.get(i);

			// Each row has its own context. This is why we can reuse the same
			// WComponent instance for each row.
			UIContext rowContext = list.getRowContext(rowData, i);

			UIContextHolder.pushContext(rowContext);

			try {
				xml.appendTag("ui:cell");
				row.paint(renderContext);
				xml.appendEndTag("ui:cell");
			} finally {
				UIContextHolder.popContext();
			}
		}
	}
963708
private void getEager(Set<HBeanRow> rows, HBeanRowCollector collector, int level,
            FetchType... fetchType) throws HBeanNotFoundException {
        int size = rows.size();
        if (size == 0) {
            return;
        }
        if (--level < 0) {
            return;
        }
        Set<HBeanRow> refs = new HashSet<>();
        for (HBeanRow row : rows) {
            refs.addAll(row.getReferenceRows());
        }
        // only recurse rowkeys we havent already
        // visited to break circular references
        refs = collector.filterUnvisted(refs);
        refs = getLazy(refs, fetchType);

        collector.addReferences(refs);
        getEager(refs, collector, level, fetchType);
    }
1105804
public Row withPaddedHeader(final HeaderDefinition headerDefinition) {
    if (_headerDefinition != headerDefinition) {
      String[] values = new String[headerDefinition.size()];
      System.arraycopy(_values, 0, values, 0, _values.length);
      return Row.of(headerDefinition, values);
    } else {
      return this;
    }
  }
814306
public CrosstabBuilder addRow(String title, String property, String className, boolean showTotal,
			Style headerStyle, Style totalStyle, Style totalHeaderStyle) {
		DJCrosstabRow row = new CrosstabRowBuilder()
		.setProperty(property,className)
		.setShowTotals(showTotal)
		.setTitle(title)
		.setHeaderStyle(headerStyle)
		.setTotalHeaderStyle(totalHeaderStyle)
		.setTotalStyle(totalStyle)
		.build();
		addRow(row);
		return this;
	}
839314
private void addExample(final int[] colWidths) {

		add(new WHeading(HeadingLevel.H2, getTitle(colWidths)));

		WPanel panel = new WPanel();
		panel.setLayout(new ColumnLayout(colWidths));
		add(panel);

		for (int i = 0; i < colWidths.length; i++) {
			panel.add(new BoxComponent(colWidths[i] + "%"));
		}
	}
702502
private String addRow(String rowId, String[] row) {
        Map<InterpolationVariable, Integer> vars = getInterpolationVariables();
        if (row.length != vars.size() - 1) {
            throw new IllegalArgumentException("Invalid numbers of columns: " + row.length + " expected: "
                                                       + (vars.size() - 1));
        }
        if (rowId == null || rowId.length() == 0) {
            rowId = getNewIdColValue();
        }
        for (Map.Entry<InterpolationVariable, Integer> entry : vars.entrySet()) {
            List<String> list = table.get(entry.getKey().getVarName());
            if (list == null) {
                list = new ArrayList<String>();
                table.put(entry.getKey().getVarName(),
                          list);
            }
            if (rowsCount != list.size()) {
                throw new IllegalArgumentException("invalid list size for " + entry.getKey() + ", expected: "
                                                           + rowsCount + " was: " + list.size());
            }
            if (ID_COLUMN_NAME.equals(entry.getKey().getVarName())) {
                list.add(rowId);
            } else {
                list.add(row[entry.getValue()]);
            }
        }
        rowsCount++;
        return rowId;
    }
567862
private static void displayRows(final JFrame frm, final Vector<Map.Entry<String,ColumnType>> cols, final Vector<Vector<Object>> data, final Charset charset, final Formatting fmt, final Callable<Void> end) {

        final UnaryFunction<Document,Callable<Void>> f =
            new UnaryFunction<Document,Callable<Void>>() {
            public Callable<Void> apply(final Document doc) {
                final DocumentAppender ap = new DocumentAppender(doc);

                // Column definitions
                final ArrayList<String> cnames = new ArrayList<String>();
                final ArrayList<ColumnType> ctypes =
                new ArrayList<ColumnType>();
                final int c = cols.size();

                ap.append(fmt.imports);
                ap.append("\r\n\r\nRowLists.rowList" + c + "(");

                int i = 0;
                for (final Map.Entry<String,ColumnType> e : cols) {
                    final String name = e.getKey();
                    final ColumnType type = e.getValue();

                    cnames.add(name);
                    ctypes.add(type);

                    if (i++ > 0) {
                        ap.append(", ");
                    } // end of if

                    final String tname = (fmt.typeMap.containsKey(type))
                        ? fmt.typeMap.get(type) : "String";

                    ap.append(String.format(fmt.colDef, tname, name));
                } // end of while

                ap.append(")\r\n");

                // --

                return new Callable<Void>() {
                    public Void call() {
                        RowFormatter.
                            appendRows(new VectorIterator(data), ap, charset,
                                       fmt, ctypes);

                        return null;
                    }
                };
            } // end of apply
        }; // end of f

        createConvertDialog(frm, fmt, f, end);
    }
825215
public TableLayoutBuilder row(RowSpec gapRowSpec) {
        row();
        gapRows.put(new Integer(currentRow), gapRowSpec);
        return this;
    }
868578
public DocServiceBuilder exampleHttpHeaders(String serviceName, String methodName,
                                                Iterable<? extends HttpHeaders> exampleHttpHeaders) {
        requireNonNull(serviceName, "serviceName");
        checkArgument(!serviceName.isEmpty(), "serviceName is empty.");
        requireNonNull(methodName, "methodName");
        checkArgument(!methodName.isEmpty(), "methodName is empty.");
        requireNonNull(exampleHttpHeaders, "exampleHttpHeaders");
        return exampleHttpHeaders0(serviceName, methodName, exampleHttpHeaders);
    }
451301
private void importRow(PdfPRow row) {
        this.cells = new ArrayList();
        this.width = this.document.getDocumentHeader().getPageSetting().getPageWidth() - this.document.getDocumentHeader().getPageSetting().getMarginLeft() - this.document.getDocumentHeader().getPageSetting().getMarginRight();
        this.width = (int) (this.width * this.parentTable.getTableWidthPercent() / 100);
        
        int cellRight = 0;
        int cellWidth = 0;
        PdfPCell[] cells = row.getCells();
        for(int i = 0; i < cells.length; i++) {
            cellWidth = (int) (this.width * this.parentTable.getProportionalWidths()[i] / 100);
            cellRight = cellRight + cellWidth;
            
            PdfPCell cell = cells[i];
            RtfCell rtfCell = new RtfCell(this.document, this, cell);
            rtfCell.setCellRight(cellRight);
            rtfCell.setCellWidth(cellWidth);
            this.cells.add(rtfCell);
        }
    }
507921
public CrosstabBuilder addRow(String title, String property, String className, boolean showTotal) {
		DJCrosstabRow row = new CrosstabRowBuilder()
			.setProperty(property,className)
			.setShowTotals(showTotal)
			.setTitle(title)
			.build();
		addRow(row);
		return this;
	}