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 gm...@apache.org on 2005/01/09 13:47:40 UTC
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks Bookmark.java
gmazza 2005/01/09 04:47:40
Modified: src/java/org/apache/fop/fo FONode.java
src/java/org/apache/fop/fo/pagination/bookmarks
Bookmark.java
Log:
1.) New attributeWarning() method added to FONode (needs to be renamed somehow because can this method can also be used for formatting object warnings as well--e.g., unimplemented FO's)
2.) Switch from processNode() -> bind() method for fo:bookmark.
Revision Changes Path
1.52 +27 -4 xml-fop/src/java/org/apache/fop/fo/FONode.java
Index: FONode.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- FONode.java 24 Dec 2004 12:06:25 -0000 1.51
+++ FONode.java 9 Jan 2005 12:47:40 -0000 1.52
@@ -253,10 +253,10 @@
}
/**
- * Helper function to standardize "too many" error exceptions
- * (e.g., two fo:declarations within fo:root)
- * @param loc org.xml.sax.Locator object of the error (*not* parent node)
- * @param offendingNode incoming node that would cause a duplication.
+ * Helper function to standardize property error exceptions
+ * (e.g., not specifying either an internal- or an external-destination
+ * property for an FO:link)
+ * @param problem text to display that indicates the problem
*/
protected void attributeError(String problem)
throws ValidationException {
@@ -265,6 +265,15 @@
}
/**
+ * Helper function to standardize attribute warnings
+ * (e.g., currently unsupported properties)
+ * @param problem text to display that indicates the problem
+ */
+ protected void attributeWarning(String problem) {
+ getLogger().warn(errorText(locator) + getName() + ", " + problem);
+ }
+
+ /**
* Helper function to standardize "too many" error exceptions
* (e.g., two fo:declarations within fo:root)
* @param loc org.xml.sax.Locator object of the error (*not* parent node)
@@ -367,6 +376,20 @@
return "Error(Unknown location): ";
} else {
return "Error(" + loc.getLineNumber() + "/" + loc.getColumnNumber() + "): ";
+ }
+ }
+
+ /**
+ * Helper function to return "Warning (line#/column#)" string for
+ * warning messages
+ * @param loc org.xml.sax.Locator object
+ * @return String opening warning text
+ */
+ protected static String warningText(Locator loc) {
+ if (loc == null) {
+ return "Warning(Unknown location): ";
+ } else {
+ return "Warning(" + loc.getLineNumber() + "/" + loc.getColumnNumber() + "): ";
}
}
1.3 +20 -19 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java
Index: Bookmark.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Bookmark.java 6 Jan 2005 00:56:26 -0000 1.2
+++ Bookmark.java 9 Jan 2005 12:47:40 -0000 1.3
@@ -26,6 +26,7 @@
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.properties.CommonAccessibility;
/**
@@ -37,8 +38,11 @@
private BookmarkTitle bookmarkTitle;
private ArrayList childBookmarks = new ArrayList();
+ // The value of properties relevant for this FO
+ private CommonAccessibility commonAccessibility;
private String internalDestination;
private String externalDestination;
+ // private ToBeImplementedProperty startingState;
/**
* Create a new bookmark object.
@@ -50,27 +54,24 @@
}
/**
- * The attributes on the bookmark object are the internal and external
- * destination. One of these is required.
- *
- * @see org.apache.fop.fo.FObj#processNode
- * @todo to include all properties of fo:bookmark
+ * @see org.apache.fop.fo.FObj#bind(PropertyList)
*/
- public void processNode(String elementName, Locator locator,
- Attributes attlist, PropertyList propertyList) throws FOPException
- {
- internalDestination =
- attlist.getValue("internal-destination");
- externalDestination =
- attlist.getValue("external-destination");
- if (externalDestination != null && !externalDestination.equals("")) {
- getLogger().warn("fo:bookmark external-destination not supported currently.");
- }
-
- if (internalDestination == null || internalDestination.equals("")) {
- getLogger().warn("fo:bookmark requires an internal-destination.");
+ public void bind(PropertyList pList) throws FOPException {
+ commonAccessibility = pList.getAccessibilityProps();
+ externalDestination = pList.get(PR_EXTERNAL_DESTINATION).getString();
+ internalDestination = pList.get(PR_INTERNAL_DESTINATION).getString();
+ // startingState = pList.get(PR_STARTING_STATE);
+
+ // per spec, internal takes precedence if both specified
+ if (internalDestination.length() > 0) {
+ externalDestination = null;
+ } else if (externalDestination.length() == 0) {
+ // slightly stronger than spec "should be specified"
+ attributeError("Missing attribute: Either external-destination or " +
+ "internal-destination must be specified.");
+ } else {
+ attributeWarning("external-destination property not currently supported");
}
-
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org