Author: mehdi
Date: Thu Sep 27 12:11:28 2012
New Revision: 1390959
URL: http://svn.apache.org/viewvc?rev=1390959&view=rev
Log:
Merged trunk@1384277
Added:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/table-header_scope.fo
- copied unchanged from r1390958,
xmlgraphics/fop/trunk/test/java/org/apache/fop/accessibility/fo/table-header_scope.fo
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/flow/table/HeaderColumnTestCase.java
- copied unchanged from r1390958,
xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/flow/table/HeaderColumnTestCase.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/th_scope.pdf
- copied unchanged from r1390958,
xmlgraphics/fop/trunk/test/pdf/accessibility/pdf/th_scope.pdf
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/th_scope.fo
- copied unchanged from r1390958,
xmlgraphics/fop/trunk/test/pdf/accessibility/th_scope.fo
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/ (props changed)
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.bat
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.js
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/accessibility/fo/StructureTreeEventTrigger.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/Constants.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/FOPropertyMapping.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/InternalElementMapping.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/flow/table/TableColumn.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fonts/CIDSet.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/status.xml
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/FONodeMocks.java
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_repeat.pdf
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_single.pdf
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_svg.pdf
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_wmf.pdf
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/text_font-embedding.pdf
Propchange: xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/
------------------------------------------------------------------------------
Merged /xmlgraphics/fop/trunk:r1387624-1390958
Modified: xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop (original)
+++ xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop Thu Sep 27 12:11:28
2012
@@ -18,7 +18,6 @@
# Shell script to run FOP, adapted from the Jakarta-Ant project.
rpm_mode=true
-java_exec_args="-Djava.awt.headless=true"
fop_exec_args=
no_config=false
fop_exec_debug=false
@@ -248,7 +247,7 @@ fi
# Execute FOP using eval/exec to preserve spaces in paths,
# java options, and FOP args
-fop_exec_command="exec \"$JAVACMD\" $java_exec_args $LOGCHOICE $LOGLEVEL
-classpath \"$LOCALCLASSPATH\" $FOP_OPTS org.apache.fop.cli.Main $fop_exec_args"
+fop_exec_command="exec \"$JAVACMD\" $LOGCHOICE $LOGLEVEL -classpath
\"$LOCALCLASSPATH\" $FOP_OPTS org.apache.fop.cli.Main $fop_exec_args"
if $fop_exec_debug ; then
echo $fop_exec_command
fi
Modified: xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.bat
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.bat?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.bat (original)
+++ xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.bat Thu Sep 27
12:11:28 2012
@@ -58,7 +58,7 @@ set LIBDIR=%LOCAL_FOP_HOME%lib
set LOCALCLASSPATH=%FOP_HYPHENATION_PATH%
for %%l in (%LOCAL_FOP_HOME%build\*.jar %LIBDIR%\*.jar) do set
LOCALCLASSPATH=!LOCALCLASSPATH!;%%l
-set JAVAOPTS=-Denv.windir=%WINDIR% -Djava.awt.headless=true
+set JAVAOPTS=-Denv.windir=%WINDIR%
if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
Modified: xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.js
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.js?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.js (original)
+++ xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/fop.js Thu Sep 27 12:11:28
2012
@@ -18,7 +18,6 @@
// rpm_mode is irrelevant on Windows
// var rpm_mode=true;
-var java_exec_args = "-Djava.awt.headless=true";
var fop_exec_args = "";
var no_config=false;
var fop_exec_debug=false;
@@ -63,7 +62,6 @@ function read_args() {
WScript.Echo("keepopen: " + keep_open);
WScript.Echo("noconfig: " + no_config);
WScript.Echo("help: " + show_help);
- WScript.Echo("java arguments: " + java_exec_args);
WScript.Echo("fop arguments: " + fop_exec_args);
}
}
@@ -222,7 +220,6 @@ function get_local_classpath() {
// Execute fop via shell.Exec
function fop_exec() {
var fop_exec_command = "\"" + javacmd + "\" "
- + java_exec_args + " "
+ (config.Exists("JAVA_OPTS")?config.Item("JAVA_OPTS") + " ":"")
+ (config.Exists("LOGCHOICE")?config.Item("LOGCHOICE") + " ":"")
+ (config.Exists("LOGLEVEL")?config.Item("LOGLEVEL") + " ":"")
@@ -255,7 +252,6 @@ function fop_exec() {
function fop_run() {
var fop_exec_command = "cmd /" + (keep_open?"K":"C") + " \""
+ "\"" + javacmd + "\" "
- + java_exec_args + " "
+ (config.Exists("JAVA_OPTS")?config.Item("JAVA_OPTS") + " ":"")
+ (config.Exists("LOGCHOICE")?config.Item("LOGCHOICE") + " ":"")
+ (config.Exists("LOGLEVEL")?config.Item("LOGLEVEL") + " ":"")
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/accessibility/fo/StructureTreeEventTrigger.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/accessibility/fo/StructureTreeEventTrigger.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/accessibility/fo/StructureTreeEventTrigger.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/accessibility/fo/StructureTreeEventTrigger.java
Thu Sep 27 12:11:28 2012
@@ -20,6 +20,7 @@
package org.apache.fop.accessibility.fo;
import java.util.Locale;
+import java.util.Stack;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
@@ -30,6 +31,7 @@ import org.apache.fop.fo.FOEventHandler;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FOText;
import org.apache.fop.fo.extensions.ExtensionElementMapping;
+import org.apache.fop.fo.extensions.InternalElementMapping;
import org.apache.fop.fo.flow.AbstractGraphics;
import org.apache.fop.fo.flow.BasicLink;
import org.apache.fop.fo.flow.Block;
@@ -70,6 +72,10 @@ class StructureTreeEventTrigger extends
private LayoutMasterSet layoutMasterSet;
+ private final Stack<Table> tables = new Stack<Table>();
+
+ private final Stack<Boolean> inTableHeader = new Stack<Boolean>();
+
public StructureTreeEventTrigger(StructureTreeEventHandler
structureTreeEventHandler) {
this.structureTreeEventHandler = structureTreeEventHandler;
}
@@ -195,42 +201,51 @@ class StructureTreeEventTrigger extends
@Override
public void startTable(Table tbl) {
+ tables.push(tbl);
startElement(tbl);
}
@Override
public void endTable(Table tbl) {
endElement(tbl);
+ tables.pop();
}
@Override
public void startHeader(TableHeader header) {
+ inTableHeader.push(Boolean.TRUE);
startElement(header);
}
@Override
public void endHeader(TableHeader header) {
endElement(header);
+ inTableHeader.pop();
}
@Override
public void startFooter(TableFooter footer) {
+ // TODO Shouldn't it be true?
+ inTableHeader.push(Boolean.FALSE);
startElement(footer);
}
@Override
public void endFooter(TableFooter footer) {
endElement(footer);
+ inTableHeader.pop();
}
@Override
public void startBody(TableBody body) {
+ inTableHeader.push(Boolean.FALSE);
startElement(body);
}
@Override
public void endBody(TableBody body) {
endElement(body);
+ inTableHeader.pop();
}
@Override
@@ -248,6 +263,24 @@ class StructureTreeEventTrigger extends
AttributesImpl attributes = new AttributesImpl();
addSpanAttribute(attributes, "number-columns-spanned",
tc.getNumberColumnsSpanned());
addSpanAttribute(attributes, "number-rows-spanned",
tc.getNumberRowsSpanned());
+ boolean rowHeader = inTableHeader.peek();
+ boolean columnHeader = tables.peek().getColumn(tc.getColumnNumber() -
1).isHeader();
+ if (rowHeader || columnHeader) {
+ final String th = "TH";
+ String role = tc.getCommonAccessibility().getRole();
+ /* Do not override a custom role */
+ if (role == null) {
+ role = th;
+ addNoNamespaceAttribute(attributes, "role", th);
+ }
+ if (role.equals(th)) {
+ if (columnHeader) {
+ String scope = rowHeader ? "Both" : "Row";
+ addAttribute(attributes, InternalElementMapping.URI,
InternalElementMapping.SCOPE,
+ InternalElementMapping.STANDARD_PREFIX, scope);
+ }
+ }
+ }
startElement(tc, attributes);
}
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/Constants.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/Constants.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/Constants.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/Constants.java
Thu Sep 27 12:11:28 2012
@@ -785,8 +785,11 @@ public interface Constants {
*/
int PR_X_NUMBER_CONVERSION_FEATURES = 276;
+ /** Scope for table header */
+ int PR_X_HEADER_COLUMN = 277;
+
/** Number of property constants defined */
- int PROPERTY_COUNT = 276;
+ int PROPERTY_COUNT = 277;
// compound property constants
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/FOPropertyMapping.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/FOPropertyMapping.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/FOPropertyMapping.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/FOPropertyMapping.java
Thu Sep 27 12:11:28 2012
@@ -2513,6 +2513,12 @@ public final class FOPropertyMapping imp
m.setInherited(false);
m.setDefault("false");
addPropertyMaker("table-omit-header-at-break", m);
+
+ // fox:scope
+ m = new EnumProperty.Maker(PR_X_HEADER_COLUMN);
+ m.useGeneric(genericBoolean);
+ m.setDefault("false");
+ addPropertyMaker("fox:header", m);
}
private void createWritingModeProperties() {
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
Thu Sep 27 12:11:28 2012
@@ -52,6 +52,7 @@ public class ExtensionElementMapping ext
PROPERTY_ATTRIBUTES.add("disable-column-balancing");
//These are FOP's extension properties for accessibility
PROPERTY_ATTRIBUTES.add("alt-text");
+ PROPERTY_ATTRIBUTES.add("header");
}
/**
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/InternalElementMapping.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/InternalElementMapping.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/InternalElementMapping.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/extensions/InternalElementMapping.java
Thu Sep 27 12:11:28 2012
@@ -43,12 +43,15 @@ public class InternalElementMapping exte
/** The "struct-ref" attribute, to refer to a structure tree element. */
public static final String STRUCT_REF = "struct-ref";
+ public static final String SCOPE = "scope";
+
private static final Set<String> PROPERTY_ATTRIBUTES = new
java.util.HashSet<String>();
static {
//These are FOP's extension properties for accessibility
PROPERTY_ATTRIBUTES.add(STRUCT_ID);
PROPERTY_ATTRIBUTES.add(STRUCT_REF);
+ PROPERTY_ATTRIBUTES.add(SCOPE);
}
/**
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/flow/table/TableColumn.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/flow/table/TableColumn.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/flow/table/TableColumn.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fo/flow/table/TableColumn.java
Thu Sep 27 12:11:28 2012
@@ -24,6 +24,7 @@ import org.xml.sax.Locator;
import org.apache.fop.apps.FOPException;
import org.apache.fop.datatypes.Length;
+import org.apache.fop.fo.Constants;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.ValidationException;
@@ -44,6 +45,7 @@ public class TableColumn extends TableFO
private Length columnWidth;
private int numberColumnsRepeated;
private int numberColumnsSpanned;
+ private boolean isHeader;
// Unused but valid items, commented out for performance:
// private int visibility;
// End of property values
@@ -120,6 +122,7 @@ public class TableColumn extends TableFO
if (!this.implicitColumn) {
this.pList = pList;
}
+ isHeader = (pList.get(Constants.PR_X_HEADER_COLUMN).getEnum() ==
Constants.EN_TRUE);
}
/** {@inheritDoc} */
@@ -263,4 +266,13 @@ public class TableColumn extends TableFO
this.pList = null;
}
+ /**
+ * Returns {@code true} if this column is made of header cells.
+ *
+ * @return {@code true} if cells in this column are like TH cells in HTML
+ */
+ public boolean isHeader() {
+ return isHeader;
+ }
+
}
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fonts/CIDSet.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fonts/CIDSet.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fonts/CIDSet.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/fonts/CIDSet.java
Thu Sep 27 12:11:28 2012
@@ -38,7 +38,7 @@ public interface CIDSet {
/**
* Returns the Unicode value for a subset index (character selector). If
there's no such
* Unicode value, the "NOT A CHARACTER" (0xFFFF) is returned.
- * @param subsetIndex the subset index (character selector)
+ * @param index the subset index (character selector)
* @return the Unicode value or "NOT A CHARACTER" (0xFFFF)
*/
char getUnicode(int index);
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
Thu Sep 27 12:11:28 2012
@@ -30,6 +30,7 @@ import org.apache.fop.accessibility.Stru
import org.apache.fop.accessibility.StructureTreeEventHandler;
import org.apache.fop.events.EventBroadcaster;
import org.apache.fop.fo.extensions.ExtensionElementMapping;
+import org.apache.fop.fo.extensions.InternalElementMapping;
import org.apache.fop.fo.pagination.Flow;
import org.apache.fop.pdf.PDFFactory;
import org.apache.fop.pdf.PDFParentTree;
@@ -138,7 +139,7 @@ class PDFStructureTreeBuilder implements
PDFStructElem structElem = createStructureElement(parent,
structureType);
setAttributes(structElem, attributes);
addKidToParent(structElem, parent, attributes);
- registerStructureElement(structElem, pdfFactory);
+ registerStructureElement(structElem, pdfFactory, attributes);
return structElem;
}
@@ -155,7 +156,8 @@ class PDFStructureTreeBuilder implements
parent.addKid(kid);
}
- protected void registerStructureElement(PDFStructElem
structureElement, PDFFactory pdfFactory) {
+ protected void registerStructureElement(PDFStructElem
structureElement, PDFFactory pdfFactory,
+ Attributes attributes) {
pdfFactory.getDocument().registerStructureElement(structureElement);
}
@@ -240,22 +242,15 @@ class PDFStructureTreeBuilder implements
}
@Override
- protected PDFStructElem
createStructureElement(StructureHierarchyMember parent,
- StructureType structureType) {
- PDFStructElem grandParent = ((PDFStructElem)
parent).getParentStructElem();
- //TODO What to do with cells from table-footer? Currently they are
mapped on TD.
- if (grandParent.getStructureType() ==
StandardStructureTypes.Table.THEAD) {
- structureType = StandardStructureTypes.Table.TH;
- } else {
- structureType = StandardStructureTypes.Table.TD;
- }
- return super.createStructureElement(parent, structureType);
- }
-
- @Override
- protected void registerStructureElement(PDFStructElem
structureElement, PDFFactory pdfFactory) {
+ protected void registerStructureElement(PDFStructElem
structureElement, PDFFactory pdfFactory,
+ Attributes attributes) {
if (structureElement.getStructureType() == Table.TH) {
-
pdfFactory.getDocument().registerStructureElement(structureElement,
Scope.COLUMN);
+ String scopeAttribute =
attributes.getValue(InternalElementMapping.URI,
+ InternalElementMapping.SCOPE);
+ Scope scope = (scopeAttribute == null)
+ ? Scope.COLUMN
+ :
Scope.valueOf(scopeAttribute.toUpperCase(Locale.ENGLISH));
+
pdfFactory.getDocument().registerStructureElement(structureElement, scope);
} else {
pdfFactory.getDocument().registerStructureElement(structureElement);
}
Modified: xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/status.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/status.xml?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/status.xml (original)
+++ xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/status.xml Thu Sep 27
12:11:28 2012
@@ -62,6 +62,11 @@
documents. Example: the fix of marks layering will be such a case when
it's done.
-->
<release version="FOP Trunk" date="TBD">
+ <action context="Renderers" dev="VH" type="add" fixes-bug="53902">
+ Added possibility to define âheaderâ table columns (the same way
as fo:table-header allows
+ to define header rows). When accessibility is enabled, this allows to
set the appropriate
+ Scope attribute on the corresponding TH cells.
+ </action>
<action context="Fonts" dev="MH" type="add" fixes-bug="53868"
importance="low" due-to="Luis Bernardo">
Full font embedding in PDF
</action>
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
Thu Sep 27 12:11:28 2012
@@ -91,6 +91,11 @@ public class FO2StructureTreeConverterTe
testConverter("/org/apache/fop/fo/pagination/side-regions.fo");
}
+ @Test
+ public void headerTableCellMustPropagateScope() throws Exception {
+ testConverter("table-header_scope.fo");
+ }
+
private static InputStream getResource(String name) {
return
FO2StructureTreeConverterTestCase.class.getResourceAsStream(name);
}
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
Thu Sep 27 12:11:28 2012
@@ -21,7 +21,7 @@
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"
xmlns:foi="http://xmlgraphics.apache.org/fop/internal">
- <xsl:output method="xml" indent="no"/>
+ <xsl:output method="xml" indent="yes"/>
<xsl:template name="copy">
<xsl:copy>
@@ -92,10 +92,37 @@
<xsl:call-template name="copy"/>
</xsl:template>
- <xsl:template
match="fo:table|fo:table-header|fo:table-footer|fo:table-body|fo:table-row|fo:table-cell">
+ <xsl:template
match="fo:table|fo:table-header|fo:table-footer|fo:table-body|fo:table-row">
<xsl:call-template name="copy"/>
</xsl:template>
+ <xsl:template name="get.column.header">
+ <xsl:value-of select="ancestor::fo:table/fo:table-column[
+ count(preceding-sibling::fo:table-column) =
count(current()/preceding-sibling::fo:table-cell)]/@fox:header"/>
+ </xsl:template>
+
+ <xsl:template match="fo:table-cell">
+ <xsl:variable name="header"><xsl:call-template
name="get.column.header"/></xsl:variable>
+ <xsl:copy>
+ <xsl:if test="$header = 'true'">
+ <xsl:attribute name="role">TH</xsl:attribute>
+ <xsl:attribute name="scope"
namespace="http://xmlgraphics.apache.org/fop/internal">Row</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template
match="fo:table-header/fo:table-cell|fo:table-header/fo:table-row/fo:table-cell">
+ <xsl:variable name="header"><xsl:call-template
name="get.column.header"/></xsl:variable>
+ <xsl:copy>
+ <xsl:attribute name="role">TH</xsl:attribute>
+ <xsl:if test="$header = 'true'">
+ <xsl:attribute name="scope"
namespace="http://xmlgraphics.apache.org/fop/internal">Both</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
<!-- Formatting Objects for Lists -->
<xsl:template
match="fo:list-block|fo:list-item|fo:list-item-label|fo:list-item-body">
<xsl:call-template name="copy"/>
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/FONodeMocks.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/FONodeMocks.java?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/FONodeMocks.java
(original)
+++
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/java/org/apache/fop/fo/FONodeMocks.java
Thu Sep 27 12:11:28 2012
@@ -19,19 +19,22 @@
package org.apache.fop.fo;
+import java.io.IOException;
+
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.io.IOException;
-
import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageManager;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.FopFactory;
+import org.apache.fop.events.EventBroadcaster;
+import org.apache.fop.fo.flow.table.ColumnNumberManager;
+import org.apache.fop.fo.flow.table.ColumnNumberManagerHolder;
/**
* A helper class for creating mocks of {@link FONode} and its descendants.
@@ -51,27 +54,36 @@ public final class FONodeMocks {
public static FONode mockFONode() {
FONode mockFONode = mock(FONode.class);
mockGetFOEventHandler(mockFONode);
+ mockGetImageManager(mockFONode.getFOEventHandler().getUserAgent());
return mockFONode;
}
- private static void mockGetFOEventHandler(FONode mockFONode) {
+ public static FOEventHandler mockGetFOEventHandler(FONode mockFONode) {
FOEventHandler mockFOEventHandler = mock(FOEventHandler.class);
mockGetUserAgent(mockFOEventHandler);
when(mockFONode.getFOEventHandler()).thenReturn(mockFOEventHandler);
+ return mockFOEventHandler;
}
- private static void mockGetUserAgent(FOEventHandler mockFOEventHandler) {
+ public static FOUserAgent mockGetUserAgent(FOEventHandler
mockFOEventHandler) {
FOUserAgent mockFOUserAgent = mock(FOUserAgent.class);
- mockGetImageManager(mockFOUserAgent);
when(mockFOEventHandler.getUserAgent()).thenReturn(mockFOUserAgent);
+ return mockFOUserAgent;
}
- private static void mockGetImageManager(FOUserAgent mockFOUserAgent) {
+ public static EventBroadcaster mockGetEventBroadcaster(FOUserAgent
mockFOUserAgent) {
+ EventBroadcaster mockBroadcaster = mock(EventBroadcaster.class);
+
when(mockFOUserAgent.getEventBroadcaster()).thenReturn(mockBroadcaster);
+ return mockBroadcaster;
+ }
+
+ public static ImageManager mockGetImageManager(FOUserAgent
mockFOUserAgent) {
try {
ImageManager mockImageManager = mock(ImageManager.class);
when(mockImageManager.getImageInfo(anyString(),
any(ImageSessionContext.class)))
.thenReturn(null);
when(mockFOUserAgent.getImageManager()).thenReturn(mockImageManager);
+ return mockImageManager;
} catch (ImageException e) {
throw new RuntimeException(e);
} catch (IOException e) {
@@ -79,4 +91,10 @@ public final class FONodeMocks {
}
}
+ public static ColumnNumberManager
mockGetColumnNumberManager(ColumnNumberManagerHolder mock) {
+ ColumnNumberManager mockColumnNumberManager =
mock(ColumnNumberManager.class);
+
when(mock.getColumnNumberManager()).thenReturn(mockColumnNumberManager);
+ return mockColumnNumberManager;
+ }
+
}
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_repeat.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_repeat.pdf?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
Binary files - no diff available.
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_single.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/background-image_svg_single.pdf?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
Binary files - no diff available.
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_svg.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_svg.pdf?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
Binary files - no diff available.
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_wmf.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/image_wmf.pdf?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
Binary files - no diff available.
Modified:
xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/text_font-embedding.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_XGC_URI_Resolution/test/pdf/accessibility/pdf/text_font-embedding.pdf?rev=1390959&r1=1390958&r2=1390959&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]