You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2008/08/10 21:18:22 UTC
svn commit: r684575 - in /xmlgraphics/fop/trunk: ./
src/documentation/content/xdocs/news-data.xml
src/java/org/apache/fop/area/BookmarkData.java status.xml
test/layoutengine/standard-testcases/bookmarks_2.xml
Author: jeremias
Date: Sun Aug 10 12:18:22 2008
New Revision: 684575
URL: http://svn.apache.org/viewvc?rev=684575&view=rev
Log:
Merge from 0_95 branch:
Fixed ID resolution for nested bookmarks with duplicated IDs.
Modified:
xmlgraphics/fop/trunk/ (props changed)
xmlgraphics/fop/trunk/src/documentation/content/xdocs/news-data.xml (props changed)
xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BookmarkData.java
xmlgraphics/fop/trunk/status.xml
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml
Propchange: xmlgraphics/fop/trunk/
------------------------------------------------------------------------------
svn:mergeinfo = /xmlgraphics/fop/branches/fop-0_95:684572
Propchange: xmlgraphics/fop/trunk/src/documentation/content/xdocs/news-data.xml
('svn:mergeinfo' removed)
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BookmarkData.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BookmarkData.java?rev=684575&r1=684574&r2=684575&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BookmarkData.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BookmarkData.java Sun Aug 10 12:18:22 2008
@@ -218,25 +218,24 @@
* id reference.
*
* {@inheritDoc} List)
- * @todo check to make sure it works if multiple bookmark-items
- * have the same idref
*/
public void resolveIDRef(String id, List pages) {
- if (!id.equals(idRef)) {
- Collection refs = (Collection)unresolvedIDRefs.get(id);
- if (refs != null) {
- Iterator iter = refs.iterator();
- while (iter.hasNext()) {
- BookmarkData bd = (BookmarkData)iter.next();
- bd.resolveIDRef(id, pages);
- }
- unresolvedIDRefs.remove(id);
- }
- } else {
+ if (id.equals(idRef)) {
+ //Own ID has been resolved, so note the page
pageRef = (PageViewport) pages.get(0);
- // TODO get rect area of id on page
- unresolvedIDRefs.remove(idRef);
+ //Note: Determining the placement inside the page is the renderer's job.
+ }
+
+ //Notify all child bookmarks
+ Collection refs = (Collection)unresolvedIDRefs.get(id);
+ if (refs != null) {
+ Iterator iter = refs.iterator();
+ while (iter.hasNext()) {
+ BookmarkData bd = (BookmarkData)iter.next();
+ bd.resolveIDRef(id, pages);
+ }
}
+ unresolvedIDRefs.remove(id);
}
/**
Modified: xmlgraphics/fop/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=684575&r1=684574&r2=684575&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Sun Aug 10 12:18:22 2008
@@ -53,6 +53,9 @@
<changes>
<release version="FOP Trunk" date="TBD">
+ <action context="Layout" dev="JM" type="fix">
+ Fixed ID resolution for nested bookmarks with duplicated IDs.
+ </action>
<action context="Code" dev="AD" type="fix" fixes-bug="45490" due-to="Thomas Stieler">
Fixed a slight error when resolving non-file URLs: avoid
altering the original 'href' if the protocol is other than 'file:'
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml?rev=684575&r1=684574&r2=684575&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_2.xml Sun Aug 10 12:18:22 2008
@@ -34,10 +34,16 @@
<fo:bookmark-tree>
<fo:bookmark internal-destination="chapter1">
<fo:bookmark-title>Chapter 1</fo:bookmark-title>
+ <fo:bookmark internal-destination="chapter1">
+ <fo:bookmark-title>Nested Chapter 1</fo:bookmark-title>
+ </fo:bookmark>
</fo:bookmark>
<fo:bookmark internal-destination="chapter1" starting-state="hide">
<fo:bookmark-title>Again Chapter 1</fo:bookmark-title>
</fo:bookmark>
+ <fo:bookmark internal-destination="chapter2">
+ <fo:bookmark-title>Chapter 2</fo:bookmark-title>
+ </fo:bookmark>
</fo:bookmark-tree>
<fo:page-sequence id="page-sequence" master-reference="normal">
<fo:flow flow-name="xsl-region-body">
@@ -58,10 +64,13 @@
<eval expected="Chapter 1" xpath="//bookmarkTree/bookmark[1]/@title"/>
<eval expected="true" xpath="//bookmarkTree/bookmark[1]/@show-children"/>
+ <eval expected="Nested Chapter 1" xpath="//bookmarkTree/bookmark[1]/bookmark[1]/@title"/>
+ <eval expected="true" xpath="//bookmarkTree/bookmark[1]/bookmark[1]/@show-children"/>
<eval expected="Again Chapter 1" xpath="//bookmarkTree/bookmark[2]/@title"/>
<eval expected="false" xpath="//bookmarkTree/bookmark[2]/@show-children"/>
<eval expected="(P1,chapter1)" xpath="//bookmarkTree/bookmark[1]/@internal-link"/>
+ <eval expected="(P1,chapter1)" xpath="//bookmarkTree/bookmark[1]/bookmark[1]/@internal-link"/>
<eval expected="(P1,chapter1)" xpath="//bookmarkTree/bookmark[2]/@internal-link"/>
</checks>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org