aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Vladimirov <sergey@apache.org>2011-08-09 13:25:56 +0000
committerSergey Vladimirov <sergey@apache.org>2011-08-09 13:25:56 +0000
commit0497d8ad7b59fa5ef153d29a022ec9de95aa6ce0 (patch)
treeebe8a24a59e529909823c10865f831094adffec4
parentc6a96131d4dfe160c6eafcfa0751b0dbcb6a3fe4 (diff)
downloadpoi-0497d8ad7b59fa5ef153d29a022ec9de95aa6ce0.tar.gz
poi-0497d8ad7b59fa5ef153d29a022ec9de95aa6ce0.zip
simplify HTML CSS creation code
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1155357 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java14
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java16
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java48
3 files changed, 34 insertions, 44 deletions
diff --git a/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java b/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
index a847cde082..b25d221a86 100644
--- a/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
+++ b/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
@@ -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 );
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java b/src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java
index a6bbffe124..6218210bf0 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java
@@ -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" );
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java b/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java
index e6233d2c3e..e18efbe2af 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java
@@ -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 );
}