protected void removeElement( final Element element ) { if ( element == null ) { throw new NullPointerException(); } if ( element == group ) { this.group.setParent( null ); this.group = new CrosstabRowGroup(); this.group.setParent( this ); notifyNodeChildRemoved( element ); notifyNodeChildAdded( this.group ); } }
public String getField() { final Object o = getAttribute( AttributeNames.Core.NAMESPACE, AttributeNames.Core.FIELD ); if ( o == null ) { return null; } return o.toString(); }
public Element getElement( final int index ) { switch ( index ) { case 0: return getTitleHeader(); case 1: return getHeader(); case 2: return getSummaryHeader(); case 3: return getBody(); default: throw new IndexOutOfBoundsException(); } }
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; }
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 CrosstabCell element = dataBody.findElement( group.getField(), null ); if ( element == null ) { crosstabLayout.startSummaryRowProcessing( false, gidx, null ); 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 );
private void collectCrosstabFields( final CrosstabGroup crosstabGroup, final HashSet<String> list ) { GroupBody body = crosstabGroup.getBody(); while ( body != null ) { if ( body instanceof CrosstabOtherGroupBody ) { final CrosstabOtherGroupBody cogb = (CrosstabOtherGroupBody) body; final CrosstabOtherGroup otherGroup = cogb.getGroup(); if ( otherGroup.getField() != null ) { list.add( otherGroup.getField() ); } body = otherGroup.getBody(); continue; } 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; } }
o.setGroup( lastRowGroup.getName() ); } else { final CrosstabRowGroup rowGroup = findRowGroup( rowField ); final Section containingBody = rowGroup.getParentSection(); final Section containingGroup = containingBody.getParentSection(); o.setGroup( containingGroup.getName() );
layoutModelBuilder.startSubFlow( crosstabLayout.getRowTitleHeaderId() ); CrosstabOutputHelper.createAutomaticCell( layoutModelBuilder ); outputFunction.getRenderer().add( group.getTitleHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox(); layoutModelBuilder.suspendSubFlow(); CrosstabOutputHelper.createAutomaticCell( layoutModelBuilder, 1, 1, group.getHeader() ); crosstabLayout.setRowHeader( gidx - crosstabLayout.getFirstRowGroupIndex(), layoutModelBuilder.dangerousRawAccess() .getInstanceId() ); outputFunction.getRenderer().add( group.getHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox();
public boolean isGroupChange( final DataRow dataRow ) { final String field = getField(); if ( field == null ) { return false; } if ( dataRow.isChanged( field ) ) { return true; } return false; }
public ReportElement create() { return new CrosstabRowGroup(); } }
/** * Clones this Element, the datasource and the private stylesheet of this Element. The clone does no longer have a * parent, as the old parent would not recognize that new object anymore. * * @return a clone of this Element. */ public CrosstabRowGroupBody clone() { final CrosstabRowGroupBody o = (CrosstabRowGroupBody) super.clone(); o.group = group.clone(); o.registerAsChild( o.group ); return o; }
/** * Clones the report. * * @return the clone. */ public CrosstabRowGroupBody derive( final boolean preserveElementInstanceIds ) { final CrosstabRowGroupBody o = (CrosstabRowGroupBody) super.derive( preserveElementInstanceIds ); o.group = group.derive( preserveElementInstanceIds ); o.registerAsChild( o.group ); return o; }
final CrosstabRowGroupBody cogb = (CrosstabRowGroupBody) body; final CrosstabRowGroup otherGroup = cogb.getGroup(); body = otherGroup.getBody(); continue;
private CrosstabRowGroup findRowGroup( final String field ) throws ReportProcessingException { 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; } } } // This is a hard error. No point in waiting to fail here. throw new ReportProcessingException( "Trying to find a crosstab-row for field '" + field + "', but there is none." ); }
public CrosstabRowGroupBody() { setElementType( new CrosstabRowGroupBodyType() ); group = new CrosstabRowGroup(); registerAsChild( group ); }
public boolean isPrintSummary() { final Object attribute = getAttribute( AttributeNames.Crosstab.NAMESPACE, AttributeNames.Crosstab.PRINT_SUMMARY ); if ( attribute == null ) { return true; } return Boolean.TRUE.equals( attribute ); }
for ( int i = 1; i < elementCount; i += 1 ) { final CrosstabCell cell = (CrosstabCell) crosstabCellBody.getElement( i ); if ( ObjectUtilities.equal( cell.getRowField(), rowGroup.getField() ) ) { processRootBand( cell );