Selaa lähdekoodia

Minor fix: set negative values to zero for b-p-d/i-p-d

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@433385 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_93
Andreas L. Delmelle 18 vuotta sitten
vanhempi
commit
c29f3f30a1

+ 43
- 6
src/java/org/apache/fop/fo/properties/LengthRangeProperty.java Näytä tiedosto

@@ -20,6 +20,7 @@
package org.apache.fop.fo.properties;

import org.apache.fop.datatypes.CompoundDatatype;
import org.apache.fop.datatypes.Length;
import org.apache.fop.datatypes.PercentBaseContext;
import org.apache.fop.fo.FObj;
import org.apache.fop.fo.PropertyList;
@@ -61,14 +62,49 @@ public class LengthRangeProperty extends Property implements CompoundDatatype {
/**
* @see CompoundPropertyMaker#convertProperty
*/
public Property convertProperty(Property p, PropertyList propertyList, FObj fo)
throws PropertyException
{
public Property convertProperty(Property p,
PropertyList propertyList, FObj fo)
throws PropertyException {
if (p instanceof LengthRangeProperty) {
return p;
}
if (this.propId == PR_BLOCK_PROGRESSION_DIMENSION
|| this.propId == PR_INLINE_PROGRESSION_DIMENSION) {
Length len = p.getLength();
if (len != null && len.getValue() < 0) {
log.warn("Replaced negative value for " + getName()
+ " with 0mpt");
p = new FixedLength(0);
}
}
return super.convertProperty(p, propertyList, fo);
}
/**
* @see org.apache.fop.fo.properties.PropertyMaker#getSubprop()
*/
protected Property setSubprop(Property baseProperty, int subpropertyId,
Property subproperty) {
CompoundDatatype val = (CompoundDatatype) baseProperty.getObject();
if (this.propId == PR_BLOCK_PROGRESSION_DIMENSION
|| this.propId == PR_INLINE_PROGRESSION_DIMENSION) {
Length len = subproperty.getLength();
if (len != null && len.getValue() < 0) {
log.warn("Replaced negative value for " + getName()
+ " with 0mpt");
val.setComponent(subpropertyId,
new FixedLength(0), false);
return baseProperty;
}
}
val.setComponent(subpropertyId, subproperty, false);
return baseProperty;
}

}


@@ -186,8 +222,9 @@ public class LengthRangeProperty extends Property implements CompoundDatatype {
// opt is default and max is explicit or default
optimum = maximum;
}
} else if (!optimum.isAuto() && !minimum.isAuto() &&
optimum.getLength().getValue(context) < minimum.getLength().getValue(context)) {
} else if (!optimum.isAuto() && !minimum.isAuto()
&& optimum.getLength().getValue(context)
< minimum.getLength().getValue(context)) {
if ((bfSet & MINSET) != 0) {
// if minimum is explicit, force opt to min
if ((bfSet & OPTSET) != 0) {
@@ -246,7 +283,7 @@ public class LengthRangeProperty extends Property implements CompoundDatatype {
/**
* @return this.lengthRange cast as an Object
*/
public Object getObject() {
protected Object getObject() {
return this;
}


+ 3
- 0
status.xml Näytä tiedosto

@@ -28,6 +28,9 @@

<changes>
<release version="FOP Trunk">
<action context="Code" dev="AD" type="update">
Minor fix: correctly set negative values to zero.
</action>
<action context="Code" dev="AD" type="update" fixes-bug="35656">
Rework of default column-creation / column-width setting from
cells in the first row.

+ 1
- 11
test/fotree/disabled-testcases.xml Näytä tiedosto

@@ -22,20 +22,10 @@
<file>demo-test-failure.fo</file>
<description></description>
</testcase>
<testcase>
<name>Negative values on block-progression-dimension</name>
<file>block-progression-dimension_negative.fo</file>
<description>The code currently doesn't set negative values to 0mpt as mandated by the spec.</description>
</testcase>
<testcase>
<name>Negative values on inline-progression-dimension</name>
<file>inline-progression-dimension_negative.fo</file>
<description>The code currently doesn't set negative values to 0mpt as mandated by the spec.</description>
</testcase>
<testcase>
<name>Markers and core function evaluation</name>
<file>from-table-column_marker.fo</file>
<description>The code currently evaluates this function according to the column in which the
marker appearsin the source document, rather than the column it is retrieved in.</description>
marker appears in the source document, rather than the column it is retrieved in.</description>
</testcase>
</disabled-testcases>

Loading…
Peruuta
Tallenna