/** * Returns the handler for a child element. * * @param tagName * the tag name. * @param atts * the attributes. * @return the handler or null, if the tagname is invalid. * @throws org.xml.sax.SAXException * if there is a parsing error. */ protected XmlReadHandler getHandlerForChild( final String uri, final String tagName, final PropertyAttributes atts ) throws SAXException { if ( getUri().equals( uri ) == false ) { return null; } if ( tagName.equals( GroupReadHandler.GROUP_HEADER_TAG ) ) { return new GroupHeaderReadHandler( group.getHeader() ); } else if ( tagName.equals( GroupReadHandler.GROUP_FOOTER_TAG ) ) { return new GroupFooterReadHandler( group.getFooter() ); } else if ( tagName.equals( GroupReadHandler.FIELDS_TAG ) ) { return new GroupFieldsReadHandler( group ); } return null; }
/** * Returns the handler for a child element. * * @param tagName * the tag name. * @param atts * the attributes. * @return the handler or null, if the tagname is invalid. * @throws org.xml.sax.SAXException * if there is a parsing error. */ protected XmlReadHandler getHandlerForChild( final String uri, final String tagName, final PropertyAttributes atts ) throws SAXException { if ( isSameNamespace( uri ) == false ) { return null; } if ( tagName.equals( GroupReadHandler.GROUP_HEADER_TAG ) ) { return new RootBandReadHandler( group.getHeader() ); } else if ( tagName.equals( GroupReadHandler.GROUP_FOOTER_TAG ) ) { return new RootBandReadHandler( group.getFooter() ); } else if ( tagName.equals( GroupReadHandler.FIELDS_TAG ) ) { return new GroupFieldsReadHandler( group ); } return null; }
/** * Writes the footer of the current group. * * @param event * the event. */ public void groupFinished( final ReportEvent event ) { if ( event.getState().isPrepareRun() ) { return; } try { final Group g = event.getReport().getGroup( event.getState().getCurrentGroupIndex() ); if ( g instanceof RelationalGroup ) { RelationalGroup rg = (RelationalGroup) g; w.write( "<groupfooter name=\"" ); w.write( entityParser.encodeEntities( g.getName() ) ); w.write( "\">" ); writeBand( rg.getFooter() ); w.write( "</groupfooter>" ); } } catch ( IOException ioe ) { XMLWriter.logger.error( "Error writing the band", ioe ); } }
@Test public void testRemoveElement() { GroupHeader header = group.getHeader(); GroupFooter footer = group.getFooter(); group.removeElement( mock( Element.class ) ); assertThat( group.getFooter(), is( equalTo( footer ) ) ); assertThat( group.getHeader(), is( equalTo( header ) ) ); group.removeElement( footer ); assertThat( group.getFooter(), is( not( equalTo( footer ) ) ) ); assertThat( group.getHeader(), is( equalTo( header ) ) ); group.removeElement( header ); assertThat( group.getFooter(), is( not( equalTo( footer ) ) ) ); assertThat( group.getHeader(), is( not( equalTo( header ) ) ) ); }
@Test public void testSetFooter() { GroupFooter footer = new GroupFooter(); GroupFooter prevFooter = group.getFooter(); footer.setParent( group ); group.setFooter( footer ); assertThat( group.getFooter(), is( equalTo( prevFooter ) ) ); footer.setParent( null ); group.setFooter( footer ); assertThat( group.getFooter(), is( equalTo( footer ) ) ); }
public ProcessState commit( final ProcessState next ) throws ReportProcessingException { next.setAdvanceHandler( JoinEndGroupHandler.HANDLER ); final RelationalGroup group = (RelationalGroup) next.getReport().getGroup( next.getCurrentGroupIndex() ); final RootLevelBand rootLevelBand = group.getFooter(); return InlineSubreportProcessor.processBandedSubReports( next, rootLevelBand ); }
@Test public void testSetElementAt() { GroupHeader header = mock( GroupHeader.class ); SubGroupBody body = mock( SubGroupBody.class ); GroupFooter footer = mock( GroupFooter.class ); group.setElementAt( 0, header ); group.setElementAt( 1, body ); group.setElementAt( 2, footer ); assertThat( group.getHeader(), is( equalTo( header ) ) ); assertThat( (SubGroupBody) group.getBody(), is( equalTo( body ) ) ); assertThat( group.getFooter(), is( equalTo( footer ) ) ); }
@Test public void testClone() { RelationalGroup result = group.clone(); assertThat( result, is( not( sameInstance( group ) ) ) ); assertThat( result.getHeader(), is( not( sameInstance( group.getHeader() ) ) ) ); assertThat( result.getFooter(), is( not( sameInstance( group.getFooter() ) ) ) ); assertThat( (RelationalGroup) result.getHeader().getParentSection(), is( equalTo( result ) ) ); assertThat( (RelationalGroup) result.getFooter().getParentSection(), is( equalTo( result ) ) ); }
public void groupFinished( final ReportEvent event ) { final int gidx = event.getState().getCurrentGroupIndex(); final RelationalGroup group = (RelationalGroup) event.getReport().getGroup( gidx ); this.template.write( group.getFooter(), getRuntime() ); }
@Before public void setUp() { group = new RelationalGroup(); assertThat( group.getElementType(), is( instanceOf( RelationalGroupType.class ) ) ); assertThat( group.getHeader(), is( notNullValue() ) ); assertThat( group.getFooter(), is( notNullValue() ) ); }
public ProcessState advance( final ProcessState state ) throws ReportProcessingException { final ProcessState next = state.deriveForAdvance(); next.fireReportEvent(); final RelationalGroup group = (RelationalGroup) next.getReport().getGroup( next.getCurrentGroupIndex() ); return InlineSubreportProcessor.processInline( next, group.getFooter() ); }
if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); bits.set( count, DefaultOutputFunction.isGroupSectionPrintable( footer, true, true ) ); count += 1; if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); bits.set( count, DefaultOutputFunction.isGroupSectionPrintable( footer, false, true ) ); count += 1;
public void groupFinished( final DefaultOutputFunction outputFunction, final ReportEvent event ) throws ReportProcessingException { final int gidx = event.getState().getCurrentGroupIndex(); final RelationalGroup g = (RelationalGroup) event.getReport().getGroup( gidx ); final Band b = g.getFooter(); final Renderer renderer = outputFunction.getRenderer(); outputFunction.updateFooterArea( event ); renderer.startSection( Renderer.SectionType.NORMALFLOW ); outputFunction.print( outputFunction.getRuntime(), b ); outputFunction.addSubReportMarkers( renderer.endSection() ); renderer.endGroup(); }
writeRootBand( ReportDescriptionWriter.GROUP_FOOTER_TAG, g.getFooter() );
if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); if ( isGroupSectionPrintableInternal( footer, false, true ) && elementChangeChecker.isBandChanged( footer, dataRow ) ) { if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); if ( isGroupSectionPrintableInternal( footer, true, true ) && elementChangeChecker.isBandChanged( footer, dataRow ) ) {
if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); if ( isGroupSectionPrintableInternal( footer, false, true ) ) { print( getRuntime(), footer ); if ( g instanceof RelationalGroup ) { final RelationalGroup rg = (RelationalGroup) g; final GroupFooter footer = rg.getFooter(); if ( isGroupSectionPrintableInternal( footer, true, true ) ) { print( level.getRuntime(), footer );
public void testCreate() throws Exception { final RelationalGroup g1 = new RelationalGroup(); assertNotNull( g1.clone() ); assertNotNull( g1.getFields() ); assertNotNull( g1.getFooter() ); assertNotNull( g1.getHeader() ); assertNotNull( g1.getName() ); assertNotNull( g1.toString() ); }
private void configureGroupFooter( final GroupDefinition groupDefinition, final RelationalGroup g, final boolean headerPrinted ) { final GroupFooter footer = g.getFooter(); footer.setLayout( "row" ); footer.getStyle().setStyleProperty( ElementStyleKeys.INVISIBLE_CONSUMES_SPACE, true ); footer.setRepeat( true ); footer.addElement( createLabel( "F: " + groupDefinition.getGroupField(), 120 ) ); if ( groupDefinition.isHeader() ) { footer.addElement( createFieldItem( groupDefinition.getGroupField() ) ); } else if ( headerPrinted ) { footer.addElement( createLabel( "Footer" ) ); } if ( groupDefinition.isFooterAggregation() ) { for ( int d = 0; d < details.size(); d += 1 ) { final RelationalDetail relationalDetail = details.get( d ); footer.addElement( createFieldItem( relationalDetail.getField(), relationalDetail.getAggregation(), relationalDetail.getBackground() ) ); } } }