Author: jeremias
Date: Fri Apr 25 08:03:17 2008
New Revision: 651623

URL: http://svn.apache.org/viewvc?rev=651623&view=rev
Log:
Restored Java 1.4 compatibility (Boolean.parseBoolean() is a Java 5 method).
Simplified the ExternalLink's string representation to follow the pattern used 
by Trait.Background.
Added a check to test for the effect of the show-destination property.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Trait.java
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_external-destination.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Trait.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Trait.java?rev=651623&r1=651622&r2=651623&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Trait.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Trait.java Fri Apr 25 
08:03:17 2008
@@ -461,21 +461,20 @@
          * @return an <code>ExternalLink</code> instance corresponding to the 
given value
          */
         protected static ExternalLink makeFromTraitValue(String traitValue) {
-            if (traitValue.indexOf(ExternalLink.class.getName()) == -1
-                    || traitValue.indexOf("dest=") == -1) {
-                throw new IllegalArgumentException(
-                        "Malformed trait value for Trait.ExternalLink: " + 
traitValue);
+            String dest = null;
+            boolean newWindow = false;
+            String[] values = traitValue.split(",");
+            for (int i = 0, c = values.length; i < c; i++) {
+                String v = values[i];
+                if (v.startsWith("dest=")) {
+                    dest = v.substring(5);
+                } else if (v.startsWith("newWindow=")) {
+                    newWindow = 
Boolean.valueOf(v.substring(10)).booleanValue();
+                } else {
+                    throw new IllegalArgumentException(
+                            "Malformed trait value for Trait.ExternalLink: " + 
traitValue);
+                }
             }
-            int startIndex = traitValue.indexOf("dest=") + 5;
-            int endIndex = traitValue.indexOf(',', startIndex);
-            if (endIndex == -1) {
-                endIndex = traitValue.indexOf(']');
-            }
-            String dest = traitValue.substring(startIndex, endIndex);
-            startIndex = traitValue.indexOf("newWindow=", endIndex) + 10;
-            endIndex = traitValue.indexOf(']', startIndex);
-            boolean newWindow = Boolean.parseBoolean(
-                    traitValue.substring(startIndex, endIndex));
             return new ExternalLink(dest, newWindow);
         }
 
@@ -502,9 +501,8 @@
          */
         public String toString() {
             StringBuffer sb = new StringBuffer(64);
-            sb.append(super.toString());
-            sb.append("[dest=").append(this.destination);
-            sb.append(",newWindow=").append(newWindow).append("]");
+            sb.append("newWindow=").append(newWindow);
+            sb.append(",dest=").append(this.destination);
             return sb.toString();
         }
     }

Modified: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_external-destination.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_external-destination.xml?rev=651623&r1=651622&r2=651623&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_external-destination.xml
 (original)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_external-destination.xml
 Fri Apr 25 08:03:17 2008
@@ -33,12 +33,16 @@
         <fo:flow flow-name="xsl-region-body">
           <fo:block><fo:basic-link 
external-destination="http://xmlgraphics.apache.org/fop/";>FOP</fo:basic-link></fo:block>
           <fo:block><fo:basic-link 
external-destination="url(http://xmlgraphics.apache.org/fop/)">FOP</fo:basic-link></fo:block>
+          <fo:block><fo:basic-link show-destination="replace" 
external-destination="url(http://xmlgraphics.apache.org/fop/)">FOP</fo:basic-link></fo:block>
+          <fo:block><fo:basic-link show-destination="new" 
external-destination="url(http://xmlgraphics.apache.org/fop/)">FOP</fo:basic-link></fo:block>
         </fo:flow>
       </fo:page-sequence>
     </fo:root>
   </fo>
   <checks>
-    <eval expected="http://xmlgraphics.apache.org/fop/"; 
xpath="substring-before(substring-after(//flow/block[1]/lineArea/inlineparent/@external-link,'dest='),';')"/>
-    <eval expected="http://xmlgraphics.apache.org/fop/"; 
xpath="substring-before(substring-after(//flow/block[2]/lineArea/inlineparent/@external-link,'dest='),';')"/>
+    <eval expected="http://xmlgraphics.apache.org/fop/"; 
xpath="substring-after(//flow/block[1]/lineArea/inlineparent/@external-link,'dest=')"/>
+    <eval expected="http://xmlgraphics.apache.org/fop/"; 
xpath="substring-after(//flow/block[2]/lineArea/inlineparent/@external-link,'dest=')"/>
+    <eval expected="false" 
xpath="substring-before(substring-after(//flow/block[3]/lineArea/inlineparent/@external-link,'newWindow='),
 ',')"/>
+    <eval expected="true" 
xpath="substring-before(substring-after(//flow/block[4]/lineArea/inlineparent/@external-link,'newWindow='),
 ',')"/>
   </checks>
 </testcase>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to