simplify HTML CSS creation code

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1155357 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-08-09 13:25:56 +00:00
parent 73bfd88166
commit 339e6e29fa
3 changed files with 34 additions and 44 deletions

View File

@ -524,11 +524,8 @@ public class ExcelToHtmlConverter
innerDivStyle.append( "pt;white-space:nowrap;" );
ExcelToHtmlUtils.appendAlign( innerDivStyle,
cellStyle.getAlignment() );
innerDiv.setAttribute(
"class",
htmlDocumentFacade.getOrCreateCssClass(
outerDiv.getTagName(), "d",
innerDivStyle.toString() ) );
htmlDocumentFacade.addStyleClass( outerDiv, "d",
innerDivStyle.toString() );
innerDiv.appendChild( text );
outerDiv.appendChild( innerDiv );
@ -761,11 +758,8 @@ public class ExcelToHtmlConverter
continue;
Element tableRowElement = htmlDocumentFacade.createTableRow();
tableRowElement.setAttribute(
"class",
htmlDocumentFacade.getOrCreateCssClass(
tableRowElement.getTagName(), "r", "height:"
+ ( row.getHeight() / 20f ) + "pt;" ) );
htmlDocumentFacade.addStyleClass( tableRowElement, "r", "height:"
+ ( row.getHeight() / 20f ) + "pt;" );
int maxRowColumnNumber = processRow( mergedRanges, row,
tableRowElement );

View File

@ -57,10 +57,7 @@ public class HtmlDocumentFacade
html.appendChild( body );
head.appendChild( stylesheetElement );
body.setAttribute(
"class",
getOrCreateCssClass( "body", "b",
"white-space-collapsing: preserve; " ) );
addStyleClass( body, "b", "white-space-collapsing:preserve;" );
}
public void addAuthor( String value )
@ -86,6 +83,17 @@ public class HtmlDocumentFacade
head.appendChild( meta );
}
public void addStyleClass( Element element, String classNamePrefix,
String style )
{
String exising = element.getAttribute( "class" );
String addition = getOrCreateCssClass( element.getTagName(),
classNamePrefix, style );
String newClassValue = WordToHtmlUtils.isEmpty( exising ) ? addition
: ( exising + " " + addition );
element.setAttribute( "class", newClassValue );
}
public Element createBlock()
{
return document.createElement( "div" );

View File

@ -217,8 +217,7 @@ public class WordToHtmlConverter extends AbstractWordConverter
WordToHtmlUtils.addCharactersProperties( characterRun, style );
if ( style.length() != 0 )
span.setAttribute( "class", htmlDocumentFacade.getOrCreateCssClass(
span.getTagName(), "s", style.toString() ) );
htmlDocumentFacade.addStyleClass( span, "s", style.toString() );
Text textNode = htmlDocumentFacade.createText( text );
span.appendChild( textNode );
@ -405,26 +404,22 @@ public class WordToHtmlConverter extends AbstractWordConverter
- cropBottom );
root = htmlDocumentFacade.createBlock();
root.setAttribute( "class", htmlDocumentFacade.getOrCreateCssClass(
root.getTagName(), "d", "vertical-align:text-bottom;width:"
+ visibleWidth + "in;height:" + visibleHeight
+ "in;" ) );
htmlDocumentFacade.addStyleClass( root, "d",
"vertical-align:text-bottom;width:" + visibleWidth
+ "in;height:" + visibleHeight + "in;" );
// complex
Element inner = htmlDocumentFacade.createBlock();
inner.setAttribute( "class", htmlDocumentFacade
.getOrCreateCssClass( inner.getTagName(), "d",
"position:relative;width:" + visibleWidth
+ "in;height:" + visibleHeight
+ "in;overflow:hidden;" ) );
htmlDocumentFacade.addStyleClass( inner, "d",
"position:relative;width:" + visibleWidth + "in;height:"
+ visibleHeight + "in;overflow:hidden;" );
root.appendChild( inner );
Element image = htmlDocumentFacade.createImage( imageSourcePath );
image.setAttribute( "class", htmlDocumentFacade
.getOrCreateCssClass( image.getTagName(), "i",
"position:absolute;left:-" + cropLeft + ";top:-"
+ cropTop + ";width:" + imageWidth
+ "in;height:" + imageHeight + "in;" ) );
htmlDocumentFacade.addStyleClass( image, "i",
"position:absolute;left:-" + cropLeft + ";top:-" + cropTop
+ ";width:" + imageWidth + "in;height:"
+ imageHeight + "in;" );
inner.appendChild( image );
style.append( "overflow:hidden;" );
@ -560,10 +555,7 @@ public class WordToHtmlConverter extends AbstractWordConverter
}
if ( style.length() > 0 )
pElement.setAttribute(
"class",
htmlDocumentFacade.getOrCreateCssClass(
pElement.getTagName(), "p", style.toString() ) );
htmlDocumentFacade.addStyleClass( pElement, "p", style.toString() );
WordToHtmlUtils.compactSpans( pElement );
return;
@ -573,8 +565,7 @@ public class WordToHtmlConverter extends AbstractWordConverter
Section section, int sectionCounter )
{
Element div = htmlDocumentFacade.createBlock();
div.setAttribute( "class", htmlDocumentFacade.getOrCreateCssClass(
div.getTagName(), "d", getSectionStyle( section ) ) );
htmlDocumentFacade.addStyleClass( div, "d", getSectionStyle( section ) );
htmlDocumentFacade.body.appendChild( div );
processParagraphes( wordDocument, div, section, Integer.MIN_VALUE );
@ -584,9 +575,8 @@ public class WordToHtmlConverter extends AbstractWordConverter
protected void processSingleSection( HWPFDocumentCore wordDocument,
Section section )
{
htmlDocumentFacade.body
.setAttribute( "class", htmlDocumentFacade.getOrCreateCssClass(
"body", "b", getSectionStyle( section ) ) );
htmlDocumentFacade.addStyleClass( htmlDocumentFacade.body, "b",
getSectionStyle( section ) );
processParagraphes( wordDocument, htmlDocumentFacade.body, section,
Integer.MIN_VALUE );
@ -672,11 +662,9 @@ public class WordToHtmlConverter extends AbstractWordConverter
.createParagraph() );
}
if ( tableCellStyle.length() > 0 )
tableCellElement.setAttribute( "class", htmlDocumentFacade
.getOrCreateCssClass(
tableCellElement.getTagName(),
tableCellElement.getTagName(),
tableCellStyle.toString() ) );
htmlDocumentFacade.addStyleClass( tableCellElement,
tableCellElement.getTagName(),
tableCellStyle.toString() );
tableRowElement.appendChild( tableCellElement );
}