Outline out = (Outline)(bookmarks.getOutlines()).get(count);
data.addSubData(createBookmarkData(out));
}
- addTreeExtension(data);
+ addOffDocumentItem(data);
data.setAreaTreeModel(model);
}
}
/**
- * Add a tree extension.
- * This checks if the extension is resolvable and attempts
+ * Add a OffDocumentItem to the area tree model
+ * This checks if the OffDocumentItem is resolvable and attempts
* to resolve or add the resolvable ids for later resolution.
- * @param ext the tree extension to add.
+ * @param ext the OffDocumentItem to add.
*/
- private void addTreeExtension(TreeExt ext) {
+ private void addOffDocumentItem(OffDocumentItem ext) {
if (ext instanceof Resolvable) {
Resolvable res = (Resolvable)ext;
String[] ids = res.getIDs();
}
}
} else {
- model.handleExtension(ext, TreeExt.IMMEDIATELY);
+ model.handleOffDocumentItem(ext, OffDocumentItem.IMMEDIATELY);
}
}
}
public abstract void addPage(PageViewport page);
/**
- * Handle an area tree extension
+ * Handle an OffDocumentItem
* @param ext the extension to handle
* @param when when the extension should be handled
*/
- public abstract void handleExtension(TreeExt ext, int when);
+ public abstract void handleOffDocumentItem(OffDocumentItem ext, int when);
/**
* Signal the end of the document for any processing.
--- /dev/null
+/*
+ * 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;
+
+/**
+ * Interface for objects that are processed by the renderer outside
+ * of the actual document.
+ * This object can be handled by the renderer according to three
+ * possibilities, IMMEDIATELY, AFTER_PAGE, or END_OF_DOC.
+ */
+public interface OffDocumentItem {
+ /**
+ * Render this extension immediately when
+ * being handled by the area tree.
+ */
+ public static final int IMMEDIATELY = 0;
+
+ /**
+ * Render this extension after the next page is rendered
+ * or prepared when being handled by the area tree.
+ */
+ public static final int AFTER_PAGE = 1;
+
+ /**
+ * Render this extension at the end of the document once
+ * all pages have been fully rendered.
+ */
+ public static final int END_OF_DOC = 2;
+
+}
boolean cont = checkPreparedPages(page);
if (cont) {
- renderExtensions(pendingExt);
+ processOffDocumentItems(pendingExt);
pendingExt.clear();
}
}
}
/**
- * @see org.apache.fop.area.AreaTreeModel#handleExtension(TreeExt, int)
+ * @see org.apache.fop.area.AreaTreeModel#handleOffDocumentItem(OffDocumentItem, int)
*/
- public void handleExtension(TreeExt ext, int when) {
+ public void handleOffDocumentItem(OffDocumentItem ext, int when) {
switch(when) {
- case TreeExt.IMMEDIATELY:
- renderer.renderExtension(ext);
+ case OffDocumentItem.IMMEDIATELY:
+ renderer.processOffDocumentItem(ext);
break;
- case TreeExt.AFTER_PAGE:
+ case OffDocumentItem.AFTER_PAGE:
pendingExt.add(ext);
break;
- case TreeExt.END_OF_DOC:
+ case OffDocumentItem.END_OF_DOC:
endDocExt.add(ext);
break;
}
}
- private void renderExtensions(List list) {
+ private void processOffDocumentItems(List list) {
for (int count = 0; count < list.size(); count++) {
- TreeExt ext = (TreeExt)list.get(count);
- renderer.renderExtension(ext);
+ OffDocumentItem ext = (OffDocumentItem)list.get(count);
+ renderer.processOffDocumentItem(ext);
}
}
// render any pages that had unresolved ids
checkPreparedPages(null);
- renderExtensions(pendingExt);
+ processOffDocumentItems(pendingExt);
pendingExt.clear();
- renderExtensions(endDocExt);
+ processOffDocumentItems(endDocExt);
try {
renderer.stopRenderer();
}
/**
- * @see org.apache.fop.area.AreaTreeModel#handleExtension(TreeExt, int)
+ * @see org.apache.fop.area.AreaTreeModel#handleOffDocumentItem(OffDocumentItem, int)
*/
- public void handleExtension(TreeExt ext, int when) {
+ public void handleOffDocumentItem(OffDocumentItem ext, int when) {
int seq, page;
switch(when) {
- case TreeExt.IMMEDIATELY:
+ case OffDocumentItem.IMMEDIATELY:
seq = pageSequence == null ? 0 : pageSequence.size();
page = currSequence == null ? 0 : currSequence.size();
break;
- case TreeExt.AFTER_PAGE:
+ case OffDocumentItem.AFTER_PAGE:
break;
- case TreeExt.END_OF_DOC:
+ case OffDocumentItem.END_OF_DOC:
break;
}
extensions.add(ext);
+++ /dev/null
-/*
- * 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;
-
-/**
- * Area tree extension interface.
- * This interface is used by area tree extensions that are handled
- * by the renderer.
- * When this extension is handled by the area tree it is rendered
- * according to the three possibilities, IMMEDIATELY, AFTER_PAGE
- * or END_OF_DOC.
- */
-public interface TreeExt {
- /**
- * Render this extension immediately when
- * being handled by the area tree.
- */
- public static final int IMMEDIATELY = 0;
-
- /**
- * Render this extension after the next page is rendered
- * or prepared when being handled by the area tree.
- */
- public static final int AFTER_PAGE = 1;
-
- /**
- * Render this extension at the end of the document once
- * all pages have been fully rendered.
- */
- public static final int END_OF_DOC = 2;
-
-}
import org.apache.fop.area.PageViewport;
import org.apache.fop.area.Resolvable;
-import org.apache.fop.area.TreeExt;
+import org.apache.fop.area.OffDocumentItem;
import org.apache.fop.area.AreaTreeModel;
import java.util.ArrayList;
/**
* This class holds the PDF bookmark extension data.
- * This implements Resolvable and TreeExt so that it can be
- * added to the area tree as a resolvable tree extension.
*/
-public class BookmarkData implements Resolvable, TreeExt {
+public class BookmarkData implements Resolvable, OffDocumentItem {
private ArrayList subData = new ArrayList();
private HashMap idRefs = new HashMap();
if (idRefs.size() == 0) {
idRefs = null;
if (areaTreeModel != null) {
- areaTreeModel.handleExtension(this, TreeExt.AFTER_PAGE);
+ areaTreeModel.handleOffDocumentItem(this, OffDocumentItem.AFTER_PAGE);
}
}
}
import org.apache.fop.area.RegionViewport;
import org.apache.fop.area.RegionReference;
import org.apache.fop.area.Trait;
-import org.apache.fop.area.TreeExt;
+import org.apache.fop.area.OffDocumentItem;
import org.apache.fop.area.inline.Container;
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
}
/**
- * @param ext (todo) Description of the Parameter
- * @see org.apache.fop.render.Renderer
+ * @see org.apache.fop.render.Renderer
*/
- public void renderExtension(TreeExt ext) { }
+ public void processOffDocumentItem(OffDocumentItem oDI) { }
/**
* Prepare a page for rendering. This is called if the renderer supports
import org.apache.fop.apps.FOPException;
import org.apache.fop.area.PageViewport;
import org.apache.fop.area.LineArea;
-import org.apache.fop.area.TreeExt;
+import org.apache.fop.area.OffDocumentItem;
import org.apache.fop.area.inline.Container;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.apps.FOUserAgent;
boolean supportsOutOfOrder();
/**
- * Tells the renderer to render an extension element.
+ * Tells the renderer to process an item not explicitly placed on the
+ * document (e.g., PDF bookmarks). Note - not all renderers will process
+ * all off-document items.
*
* @param ext The extension element to be rendered
*/
- void renderExtension(TreeExt ext);
+ public void processOffDocumentItem(OffDocumentItem ext);
/**
* This is called if the renderer supports out of order rendering. The
import org.apache.fop.area.PageViewport;
import org.apache.fop.area.RegionViewport;
import org.apache.fop.area.Trait;
-import org.apache.fop.area.TreeExt;
+import org.apache.fop.area.OffDocumentItem;
import org.apache.fop.area.extensions.BookmarkData;
import org.apache.fop.area.inline.Character;
import org.apache.fop.area.inline.TextArea;
}
/**
- * @see org.apache.fop.render.Renderer#renderExtension(TreeExt)
+ * @see org.apache.fop.render.Renderer#processOffDocumentItem(OffDocumentItem)
*/
- public void renderExtension(TreeExt ext) {
+ public void processOffDocumentItem(OffDocumentItem ext) {
// render bookmark extension
if (ext instanceof BookmarkData) {
renderRootExtensions((BookmarkData)ext);