Browse Source

PR:

Obtained from:
Submitted by:
Reviewed by:
Removed flush() override from PSLM, consolidated StorePagesModel & AreaTreeModel, removed unused LineTrait.java.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198425 13f79535-47bb-0310-9956-ffa450edef68
tags/Root_Temp_KnuthStylePageBreaking
Glen Mazza 19 years ago
parent
commit
50151d55ff

+ 42
- 10
src/java/org/apache/fop/area/AreaTreeModel.java View File

@@ -18,53 +18,83 @@
package org.apache.fop.area;

// Java
import java.util.List;

// XML
import org.xml.sax.SAXException;

// Apache
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
* This is the model for the area tree object.
* The model implementation can handle the page sequence,
* page and extensions.
* page and off-document items.
* The methods to access the page viewports can only
* assume the PageViewport is valid as it remains for
* the life of the area tree model.
*/
public abstract class AreaTreeModel {
public class AreaTreeModel {
private List pageSequenceList = null;
private List currentPageSequencePageList;
private List offDocumentItems = new java.util.ArrayList();

protected static Log log = LogFactory.getLog(AreaTreeModel.class);

/**
* Create a new store pages model
*/
public AreaTreeModel() {
pageSequenceList = new java.util.ArrayList();
}

/**
* Start a page sequence on this model.
* @param title the title of the new page sequence
*/
public abstract void startPageSequence(LineArea title);
public void startPageSequence(LineArea title) {
currentPageSequencePageList = new java.util.ArrayList();
pageSequenceList.add(currentPageSequencePageList);
}

/**
* Add a page to this moel.
* @param page the page to add to the model.
*/
public abstract void addPage(PageViewport page);
public void addPage(PageViewport page) {
currentPageSequencePageList.add(page);
}

/**
* Handle an OffDocumentItem
* @param ext the extension to handle
*/
public abstract void handleOffDocumentItem(OffDocumentItem ext);
public void handleOffDocumentItem(OffDocumentItem ext) {};

/**
* Signal the end of the document for any processing.
*/
public abstract void endDocument() throws SAXException;
public void endDocument() throws SAXException {};

/**
* Get the page sequence count.
* @return the number of page sequences in the document.
*/
public abstract int getPageSequenceCount();
public int getPageSequenceCount() {
return pageSequenceList.size();
}

/**
* Get the page count.
* @param seq the page sequence to count.
* @return returns the number of pages in a page sequence
*/
public abstract int getPageCount(int seq);
public int getPageCount(int seq) {
List sequence = (List) pageSequenceList.get(seq - 1);
return sequence.size();
}

/**
* Get the page for a position in the document.
@@ -72,6 +102,8 @@ public abstract class AreaTreeModel {
* @param count the page count in the sequence
* @return the PageViewport for the particular page
*/
public abstract PageViewport getPage(int seq, int count);

public PageViewport getPage(int seq, int count) {
List sequence = (List) pageSequenceList.get(seq - 1);
return (PageViewport) sequence.get(count);
}
}

+ 0
- 28
src/java/org/apache/fop/area/LineTrait.java View File

@@ -1,28 +0,0 @@
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* $Id$ */
package org.apache.fop.area;

/**
* Traits for a range of areas in a line.
* Not sure if this is needed.
*/
public class LineTrait extends Trait {
private int[] range;
}


+ 3
- 3
src/java/org/apache/fop/area/RenderPagesModel.java View File

@@ -35,14 +35,14 @@ import org.apache.fop.render.Renderer;
import org.apache.fop.render.RendererFactory;

/**
* This uses the store pages model to store the pages
* each page is either rendered if ready or prepared
* This uses the AreaTreeModel to store the pages
* Each page is either rendered if ready or prepared
* for later rendering.
* Once a page is rendered it is cleared to release the
* contents but the PageViewport is retained. So even
* though the pages are stored the contents are discarded.
*/
public class RenderPagesModel extends StorePagesModel {
public class RenderPagesModel extends AreaTreeModel {
/**
* The renderer that will render the pages.
*/

+ 0
- 117
src/java/org/apache/fop/area/StorePagesModel.java View File

@@ -1,117 +0,0 @@
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* $Id$ */

package org.apache.fop.area;

// Java
import java.util.List;

// XML
import org.xml.sax.SAXException;

// Apache
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
* This class stores all the pages in the document
* for interactive agents.
* The pages are stored and can be retrieved in any order.
*/
public class StorePagesModel extends AreaTreeModel {
private List pageSequenceList = null;
private List currentPageSequencePageList;
private List offDocumentItems = new java.util.ArrayList();

protected static Log log = LogFactory.getLog(StorePagesModel.class);

/**
* Create a new store pages model
*/
public StorePagesModel() {
pageSequenceList = new java.util.ArrayList();
}

/**
* Start a new page sequence.
* This creates a new list for the pages in the new page sequence.
* @param title the title of the page sequence.
*/
public void startPageSequence(LineArea title) {
currentPageSequencePageList = new java.util.ArrayList();
pageSequenceList.add(currentPageSequencePageList);
}

/**
* Add a page.
* @param page the page to add to the current page sequence
*/
public void addPage(PageViewport page) {
currentPageSequencePageList.add(page);
}

/**
* Get the page sequence count.
* @return the number of page sequences in the document.
*/
public int getPageSequenceCount() {
return pageSequenceList.size();
}

/**
* Get the page count.
* @param seq the page sequence to count.
* @return returns the number of pages in a page sequence
*/
public int getPageCount(int seq) {
List sequence = (List) pageSequenceList.get(seq - 1);
return sequence.size();
}

/**
* Get the page for a position in the document.
* @param seq the page sequence number
* @param count the page count in the sequence
* @return the PageViewport for the particular page
*/
public PageViewport getPage(int seq, int count) {
List sequence = (List) pageSequenceList.get(seq - 1);
return (PageViewport) sequence.get(count);
}

/**
* @see org.apache.fop.area.AreaTreeModel#handleOffDocumentItem(OffDocumentItem)
*/
public void handleOffDocumentItem(OffDocumentItem ext) {
offDocumentItems.add(ext);
}

/**
* Get the list of OffDocumentItems for this StorePagesModel.
* @return the list of OffDocumentItems
*/
public List getOffDocumentItems() {
return offDocumentItems;
}

/**
* End document, do nothing.
*/
public void endDocument() throws SAXException {
}
}

+ 1
- 6
src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java View File

@@ -222,7 +222,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
}
pageCount--;
log.debug("Ending layout");
flush();
finishPage();
pageSeq.setCurrentPageNumber(getPageCount());
}

@@ -747,11 +747,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
createFlow();
}

// See finishPage...
protected void flush() {
finishPage();
}

/**
* Called when a new page is needed.
*

Loading…
Cancel
Save