]> source.dussan.org Git - poi.git/commitdiff
simplify HTML CSS creation code
authorSergey Vladimirov <sergey@apache.org>
Tue, 9 Aug 2011 13:25:56 +0000 (13:25 +0000)
committerSergey Vladimirov <sergey@apache.org>
Tue, 9 Aug 2011 13:25:56 +0000 (13:25 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1155357 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java
src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java

index a847cde082e2282ae40011d016437ecf70adda31..b25d221a86e5d7a6e91af824a6df02d293961fa1 100644 (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 );
index a6bbffe1245a25989d3cde101aa9785c95c7b1c6..6218210bf03d82adb649d9464ed8d21e4ac11141 100644 (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" );
index e6233d2c3eefa8f2ab7e4697ba36de171819f866..e18efbe2afd52fce2edf1e0d8cfbf4d76327dae2 100644 (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 );
             }