diff options
Diffstat (limited to 'Build/source/texk/tex4htk/java/OoUtilities.java')
-rw-r--r-- | Build/source/texk/tex4htk/java/OoUtilities.java | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/Build/source/texk/tex4htk/java/OoUtilities.java b/Build/source/texk/tex4htk/java/OoUtilities.java deleted file mode 100644 index db8dbd0012b..00000000000 --- a/Build/source/texk/tex4htk/java/OoUtilities.java +++ /dev/null @@ -1,276 +0,0 @@ -package tex4ht; -/**********************************************************/ -/* OoUtilities.java 2009-03-11-03:09 */ -/* Copyright (C) 2006--2009 Eitan M. Gurari */ -/* */ -/* This work may be distributed and/or modified under the */ -/* conditions of the LaTeX Project Public License, either */ -/* version 1.3 of this license or (at your option) any */ -/* later version. The latest version of this license is */ -/* in */ -/* http://www.latex-project.org/lppl.txt */ -/* and version 1.3 or later is part of all distributions */ -/* of LaTeX version 2003/12/01 or later. */ -/* */ -/* This work has the LPPL maintenance status "maintained".*/ -/* */ -/* This Current Maintainer of this work */ -/* is Eitan M. Gurari. */ -/* */ -/* gurari@cse.ohio-state.edu */ -/* http://www.cse.ohio-state.edu/~gurari */ -/**********************************************************/ - - -import org.w3c.dom.*; -public class OoUtilities { - public static void mtable(Node dom) { - Node mtr, mtd, d; - int cols = 0; - Node node = dom.getFirstChild(); - if (node.hasChildNodes()) { - mtr = node.getLastChild(); - while( mtr != null){ - if( mtr.getNodeType() == Node.ELEMENT_NODE ){ - if (mtr.hasChildNodes()) { - mtd = mtr.getLastChild(); - int count = 0; - while( mtd != null){ - if( mtd.getNodeType() == Node.ELEMENT_NODE ){ - count++; - d = mtd.getFirstChild(); - if( d != null ){ - boolean remove = true; -for(Node i=d; i!=null; i=i.getNextSibling() ){ - if( (i.getNodeType() == Node.ELEMENT_NODE) - && !i.getNodeName().equals("math:mspace") ) { - remove = false; break; -} } -if( remove ){ - while( d != null ){ - mtd.removeChild(d); - d = mtd.getFirstChild(); -} } - - } - if( d != null ){ - if( - (d.getNodeType() == Node.TEXT_NODE) - && d.getNodeValue().trim().equals("") -){ - d.getParentNode().removeChild(d); - d = null; -} - - } } - d = mtd; - mtd = mtd.getPreviousSibling(); - if( - (d.getNodeType() == Node.TEXT_NODE) - && d.getNodeValue().trim().equals("") -){ - d.getParentNode().removeChild(d); - d = null; -} - - if( (d != null) - && (d.getNodeType() == Node.ELEMENT_NODE) ){ - if( (d.getNextSibling()==null) - && (d.getFirstChild()==null) ){ - d.getParentNode().removeChild(d); - d = null; -} - - if( d == null ){ count--; } - } } - if( count > cols ){ cols = count; } - } } - d = mtr; - mtr = mtr.getPreviousSibling(); - if( - (d.getNodeType() == Node.TEXT_NODE) - && d.getNodeValue().trim().equals("") -){ - d.getParentNode().removeChild(d); - d = null; -} - - if( d != null ){ - if( (d.getNextSibling()==null) - && (d.getFirstChild()==null) ){ - d.getParentNode().removeChild(d); - d = null; -} - -} } } - - if (node.hasChildNodes()) { - mtr = node.getFirstChild(); - while( mtr != null){ - if( mtr.getNodeType() == Node.ELEMENT_NODE ){ - int count = 0; - if (mtr.hasChildNodes()) { - mtd = mtr.getFirstChild(); - while( mtd != null){ - if( mtd.getNodeType() == Node.ELEMENT_NODE ){ - mtr.insertBefore( ((Document) dom).createTextNode("\n"), mtd ); - - count++; - } - mtd = mtd.getNextSibling(); - } - } - if( count < cols ){ - for(int i = count; i < cols; i++){ - mtr.appendChild( ((Document) dom).createElement("math:mtd") ); -} - - } } - mtr = mtr.getNextSibling(); -} } - -} - - public static void table(Node dom) { - Node tblRow, tblCell, d; -// int cols = 0; - Node node = dom.getFirstChild(); - - tblRow = node.getLastChild(); -while( (tblRow != null) -// && (tblRow.getNodeType() == Node.TEXT_NODE) -// && tblRow.getNodeValue().trim().equals("") - && tblRow.getTextContent().trim().equals("") -){ - node.removeChild(tblRow); - tblRow = node.getLastChild(); -} - - if( (tblRow != null) && (tblRow.getPreviousSibling() != null) ){ - boolean bool = false; -if( tblRow.getNodeName().equals("table:table-row") - && tblRow.hasAttributes() -){ - NamedNodeMap attributes = tblRow.getAttributes(); - Node styleAttr = attributes.getNamedItem( "table:style-name" ); - String style = (styleAttr==null)? null - : styleAttr.getNodeValue(); - if( (style != null) - && ( style.equals("hline-row") - || style.equals("cline-row") - ) - ){ - bool = true; -} } - - if( !bool ){ - tblCell = tblRow.getFirstChild(); -while( tblCell != null){ - d = tblCell.getNextSibling(); - if( justSpace(tblCell) ){ tblRow.removeChild(tblCell); } - tblCell = d; -} - - - tblCell = tblRow.getFirstChild(); - if( (tblCell != null) - && (tblCell.getNextSibling() == null) - && justSpace(tblCell) - ){ - node.removeChild(tblRow); - } } } - int n = 0; -tblRow = node.getFirstChild(); -while( tblRow != null ){ - if( - (tblRow.getNodeType() == Node.ELEMENT_NODE) - && - tblRow.getNodeName().equals("table:table-row") - ){ - int m = 0; -tblCell = tblRow.getFirstChild(); -while( tblCell != null ){ - if( - (tblCell.getNodeType() == Node.ELEMENT_NODE) - && - tblCell.getNodeName().equals("table:table-cell") - ){ - m++; - Node child = tblCell.getLastChild(); -while( child != null ){ - Node prevChild = child.getPreviousSibling(); - if( - (child.getNodeType() == Node.ELEMENT_NODE) - && - child.getNodeName().equals("text:p") - ){ - Node sibling = child.getPreviousSibling(); - while( (sibling != null) - && - (sibling.getNodeType() != Node.ELEMENT_NODE) - ){ - sibling = sibling.getPreviousSibling(); - } - if( sibling == null ){ - sibling = child.getNextSibling(); - while( (sibling != null) - && - (sibling.getNodeType() != Node.ELEMENT_NODE) - ){ - sibling = sibling.getNextSibling(); - } } - if( (sibling != null) - && child.getTextContent().trim().equals("") - ){ - tblCell.removeChild(child); - } } - child = prevChild; -} - - } - tblCell = tblCell.getNextSibling(); -} - - if( m > n ){ n = m; } - } - tblRow = tblRow.getNextSibling(); -} - - tblRow = node.getFirstChild(); -while( tblRow != null ){ - d = tblRow.getNextSibling(); - if( - (tblRow.getNodeType() == Node.ELEMENT_NODE) - && - tblRow.getNodeName().equals("table:table-column") - ){ - n--; - if( n < 0 ){ - tblRow.getParentNode().removeChild(tblRow); - } } - tblRow = d; -} - -} - - static boolean justSpace(Node node){ - if( node == null ){ return true; } - if( node.getNodeType() == Node.TEXT_NODE ){ - if( !node.getNodeValue().trim().equals("") ){ return false; } - } else { - if( node.getNodeType() == Node.ELEMENT_NODE ){ - String nm = node.getNodeName(); - if( - !nm.equals("table:table-cell") - && !nm.equals("text:p") - ){ - return false; - } } - } - if(!justSpace( node.getNextSibling() )){ return false; } - if(!justSpace( node.getFirstChild() )){ return false; } - return true; -} - -} - |