瀏覽代碼

Speculator for handling page generation


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@197524 13f79535-47bb-0310-9956-ffa450edef68
tags/Defoe_export
Peter Bernard West 20 年之前
父節點
當前提交
ed5e79c016
共有 1 個檔案被更改,包括 22 行新增118 行删除
  1. 22
    118
      src/java/org/apache/fop/area/Page.java

+ 22
- 118
src/java/org/apache/fop/area/Page.java 查看文件

@@ -1,136 +1,40 @@
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
*
* Copyright 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
*
*
* 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.
*
* Created on 16/04/2004
* $Id$
*/

/* $Id$ */

package org.apache.fop.area;

import java.io.Serializable;
import java.util.Map;

import org.apache.fop.fo.pagination.Region;

/**
* The page.
* This holds the contents of the page. Each region is added.
* The unresolved references area added so that if the page is
* serialized then it will handle the resolving properly after
* being reloaded.
* This is serializable so it can be saved to cache to save
* memory if there are forward references.
* The page is cloneable so the page master can make copies of
* the top level page and regions.
* This class gathers all of of the components necessary to set up the basic
* page area precursors for the resolution of <code>fo:flow</code> and
* <code>fo:static-content</code> elements.
*
* @author pbw
* @version $Revision$ $Name$
*/
public class Page implements Serializable, Cloneable {
// contains before, start, body, end and after regions
private RegionViewport regionBefore = null;
private RegionViewport regionStart = null;
private RegionViewport regionBody = null;
private RegionViewport regionEnd = null;
private RegionViewport regionAfter = null;

// temporary map of unresolved objects used when serializing the page
private Map unresolved = null;

/**
* Set the region on this page.
*
* @param areaclass the area class of the region to set
* @param port the region viewport to set
*/
public void setRegionViewport(int areaclass, RegionViewport port) {
if (areaclass == Region.BEFORE_CODE) {
regionBefore = port;
} else if (areaclass == Region.START_CODE) {
regionStart = port;
} else if (areaclass == Region.BODY_CODE) {
regionBody = port;
} else if (areaclass == Region.END_CODE) {
regionEnd = port;
} else if (areaclass == Region.AFTER_CODE) {
regionAfter = port;
}
}

public class Page {
/**
* Get the region from this page.
*
* @param areaclass the region area class
* @return the region viewport or null if none
* Constructs a null page in the absence of a particular
* <code>FoSimplePageMaster</code>. All dimensions are undefined, and
* only the minimal set of areas is constructed.
*/
public RegionViewport getRegionViewport(int areaclass) {
if (areaclass == Region.BEFORE_CODE) {
return regionBefore;
} else if (areaclass == Region.START_CODE) {
return regionStart;
} else if (areaclass == Region.BODY_CODE) {
return regionBody;
} else if (areaclass == Region.END_CODE) {
return regionEnd;
} else if (areaclass == Region.AFTER_CODE) {
return regionAfter;
}
return null;
}

/**
* Clone this page.
* This returns a new page with a clone of all the regions.
*
* @return a new clone of this page
*/
public Object clone() {
Page p = new Page();
if (regionBefore != null) {
p.regionBefore = (RegionViewport)regionBefore.clone();
}
if (regionStart != null) {
p.regionStart = (RegionViewport)regionStart.clone();
}
if (regionBody != null) {
p.regionBody = (RegionViewport)regionBody.clone();
}
if (regionEnd != null) {
p.regionEnd = (RegionViewport)regionEnd.clone();
}
if (regionAfter != null) {
p.regionAfter = (RegionViewport)regionAfter.clone();
}

return p;
}

/**
* Set the unresolved references on this page for serializing.
*
* @param unres the map of unresolved objects
*/
public void setUnresolvedReferences(Map unres) {
unresolved = unres;
}

/**
* Get the map unresolved references from this page.
* This should be called after deserializing to retrieve
* the map of unresolved references that were serialized.
*
* @return the de-serialized map of unresolved objects
*/
public Map getUnresolvedReferences() {
return unresolved;
public Page() {
}
}


Loading…
取消
儲存