klease 2002/09/26 14:09:21
Modified: src/org/apache/fop/fo/flow Tag: fop-0_20_2-maintain
AbstractTableBody.java BasicLink.java Block.java
BlockContainer.java ExternalGraphic.java
FootnoteBody.java InstreamForeignObject.java
ListBlock.java ListItem.java StaticContent.java
Table.java TableCell.java TableRow.java
Log:
Improve link hotspot positioning
Revision Changes Path
No revision
No revision
1.1.2.3 +2 -5 xml-fop/src/org/apache/fop/fo/flow/Attic/AbstractTableBody.java
Index: AbstractTableBody.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Attic/AbstractTableBody.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- AbstractTableBody.java 2 Aug 2002 20:28:48 -0000 1.1.2.2
+++ AbstractTableBody.java 26 Sep 2002 21:09:19 -0000 1.1.2.3
@@ -124,6 +124,7 @@
area.spaceLeft(), Position.RELATIVE);
areaContainer.foCreator = this; // G Seshadri
areaContainer.setPage(area.getPage());
+ areaContainer.setParent(area);
areaContainer.setBackground(propMgr.getBackgroundProps());
areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
areaContainer.start();
@@ -165,7 +166,6 @@
// areaContainer.end();
area.increaseHeight(areaContainer.getHeight());
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
if (i == numChildren - 1) {
this.marker = BREAK_AFTER;
if (spaceAfter != 0) {
@@ -202,7 +202,6 @@
// areaContainer.end();
area.increaseHeight(areaContainer.getHeight());
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
}
// Fix for infinite loop bug if spanned rows are too big for page
@@ -225,8 +224,6 @@
areaContainer.end();
area.increaseHeight(areaContainer.getHeight());
-
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
if (spaceAfter != 0) {
area.increaseHeight(spaceAfter);
1.8.2.4 +11 -3 xml-fop/src/org/apache/fop/fo/flow/BasicLink.java
Index: BasicLink.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/BasicLink.java,v
retrieving revision 1.8.2.3
retrieving revision 1.8.2.4
diff -u -r1.8.2.3 -r1.8.2.4
--- BasicLink.java 31 Aug 2002 15:12:21 -0000 1.8.2.3
+++ BasicLink.java 26 Sep 2002 21:09:19 -0000 1.8.2.4
@@ -100,7 +100,15 @@
Page p = area.getPage();
- AreaContainer ac = p.getBody().getCurrentColumnArea();
+ //AreaContainer ac = p.getBody().getCurrentColumnArea();
+ AreaContainer ac = area.getNearestAncestorAreaContainer();
+ while (ac!=null && ac.getPosition()!=Position.ABSOLUTE) {
+ ac = ac.getNearestAncestorAreaContainer();
+ }
+ if (ac == null) {
+ ac = p.getBody().getCurrentColumnArea();
+ //System.err.println("Using currentColumnArea as AC for link");
+ }
if (ac == null) {
throw new FOPException("Couldn't get ancestor AreaContainer when
processing basic-link");
}
@@ -121,7 +129,7 @@
// pass on command line
String mergeLinks = System.getProperty("links.merge");
- if ((null != mergeLinks) &&!mergeLinks.equalsIgnoreCase("no")) {
+ if ((null == mergeLinks) || mergeLinks.equalsIgnoreCase("yes")) {
ls.mergeLinks();
}
1.41.2.9 +6 -5 xml-fop/src/org/apache/fop/fo/flow/Block.java
Index: Block.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Block.java,v
retrieving revision 1.41.2.8
retrieving revision 1.41.2.9
diff -u -r1.41.2.8 -r1.41.2.9
--- Block.java 10 Aug 2002 20:09:40 -0000 1.41.2.8
+++ Block.java 26 Sep 2002 21:09:19 -0000 1.41.2.9
@@ -210,7 +210,6 @@
area.setMaxHeight(area.getMaxHeight() - spaceLeft
+ blockArea.getMaxHeight());
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
anythingLaidOut = true;
return status;
@@ -226,7 +225,6 @@
area.setMaxHeight(area.getMaxHeight() - spaceLeft
+ blockArea.getMaxHeight());
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
anythingLaidOut = true;
return status;
}
@@ -243,8 +241,6 @@
/* should this be combined into above? */
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-
if (spaceAfter != 0) {
area.addDisplaySpace(spaceAfter);
}
@@ -292,6 +288,11 @@
public int getSpan() {
return this.span;
+ }
+
+ public void resetMarker() {
+ anythingLaidOut = false;
+ super.resetMarker();
}
}
1.11.2.4 +3 -3 xml-fop/src/org/apache/fop/fo/flow/BlockContainer.java
Index: BlockContainer.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/BlockContainer.java,v
retrieving revision 1.11.2.3
retrieving revision 1.11.2.4
diff -u -r1.11.2.3 -r1.11.2.4
--- BlockContainer.java 2 Aug 2002 20:28:48 -0000 1.11.2.3
+++ BlockContainer.java 26 Sep 2002 21:09:19 -0000 1.11.2.4
@@ -118,7 +118,8 @@
areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
areaContainer.start();
- areaContainer.setAbsoluteHeight(area.getAbsoluteHeight());
+ //areaContainer.setAbsoluteHeight(top);
+ areaContainer.setAbsoluteHeight(0);
areaContainer.setIDReferences(area.getIDReferences());
int numChildren = this.children.size();
@@ -145,7 +146,6 @@
prevChildMustKeepWithNext = true;
}
}
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
areaContainer.end();
if (position == Position.ABSOLUTE)
1.13.2.3 +2 -2 xml-fop/src/org/apache/fop/fo/flow/ExternalGraphic.java
Index: ExternalGraphic.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/ExternalGraphic.java,v
retrieving revision 1.13.2.2
retrieving revision 1.13.2.3
diff -u -r1.13.2.2 -r1.13.2.3
--- ExternalGraphic.java 2 Aug 2002 20:28:48 -0000 1.13.2.2
+++ ExternalGraphic.java 26 Sep 2002 21:09:19 -0000 1.13.2.3
@@ -218,7 +218,7 @@
return new Status(Status.AREA_FULL_NONE);
}
}
- la.addInlineArea(imageArea);
+ la.addInlineArea(imageArea, this.getLinkSet());
} else {
area.addChild(imageArea);
area.increaseHeight(imageArea.getContentHeight());
1.6.2.3 +2 -1 xml-fop/src/org/apache/fop/fo/flow/FootnoteBody.java
Index: FootnoteBody.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/FootnoteBody.java,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -r1.6.2.2 -r1.6.2.3
--- FootnoteBody.java 2 Aug 2002 20:28:48 -0000 1.6.2.2
+++ FootnoteBody.java 26 Sep 2002 21:09:19 -0000 1.6.2.3
@@ -57,6 +57,7 @@
alignLast, lineHeight);
blockArea.setGeneratedBy(this);
blockArea.isFirst(true);
+ blockArea.setParent(area);
blockArea.setPage(area.getPage());
blockArea.start();
1.14.2.3 +3 -2 xml-fop/src/org/apache/fop/fo/flow/InstreamForeignObject.java
Index: InstreamForeignObject.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/InstreamForeignObject.java,v
retrieving revision 1.14.2.2
retrieving revision 1.14.2.3
diff -u -r1.14.2.2 -r1.14.2.3
--- InstreamForeignObject.java 2 Aug 2002 20:28:48 -0000 1.14.2.2
+++ InstreamForeignObject.java 26 Sep 2002 21:09:19 -0000 1.14.2.3
@@ -238,7 +238,7 @@
return new Status(Status.AREA_FULL_NONE);
}
}
- la.addInlineArea(areaCurrent);
+ la.addInlineArea(areaCurrent, this.getLinkSet());
} else {
area.addChild(areaCurrent);
area.increaseHeight(areaCurrent.getEffectiveHeight());
@@ -297,3 +297,4 @@
}
}
+
1.21.2.4 +4 -3 xml-fop/src/org/apache/fop/fo/flow/ListBlock.java
Index: ListBlock.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/ListBlock.java,v
retrieving revision 1.21.2.3
retrieving revision 1.21.2.4
diff -u -r1.21.2.3 -r1.21.2.4
--- ListBlock.java 2 Aug 2002 20:28:48 -0000 1.21.2.3
+++ ListBlock.java 26 Sep 2002 21:09:19 -0000 1.21.2.4
@@ -117,6 +117,8 @@
area.getAllocationWidth(), area.spaceLeft(),
startIndent, endIndent, 0, align, alignLast,
lineHeight);
+ // Fix links in lists in tables problem
+ blockArea.setTableCellXOffset(area.getTableCellXOffset());
blockArea.setGeneratedBy(this);
this.areasGenerated++;
if (this.areasGenerated == 1)
@@ -129,6 +131,7 @@
blockArea.addMarkers(this.getMarkers());
+ blockArea.setParent(area);
blockArea.setPage(area.getPage());
blockArea.setBackground(propMgr.getBackgroundProps());
blockArea.start();
@@ -152,7 +155,6 @@
blockArea.end();
area.addChild(blockArea);
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
return status;
}
}
@@ -160,7 +162,6 @@
blockArea.end();
area.addChild(blockArea);
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
if (spaceAfter != 0) {
area.addDisplaySpace(spaceAfter);
1.16.2.3 +6 -3 xml-fop/src/org/apache/fop/fo/flow/ListItem.java
Index: ListItem.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/ListItem.java,v
retrieving revision 1.16.2.2
retrieving revision 1.16.2.3
diff -u -r1.16.2.2 -r1.16.2.3
--- ListItem.java 2 Aug 2002 20:28:49 -0000 1.16.2.2
+++ ListItem.java 26 Sep 2002 21:09:19 -0000 1.16.2.3
@@ -104,6 +104,10 @@
new BlockArea(propMgr.getFontState(area.getFontInfo()),
area.getAllocationWidth(), area.spaceLeft(), 0, 0,
0, align, alignLast, lineHeight);
+
+ // Fix links in lists in tables problem
+ blockArea.setTableCellXOffset(area.getTableCellXOffset());
+
this.blockArea.setGeneratedBy(this);
this.areasGenerated++;
if (this.areasGenerated == 1)
@@ -115,6 +119,7 @@
if (this.hasMarkers())
this.blockArea.addMarkers(this.getMarkers());
+ blockArea.setParent(area);
blockArea.setPage(area.getPage());
blockArea.start();
@@ -148,7 +153,6 @@
blockArea.end();
area.addChild(blockArea);
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
this.marker = 1;
return status;
}
@@ -156,7 +160,6 @@
blockArea.end();
area.addChild(blockArea);
area.increaseHeight(blockArea.getHeight());
- area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
if (spaceAfter != 0) {
area.addDisplaySpace(spaceAfter);
1.18.2.4 +3 -6 xml-fop/src/org/apache/fop/fo/flow/StaticContent.java
Index: StaticContent.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/StaticContent.java,v
retrieving revision 1.18.2.3
retrieving revision 1.18.2.4
diff -u -r1.18.2.3 -r1.18.2.4
--- StaticContent.java 2 Aug 2002 20:28:49 -0000 1.18.2.3
+++ StaticContent.java 26 Sep 2002 21:09:19 -0000 1.18.2.4
@@ -62,11 +62,8 @@
if (area instanceof org.apache.fop.layout.AreaContainer)
((org.apache.fop.layout.AreaContainer)area).setAreaName(regionClass);
- if (regionClass.equals(RegionBefore.REGION_CLASS)) {
- area.setAbsoluteHeight(-area.getMaxHeight());
- } else if (regionClass.equals(RegionAfter.REGION_CLASS)) {
- area.setAbsoluteHeight(area.getPage().getBody().getMaxHeight());
- }
+ area.setAbsoluteHeight(0); // Ytop relative to self!
+
setContentWidth(area.getContentWidth());
for (int i = 0; i < numChildren; i++) {
1.39.2.5 +2 -5 xml-fop/src/org/apache/fop/fo/flow/Table.java
Index: Table.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Table.java,v
retrieving revision 1.39.2.4
retrieving revision 1.39.2.5
diff -u -r1.39.2.4 -r1.39.2.5
--- Table.java 2 Aug 2002 20:28:49 -0000 1.39.2.4
+++ Table.java 26 Sep 2002 21:09:19 -0000 1.39.2.5
@@ -172,6 +172,7 @@
areaContainer.foCreator = this; // G Seshadri
areaContainer.setPage(area.getPage());
+ areaContainer.setParent(area);
areaContainer.setBackground(propMgr.getBackgroundProps());
areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
areaContainer.start();
@@ -256,7 +257,6 @@
if (areaContainer.getContentHeight() > 0) {
area.addChild(areaContainer);
area.increaseHeight(areaContainer.getHeight());
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
if (this.omitHeaderAtBreak) {
// remove header, no longer needed
tableHeader = null;
@@ -295,7 +295,6 @@
log.warn("footer could not fit on page, moving last body row to
next page");
area.addChild(areaContainer);
area.increaseHeight(areaContainer.getHeight());
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
if (this.omitHeaderAtBreak) {
// remove header, no longer needed
tableHeader = null;
@@ -316,8 +315,6 @@
/* should this be combined into above? */
area.increaseHeight(areaContainer.getHeight());
-
- area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
if (spaceAfter != 0) {
area.addDisplaySpace(spaceAfter);
1.39.2.6 +4 -3 xml-fop/src/org/apache/fop/fo/flow/TableCell.java
Index: TableCell.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/TableCell.java,v
retrieving revision 1.39.2.5
retrieving revision 1.39.2.6
diff -u -r1.39.2.5 -r1.39.2.6
--- TableCell.java 2 Aug 2002 20:28:49 -0000 1.39.2.5
+++ TableCell.java 26 Sep 2002 21:09:19 -0000 1.39.2.6
@@ -244,6 +244,7 @@
cellArea.foCreator = this; // G Seshadri
cellArea.setPage(area.getPage());
+ cellArea.setParent(area);
try {
cellArea.setBorderAndPadding((BorderAndPadding)
propMgr.getBorderAndPadding().clone());
@@ -256,8 +257,8 @@
cellArea.setAbsoluteHeight(area.getAbsoluteHeight()); // ???
cellArea.setIDReferences(area.getIDReferences());
- // ******** CHECK THIS: we've changed startOffset (KL)
- cellArea.setTableCellXOffset(startOffset);
+ // Add adjust for padding and border to fix link alignment!
+ cellArea.setTableCellXOffset(startOffset + startAdjust);
int numChildren = this.children.size();
for (int i = this.marker; bDone==false && i < numChildren; i++) {
1.51.2.5 +2 -1 xml-fop/src/org/apache/fop/fo/flow/TableRow.java
Index: TableRow.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/TableRow.java,v
retrieving revision 1.51.2.4
retrieving revision 1.51.2.5
diff -u -r1.51.2.4 -r1.51.2.5
--- TableRow.java 2 Aug 2002 20:28:49 -0000 1.51.2.4
+++ TableRow.java 26 Sep 2002 21:09:19 -0000 1.51.2.5
@@ -250,6 +250,7 @@
Position.RELATIVE);
areaContainer.foCreator = this; // G Seshadri
areaContainer.setPage(area.getPage());
+ areaContainer.setParent(area);
areaContainer.setBackground(propMgr.getBackgroundProps());
areaContainer.start();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]