Package org.pentaho.reporting.engine.classic.core

Examples of org.pentaho.reporting.engine.classic.core.CrosstabRowGroup


    {
      throw new IllegalStateException("Event Order Error: A summary row cannot be printed while a row is still open.");
    }

    final int gidx = event.getState().getCurrentGroupIndex() + 1;
    final CrosstabRowGroup group = (CrosstabRowGroup) event.getReport().getGroup(gidx);

    if (group.isPrintSummary() == false)
    {
      crosstabLayout.startSummaryRowProcessing(false, gidx, null);
      return;
    }
   
    if (group.getField() == null)
    {
      crosstabLayout.startSummaryRowProcessing(false, gidx, null);
      return;
    }

    final CrosstabCellBody dataBody = event.getReport().getCrosstabCellBody();
    final CrosstabCell element = dataBody.findElement(group.getField(), null);
    if (element == null)
    {
      crosstabLayout.startSummaryRowProcessing(false, gidx, null);
      return;
    }

    if (crosstabLayout.isCrosstabRowOpen() == false)
    {
      // start a new row if needed ..
      layoutModelBuilder.startBox(CrosstabOutputHelper.createTableRow());
      crosstabLayout.setCrosstabRowOpen(true);

      // flag not empty is needed to connect the new node with the rest of the layout model.
      layoutModelBuilder.legacyFlagNotEmpty();
      final TableSectionRenderBox rowRenderNode = CrosstabOutputHelper.findTableSection(layoutModelBuilder.dangerousRawAccess());
      for (int i = crosstabLayout.getFirstRowGroupIndex(), count = 0; i < gidx; i += 1, count += 1)
      {
        final InstanceID rowHeader = crosstabLayout.getRowHeader(i - crosstabLayout.getFirstRowGroupIndex());
        final RenderNode cell = CrosstabOutputHelper.findNode(rowRenderNode, rowHeader);
        if (cell instanceof TableCellRenderBox)
        {
          final TableCellRenderBox cellBox = (TableCellRenderBox) cell;
          cellBox.update(cellBox.getRowSpan() + 1, cellBox.getColSpan());
        }
        else
        {
          throw new IllegalStateException("Unable to find previously defined row header. Aborting report processing.");
        }
      }
    }

    // An outer row-group's summary cell spans across all inner row-group header-columns up to the start
    // of the data area.
    final int colSpan = crosstabLayout.getFirstColGroupIndex() - gidx;
    CrosstabOutputHelper.createAutomaticCell(layoutModelBuilder, colSpan, 1, group.getSummaryHeader());
    crosstabLayout.setRowHeader(gidx - crosstabLayout.getFirstRowGroupIndex(), layoutModelBuilder.dangerousRawAccess().getInstanceId());
    outputFunction.getRenderer().add(group.getSummaryHeader(), outputFunction.getRuntime());
    layoutModelBuilder.finishBox();

    crosstabLayout.startSummaryRowProcessing(true, gidx, group.getField());
    crosstabLayout.setDetailsRendered(false);
    crosstabLayout.setProcessingCrosstabHeader(false);
  }
View Full Code Here


  private static CrosstabGroup createCrosstab()
  {
    final CrosstabGroup crosstabGroup = new CrosstabGroup();

    final CrosstabRowGroupBody rowBody = (CrosstabRowGroupBody) crosstabGroup.getBody();
    final CrosstabRowGroup rowGroup = rowBody.getGroup();
    rowGroup.setField("Rows");
    rowGroup.getTitleHeader().addElement(createDataItem("Rows"));
    rowGroup.getHeader().addElement(createFieldItem("Rows"));

    final CrosstabColumnGroupBody columnGroupBody = (CrosstabColumnGroupBody) rowGroup.getBody();
    final CrosstabColumnGroup columnGroup = columnGroupBody.getGroup();
    columnGroup.setField("Cols");
    columnGroup.getTitleHeader().addElement(createDataItem("Cols"));
    columnGroup.getHeader().addElement(createFieldItem("Cols"));
View Full Code Here

      {
        continue;
      }

      // create a new group and insert it at the end
      final CrosstabRowGroup relationalGroup = new CrosstabRowGroup();
      if (groupDefinition.getGroupName() != null)
      {
        relationalGroup.setName(groupDefinition.getGroupName());
      }
      configureCrosstabRowGroup(relationalGroup, groupDefinition);
      insertGroup.setBody(new CrosstabRowGroupBody(relationalGroup));
      insertGroup = relationalGroup;
    }

    for (int i = 0; i < groupDefinitions.length; i++)
    {
      final GroupDefinition groupDefinition = groupDefinitions[i];
      if (GroupType.CT_COLUMN.equals(groupDefinition.getGroupType()) == false)
      {
        continue;
      }

      // create a new group and insert it at the end
      final CrosstabColumnGroup relationalGroup = new CrosstabColumnGroup();
      if (groupDefinition.getGroupName() != null)
      {
        relationalGroup.setName(groupDefinition.getGroupName());
      }
      configureCrosstabColumnGroup(relationalGroup, groupDefinition);
      insertGroup.setBody(new CrosstabColumnGroupBody(relationalGroup));
      insertGroup = relationalGroup;
    }
View Full Code Here

  private GroupBody createRowGroups(final CrosstabCellBody cellBody, GroupBody body)
  {
    for (int row = rows.size() - 1; row >= 0; row -= 1)
    {
      final CrosstabDimension rowDimension = rows.get(row);
      final CrosstabRowGroup rowGroup = createRowGroup(cellBody, body, rowDimension);
      body = new CrosstabRowGroupBody(rowGroup);
    }
    return body;
  }
View Full Code Here

  protected CrosstabRowGroup createRowGroup(final CrosstabCellBody cellBody,
                                            final GroupBody innerBody,
                                            final CrosstabDimension rowDimension)
  {
    final CrosstabRowGroup rowGroup = new CrosstabRowGroup(innerBody);
    rowGroup.setName(computeGroupName(rowDimension));
    rowGroup.setField(rowDimension.getField());
    rowGroup.getTitleHeader().getStyle().setStyleProperty(ElementStyleKeys.MIN_HEIGHT, -100f);
    rowGroup.getTitleHeader().addElement(createLabel(rowDimension.getTitle(), rowDimension.getField()));
    rowGroup.getHeader().getStyle().setStyleProperty(ElementStyleKeys.MIN_HEIGHT, -100f);
    rowGroup.getHeader().addElement(createFieldItem(rowDimension.getField()));
    rowGroup.getSummaryHeader().getStyle().setStyleProperty(ElementStyleKeys.MIN_HEIGHT, -100f);
    rowGroup.getSummaryHeader().addElement(createLabel(rowDimension.getSummaryTitle(), rowDimension.getField()));
    rowGroup.setPrintSummary(rowDimension.isPrintSummary());

    createSummaryCells(cellBody, rowDimension);
    return rowGroup;
  }
View Full Code Here


    if (rowField == null)
    {
      // this is a detail-row.
      final CrosstabRowGroup lastRowGroup = findLastRowGroup();
      o.setGroup(lastRowGroup.getName());
    }
    else
    {
      final CrosstabRowGroup rowGroup = findRowGroup(rowField);
      final Section containingBody = rowGroup.getParentSection();
      final Section containingGroup = containingBody.getParentSection();
      o.setGroup(containingGroup.getName());
    }

    if (columnField == null)
View Full Code Here

    for (int i = 0; i < groups.length; i++)
    {
      final Group group = groups[i];
      if (group instanceof CrosstabRowGroup)
      {
        final CrosstabRowGroup rowGroup = (CrosstabRowGroup) group;
        if (ObjectUtilities.equal(rowGroup.getField(), field))
        {
          return rowGroup;
        }
      }
    }
View Full Code Here

      }

      if (body instanceof CrosstabRowGroupBody)
      {
        final CrosstabRowGroupBody cogb = (CrosstabRowGroupBody) body;
        final CrosstabRowGroup otherGroup = cogb.getGroup();
        body = otherGroup.getBody();
        continue;
      }

      if (body instanceof CrosstabColumnGroupBody)
      {
        final CrosstabColumnGroupBody cogb = (CrosstabColumnGroupBody) body;
        final CrosstabColumnGroup otherGroup = cogb.getGroup();
        if (otherGroup.getField() != null)
        {
          list.add(otherGroup.getField());
        }
        body = otherGroup.getBody();
        continue;
      }

      break;
    }
View Full Code Here

      }

      if (body instanceof CrosstabRowGroupBody)
      {
        final CrosstabRowGroupBody cogb = (CrosstabRowGroupBody) body;
        final CrosstabRowGroup otherGroup = cogb.getGroup();
        if (otherGroup.getField() != null)
        {
          list.add(otherGroup.getField());
        }
        body = otherGroup.getBody();
        continue;
      }

      if (body instanceof CrosstabColumnGroupBody)
      {
        final CrosstabColumnGroupBody cogb = (CrosstabColumnGroupBody) body;
        final CrosstabColumnGroup otherGroup = cogb.getGroup();
        body = otherGroup.getBody();
        continue;
      }

      break;
    }
View Full Code Here

    final RelationalGroup group1 = (RelationalGroup) body.getGroup();
    assertEquals("Rel-Group", "group-field1", group1.getFieldsArray()[0]);
    final SubGroupBody body1 = (SubGroupBody) group1.getBody();
    final CrosstabGroup ctGroup = (CrosstabGroup) body1.getGroup();
    final CrosstabRowGroupBody body2 = (CrosstabRowGroupBody) ctGroup.getBody();
    final CrosstabRowGroup rowGroup = body2.getGroup();
    assertEquals("Row-Group", "group-field2", rowGroup.getField());

    final CrosstabColumnGroupBody body3 = (CrosstabColumnGroupBody) rowGroup.getBody();
    final CrosstabColumnGroup colGroup = body3.getGroup();
    assertEquals("Col-Group", "group-field3", colGroup.getField());

  }
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.engine.classic.core.CrosstabRowGroup

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.