]> source.dussan.org Git - poi.git/commitdiff
Prepare HSSFBorderFormatting for #58138
authorNick Burch <nick@apache.org>
Tue, 14 Jul 2015 20:36:10 +0000 (20:36 +0000)
committerNick Burch <nick@apache.org>
Tue, 14 Jul 2015 20:36:10 +0000 (20:36 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691075 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java
src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java

index 7f94f92c986fc31b9c4eb61b36467ed025fdf4e4..3b048a78bc8ebac3e242f64cef94a3cdf74e65cc 100644 (file)
@@ -19,193 +19,164 @@ package org.apache.poi.hssf.usermodel;
 
 import org.apache.poi.hssf.record.CFRuleBase;
 import org.apache.poi.hssf.record.cf.BorderFormatting;
+import org.apache.poi.hssf.util.HSSFColor;
 
 /**
  * High level representation for Border Formatting component
  * of Conditional Formatting settings
  */
-public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.BorderFormatting
-{
+public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.BorderFormatting {
+    private final HSSFWorkbook workbook;
        private final CFRuleBase cfRuleRecord;
        private final BorderFormatting borderFormatting;
        
-       protected HSSFBorderFormatting(CFRuleBase cfRuleRecord)
-       {
+       protected HSSFBorderFormatting(CFRuleBase cfRuleRecord, HSSFWorkbook workbook) {
+           this.workbook = workbook;
                this.cfRuleRecord = cfRuleRecord;
                this.borderFormatting = cfRuleRecord.getBorderFormatting();
        }
 
-       protected BorderFormatting getBorderFormattingBlock()
-       {
+       protected BorderFormatting getBorderFormattingBlock() {
                return borderFormatting;
        }
 
-       public short getBorderBottom()
-       {
+       public short getBorderBottom() {
                return (short)borderFormatting.getBorderBottom();
        }
 
-       public short getBorderDiagonal()
-       {
+       public short getBorderDiagonal() {
                return (short)borderFormatting.getBorderDiagonal();
        }
 
-       public short getBorderLeft()
-       {
+       public short getBorderLeft() {
                return (short)borderFormatting.getBorderLeft();
        }
 
-       public short getBorderRight()
-       {
+       public short getBorderRight() {
                return (short)borderFormatting.getBorderRight();
        }
 
-       public short getBorderTop()
-       {
+       public short getBorderTop() {
                return (short)borderFormatting.getBorderTop();
        }
 
-       public short getBottomBorderColor()
-       {
+       public short getBottomBorderColor() {
                return (short)borderFormatting.getBottomBorderColor();
        }
+    public HSSFColor getBottomBorderColorColor() {
+        return workbook.getCustomPalette().getColor(
+                borderFormatting.getBottomBorderColor()
+        );
+    }
 
-       public short getDiagonalBorderColor()
-       {
+       public short getDiagonalBorderColor() {
                return (short)borderFormatting.getDiagonalBorderColor();
        }
 
-       public short getLeftBorderColor()
-       {
+       public short getLeftBorderColor() {
                return (short)borderFormatting.getLeftBorderColor();
        }
 
-       public short getRightBorderColor()
-       {
+       public short getRightBorderColor() {
                return (short)borderFormatting.getRightBorderColor();
        }
 
-       public short getTopBorderColor()
-       {
+       public short getTopBorderColor() {
                return (short)borderFormatting.getTopBorderColor();
        }
 
-       public boolean isBackwardDiagonalOn()
-       {
+       public boolean isBackwardDiagonalOn() {
                return borderFormatting.isBackwardDiagonalOn();
        }
 
-       public boolean isForwardDiagonalOn()
-       {
+       public boolean isForwardDiagonalOn() {
                return borderFormatting.isForwardDiagonalOn();
        }
 
-       public void setBackwardDiagonalOn(boolean on)
-       {
+       public void setBackwardDiagonalOn(boolean on) {
                borderFormatting.setBackwardDiagonalOn(on);
-               if( on )
-               {
+               if( on ) {
                        cfRuleRecord.setTopLeftBottomRightBorderModified(on);
                }
        }
 
-       public void setBorderBottom(short border)
-       {
+       public void setBorderBottom(short border) {
                borderFormatting.setBorderBottom(border);
-               if( border != 0)
-               {
+               if( border != 0) {
                        cfRuleRecord.setBottomBorderModified(true);
-               }
+               } else {
+                       cfRuleRecord.setBottomBorderModified(false);
+      }
        }
 
-       public void setBorderDiagonal(short border)
-       {
+       public void setBorderDiagonal(short border) {
                borderFormatting.setBorderDiagonal(border);
-               if( border != 0)
-               {
+               if( border != 0) {
                        cfRuleRecord.setBottomLeftTopRightBorderModified(true);
                        cfRuleRecord.setTopLeftBottomRightBorderModified(true);
                }
        }
 
-       public void setBorderLeft(short border)
-       {
+       public void setBorderLeft(short border) {
                borderFormatting.setBorderLeft(border);
-               if( border != 0)
-               {
+               if( border != 0) {
                        cfRuleRecord.setLeftBorderModified(true);
                }
        }
 
-       public void setBorderRight(short border)
-       {
+       public void setBorderRight(short border) {
                borderFormatting.setBorderRight(border);
-               if( border != 0)
-               {
+               if( border != 0) {
                        cfRuleRecord.setRightBorderModified(true);
                }
        }
 
-       public void setBorderTop(short border)
-       {
+       public void setBorderTop(short border) {
                borderFormatting.setBorderTop(border);
-               if( border != 0)
-               {
+               if( border != 0) {
                        cfRuleRecord.setTopBorderModified(true);
                }
        }
 
-       public void setBottomBorderColor(short color)
-       {
+       public void setBottomBorderColor(short color) {
                borderFormatting.setBottomBorderColor(color);
-               if( color != 0)
-               {
+               if( color != 0) {
                        cfRuleRecord.setBottomBorderModified(true);
                }
        }
 
-       public void setDiagonalBorderColor(short color)
-       {
+       public void setDiagonalBorderColor(short color) {
                borderFormatting.setDiagonalBorderColor(color);
-               if( color != 0)
-               {
+               if( color != 0) {
                        cfRuleRecord.setBottomLeftTopRightBorderModified(true);
                        cfRuleRecord.setTopLeftBottomRightBorderModified(true);
                }
        }
 
-       public void setForwardDiagonalOn(boolean on)
-       {
+       public void setForwardDiagonalOn(boolean on) {
                borderFormatting.setForwardDiagonalOn(on);
-               if( on )
-               {
+               if( on ) {
                        cfRuleRecord.setBottomLeftTopRightBorderModified(on);
                }
        }
 
-       public void setLeftBorderColor(short color)
-       {
+       public void setLeftBorderColor(short color) {
                borderFormatting.setLeftBorderColor(color);
-               if( color != 0)
-               {
+               if( color != 0) {
                        cfRuleRecord.setLeftBorderModified(true);
                }
        }
 
-       public void setRightBorderColor(short color)
-       {
+       public void setRightBorderColor(short color) {
                borderFormatting.setRightBorderColor(color);
-               if( color != 0)
-               {
+               if( color != 0) {
                        cfRuleRecord.setRightBorderModified(true);
                }
        }
 
-       public void setTopBorderColor(short color)
-       {
+       public void setTopBorderColor(short color) {
                borderFormatting.setTopBorderColor(color);
-               if( color != 0)
-               {
+               if( color != 0) {
                        cfRuleRecord.setTopBorderModified(true);
                }
        }
index 31f5cd631914274a3cbc62fb5a320cdedc402d79..f3a81c0358e24489c543e25654b4ade08851bbff 100644 (file)
@@ -99,13 +99,13 @@ public final class HSSFConditionalFormattingRule implements ConditionalFormattin
         if ( borderFormatting != null)
         {
             cfRuleRecord.setBorderFormatting(borderFormatting);
-            return new HSSFBorderFormatting(cfRuleRecord);
+            return new HSSFBorderFormatting(cfRuleRecord, workbook);
         }
         else if( create )
         {
             borderFormatting = new BorderFormatting();
             cfRuleRecord.setBorderFormatting(borderFormatting);
-            return new HSSFBorderFormatting(cfRuleRecord);
+            return new HSSFBorderFormatting(cfRuleRecord, workbook);
         }
         else
         {