123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /*
- * 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;
-
-
- /**
- * 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 pageSequence = null;
- private List currSequence;
- private List extensions = new java.util.ArrayList();
-
- /**
- * Create a new store pages model
- */
- public StorePagesModel() {
- }
-
- /**
- * 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) {
- if (pageSequence == null) {
- pageSequence = new java.util.ArrayList();
- }
- currSequence = new java.util.ArrayList();
- pageSequence.add(currSequence);
- }
-
- /**
- * Add a page.
- * @param page the page to add to the current page sequence
- */
- public void addPage(PageViewport page) {
- currSequence.add(page);
- }
-
- /**
- * Get the page sequence count.
- * @return the number of page sequences in the document.
- */
- public int getPageSequenceCount() {
- return pageSequence.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) pageSequence.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) pageSequence.get(seq - 1);
- return (PageViewport) sequence.get(count);
- }
-
- /**
- * @see org.apache.fop.area.AreaTreeModel#handleExtension(TreeExt, int)
- */
- public void handleExtension(TreeExt ext, int when) {
- int seq, page;
- switch(when) {
- case TreeExt.IMMEDIATELY:
- seq = pageSequence == null ? 0 : pageSequence.size();
- page = currSequence == null ? 0 : currSequence.size();
- break;
- case TreeExt.AFTER_PAGE:
- break;
- case TreeExt.END_OF_DOC:
- break;
- }
- extensions.add(ext);
- }
-
- /**
- * Get the list of extensions that apply at a particular
- * position in the document.
- * @param seq the page sequence number
- * @param count the page count in the sequence
- * @return the list of extensions
- */
- public List getExtensions(int seq, int count) {
- return null;
- }
-
- /**
- * Get the end of document extensions for this stroe pages model.
- * @return the list of end extensions
- */
- public List getEndExtensions() {
- return extensions;
- }
-
- /**
- * End document, do nothing.
- */
- public void endDocument() throws SAXException {
- }
- }
|