gmazza 2004/08/08 10:52:35
Modified: src/java/org/apache/fop/fo/flow PageNumber.java
src/java/org/apache/fop/layoutmgr AddLMVisitor.java
Added: src/java/org/apache/fop/layoutmgr
PageNumberLayoutManager.java
Log:
Moved fo:page-number layout code from AddLMVisitor to new PageNumberLayoutManager
class.
Revision Changes Path
1.32 +13 -53 xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java
Index: PageNumber.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- PageNumber.java 6 Aug 2004 04:22:16 -0000 1.31
+++ PageNumber.java 8 Aug 2004 17:52:35 -0000 1.32
@@ -18,6 +18,9 @@
package org.apache.fop.fo.flow;
+// Java
+import java.util.List;
+
// XML
import org.xml.sax.Attributes;
import org.xml.sax.Locator;
@@ -26,23 +29,15 @@
// FOP
import org.apache.fop.datatypes.ColorType;
import org.apache.fop.fo.FONode;
-import org.apache.fop.layoutmgr.AddLMVisitor;
import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.properties.CommonAccessibility;
-import org.apache.fop.fo.properties.CommonAural;
-import org.apache.fop.fo.properties.CommonBackground;
-import org.apache.fop.fo.properties.CommonBorderAndPadding;
-import org.apache.fop.fo.properties.CommonMarginInline;
-import org.apache.fop.fo.properties.CommonRelativePosition;
import org.apache.fop.fonts.Font;
-import org.apache.fop.fo.LMVisited;
-
+import org.apache.fop.layoutmgr.PageNumberLayoutManager;
/**
* Class modelling the fo:page-number object. See Sec. 6.6.10 of the XSL-FO
* Standard.
*/
-public class PageNumber extends FObj implements LMVisited {
+public class PageNumber extends FObj {
/** FontState for this object */
protected Font fontState;
@@ -77,42 +72,10 @@
}
private void setup() {
-
- // Common Accessibility Properties
- CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- CommonAural mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
- CommonBackground bProps = propMgr.getBackgroundProps();
-
// Common Font Properties
this.fontState = propMgr.getFontState(getFOInputHandler().getFontInfo());
- // Common Margin Properties-Inline
- CommonMarginInline mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- CommonRelativePosition mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.propertyList.get("alignment-adjust");
- // this.propertyList.get("alignment-baseline");
- // this.propertyList.get("baseline-shift");
- // this.propertyList.get("dominant-baseline");
setupID();
- // this.propertyList.get("keep-with-next");
- // this.propertyList.get("keep-with-previous");
- // this.propertyList.get("letter-spacing");
- // this.propertyList.get("line-height");
- // this.propertyList.get("line-height-shift-adjustment");
- // this.propertyList.get("score-spaces");
- // this.propertyList.get("text-decoration");
- // this.propertyList.get("text-shadow");
- // this.propertyList.get("text-transform");
- // this.propertyList.get("word-spacing");
ColorType c = this.propertyList.get(PR_COLOR).getColorType();
this.red = c.getRed();
@@ -120,7 +83,6 @@
this.blue = c.getBlue();
this.wrapOption = this.propertyList.get(PR_WRAP_OPTION).getEnum();
-
}
/**
@@ -134,17 +96,15 @@
getFOInputHandler().endPageNumber(this);
}
- public String getName() {
- return "fo:page-number";
- }
-
/**
- * This is a hook for the AddLMVisitor class to be able to access
- * this object.
- * @param aLMV the AddLMVisitor object that can access this object.
+ * @see org.apache.fop.fo.FObj#addLayoutManager(List)
*/
- public void acceptVisitor(AddLMVisitor aLMV) {
- setup();
- aLMV.servePageNumber(this);
+ public void addLayoutManager(List list) {
+ PageNumberLayoutManager lm = new PageNumberLayoutManager(this);
+ list.add(lm);
+ }
+
+ public String getName() {
+ return "fo:page-number";
}
}
1.51 +1 -40 xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java
Index: AddLMVisitor.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- AddLMVisitor.java 7 Aug 2004 13:01:17 -0000 1.50
+++ AddLMVisitor.java 8 Aug 2004 17:52:35 -0000 1.51
@@ -32,7 +32,6 @@
import org.apache.fop.area.inline.InlineArea;
import org.apache.fop.area.inline.InlineParent;
import org.apache.fop.area.inline.Space;
-import org.apache.fop.area.inline.UnresolvedPageNumber;
import org.apache.fop.area.inline.Viewport;
import org.apache.fop.area.inline.TextArea;
import org.apache.fop.datatypes.Length;
@@ -45,7 +44,6 @@
import org.apache.fop.fo.flow.Inline;
import org.apache.fop.fo.flow.InstreamForeignObject;
import org.apache.fop.fo.flow.Leader;
-import org.apache.fop.fo.flow.PageNumber;
import org.apache.fop.fo.flow.RetrieveMarker;
import org.apache.fop.fo.flow.Table;
import org.apache.fop.fo.flow.TableAndCaption;
@@ -415,43 +413,6 @@
areaCurrent.setOffset(0);
return areaCurrent;
- }
-
- /**
- * Overridden from FObj
- * @param lms the list to which the layout manager(s) should be added
- */
- public void servePageNumber(final PageNumber node) {
- LayoutManager lm;
- lm = new LeafNodeLayoutManager(node) {
- public InlineArea get(LayoutContext context) {
- // get page string from parent, build area
- TextArea inline = new TextArea();
- String str = parentLM.getCurrentPageNumber();
- int width = 0;
- for (int count = 0; count < str.length(); count++) {
- width += node.getFontState().getCharWidth(
- str.charAt(count));
- }
- inline.setTextArea(str);
- inline.setIPD(width);
- inline.setHeight(node.getFontState().getAscender()
- - node.getFontState().getDescender());
- inline.setOffset(node.getFontState().getAscender());
-
- inline.addTrait(Trait.FONT_NAME,
- node.getFontState().getFontName());
- inline.addTrait(Trait.FONT_SIZE,
- new
Integer(node.getFontState().getFontSize()));
-
- return inline;
- }
-
- protected void offsetArea(LayoutContext context) {
- curArea.setOffset(context.getBaseline());
- }
- };
- currentLMList.add(lm);
}
public void serveTable(Table node) {
1.1
xml-fop/src/java/org/apache/fop/layoutmgr/PageNumberLayoutManager.java
Index: PageNumberLayoutManager.java
===================================================================
/*
* 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: PageNumberLayoutManager.java,v 1.1 2004/08/08 17:52:35 gmazza Exp $ */
package org.apache.fop.layoutmgr;
import org.apache.fop.fo.flow.PageNumber;
import org.apache.fop.area.inline.InlineArea;
import org.apache.fop.area.inline.TextArea;
import org.apache.fop.area.Trait;
import org.apache.fop.fonts.Font;
/**
* LayoutManager for the fo:basic-link formatting object
*/
public class PageNumberLayoutManager extends LeafNodeLayoutManager {
Font font = null;
/**
* Constructor
*
* @param node the fo:page-number formatting object that creates the area
* @todo better null checking of node, font
*/
public PageNumberLayoutManager(PageNumber node) {
super(node);
font = node.getFontState();
}
public InlineArea get(LayoutContext context) {
// get page string from parent, build area
TextArea inline = new TextArea();
String str = parentLM.getCurrentPageNumber();
int width = 0;
for (int count = 0; count < str.length(); count++) {
width += font.getCharWidth(str.charAt(count));
}
inline.setTextArea(str);
inline.setIPD(width);
inline.setHeight(font.getAscender() - font.getDescender());
inline.setOffset(font.getAscender());
inline.addTrait(Trait.FONT_NAME, font.getFontName());
inline.addTrait(Trait.FONT_SIZE,
new Integer(font.getFontSize()));
return inline;
}
protected void offsetArea(LayoutContext context) {
curArea.setOffset(context.getBaseline());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]