protected void removeElement( final Element element ) { if ( element == null ) { throw new NullPointerException(); } if ( element == group ) { this.group.setParent( null ); this.group = new CrosstabColumnGroup(); 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 CrosstabColumnGroup createColumnGroup( final CrosstabCellBody cellBody, final GroupBody body, final CrosstabDimension column ) { final CrosstabColumnGroup columnGroup = new CrosstabColumnGroup( body ); columnGroup.setName( computeGroupName( column ) ); columnGroup.setField( column.getField() ); columnGroup.getTitleHeader().getStyle().setStyleProperty( ElementStyleKeys.MIN_HEIGHT, -100f ); columnGroup.getTitleHeader().addElement( createLabel( column.getTitle(), column.getField() ) ); columnGroup.getHeader().getStyle().setStyleProperty( ElementStyleKeys.MIN_HEIGHT, -100f ); columnGroup.getHeader().addElement( createFieldItem( column.getField() ) ); columnGroup.getSummaryHeader().getStyle().setStyleProperty( ElementStyleKeys.MIN_HEIGHT, -100f ); columnGroup.getSummaryHeader().addElement( createLabel( column.getSummaryTitle(), column.getField() ) ); columnGroup.setPrintSummary( column.isPrintSummary() ); createColumnSummaryCells( cellBody, column ); return columnGroup; }
if ( group.isPrintSummary() == false ) { return; final CrosstabCell element = dataBody.findElement( null, group.getField() ); if ( element == null ) { return; crosstabLayout.setColumnTitleHeaderCellId( gidx - crosstabLayout.getFirstColGroupIndex(), layoutModelBuilder .dangerousRawAccess().getInstanceId() ); outputFunction.getRenderer().add( group.getTitleHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox(); layoutModelBuilder.suspendSubFlow(); crosstabLayout.setColumnHeaderCellId( gidx - crosstabLayout.getFirstColGroupIndex(), layoutModelBuilder .dangerousRawAccess().getInstanceId() ); outputFunction.getRenderer().add( group.getSummaryHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox(); layoutModelBuilder.suspendSubFlow();
final String name = group.getName(); o.setGroup( name ); o.setCrosstabFilterGroup( null ); } else { final CrosstabColumnGroup columnGroup = findColumnGroup( columnField ); final Section containingBody = columnGroup.getParentSection(); final Section containingGroup = containingBody.getParentSection(); if ( containingGroup instanceof CrosstabColumnGroup ) {
final CrosstabColumnGroupBody columnGroupBody = (CrosstabColumnGroupBody) groupBody; final CrosstabColumnGroup next = columnGroupBody.getGroup(); if ( next.isPrintSummary() == false ) { return; columnField = next.getField(); } else if ( groupBody instanceof CrosstabRowGroupBody ) { if ( colGroup.isPrintSummary() == false ) { return; columnField = colGroup.getField(); } else {
crosstabLayout.setColumnTitleHeaderCellId( gidx - crosstabLayout.getFirstColGroupIndex(), layoutModelBuilder .dangerousRawAccess().getInstanceId() ); outputFunction.getRenderer().add( group.getTitleHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox(); layoutModelBuilder.suspendSubFlow(); crosstabLayout.setColumnHeaderCellId( gidx - crosstabLayout.getFirstColGroupIndex(), layoutModelBuilder .dangerousRawAccess().getInstanceId() ); outputFunction.getRenderer().add( group.getHeader(), outputFunction.getRuntime() ); layoutModelBuilder.finishBox(); layoutModelBuilder.suspendSubFlow();
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 CrosstabColumnGroup(); } }
/** * 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 CrosstabColumnGroupBody clone() { final CrosstabColumnGroupBody o = (CrosstabColumnGroupBody) super.clone(); o.group = (CrosstabColumnGroup) group.clone(); o.registerAsChild( o.group ); return o; }
/** * Clones the report. * * @return the clone. */ public CrosstabColumnGroupBody derive( final boolean preserveElementInstanceIds ) { final CrosstabColumnGroupBody o = (CrosstabColumnGroupBody) super.derive( preserveElementInstanceIds ); o.group = (CrosstabColumnGroup) group.derive( preserveElementInstanceIds ); o.registerAsChild( o.group ); return o; }
public static boolean isCrosstabFilterValid( ReportDefinition def, String filterName ) { if ( filterName == null ) { return true; } for ( int i = 0; i < def.getGroupCount(); i++ ) { final Group group = def.getGroup( i ); if ( group instanceof CrosstabColumnGroup ) { final CrosstabColumnGroup columnGroup = (CrosstabColumnGroup) group; if ( ObjectUtilities.equal( columnGroup.getName(), filterName ) ) { return true; } } } return 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; } }
private CrosstabColumnGroup findColumnGroup( final String field ) throws ReportProcessingException { for ( int i = 0; i < groups.length; i++ ) { final Group group = groups[i]; if ( group instanceof CrosstabColumnGroup ) { final CrosstabColumnGroup columnGroup = (CrosstabColumnGroup) group; if ( ObjectUtilities.equal( columnGroup.getField(), field ) ) { return columnGroup; } } } // This is a hard error. No point in waiting to fail here. throw new ReportProcessingException( "Trying to find a crosstab-column for field '" + field + "', but there is none." ); }
public CrosstabColumnGroupBody() { setElementType( new CrosstabColumnGroupBodyType() ); group = new CrosstabColumnGroup(); registerAsChild( group ); }