Browse Source

Modify Length property parsing


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194507 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_20_3
Karen Lease 22 years ago
parent
commit
29a6656aaf

+ 14
- 9
src/org/apache/fop/fo/expr/Numeric.java View File

@@ -7,9 +7,11 @@

package org.apache.fop.fo.expr;

import java.util.Vector;

import org.apache.fop.fo.Property;
import org.apache.fop.datatypes.Length;
import org.apache.fop.datatypes.FixedLength;
import org.apache.fop.datatypes.PercentLength;
import org.apache.fop.datatypes.LinearCombinationLength;
import org.apache.fop.datatypes.MixedLength;
@@ -91,7 +93,7 @@ public class Numeric {
* Construct a Numeric object from a Length.
* @param l The Length.
*/
public Numeric(Length l) {
public Numeric(FixedLength l) {
this(ABS_LENGTH, (double)l.mvalue(), 0.0, 0.0, 1, null);
}

@@ -121,19 +123,22 @@ public class Numeric {
*/
public Length asLength() {
if (dim == 1) {
if (valType == ABS_LENGTH) {
return new Length((int)absValue);
Vector len = new Vector(3);
if ((valType & ABS_LENGTH) != 0) {
len.add(new FixedLength((int)absValue));
}
PercentLength pclen = null;
if ((valType & PC_LENGTH) != 0) {
pclen = new PercentLength(pcValue, pcBase);
if (valType == PC_LENGTH)
return pclen;
len.add(new PercentLength(pcValue, pcBase));
}
if ((valType & TCOL_LENGTH) != 0) {
return new TableColLength((int)absValue, pclen, tcolValue);
len.add(new TableColLength(tcolValue));
}
return new MixedLength((int)absValue, pclen);
if (len.size() == 1) {
return (Length)len.elementAt(0);
}
else {
return new MixedLength(len);
}
} else {
// or throw exception???
// can't make Length if dimension != 1

+ 2
- 2
src/org/apache/fop/fo/expr/PropertyParser.java View File

@@ -270,10 +270,10 @@ public class PropertyParser extends PropertyTokenizer {
numLen));
Length length = null;
if (unitPart.equals(RELUNIT)) {
length = new Length(numPart.doubleValue(),
length = new FixedLength(numPart.doubleValue(),
propInfo.currentFontSize());
} else
length = new Length(numPart.doubleValue(), unitPart);
length = new FixedLength(numPart.doubleValue(), unitPart);
if (length == null) {
throw new PropertyException("unrecognized unit name: "
+ currentTokenValue);

Loading…
Cancel
Save