Browse Source

FOP-2911: Add endpage event for FO to IF

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1873909 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_5
Simon Steiner 4 years ago
parent
commit
4321934851

+ 8
- 0
fop-core/src/main/java/org/apache/fop/render/intermediate/IFSerializer.java View File

import org.apache.xmlgraphics.util.XMLizable; import org.apache.xmlgraphics.util.XMLizable;


import org.apache.fop.accessibility.StructureTreeEventHandler; import org.apache.fop.accessibility.StructureTreeEventHandler;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.fo.extensions.InternalElementMapping; import org.apache.fop.fo.extensions.InternalElementMapping;
import org.apache.fop.fonts.FontInfo; import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.DefaultRendererConfigurator; import org.apache.fop.render.DefaultRendererConfigurator;
import org.apache.fop.render.RendererEventProducer;
import org.apache.fop.render.RenderingContext; import org.apache.fop.render.RenderingContext;
import org.apache.fop.render.intermediate.IFRendererConfig.IFRendererConfigParser; import org.apache.fop.render.intermediate.IFRendererConfig.IFRendererConfigParser;
import org.apache.fop.render.intermediate.IFStructureTreeBuilder.IFStructureTreeElement; import org.apache.fop.render.intermediate.IFStructureTreeBuilder.IFStructureTreeElement;
private String currentID = ""; private String currentID = "";


private IFStructureTreeBuilder structureTreeBuilder; private IFStructureTreeBuilder structureTreeBuilder;
private int pageNumberEnded;


public IFSerializer(IFContext context) { public IFSerializer(IFContext context) {
super(context); super(context);
} catch (SAXException e) { } catch (SAXException e) {
throw new IFException("SAX error in endPage()", e); throw new IFException("SAX error in endPage()", e);
} }
if (mimicHandler != null) {
pageNumberEnded++;
FOUserAgent userAgent = mimicHandler.getContext().getUserAgent();
RendererEventProducer.Provider.get(userAgent.getEventBroadcaster()).endPage(this, pageNumberEnded);
}
} }


//---=== IFPainter ===--- //---=== IFPainter ===---

+ 18
- 0
fop-core/src/test/java/org/apache/fop/render/intermediate/IFSerializerTestCase.java View File

package org.apache.fop.render.intermediate; package org.apache.fop.render.intermediate;


import java.awt.Rectangle; import java.awt.Rectangle;
import java.io.File;
import java.util.HashMap;
import java.util.Map;


import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.SAXResult;


import org.apache.xmlgraphics.image.loader.ImageSessionContext; import org.apache.xmlgraphics.image.loader.ImageSessionContext;


import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.events.EventChecker;
import org.apache.fop.render.afp.AFPDocumentHandler;


public class IFSerializerTestCase { public class IFSerializerTestCase {


verify(imageManager).closeImage(eq(IMAGE), any(ImageSessionContext.class)); verify(imageManager).closeImage(eq(IMAGE), any(ImageSessionContext.class));
} }


@Test
public void testPageEvent() throws IFException {
FOUserAgent userAgent = FopFactory.newInstance(new File(".").toURI()).newFOUserAgent();
Map<String, Object> params = new HashMap<String, Object>();
params.put("number", 1);
EventChecker eventChecker = new EventChecker("org.apache.fop.render.RendererEventProducer.endPage", params);
userAgent.getEventBroadcaster().addEventListener(eventChecker);
sut.mimicDocumentHandler(new AFPDocumentHandler(new IFContext(userAgent)));
sut.setResult(new SAXResult(new DefaultHandler()));
sut.endPage();
eventChecker.end();
}
} }

Loading…
Cancel
Save