diff options
author | Glen Mazza <gmazza@apache.org> | 2005-01-06 00:56:26 +0000 |
---|---|---|
committer | Glen Mazza <gmazza@apache.org> | 2005-01-06 00:56:26 +0000 |
commit | 32781f1091b3227044dd80b43743999c81157ac5 (patch) | |
tree | b4cdb696ced423b07f9bcda27bdef2004ab12043 /src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java | |
parent | c5f1859de3bc9f0b06322e63caed66b498d2bfe5 (diff) | |
download | xmlgraphics-fop-32781f1091b3227044dd80b43743999c81157ac5.tar.gz xmlgraphics-fop-32781f1091b3227044dd80b43743999c81157ac5.zip |
1.) fox:label converted to 1.1 fo:bookmark-title.
2.) FObj, FObjMixed, InlineLevel made abstract.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198227 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java')
-rw-r--r-- | src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java b/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java index 4ba55d317..dce00e128 100644 --- a/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java +++ b/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java @@ -19,15 +19,13 @@ package org.apache.fop.fo.pagination.bookmarks; import java.util.ArrayList; - import org.xml.sax.Attributes; import org.xml.sax.Locator; - import org.apache.fop.apps.FOPException; import org.apache.fop.fo.FObj; import org.apache.fop.fo.FONode; import org.apache.fop.fo.PropertyList; -import org.apache.fop.fo.extensions.Label; +import org.apache.fop.fo.ValidationException; /** @@ -36,7 +34,7 @@ import org.apache.fop.fo.extensions.Label; * XSL 1.1 WD evolves. */ public class Bookmark extends FObj { - private Label bookmarkTitle; + private BookmarkTitle bookmarkTitle; private ArrayList childBookmarks = new ArrayList(); private String internalDestination; @@ -76,11 +74,39 @@ public class Bookmark extends FObj { } /** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + XSL/FOP: (bookmark-title, bookmark*) + */ + protected void validateChildNode(Locator loc, String nsURI, String localName) + throws ValidationException { + if (nsURI == FO_URI && localName.equals("bookmark-title")) { + if (bookmarkTitle != null) { + tooManyNodesError(loc, "fo:bookmark-title"); + } + } else if (nsURI == FO_URI && localName.equals("bookmark")) { + if (bookmarkTitle == null) { + nodesOutOfOrderError(loc, "fo:bookmark-title", "fo:bookmark"); + } + } else { + invalidChildError(loc, nsURI, localName); + } + } + + /** + * @see org.apache.fop.fo.FONode#endOfNode + */ + protected void endOfNode() throws FOPException { + if (bookmarkTitle == null) { + missingChildElementError("(bookmark-title, bookmark*)"); + } + } + + /** * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ protected void addChildNode(FONode obj) { - if (obj instanceof Label) { - bookmarkTitle = (Label)obj; + if (obj instanceof BookmarkTitle) { + bookmarkTitle = (BookmarkTitle)obj; } else if (obj instanceof Bookmark) { childBookmarks.add(obj); } @@ -92,7 +118,7 @@ public class Bookmark extends FObj { * @return the bookmark title string or an empty string if not found */ public String getBookmarkTitle() { - return bookmarkTitle == null ? "" : bookmarkTitle.toString(); + return bookmarkTitle == null ? "" : bookmarkTitle.getTitle(); } public String getInternalDestination() { |