]> source.dussan.org Git - poi.git/commitdiff
bug 59264: use BorderStyle for changing Cell border line style
authorJaven O'Neal <onealj@apache.org>
Tue, 5 Apr 2016 20:28:46 +0000 (20:28 +0000)
committerJaven O'Neal <onealj@apache.org>
Tue, 5 Apr 2016 20:28:46 +0000 (20:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1737879 13f79535-47bb-0310-9956-ffa450edef68

28 files changed:
src/examples/src/org/apache/poi/hssf/view/SVBorder.java
src/examples/src/org/apache/poi/hssf/view/SVTableCellRenderer.java
src/examples/src/org/apache/poi/ss/examples/ExcelComparator.java
src/examples/src/org/apache/poi/ss/examples/html/ToHtml.java
src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java
src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java
src/java/org/apache/poi/ss/usermodel/BorderFormatting.java
src/java/org/apache/poi/ss/usermodel/BorderStyle.java
src/java/org/apache/poi/ss/usermodel/CellStyle.java
src/java/org/apache/poi/ss/util/CellUtil.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFBorderFormatting.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
src/ooxml/testcases/org/apache/poi/ss/usermodel/TestXSSFBorderStyle.java [new file with mode: 0644]
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
src/scratchpad/src/org/apache/poi/hssf/converter/AbstractExcelUtils.java
src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToFoConverter.java
src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java
src/testcases/org/apache/poi/hssf/usermodel/TestRowStyle.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestBorderStyle.java [new file with mode: 0644]
src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java
src/testcases/org/apache/poi/ss/usermodel/TestHSSFBorderStyle.java [new file with mode: 0644]
src/testcases/org/apache/poi/ss/util/TestCellUtil.java
test-data/spreadsheet/59264.xls [new file with mode: 0644]
test-data/spreadsheet/59264.xlsx [new file with mode: 0644]

index 083b9cc18e6d46eda5f87369f9d0a38ed338009f..97a46896634a7b05b1758bdc19cb5baeecdd95a1 100644 (file)
@@ -22,7 +22,7 @@ import java.awt.*;
 
 import javax.swing.border.AbstractBorder;
 
-import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.ss.usermodel.BorderStyle;
 
 /**
  * This is an attempt to implement Excel style borders for the SheetViewer.
@@ -37,10 +37,10 @@ public class SVBorder extends AbstractBorder {
   private Color eastColor = null;
   private Color southColor = null;
   private Color westColor = null;
-  private int northBorderType = HSSFCellStyle.BORDER_NONE;
-  private int eastBorderType =HSSFCellStyle.BORDER_NONE;
-  private int southBorderType = HSSFCellStyle.BORDER_NONE;
-  private int westBorderType = HSSFCellStyle.BORDER_NONE;
+  private BorderStyle northBorderType = BorderStyle.NONE;
+  private BorderStyle eastBorderType = BorderStyle.NONE;
+  private BorderStyle southBorderType = BorderStyle.NONE;
+  private BorderStyle westBorderType = BorderStyle.NONE;
   private boolean northBorder=false;
   private boolean eastBorder=false;
   private boolean southBorder=false;
@@ -49,8 +49,8 @@ public class SVBorder extends AbstractBorder {
 
    public void setBorder(Color northColor, Color eastColor,
                          Color southColor, Color westColor,
-                         int northBorderType, int eastBorderType,
-                         int southBorderType, int westBorderType,
+                         BorderStyle northBorderType, BorderStyle eastBorderType,
+                         BorderStyle southBorderType, BorderStyle westBorderType,
                          boolean selected) {
      this.eastColor = eastColor;
      this.southColor = southColor;
@@ -59,10 +59,10 @@ public class SVBorder extends AbstractBorder {
      this.eastBorderType = eastBorderType;
      this.southBorderType = southBorderType;
      this.westBorderType = westBorderType;
-     this.northBorder=northBorderType != HSSFCellStyle.BORDER_NONE;
-     this.eastBorder=eastBorderType != HSSFCellStyle.BORDER_NONE;
-     this.southBorder=southBorderType != HSSFCellStyle.BORDER_NONE;
-     this.westBorder=westBorderType != HSSFCellStyle.BORDER_NONE;
+     this.northBorder=northBorderType != BorderStyle.NONE;
+     this.eastBorder=eastBorderType != BorderStyle.NONE;
+     this.southBorder=southBorderType != BorderStyle.NONE;
+     this.westBorder=westBorderType != BorderStyle.NONE;
      this.selected = selected;
    }
 
@@ -109,9 +109,9 @@ public class SVBorder extends AbstractBorder {
                                   int height) {
 
       if (northBorder &&
-             ((northBorderType == HSSFCellStyle.BORDER_THIN) ||
-              (northBorderType == HSSFCellStyle.BORDER_MEDIUM) ||
-              (northBorderType == HSSFCellStyle.BORDER_THICK)
+             ((northBorderType == BorderStyle.THIN) ||
+              (northBorderType == BorderStyle.MEDIUM) ||
+              (northBorderType == BorderStyle.THICK)
              )
          ) {
 
@@ -125,9 +125,9 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (eastBorder &&
-             ((eastBorderType == HSSFCellStyle.BORDER_THIN) ||
-              (eastBorderType == HSSFCellStyle.BORDER_MEDIUM) ||
-              (eastBorderType == HSSFCellStyle.BORDER_THICK)
+             ((eastBorderType == BorderStyle.THIN) ||
+              (eastBorderType == BorderStyle.MEDIUM) ||
+              (eastBorderType == BorderStyle.THICK)
              )
          ) {
 
@@ -141,9 +141,9 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (southBorder &&
-              ((southBorderType == HSSFCellStyle.BORDER_THIN) ||
-               (southBorderType == HSSFCellStyle.BORDER_MEDIUM) ||
-               (southBorderType == HSSFCellStyle.BORDER_THICK)
+              ((southBorderType == BorderStyle.THIN) ||
+               (southBorderType == BorderStyle.MEDIUM) ||
+               (southBorderType == BorderStyle.THICK)
               )
          ) {
 
@@ -156,9 +156,9 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (westBorder &&
-             ((westBorderType == HSSFCellStyle.BORDER_THIN) ||
-              (westBorderType == HSSFCellStyle.BORDER_MEDIUM) ||
-              (westBorderType == HSSFCellStyle.BORDER_THICK)
+             ((westBorderType == BorderStyle.THIN) ||
+              (westBorderType == BorderStyle.MEDIUM) ||
+              (westBorderType == BorderStyle.THICK)
              )
          ) {
 
@@ -179,7 +179,7 @@ public class SVBorder extends AbstractBorder {
    private void paintDottedBorders(Graphics g, int x, int y, int width,
                                   int height) {
       if (northBorder &&
-             northBorderType == HSSFCellStyle.BORDER_DOTTED) {
+             northBorderType == BorderStyle.DOTTED) {
         int thickness = getThickness(northBorderType);
 
        g.setColor(northColor);
@@ -192,7 +192,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (eastBorder &&
-              eastBorderType == HSSFCellStyle.BORDER_DOTTED
+              eastBorderType == BorderStyle.DOTTED
          ) {
 
         int thickness = getThickness(eastBorderType);
@@ -208,7 +208,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (southBorder &&
-              southBorderType == HSSFCellStyle.BORDER_DOTTED
+              southBorderType == BorderStyle.DOTTED
          ) {
 
         int thickness = getThickness(southBorderType);
@@ -222,7 +222,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (westBorder &&
-            westBorderType == HSSFCellStyle.BORDER_DOTTED
+            westBorderType == BorderStyle.DOTTED
          ) {
 
         int thickness = getThickness(westBorderType);
@@ -245,14 +245,14 @@ public class SVBorder extends AbstractBorder {
    private void paintDashedBorders(Graphics g, int x, int y, int width,
                                   int height) {
       if (northBorder &&
-             ((northBorderType == HSSFCellStyle.BORDER_DASHED) ||
-              (northBorderType == HSSFCellStyle.BORDER_HAIR))
+             ((northBorderType == BorderStyle.DASHED) ||
+              (northBorderType == BorderStyle.HAIR))
          ) {
         int thickness = getThickness(northBorderType);
 
         int dashlength = 1;
 
-        if (northBorderType == HSSFCellStyle.BORDER_DASHED)
+        if (northBorderType == BorderStyle.DASHED)
            dashlength = 2;
 
        g.setColor(northColor);
@@ -265,8 +265,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (eastBorder &&
-              ((eastBorderType == HSSFCellStyle.BORDER_DASHED) ||
-               (eastBorderType == HSSFCellStyle.BORDER_HAIR))
+              ((eastBorderType == BorderStyle.DASHED) ||
+               (eastBorderType == BorderStyle.HAIR))
          ) {
 
         int thickness = getThickness(eastBorderType);
@@ -275,7 +275,7 @@ public class SVBorder extends AbstractBorder {
 
         int dashlength = 1;
 
-        if (eastBorderType == HSSFCellStyle.BORDER_DASHED)
+        if (eastBorderType == BorderStyle.DASHED)
            dashlength = 2;
 
        g.setColor(eastColor);
@@ -288,8 +288,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (southBorder &&
-              ((southBorderType == HSSFCellStyle.BORDER_DASHED) ||
-               (southBorderType == HSSFCellStyle.BORDER_HAIR))
+              ((southBorderType == BorderStyle.DASHED) ||
+               (southBorderType == BorderStyle.HAIR))
          ) {
 
         int thickness = getThickness(southBorderType);
@@ -297,7 +297,7 @@ public class SVBorder extends AbstractBorder {
 
         int dashlength = 1;
 
-        if (southBorderType == HSSFCellStyle.BORDER_DASHED)
+        if (southBorderType == BorderStyle.DASHED)
            dashlength = 2;
 
        g.setColor(southColor);
@@ -309,8 +309,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (westBorder &&
-            ((westBorderType == HSSFCellStyle.BORDER_DASHED) ||
-             (westBorderType == HSSFCellStyle.BORDER_HAIR))
+            ((westBorderType == BorderStyle.DASHED) ||
+             (westBorderType == BorderStyle.HAIR))
          ) {
 
         int thickness = getThickness(westBorderType);
@@ -318,7 +318,7 @@ public class SVBorder extends AbstractBorder {
 
         int dashlength = 1;
 
-        if (westBorderType == HSSFCellStyle.BORDER_DASHED)
+        if (westBorderType == BorderStyle.DASHED)
            dashlength = 2;
 
        g.setColor(westColor);
@@ -338,7 +338,7 @@ public class SVBorder extends AbstractBorder {
    private void paintDoubleBorders(Graphics g, int x, int y, int width,
                                   int height) {
       if (northBorder &&
-             northBorderType == HSSFCellStyle.BORDER_DOUBLE) {
+             northBorderType == BorderStyle.DOUBLE) {
 
        g.setColor(northColor);
 
@@ -358,7 +358,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (eastBorder &&
-              eastBorderType == HSSFCellStyle.BORDER_DOUBLE
+              eastBorderType == BorderStyle.DOUBLE
          ) {
 
         int thickness = getThickness(eastBorderType);
@@ -380,7 +380,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (southBorder &&
-              southBorderType == HSSFCellStyle.BORDER_DOUBLE
+              southBorderType == BorderStyle.DOUBLE
          ) {
 
        g.setColor(southColor);
@@ -400,7 +400,7 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (westBorder &&
-            westBorderType == HSSFCellStyle.BORDER_DOUBLE
+            westBorderType == BorderStyle.DOUBLE
          ) {
 
         int thickness = getThickness(westBorderType);
@@ -429,8 +429,8 @@ public class SVBorder extends AbstractBorder {
    private void paintDashDotDotBorders(Graphics g, int x, int y, int width,
                                   int height) {
       if (northBorder &&
-             ((northBorderType == HSSFCellStyle.BORDER_DASH_DOT_DOT) ||
-              (northBorderType == HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT))
+             ((northBorderType == BorderStyle.DASH_DOT_DOT) ||
+              (northBorderType == BorderStyle.MEDIUM_DASH_DOT_DOT))
          ) {
         int thickness = getThickness(northBorderType);
 
@@ -442,8 +442,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (eastBorder &&
-              ((eastBorderType == HSSFCellStyle.BORDER_DASH_DOT_DOT) ||
-               (eastBorderType == HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT))
+              ((eastBorderType == BorderStyle.DASH_DOT_DOT) ||
+               (eastBorderType == BorderStyle.MEDIUM_DASH_DOT_DOT))
          ) {
 
         int thickness = getThickness(eastBorderType);
@@ -457,8 +457,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (southBorder &&
-              ((southBorderType == HSSFCellStyle.BORDER_DASH_DOT_DOT) ||
-               (southBorderType == HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT))
+              ((southBorderType == BorderStyle.DASH_DOT_DOT) ||
+               (southBorderType == BorderStyle.MEDIUM_DASH_DOT_DOT))
          ) {
 
         int thickness = getThickness(southBorderType);
@@ -472,8 +472,8 @@ public class SVBorder extends AbstractBorder {
       }
 
       if (westBorder &&
-            ((westBorderType == HSSFCellStyle.BORDER_DASH_DOT_DOT) ||
-             (westBorderType == HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT))
+            ((westBorderType == BorderStyle.DASH_DOT_DOT) ||
+             (westBorderType == BorderStyle.MEDIUM_DASH_DOT_DOT))
          ) {
 
         int thickness = getThickness(westBorderType);
@@ -530,34 +530,22 @@ public class SVBorder extends AbstractBorder {
    /**
     * @returns the line thickness for a border based on border type
     */
-   private int getThickness(int thickness) {
-       int retval=1;
+   private int getThickness(BorderStyle thickness) {
        switch (thickness) {
-           case HSSFCellStyle.BORDER_THIN:
-             retval=2;
-             break;
-           case HSSFCellStyle.BORDER_MEDIUM:
-             retval=3;
-             break;
-           case HSSFCellStyle.BORDER_THICK:
-             retval=4;
-             break;
-           case HSSFCellStyle.BORDER_DASHED:
-             retval=1;
-             break;
-           case HSSFCellStyle.BORDER_DASH_DOT_DOT:
-             retval=1;
-             break;
-           case HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT:
-             retval=3;
-             break;
-           case HSSFCellStyle.BORDER_HAIR:
-             retval=1;
-             break;
+           case DASH_DOT_DOT:
+           case DASHED:
+           case HAIR:
+             return 1;
+           case THIN:
+             return 2;
+           case MEDIUM:
+           case MEDIUM_DASH_DOT_DOT:
+             return 3;
+           case THICK:
+             return 4;
            default:
-             retval=1;
+             return 1;
        }
-       return retval;
    }
 
 
index 4b2e634bb3c73c0f207650bb7c3c0a352837de4c..db7f6304f769479892066a06aefef75ecec95a45 100644 (file)
@@ -26,11 +26,11 @@ import javax.swing.border.*;
 import java.awt.Component;
 import java.awt.Color;
 import java.awt.Rectangle;
-
 import java.io.Serializable;
 import java.text.*;
 
 import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.ss.usermodel.BorderStyle;
 
 
 /**
@@ -224,10 +224,10 @@ public class SVTableCellRenderer extends JLabel
                                    SVTableUtils.black,
                                    SVTableUtils.black,
                                    SVTableUtils.black,
-                                   HSSFCellStyle.BORDER_NONE,
-                                   HSSFCellStyle.BORDER_NONE,
-                                   HSSFCellStyle.BORDER_NONE,
-                                   HSSFCellStyle.BORDER_NONE,
+                                   BorderStyle.NONE,
+                                   BorderStyle.NONE,
+                                   BorderStyle.NONE,
+                                   BorderStyle.NONE,
                                    isSelected);
               setBorder(cellBorder);
             }
index 7833dbce1cfecce0cfef5a2d9d80bfe989b5b1e5..74e09ae94abb71a5b486a36ad42441858ac45979 100644 (file)
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.List;\r
 import java.util.Locale;\r
 \r
+import org.apache.poi.ss.usermodel.BorderStyle;\r
 import org.apache.poi.ss.usermodel.Cell;\r
 import org.apache.poi.ss.usermodel.Color;\r
 import org.apache.poi.ss.usermodel.DateUtil;\r
@@ -362,23 +363,23 @@ public class ExcelComparator {
         String borderName;\r
         switch (borderSide) {\r
             case 't': default:\r
-                b1 = style1.getBorderTop() == 1;\r
-                b2 = style2.getBorderTop() == 1;\r
+                b1 = style1.getBorderTop() == BorderStyle.THIN;\r
+                b2 = style2.getBorderTop() == BorderStyle.THIN;\r
                 borderName = "TOP";\r
                 break;\r
             case 'b':\r
-                b1 = style1.getBorderBottom() == 1;\r
-                b2 = style2.getBorderBottom() == 1;\r
+                b1 = style1.getBorderBottom() == BorderStyle.THIN;\r
+                b2 = style2.getBorderBottom() == BorderStyle.THIN;\r
                 borderName = "BOTTOM";\r
                 break;\r
             case 'l':\r
-                b1 = style1.getBorderLeft() == 1;\r
-                b2 = style2.getBorderLeft() == 1;\r
+                b1 = style1.getBorderLeft() == BorderStyle.THIN;\r
+                b2 = style2.getBorderLeft() == BorderStyle.THIN;\r
                 borderName = "LEFT";\r
                 break;\r
             case 'r':\r
-                b1 = style1.getBorderRight() == 1;\r
-                b2 = style2.getBorderRight() == 1;\r
+                b1 = style1.getBorderRight() == BorderStyle.THIN;\r
+                b2 = style2.getBorderRight() == BorderStyle.THIN;\r
                 borderName = "RIGHT";\r
                 break;\r
         }\r
index 74e129eee55d6ae5810eeb5e8a8c9dd0b35cda7e..d59d4666dff8ca430cb25a97f3d3c514819dafe3 100644 (file)
@@ -62,22 +62,34 @@ public class ToHtml {
     private static final String COL_HEAD_CLASS = "colHeader";
     private static final String ROW_HEAD_CLASS = "rowHeader";
 
-    private static final Map<Short, String> ALIGN = mapFor(ALIGN_LEFT, "left",
-            ALIGN_CENTER, "center", ALIGN_RIGHT, "right", ALIGN_FILL, "left",
-            ALIGN_JUSTIFY, "left", ALIGN_CENTER_SELECTION, "center");
+    private static final Map<Short, String> ALIGN = mapFor(
+            ALIGN_LEFT, "left",
+            ALIGN_CENTER, "center",
+            ALIGN_RIGHT, "right",
+            ALIGN_FILL, "left",
+            ALIGN_JUSTIFY, "left",
+            ALIGN_CENTER_SELECTION, "center");
 
     private static final Map<Short, String> VERTICAL_ALIGN = mapFor(
-            VERTICAL_BOTTOM, "bottom", VERTICAL_CENTER, "middle", VERTICAL_TOP,
-            "top");
-
-    private static final Map<Short, String> BORDER = mapFor(BORDER_DASH_DOT,
-            "dashed 1pt", BORDER_DASH_DOT_DOT, "dashed 1pt", BORDER_DASHED,
-            "dashed 1pt", BORDER_DOTTED, "dotted 1pt", BORDER_DOUBLE,
-            "double 3pt", BORDER_HAIR, "solid 1px", BORDER_MEDIUM, "solid 2pt",
-            BORDER_MEDIUM_DASH_DOT, "dashed 2pt", BORDER_MEDIUM_DASH_DOT_DOT,
-            "dashed 2pt", BORDER_MEDIUM_DASHED, "dashed 2pt", BORDER_NONE,
-            "none", BORDER_SLANTED_DASH_DOT, "dashed 2pt", BORDER_THICK,
-            "solid 3pt", BORDER_THIN, "dashed 1pt");
+            VERTICAL_BOTTOM, "bottom",
+            VERTICAL_CENTER, "middle",
+            VERTICAL_TOP, "top");
+
+    private static final Map<BorderStyle, String> BORDER = mapFor(
+            BorderStyle.DASH_DOT, "dashed 1pt",
+            BorderStyle.DASH_DOT_DOT, "dashed 1pt",
+            BorderStyle.DASHED, "dashed 1pt",
+            BorderStyle.DOTTED, "dotted 1pt",
+            BorderStyle.DOUBLE, "double 3pt",
+            BorderStyle.HAIR, "solid 1px",
+            BorderStyle.MEDIUM, "solid 2pt",
+            BorderStyle.MEDIUM_DASH_DOT, "dashed 2pt",
+            BorderStyle.MEDIUM_DASH_DOT_DOT, "dashed 2pt",
+            BorderStyle.MEDIUM_DASHED, "dashed 2pt",
+            BorderStyle.NONE, "none",
+            BorderStyle.SLANTED_DASH_DOT, "dashed 2pt",
+            BorderStyle.THICK, "solid 3pt",
+            BorderStyle.THIN, "dashed 1pt");
 
     @SuppressWarnings({"unchecked"})
     private static <K, V> Map<K, V> mapFor(Object... mapping) {
index c5c9964563aadf3d05169d73875c5a174e1cccc1..d06c9f179bcdb70984f03290fab50cac3f410541 100644 (file)
@@ -20,6 +20,7 @@ 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;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Color;
 
 /**
@@ -41,65 +42,80 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         return borderFormatting;
     }
 
-    public short getBorderBottom() {
-        return (short)borderFormatting.getBorderBottom();
+    @Override
+    public BorderStyle getBorderBottom() {
+        return BorderStyle.valueOf((short)borderFormatting.getBorderBottom());
     }
 
-    public short getBorderDiagonal() {
-        return (short)borderFormatting.getBorderDiagonal();
+    @Override
+    public BorderStyle getBorderDiagonal() {
+        return BorderStyle.valueOf((short)borderFormatting.getBorderDiagonal());
     }
 
-    public short getBorderLeft() {
-        return (short)borderFormatting.getBorderLeft();
+    @Override
+    public BorderStyle getBorderLeft() {
+        return BorderStyle.valueOf((short)borderFormatting.getBorderLeft());
     }
 
-    public short getBorderRight() {
-        return (short)borderFormatting.getBorderRight();
+    @Override
+    public BorderStyle getBorderRight() {
+        return BorderStyle.valueOf((short)borderFormatting.getBorderRight());
     }
 
-    public short getBorderTop() {
-        return (short)borderFormatting.getBorderTop();
+    @Override
+    public BorderStyle getBorderTop() {
+        return BorderStyle.valueOf((short)borderFormatting.getBorderTop());
     }
 
+    @Override
     public short getBottomBorderColor() {
         return (short)borderFormatting.getBottomBorderColor();
     }
+    @Override
     public HSSFColor getBottomBorderColorColor() {
         return workbook.getCustomPalette().getColor(
                 borderFormatting.getBottomBorderColor()
         );
     }
 
+    @Override
     public short getDiagonalBorderColor() {
         return (short)borderFormatting.getDiagonalBorderColor();
     }
+    @Override
     public HSSFColor getDiagonalBorderColorColor() {
         return workbook.getCustomPalette().getColor(
                 borderFormatting.getDiagonalBorderColor()
         );
     }
 
+    @Override
     public short getLeftBorderColor() {
         return (short)borderFormatting.getLeftBorderColor();
     }
+    @Override
     public HSSFColor getLeftBorderColorColor() {
         return workbook.getCustomPalette().getColor(
                 borderFormatting.getLeftBorderColor()
         );
     }
 
+    @Override
     public short getRightBorderColor() {
         return (short)borderFormatting.getRightBorderColor();
     }
+    @Override
     public HSSFColor getRightBorderColorColor() {
         return workbook.getCustomPalette().getColor(
                 borderFormatting.getRightBorderColor()
         );
     }
 
+    @Override
     public short getTopBorderColor() {
         return (short)borderFormatting.getTopBorderColor();
     }
+    @Override
     public HSSFColor getTopBorderColorColor() {
         return workbook.getCustomPalette().getColor(
                 borderFormatting.getTopBorderColor()
@@ -126,6 +142,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         }
     }
 
+    @Override
     public void setBorderBottom(short border) {
         borderFormatting.setBorderBottom(border);
         if (border != 0) {
@@ -134,7 +151,12 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setBottomBorderModified(false);
         }
     }
+    @Override
+    public void setBorderBottom(BorderStyle border) {
+        setBorderBottom(border.getCode());
+    }
 
+    @Override
     public void setBorderDiagonal(short border) {
         borderFormatting.setBorderDiagonal(border);
         if (border != 0) {
@@ -145,7 +167,12 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setTopLeftBottomRightBorderModified(false);
         }
     }
+    @Override
+    public void setBorderDiagonal(BorderStyle border) {
+        setBorderDiagonal(border.getCode());
+    }
 
+    @Override
     public void setBorderLeft(short border) {
         borderFormatting.setBorderLeft(border);
         if (border != 0) {
@@ -154,7 +181,12 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setLeftBorderModified(false);
         }
     }
+    @Override
+    public void setBorderLeft(BorderStyle border) {
+        setBorderLeft(border.getCode());
+    }
 
+    @Override
     public void setBorderRight(short border) {
         borderFormatting.setBorderRight(border);
         if (border != 0) {
@@ -163,7 +195,12 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setRightBorderModified(false);
         }
     }
+    @Override
+    public void setBorderRight(BorderStyle border) {
+        setBorderRight(border.getCode());
+    }
 
+    @Override
     public void setBorderTop(short border) {
         borderFormatting.setBorderTop(border);
         if (border != 0) {
@@ -172,7 +209,12 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setTopBorderModified(false);
         }
     }
+    @Override
+    public void setBorderTop(BorderStyle border) {
+        setBorderTop(border.getCode());
+    }
 
+    @Override
     public void setBottomBorderColor(short color) {
         borderFormatting.setBottomBorderColor(color);
         if (color != 0) {
@@ -190,6 +232,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         }
     }
 
+    @Override
     public void setDiagonalBorderColor(short color) {
         borderFormatting.setDiagonalBorderColor(color);
         if (color != 0) {
@@ -200,6 +243,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setTopLeftBottomRightBorderModified(false);
         }
     }
+    @Override
     public void setDiagonalBorderColor(Color color) {
         HSSFColor hcolor = HSSFColor.toHSSFColor(color);
         if (hcolor == null) {
@@ -209,6 +253,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         }
     }
 
+    @Override
     public void setLeftBorderColor(short color) {
         borderFormatting.setLeftBorderColor(color);
         if (color != 0) {
@@ -217,6 +262,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setLeftBorderModified(false);
         }
     }
+    @Override
     public void setLeftBorderColor(Color color) {
         HSSFColor hcolor = HSSFColor.toHSSFColor(color);
         if (hcolor == null) {
@@ -226,6 +272,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         }
     }
 
+    @Override
     public void setRightBorderColor(short color) {
         borderFormatting.setRightBorderColor(color);
         if (color != 0) {
@@ -234,6 +281,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setRightBorderModified(false);
         }
     }
+    @Override
     public void setRightBorderColor(Color color) {
         HSSFColor hcolor = HSSFColor.toHSSFColor(color);
         if (hcolor == null) {
@@ -243,6 +291,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
         }
     }
 
+    @Override
     public void setTopBorderColor(short color) {
         borderFormatting.setTopBorderColor(color);
         if (color != 0) {
@@ -251,6 +300,7 @@ public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.B
             cfRuleRecord.setTopBorderModified(false);
         }
     }
+    @Override
     public void setTopBorderColor(Color color) {
         HSSFColor hcolor = HSSFColor.toHSSFColor(color);
         if (hcolor == null) {
index 25e3b371c0a87b38d6b0b6cee141cc6b358164e5..a77361dd72da20c7b8c411ed18ac96f19bb0a862 100644 (file)
@@ -26,6 +26,7 @@ import org.apache.poi.hssf.record.FontRecord;
 import org.apache.poi.hssf.record.FormatRecord;
 import org.apache.poi.hssf.record.StyleRecord;
 import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
 
@@ -410,6 +411,7 @@ public final class HSSFCellStyle implements CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderLeft(short border)
@@ -417,29 +419,25 @@ public final class HSSFCellStyle implements CellStyle {
         _format.setIndentNotParentBorder(true);
         _format.setBorderLeft(border);
     }
+    
+    /**
+     * set the type of border to use for the left border of the cell
+     * @param border type
+     */
+    @Override
+    public void setBorderLeft(BorderStyle border)
+    {
+        setBorderLeft(border.getCode());
+    }
 
     /**
      * get the type of border to use for the left border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
     @Override
-    public short getBorderLeft()
+    public BorderStyle getBorderLeft()
     {
-        return _format.getBorderLeft();
+        return BorderStyle.valueOf(_format.getBorderLeft());
     }
 
     /**
@@ -459,6 +457,7 @@ public final class HSSFCellStyle implements CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderRight(short border)
@@ -466,29 +465,25 @@ public final class HSSFCellStyle implements CellStyle {
         _format.setIndentNotParentBorder(true);
         _format.setBorderRight(border);
     }
+    
+    /**
+     * set the type of border to use for the right border of the cell
+     * @param border type
+     */
+    @Override
+    public void setBorderRight(BorderStyle border)
+    {
+        setBorderRight(border.getCode());
+    }
 
     /**
      * get the type of border to use for the right border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
     @Override
-    public short getBorderRight()
+    public BorderStyle getBorderRight()
     {
-        return _format.getBorderRight();
+        return BorderStyle.valueOf(_format.getBorderRight());
     }
 
     /**
@@ -508,6 +503,7 @@ public final class HSSFCellStyle implements CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderTop(short border)
@@ -515,29 +511,25 @@ public final class HSSFCellStyle implements CellStyle {
         _format.setIndentNotParentBorder(true);
         _format.setBorderTop(border);
     }
+    
+    /**
+     * set the type of border to use for the top border of the cell
+     * @param border type
+     */
+    @Override
+    public void setBorderTop(BorderStyle border)
+    {
+        setBorderTop(border.getCode());
+    }
 
     /**
      * get the type of border to use for the top border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
     @Override
-    public short getBorderTop()
+    public BorderStyle getBorderTop()
     {
-        return _format.getBorderTop();
+        return BorderStyle.valueOf(_format.getBorderTop());
     }
 
     /**
@@ -557,6 +549,7 @@ public final class HSSFCellStyle implements CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderBottom(short border)
@@ -564,29 +557,25 @@ public final class HSSFCellStyle implements CellStyle {
         _format.setIndentNotParentBorder(true);
         _format.setBorderBottom(border);
     }
+    
+    /**
+     * set the type of border to use for the bottom border of the cell
+     * @param border type
+     */
+    @Override
+    public void setBorderBottom(BorderStyle border)
+    {
+        setBorderBottom(border.getCode());
+    }
 
     /**
      * get the type of border to use for the bottom border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
     @Override
-    public short getBorderBottom()
+    public BorderStyle getBorderBottom()
     {
-        return _format.getBorderBottom();
+        return BorderStyle.valueOf(_format.getBorderBottom());
     }
 
     /**
index 91a6f4179787eab379afd61fe0d6f045a600eb83..044d34487934517b281d8d26be85a3c70031d5c3 100644 (file)
@@ -24,44 +24,86 @@ package org.apache.poi.ss.usermodel;
  * of Conditional Formatting settings\r
  */\r
 public interface BorderFormatting {\r
-    /** No border */\r
+    /** No border\r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_NONE                = 0x0;\r
-    /** Thin border */\r
+    \r
+    /** Thin border\r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_THIN                = 0x1;\r
-    /** Medium border */\r
+    \r
+    /** Medium border\r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_MEDIUM              = 0x2;\r
-    /** dash border */\r
+    \r
+    /** dash border\r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_DASHED              = 0x3;\r
-    /** dot border */\r
-    short BORDER_HAIR                = 0x4;\r
-    /** Thick border */\r
+    \r
+    /** dot border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
+    short BORDER_DOTTED              = 0x4;\r
+    \r
+    /** Thick border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_THICK               = 0x5;\r
-    /** double-line border */\r
+    \r
+    /** double-line border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_DOUBLE              = 0x6;\r
-    /** hair-line border */\r
-    short BORDER_DOTTED              = 0x7;\r
-    /** Medium dashed border */\r
+    \r
+    /** hair-line border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
+    short BORDER_HAIR                = 0x7;\r
+    \r
+    /** Medium dashed border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_MEDIUM_DASHED       = 0x8;\r
-    /** dash-dot border */\r
+    \r
+    \r
+    /** dash-dot border\r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_DASH_DOT            = 0x9;\r
-    /** medium dash-dot border */\r
+    \r
+    /** medium dash-dot border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_MEDIUM_DASH_DOT     = 0xA;\r
-    /** dash-dot-dot border */\r
+    \r
+    /** dash-dot-dot border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_DASH_DOT_DOT        = 0xB;\r
-    /** medium dash-dot-dot border */\r
+    \r
+    /** medium dash-dot-dot border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_MEDIUM_DASH_DOT_DOT = 0xC;\r
-    /** slanted dash-dot border */\r
+    \r
+    /** slanted dash-dot border \r
+     * @deprecated 3.15 beta 1. Use {@link BorderStyle}\r
+     */\r
     short BORDER_SLANTED_DASH_DOT    = 0xD;\r
 \r
-    short getBorderBottom();\r
+    BorderStyle getBorderBottom();\r
 \r
-    short getBorderDiagonal();\r
+    BorderStyle getBorderDiagonal();\r
 \r
-    short getBorderLeft();\r
+    BorderStyle getBorderLeft();\r
 \r
-    short getBorderRight();\r
+    BorderStyle getBorderRight();\r
 \r
-    short getBorderTop();\r
+    BorderStyle getBorderTop();\r
 \r
     short getBottomBorderColor();\r
     Color getBottomBorderColorColor();\r
@@ -78,35 +120,80 @@ public interface BorderFormatting {
     short getTopBorderColor();\r
     Color getTopBorderColorColor();\r
 \r
+    /**\r
+     * Set bottom border.\r
+     *\r
+     * @param border  MUST be a BORDER_* constant\r
+     * @deprecated 3.15 beta 1\r
+     */\r
     void setBorderBottom(short border);\r
 \r
+    /**\r
+     * Set bottom border.\r
+     *\r
+     * @param border\r
+     */\r
+    void setBorderBottom(BorderStyle border);\r
+    \r
     /**\r
      * Set diagonal border.\r
      *\r
      * @param border  MUST be a BORDER_* constant\r
+     * @deprecated 3.15 beta 1\r
      */\r
     void setBorderDiagonal(short border);\r
+    \r
+    /**\r
+     * Set diagonal border.\r
+     *\r
+     * @param border\r
+     */\r
+    void setBorderDiagonal(BorderStyle border);\r
 \r
     /**\r
      * Set left border.\r
      *\r
      * @param border  MUST be a BORDER_* constant\r
+     * @deprecated 3.15 beta 1\r
      */\r
     void setBorderLeft(short border);\r
+    \r
+    /**\r
+     * Set left border.\r
+     *\r
+     * @param border\r
+     */\r
+    void setBorderLeft(BorderStyle border);\r
 \r
     /**\r
      * Set right border.\r
      *\r
      * @param border  MUST be a BORDER_* constant\r
+     * @deprecated 3.15 beta 1\r
      */\r
     void setBorderRight(short border);\r
+    \r
+    /**\r
+     * Set right border.\r
+     *\r
+     * @param border\r
+     */\r
+    void setBorderRight(BorderStyle border);\r
 \r
     /**\r
      * Set top border.\r
      *\r
      * @param border  MUST be a BORDER_* constant\r
+     * @deprecated 3.15 beta 1\r
      */\r
     void setBorderTop(short border);\r
+    \r
+    /**\r
+     * Set top border.\r
+     *\r
+     * @param border\r
+     */\r
+    void setBorderTop(BorderStyle border);\r
 \r
     void setBottomBorderColor(short color);\r
     void setBottomBorderColor(Color color);\r
index c44fb657c56fde240b11c23ceebf218a116ad28d..9fd5d15cbde0f9e02a1468cf251ae528b022baf2 100644 (file)
@@ -19,13 +19,13 @@ package org.apache.poi.ss.usermodel;
 
 /**
  * The enumeration value indicating the line style of a border in a cell,
- * i.e., whether it is borded dash dot, dash dot dot, dashed, dotted, double, hair, medium, 
+ * i.e., whether it is bordered dash dot, dash dot dot, dashed, dotted, double, hair, medium, 
  * medium dash dot, medium dash dot dot, medium dashed, none, slant dash dot, thick or thin.
  */
  public enum BorderStyle {
 
     /**
-     * No border
+     * No border (default)
      */
     NONE(0x0),
 
@@ -86,24 +86,32 @@ package org.apache.poi.ss.usermodel;
 
     /**
      * medium dash-dot-dot border
-     * @deprecated POI 3.15 beta 1. Use {@link MEDIUM_DASH_DOT_DOT} instead.
      */
-    MEDIUM_DASH_DOT_DOTC(0xC),
     MEDIUM_DASH_DOT_DOT(0xC),
 
     /**
      * slanted dash-dot border
      */
     SLANTED_DASH_DOT(0xD);
-
-
+    
     private final short code;
 
-    BorderStyle(int code) {
+    private BorderStyle(int code) {
         this.code = (short)code;
     }
 
     public short getCode() {
         return code;
     }
+    
+    private static final BorderStyle[] _table = new BorderStyle[0xD + 1];
+    static {
+        for (BorderStyle c : values()) {
+            _table[c.getCode()] = c;
+        }
+    }
+    
+    public static BorderStyle valueOf(short code) {
+        return _table[code];
+    }
 }
index 644e813407ced39f8078df6a900ca598da9fffd3..1f39bd0bc291cccd71f10588844f81728a6233a7 100644 (file)
@@ -87,84 +87,98 @@ public interface CellStyle {
 
     /**
      * No border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_NONE = 0x0;
 
     /**
      * Thin border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_THIN = 0x1;
 
     /**
      * Medium border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_MEDIUM = 0x2;
 
     /**
      * dash border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_DASHED = 0x3;
 
     /**
      * dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_DOTTED = 0x4;
 
     /**
      * Thick border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_THICK = 0x5;
 
     /**
      * double-line border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_DOUBLE = 0x6;
 
     /**
      * hair-line border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_HAIR = 0x7;
 
     /**
      * Medium dashed border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_MEDIUM_DASHED = 0x8;
 
     /**
      * dash-dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_DASH_DOT = 0x9;
 
     /**
      * medium dash-dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_MEDIUM_DASH_DOT = 0xA;
 
     /**
      * dash-dot-dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_DASH_DOT_DOT = 0xB;
 
     /**
      * medium dash-dot-dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_MEDIUM_DASH_DOT_DOT = 0xC;
 
     /**
      * slanted dash-dot border
+     * @deprecated Use {@link BorderStyle}
      */
 
     short BORDER_SLANTED_DASH_DOT = 0xD;
@@ -416,30 +430,21 @@ public interface CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
-
     void setBorderLeft(short border);
+    
+    /**
+     * set the type of border to use for the left border of the cell
+     * @param border type
+     */
+    void setBorderLeft(BorderStyle border);
 
     /**
      * get the type of border to use for the left border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
-
-    short getBorderLeft();
+    BorderStyle getBorderLeft();
 
     /**
      * set the type of border to use for the right border of the cell
@@ -458,30 +463,21 @@ public interface CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
-
     void setBorderRight(short border);
+    
+    /**
+     * set the type of border to use for the right border of the cell
+     * @param border type
+     */
+    void setBorderRight(BorderStyle border);
 
     /**
      * get the type of border to use for the right border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
-
-    short getBorderRight();
+    BorderStyle getBorderRight();
 
     /**
      * set the type of border to use for the top border of the cell
@@ -500,30 +496,21 @@ public interface CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
-
     void setBorderTop(short border);
+    
+    /**
+     * set the type of border to use for the top border of the cell
+     * @param border type
+     */
+    void setBorderTop(BorderStyle border);
 
     /**
      * get the type of border to use for the top border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
-
-    short getBorderTop();
+    BorderStyle getBorderTop();
 
     /**
      * set the type of border to use for the bottom border of the cell
@@ -542,29 +529,21 @@ public interface CellStyle {
      * @see #BORDER_DASH_DOT_DOT
      * @see #BORDER_MEDIUM_DASH_DOT_DOT
      * @see #BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
-
     void setBorderBottom(short border);
+    
+    /**
+     * set the type of border to use for the bottom border of the cell
+     * @param border type
+     */
+    void setBorderBottom(BorderStyle border);
 
     /**
      * get the type of border to use for the bottom border of the cell
      * @return border type
-     * @see #BORDER_NONE
-     * @see #BORDER_THIN
-     * @see #BORDER_MEDIUM
-     * @see #BORDER_DASHED
-     * @see #BORDER_DOTTED
-     * @see #BORDER_THICK
-     * @see #BORDER_DOUBLE
-     * @see #BORDER_HAIR
-     * @see #BORDER_MEDIUM_DASHED
-     * @see #BORDER_DASH_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT
-     * @see #BORDER_DASH_DOT_DOT
-     * @see #BORDER_MEDIUM_DASH_DOT_DOT
-     * @see #BORDER_SLANTED_DASH_DOT
      */
-    short getBorderBottom();
+    BorderStyle getBorderBottom();
 
     /**
      * set the color to use for the left border
index 0ac220928d480def6984ef000b6f03adc658c44f..ad3425aac1d8e7bd8ed4db5031d78700e1fa0999 100644 (file)
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
@@ -277,10 +278,10 @@ public final class CellUtil {
        private static Map<String, Object> getFormatProperties(CellStyle style) {
                Map<String, Object> properties = new HashMap<String, Object>();
                putShort(properties, ALIGNMENT, style.getAlignment());
-               putShort(properties, BORDER_BOTTOM, style.getBorderBottom());
-               putShort(properties, BORDER_LEFT, style.getBorderLeft());
-               putShort(properties, BORDER_RIGHT, style.getBorderRight());
-               putShort(properties, BORDER_TOP, style.getBorderTop());
+               putBorderStyle(properties, BORDER_BOTTOM, style.getBorderBottom());
+               putBorderStyle(properties, BORDER_LEFT, style.getBorderLeft());
+               putBorderStyle(properties, BORDER_RIGHT, style.getBorderRight());
+               putBorderStyle(properties, BORDER_TOP, style.getBorderTop());
                putShort(properties, BOTTOM_BORDER_COLOR, style.getBottomBorderColor());
                putShort(properties, DATA_FORMAT, style.getDataFormat());
                putShort(properties, FILL_BACKGROUND_COLOR, style.getFillBackgroundColor());
@@ -309,10 +310,10 @@ public final class CellUtil {
         */
        private static void setFormatProperties(CellStyle style, Workbook workbook, Map<String, Object> properties) {
                style.setAlignment(getShort(properties, ALIGNMENT));
-               style.setBorderBottom(getShort(properties, BORDER_BOTTOM));
-               style.setBorderLeft(getShort(properties, BORDER_LEFT));
-               style.setBorderRight(getShort(properties, BORDER_RIGHT));
-               style.setBorderTop(getShort(properties, BORDER_TOP));
+               style.setBorderBottom(getBorderStyle(properties, BORDER_BOTTOM));
+               style.setBorderLeft(getBorderStyle(properties, BORDER_LEFT));
+               style.setBorderRight(getBorderStyle(properties, BORDER_RIGHT));
+               style.setBorderTop(getBorderStyle(properties, BORDER_TOP));
                style.setBottomBorderColor(getShort(properties, BOTTOM_BORDER_COLOR));
                style.setDataFormat(getShort(properties, DATA_FORMAT));
                style.setFillBackgroundColor(getShort(properties, FILL_BACKGROUND_COLOR));
@@ -345,6 +346,18 @@ public final class CellUtil {
                }
                return 0;
        }
+       
+       /**
+        * Utility method that returns the named BorderStyle value form the given map.
+        *
+        * @param properties map of named properties (String -> Object)
+        * @param name property name
+        * @return Border style if set, otherwise {@link BorderStyle#NONE}
+        */
+       private static BorderStyle getBorderStyle(Map<String, Object> properties, String name) {
+               BorderStyle value = (BorderStyle) properties.get(name);
+               return (value != null) ? value : BorderStyle.NONE;
+       }
 
        /**
         * Utility method that returns the named boolean value form the given map.
@@ -373,6 +386,17 @@ public final class CellUtil {
        private static void putShort(Map<String, Object> properties, String name, short value) {
                properties.put(name, Short.valueOf(value));
        }
+       
+          /**
+        * Utility method that puts the named short value to the given map.
+        *
+        * @param properties map of properties (String -> Object)
+        * @param name property name
+        * @param value property value
+        */
+       private static void putBorderStyle(Map<String, Object> properties, String name, BorderStyle border) {
+               properties.put(name, border);
+       }
 
        /**
         * Utility method that puts the named boolean value to the given map.
index e307a4a30366847b9e9caf5e1452ff29825325b5..72329cf20374b59d3f90b9c665e3c35946932556 100644 (file)
@@ -17,6 +17,7 @@
 package org.apache.poi.xssf.usermodel;\r
 \r
 import org.apache.poi.ss.usermodel.BorderFormatting;\r
+import org.apache.poi.ss.usermodel.BorderStyle;\r
 import org.apache.poi.ss.usermodel.Color;\r
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder;\r
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STBorderStyle;\r
@@ -34,126 +35,183 @@ public class XSSFBorderFormatting implements BorderFormatting  {
         _border = border;\r
     }\r
 \r
-    public short getBorderBottom() {\r
+    @Override\r
+    public BorderStyle getBorderBottom() {\r
         STBorderStyle.Enum ptrn = _border.isSetBottom() ? _border.getBottom().getStyle() : null;\r
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
+        return ptrn == null ? BorderStyle.NONE : BorderStyle.valueOf((short)(ptrn.intValue() - 1));\r
     }\r
 \r
-    public short getBorderDiagonal() {\r
+    @Override\r
+    public BorderStyle getBorderDiagonal() {\r
         STBorderStyle.Enum ptrn = _border.isSetDiagonal() ? _border.getDiagonal().getStyle() : null;\r
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
+        return ptrn == null ? BorderStyle.NONE : BorderStyle.valueOf((short)(ptrn.intValue() - 1));\r
     }\r
 \r
-    public short getBorderLeft() {\r
+    @Override\r
+    public BorderStyle getBorderLeft() {\r
         STBorderStyle.Enum ptrn = _border.isSetLeft() ? _border.getLeft().getStyle() : null;\r
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
+        return ptrn == null ? BorderStyle.NONE : BorderStyle.valueOf((short)(ptrn.intValue() - 1));\r
     }\r
 \r
-    public short getBorderRight() {\r
+    @Override\r
+    public BorderStyle getBorderRight() {\r
         STBorderStyle.Enum ptrn = _border.isSetRight() ? _border.getRight().getStyle() : null;\r
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
+        return ptrn == null ? BorderStyle.NONE : BorderStyle.valueOf((short)(ptrn.intValue() - 1));\r
     }\r
 \r
-    public short getBorderTop() {\r
+    @Override\r
+    public BorderStyle getBorderTop() {\r
         STBorderStyle.Enum ptrn = _border.isSetTop() ? _border.getTop().getStyle() : null;\r
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
+        return ptrn == null ? BorderStyle.NONE : BorderStyle.valueOf((short)(ptrn.intValue() - 1));\r
     }\r
 \r
+    @Override\r
     public XSSFColor getBottomBorderColorColor() {\r
         if(!_border.isSetBottom()) return null;\r
 \r
         CTBorderPr pr = _border.getBottom();\r
         return new XSSFColor(pr.getColor());\r
     }\r
+    @Override\r
     public short getBottomBorderColor() {\r
         XSSFColor color = getBottomBorderColorColor();\r
         if (color == null) return 0;\r
         return color.getIndexed();\r
     }\r
 \r
+    @Override\r
     public XSSFColor getDiagonalBorderColorColor() {\r
         if(!_border.isSetDiagonal()) return null;\r
 \r
         CTBorderPr pr = _border.getDiagonal();\r
         return new XSSFColor(pr.getColor());\r
     }\r
+    @Override\r
     public short getDiagonalBorderColor() {\r
         XSSFColor color = getDiagonalBorderColorColor();\r
         if (color == null) return 0;\r
         return color.getIndexed();\r
     }\r
 \r
+    @Override\r
     public XSSFColor getLeftBorderColorColor() {\r
         if(!_border.isSetLeft()) return null;\r
 \r
         CTBorderPr pr = _border.getLeft();\r
         return new XSSFColor(pr.getColor());\r
     }\r
+    @Override\r
     public short getLeftBorderColor() {\r
         XSSFColor color = getLeftBorderColorColor();\r
         if (color == null) return 0;\r
         return color.getIndexed();\r
     }\r
 \r
+    @Override\r
     public XSSFColor getRightBorderColorColor() {\r
         if(!_border.isSetRight()) return null;\r
 \r
         CTBorderPr pr = _border.getRight();\r
         return new XSSFColor(pr.getColor());\r
     }\r
+    @Override\r
     public short getRightBorderColor() {\r
         XSSFColor color = getRightBorderColorColor();\r
         if (color == null) return 0;\r
         return color.getIndexed();\r
     }\r
 \r
+    @Override\r
     public XSSFColor getTopBorderColorColor() {\r
         if(!_border.isSetTop()) return null;\r
 \r
         CTBorderPr pr = _border.getTop();\r
         return new XSSFColor(pr.getColor());\r
     }\r
+    @Override\r
     public short getTopBorderColor() {\r
         XSSFColor color = getRightBorderColorColor();\r
         if (color == null) return 0;\r
         return color.getIndexed();\r
     }\r
 \r
+    /**\r
+     * @deprecated 3.15 beta 1. Use {@link #setBorderBottom(BorderStyle)}\r
+     */\r
+    @Override\r
     public void setBorderBottom(short border) {\r
+        setBorderBottom(BorderStyle.valueOf(border));\r
+    }\r
+    @Override\r
+    public void setBorderBottom(BorderStyle border) {\r
         CTBorderPr pr = _border.isSetBottom() ? _border.getBottom() : _border.addNewBottom();\r
-        if(border == BORDER_NONE) _border.unsetBottom();\r
-        else pr.setStyle(STBorderStyle.Enum.forInt(border + 1));\r
+        if(border == BorderStyle.NONE) _border.unsetBottom();\r
+        else pr.setStyle(STBorderStyle.Enum.forInt(border.getCode() + 1));\r
     }\r
 \r
+    /**\r
+     * @deprecated 3.15 beta 1. Use {@link #setBorderDiagonal(BorderStyle)}\r
+     */\r
+    @Override\r
     public void setBorderDiagonal(short border) {\r
+        setBorderDiagonal(BorderStyle.valueOf(border));\r
+    }\r
+    @Override\r
+    public void setBorderDiagonal(BorderStyle border) {\r
         CTBorderPr pr = _border.isSetDiagonal() ? _border.getDiagonal() : _border.addNewDiagonal();\r
-        if(border == BORDER_NONE) _border.unsetDiagonal();\r
-        else pr.setStyle(STBorderStyle.Enum.forInt(border + 1));\r
+        if(border == BorderStyle.NONE) _border.unsetDiagonal();\r
+        else pr.setStyle(STBorderStyle.Enum.forInt(border.getCode() + 1));\r
     }\r
 \r
+    /**\r
+     * @deprecated 3.15 beta 1. Use {@link #setBorderLeft(BorderStyle)}\r
+     */\r
+    @Override\r
     public void setBorderLeft(short border) {\r
+        setBorderLeft(BorderStyle.valueOf(border));\r
+    }\r
+    @Override\r
+    public void setBorderLeft(BorderStyle border) {\r
         CTBorderPr pr = _border.isSetLeft() ? _border.getLeft() : _border.addNewLeft();\r
-        if(border == BORDER_NONE) _border.unsetLeft();\r
-        else pr.setStyle(STBorderStyle.Enum.forInt(border + 1));\r
+        if(border == BorderStyle.NONE) _border.unsetLeft();\r
+        else pr.setStyle(STBorderStyle.Enum.forInt(border.getCode() + 1));\r
     }\r
 \r
+    /**\r
+     * @deprecated 3.15 beta 1. Use {@link #setBorderRight(BorderStyle)}\r
+     */\r
+    @Override\r
     public void setBorderRight(short border) {\r
+        setBorderRight(BorderStyle.valueOf(border));\r
+    }\r
+    @Override\r
+    public void setBorderRight(BorderStyle border) {\r
         CTBorderPr pr = _border.isSetRight() ? _border.getRight() : _border.addNewRight();\r
-        if(border == BORDER_NONE) _border.unsetRight();\r
-        else pr.setStyle(STBorderStyle.Enum.forInt(border + 1));\r
+        if(border == BorderStyle.NONE) _border.unsetRight();\r
+        else pr.setStyle(STBorderStyle.Enum.forInt(border.getCode() + 1));\r
     }\r
 \r
+    /**\r
+     * @deprecated 3.15 beta 1. Use {@link #setBorderTop(BorderStyle)}\r
+     */\r
+    @Override\r
     public void setBorderTop(short border) {\r
+        setBorderTop(BorderStyle.valueOf(border));\r
+    }\r
+    @Override\r
+    public void setBorderTop(BorderStyle border) {\r
         CTBorderPr pr = _border.isSetTop() ? _border.getTop() : _border.addNewTop();\r
-        if(border == BORDER_NONE) _border.unsetTop();\r
-        else pr.setStyle(STBorderStyle.Enum.forInt(border + 1));\r
+        if(border == BorderStyle.NONE) _border.unsetTop();\r
+        else pr.setStyle(STBorderStyle.Enum.forInt(border.getCode() + 1));\r
     }\r
 \r
+    @Override\r
     public void setBottomBorderColor(Color color) {\r
         XSSFColor xcolor = XSSFColor.toXSSFColor(color);\r
         if (xcolor == null) setBottomBorderColor((CTColor)null);\r
         else setBottomBorderColor(xcolor.getCTColor());\r
     }\r
+    @Override\r
     public void setBottomBorderColor(short color) {\r
         CTColor ctColor = CTColor.Factory.newInstance();\r
         ctColor.setIndexed(color);\r
@@ -168,11 +226,13 @@ public class XSSFBorderFormatting implements BorderFormatting  {
         }\r
     }\r
 \r
+    @Override\r
     public void setDiagonalBorderColor(Color color) {\r
         XSSFColor xcolor = XSSFColor.toXSSFColor(color);\r
         if (xcolor == null) setDiagonalBorderColor((CTColor)null);\r
         else setDiagonalBorderColor(xcolor.getCTColor());\r
     }\r
+    @Override\r
     public void setDiagonalBorderColor(short color) {\r
         CTColor ctColor = CTColor.Factory.newInstance();\r
         ctColor.setIndexed(color);\r
@@ -187,11 +247,13 @@ public class XSSFBorderFormatting implements BorderFormatting  {
         }\r
     }\r
 \r
+    @Override\r
     public void setLeftBorderColor(Color color) {\r
         XSSFColor xcolor = XSSFColor.toXSSFColor(color);\r
         if (xcolor == null) setLeftBorderColor((CTColor)null);\r
         else setLeftBorderColor(xcolor.getCTColor());\r
     }\r
+    @Override\r
     public void setLeftBorderColor(short color) {\r
         CTColor ctColor = CTColor.Factory.newInstance();\r
         ctColor.setIndexed(color);\r
@@ -206,11 +268,13 @@ public class XSSFBorderFormatting implements BorderFormatting  {
         }\r
     }\r
 \r
+    @Override\r
     public void setRightBorderColor(Color color) {\r
         XSSFColor xcolor = XSSFColor.toXSSFColor(color);\r
         if (xcolor == null) setRightBorderColor((CTColor)null);\r
         else setRightBorderColor(xcolor.getCTColor());\r
     }\r
+    @Override\r
     public void setRightBorderColor(short color) {\r
         CTColor ctColor = CTColor.Factory.newInstance();\r
         ctColor.setIndexed(color);\r
@@ -225,11 +289,13 @@ public class XSSFBorderFormatting implements BorderFormatting  {
         }\r
     }\r
 \r
+    @Override\r
     public void setTopBorderColor(Color color) {\r
         XSSFColor xcolor = XSSFColor.toXSSFColor(color);\r
         if (xcolor == null) setTopBorderColor((CTColor)null);\r
         else setTopBorderColor(xcolor.getCTColor());\r
     }\r
+    @Override\r
     public void setTopBorderColor(short color) {\r
         CTColor ctColor = CTColor.Factory.newInstance();\r
         ctColor.setIndexed(color);\r
index 8e47990f12f0724d8472ebc2e43e5d1db9ff1bc7..7a43756b2c93bc47ca1fb0de1e73bc68b77c616e 100644 (file)
@@ -251,158 +251,113 @@ public class XSSFCellStyle implements CellStyle {
     /**
      * Get the type of border to use for the bottom border of the cell
      *
-     * @return short - border type
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THIN
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOTTED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THICK
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOUBLE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_HAIR
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
      */
     @Override
-    public short getBorderBottom() {
-        if(!_cellXf.getApplyBorder()) return BORDER_NONE;
+    public BorderStyle getBorderBottom() {
+        if(!_cellXf.getApplyBorder()) return BorderStyle.NONE;
 
         int idx = (int)_cellXf.getBorderId();
         CTBorder ct = _stylesSource.getBorderAt(idx).getCTBorder();
         STBorderStyle.Enum ptrn = ct.isSetBottom() ? ct.getBottom().getStyle() : null;
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);
+        if (ptrn == null) {
+            return BorderStyle.NONE;
+        }
+        return BorderStyle.valueOf((short)(ptrn.intValue() - 1));
     }
 
     /**
      * Get the type of border to use for the bottom border of the cell
      *
      * @return border type as Java enum
-     * @see BorderStyle
+     * @deprecated 3.15 beta 1. Use {@link #getBorderBottom}
      */
     public BorderStyle getBorderBottomEnum() {
-        int style  = getBorderBottom();
-        return BorderStyle.values()[style];
+        return getBorderBottom();
     }
 
     /**
      * Get the type of border to use for the left border of the cell
      *
-     * @return short - border type, default value is {@link org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE}
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THIN
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOTTED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THICK
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOUBLE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_HAIR
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
      */
     @Override
-    public short getBorderLeft() {
-        if(!_cellXf.getApplyBorder()) return BORDER_NONE;
+    public BorderStyle getBorderLeft() {
+        if(!_cellXf.getApplyBorder()) return BorderStyle.NONE;
 
         int idx = (int)_cellXf.getBorderId();
         CTBorder ct = _stylesSource.getBorderAt(idx).getCTBorder();
         STBorderStyle.Enum ptrn = ct.isSetLeft() ? ct.getLeft().getStyle() : null;
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);
+        if (ptrn == null) {
+            return BorderStyle.NONE;
+        }
+        return BorderStyle.valueOf((short)(ptrn.intValue() - 1));
     }
 
     /**
      * Get the type of border to use for the left border of the cell
      *
      * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
+     * @deprecated 3.15 beta 1. Use {@link #getBorderLeft}
      */
     public BorderStyle getBorderLeftEnum() {
-        int style  = getBorderLeft();
-        return BorderStyle.values()[style];
+        return getBorderLeft();
     }
 
     /**
      * Get the type of border to use for the right border of the cell
      *
-     * @return short - border type, default value is {@link org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE}
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THIN
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOTTED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THICK
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOUBLE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_HAIR
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
      */
     @Override
-    public short getBorderRight() {
-        if(!_cellXf.getApplyBorder()) return BORDER_NONE;
+    public BorderStyle getBorderRight() {
+        if(!_cellXf.getApplyBorder()) return BorderStyle.NONE;
 
         int idx = (int)_cellXf.getBorderId();
         CTBorder ct = _stylesSource.getBorderAt(idx).getCTBorder();
         STBorderStyle.Enum ptrn = ct.isSetRight() ? ct.getRight().getStyle() : null;
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);
+        if (ptrn == null) {
+            return BorderStyle.NONE;
+        }
+        return BorderStyle.valueOf((short)(ptrn.intValue() - 1));
     }
 
     /**
      * Get the type of border to use for the right border of the cell
      *
      * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
+     * @deprecated 3.15 beta 1. Use {@link #getBorderRight}
      */
     public BorderStyle getBorderRightEnum() {
-        int style  = getBorderRight();
-        return BorderStyle.values()[style];
+        return getBorderRight();
     }
 
     /**
      * Get the type of border to use for the top border of the cell
      *
-     * @return short - border type, default value is {@link org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE}
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_NONE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_THIN
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOTTED
-     * @see org.apache.poi.ss.usermodel.CellStyle #BORDER_THICK
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DOUBLE
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_HAIR
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASHED
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
-     * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
      */
     @Override
-    public short getBorderTop() {
-        if(!_cellXf.getApplyBorder()) return BORDER_NONE;
+    public BorderStyle getBorderTop() {
+        if(!_cellXf.getApplyBorder()) return BorderStyle.NONE;
 
         int idx = (int)_cellXf.getBorderId();
         CTBorder ct = _stylesSource.getBorderAt(idx).getCTBorder();
         STBorderStyle.Enum ptrn = ct.isSetTop() ? ct.getTop().getStyle() : null;
-        return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);
+        if (ptrn == null) {
+            return BorderStyle.NONE;
+        }
+        return BorderStyle.valueOf((short) (ptrn.intValue() - 1));
     }
 
      /**
      * Get the type of border to use for the top border of the cell
      *
      * @return border type, default value is {@link org.apache.poi.ss.usermodel.BorderStyle#NONE}
+     * @deprecated 3.15 beta 1. Use {@link #getBorderTop}
      */
     public BorderStyle getBorderTopEnum() {
-         int style  = getBorderTop();
-         return BorderStyle.values()[style];
+         return getBorderTop();
     }
 
     /**
@@ -849,6 +804,7 @@ public class XSSFCellStyle implements CellStyle {
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderBottom(short border) {
@@ -869,8 +825,9 @@ public class XSSFCellStyle implements CellStyle {
      * @param border - type of border to use
      * @see org.apache.poi.ss.usermodel.BorderStyle
      */
+    @Override
     public void setBorderBottom(BorderStyle border) {
-           setBorderBottom((short)border.ordinal());
+        setBorderBottom(border.getCode());
     }
 
     /**
@@ -890,6 +847,7 @@ public class XSSFCellStyle implements CellStyle {
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderLeft(short border) {
@@ -909,8 +867,9 @@ public class XSSFCellStyle implements CellStyle {
       *
      * @param border the type of border to use
      */
+    @Override
     public void setBorderLeft(BorderStyle border) {
-           setBorderLeft((short)border.ordinal());
+        setBorderLeft(border.getCode());
     }
 
     /**
@@ -931,6 +890,7 @@ public class XSSFCellStyle implements CellStyle {
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
     @Override
     public void setBorderRight(short border) {
@@ -950,8 +910,9 @@ public class XSSFCellStyle implements CellStyle {
       *
      * @param border the type of border to use
      */
+    @Override
     public void setBorderRight(BorderStyle border) {
-           setBorderRight((short)border.ordinal());
+        setBorderRight(border.getCode());
     }
 
     /**
@@ -972,9 +933,10 @@ public class XSSFCellStyle implements CellStyle {
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_MEDIUM_DASH_DOT_DOT
      * @see org.apache.poi.ss.usermodel.CellStyle#BORDER_SLANTED_DASH_DOT
+     * @deprecated 3.15 beta 1
      */
-   @Override
-public void setBorderTop(short border) {
+    @Override
+    public void setBorderTop(short border) {
         CTBorder ct = getCTBorder();
         CTBorderPr pr = ct.isSetTop() ? ct.getTop() : ct.addNewTop();
         if(border == BORDER_NONE) ct.unsetTop();
@@ -991,8 +953,9 @@ public void setBorderTop(short border) {
      *
      * @param border the type of border to use
      */
+    @Override
     public void setBorderTop(BorderStyle border) {
-           setBorderTop((short)border.ordinal());
+        setBorderTop(border.getCode());
     }
 
     /**
diff --git a/src/ooxml/testcases/org/apache/poi/ss/usermodel/TestXSSFBorderStyle.java b/src/ooxml/testcases/org/apache/poi/ss/usermodel/TestXSSFBorderStyle.java
new file mode 100644 (file)
index 0000000..2e9334b
--- /dev/null
@@ -0,0 +1,30 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ss.usermodel;
+
+import org.apache.poi.xssf.XSSFITestDataProvider;
+
+/**
+ * @author Yegor Kozlov
+ */
+public final class TestXSSFBorderStyle extends BaseTestBorderStyle  {
+
+    public TestXSSFBorderStyle() {
+        super(XSSFITestDataProvider.instance);
+    }
+}
\ No newline at end of file
index 5b29d7911d3502edcd1e7c723946cf89dd81c630..69e1191228fd3ffd7d7a46a82b8619e37e36448b 100644 (file)
@@ -104,11 +104,11 @@ public class TestXSSFCellStyle {
        @Test
        public void testGetSetBorderBottom() {
         //default values
-        assertEquals(CellStyle.BORDER_NONE, cellStyle.getBorderBottom());
+        assertEquals(BorderStyle.NONE, cellStyle.getBorderBottom());
 
         int num = stylesTable.getBorders().size();
-        cellStyle.setBorderBottom(CellStyle.BORDER_MEDIUM);
-        assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderBottom());
+        cellStyle.setBorderBottom(BorderStyle.MEDIUM);
+        assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderBottom());
         //a new border has been added
         assertEquals(num + 1, stylesTable.getBorders().size());
         //id of the created border
@@ -121,15 +121,15 @@ public class TestXSSFCellStyle {
         num = stylesTable.getBorders().size();
         //setting the same border multiple times should not change borderId
         for (int i = 0; i < 3; i++) {
-            cellStyle.setBorderBottom(CellStyle.BORDER_MEDIUM);
-            assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderBottom());
+            cellStyle.setBorderBottom(BorderStyle.MEDIUM);
+            assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderBottom());
         }
         assertEquals(borderId, cellStyle.getCoreXf().getBorderId());
         assertEquals(num, stylesTable.getBorders().size());
         assertSame(ctBorder, stylesTable.getBorderAt(borderId).getCTBorder());
 
         //setting border to none removes the <bottom> element
-        cellStyle.setBorderBottom(CellStyle.BORDER_NONE);
+        cellStyle.setBorderBottom(BorderStyle.NONE);
         assertEquals(num, stylesTable.getBorders().size());
         borderId = (int)cellStyle.getCoreXf().getBorderId();
         ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
@@ -139,11 +139,11 @@ public class TestXSSFCellStyle {
        @Test
     public void testGetSetBorderRight() {
         //default values
-        assertEquals(CellStyle.BORDER_NONE, cellStyle.getBorderRight());
+        assertEquals(BorderStyle.NONE, cellStyle.getBorderRight());
 
         int num = stylesTable.getBorders().size();
-        cellStyle.setBorderRight(CellStyle.BORDER_MEDIUM);
-        assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderRight());
+        cellStyle.setBorderRight(BorderStyle.MEDIUM);
+        assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderRight());
         //a new border has been added
         assertEquals(num + 1, stylesTable.getBorders().size());
         //id of the created border
@@ -156,15 +156,15 @@ public class TestXSSFCellStyle {
         num = stylesTable.getBorders().size();
         //setting the same border multiple times should not change borderId
         for (int i = 0; i < 3; i++) {
-            cellStyle.setBorderRight(CellStyle.BORDER_MEDIUM);
-            assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderRight());
+            cellStyle.setBorderRight(BorderStyle.MEDIUM);
+            assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderRight());
         }
         assertEquals(borderId, cellStyle.getCoreXf().getBorderId());
         assertEquals(num, stylesTable.getBorders().size());
         assertSame(ctBorder, stylesTable.getBorderAt(borderId).getCTBorder());
 
         //setting border to none removes the <right> element
-        cellStyle.setBorderRight(CellStyle.BORDER_NONE);
+        cellStyle.setBorderRight(BorderStyle.NONE);
         assertEquals(num, stylesTable.getBorders().size());
         borderId = (int)cellStyle.getCoreXf().getBorderId();
         ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
@@ -174,11 +174,11 @@ public class TestXSSFCellStyle {
        @Test
     public void testGetSetBorderLeft() {
         //default values
-        assertEquals(CellStyle.BORDER_NONE, cellStyle.getBorderLeft());
+        assertEquals(BorderStyle.NONE, cellStyle.getBorderLeft());
 
         int num = stylesTable.getBorders().size();
-        cellStyle.setBorderLeft(CellStyle.BORDER_MEDIUM);
-        assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderLeft());
+        cellStyle.setBorderLeft(BorderStyle.MEDIUM);
+        assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderLeft());
         //a new border has been added
         assertEquals(num + 1, stylesTable.getBorders().size());
         //id of the created border
@@ -191,15 +191,15 @@ public class TestXSSFCellStyle {
         num = stylesTable.getBorders().size();
         //setting the same border multiple times should not change borderId
         for (int i = 0; i < 3; i++) {
-            cellStyle.setBorderLeft(CellStyle.BORDER_MEDIUM);
-            assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderLeft());
+            cellStyle.setBorderLeft(BorderStyle.MEDIUM);
+            assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderLeft());
         }
         assertEquals(borderId, cellStyle.getCoreXf().getBorderId());
         assertEquals(num, stylesTable.getBorders().size());
         assertSame(ctBorder, stylesTable.getBorderAt(borderId).getCTBorder());
 
         //setting border to none removes the <left> element
-        cellStyle.setBorderLeft(CellStyle.BORDER_NONE);
+        cellStyle.setBorderLeft(BorderStyle.NONE);
         assertEquals(num, stylesTable.getBorders().size());
         borderId = (int)cellStyle.getCoreXf().getBorderId();
         ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
@@ -209,11 +209,11 @@ public class TestXSSFCellStyle {
        @Test
     public void testGetSetBorderTop() {
         //default values
-        assertEquals(CellStyle.BORDER_NONE, cellStyle.getBorderTop());
+        assertEquals(BorderStyle.NONE, cellStyle.getBorderTop());
 
         int num = stylesTable.getBorders().size();
-        cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM);
-        assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderTop());
+        cellStyle.setBorderTop(BorderStyle.MEDIUM);
+        assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderTop());
         //a new border has been added
         assertEquals(num + 1, stylesTable.getBorders().size());
         //id of the created border
@@ -226,165 +226,112 @@ public class TestXSSFCellStyle {
         num = stylesTable.getBorders().size();
         //setting the same border multiple times should not change borderId
         for (int i = 0; i < 3; i++) {
-            cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM);
-            assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderTop());
+            cellStyle.setBorderTop(BorderStyle.MEDIUM);
+            assertEquals(BorderStyle.MEDIUM, cellStyle.getBorderTop());
         }
         assertEquals(borderId, cellStyle.getCoreXf().getBorderId());
         assertEquals(num, stylesTable.getBorders().size());
         assertSame(ctBorder, stylesTable.getBorderAt(borderId).getCTBorder());
 
         //setting border to none removes the <top> element
-        cellStyle.setBorderTop(CellStyle.BORDER_NONE);
+        cellStyle.setBorderTop(BorderStyle.NONE);
         assertEquals(num, stylesTable.getBorders().size());
         borderId = (int)cellStyle.getCoreXf().getBorderId();
         ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
         assertFalse(ctBorder.isSetTop());
-       }
-
-       @Test
-    public void testGetSetBorderThin() {
-        cellStyle.setBorderTop(CellStyle.BORDER_THIN);
-        assertEquals(CellStyle.BORDER_THIN, cellStyle.getBorderTop());
+    }
+    
+    private void testGetSetBorderXMLBean(BorderStyle border, STBorderStyle.Enum expected) {
+        cellStyle.setBorderTop(border);
+        assertEquals(border, cellStyle.getBorderTop());
         int borderId = (int)cellStyle.getCoreXf().getBorderId();
         assertTrue(borderId > 0);
         //check changes in the underlying xml bean
         CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.THIN, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderMedium() {
-        cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM);
-        assertEquals(CellStyle.BORDER_MEDIUM, cellStyle.getBorderTop());
+        assertEquals(expected, ctBorder.getTop().getStyle());
+    }
+    
+    
+    // Border Styles, in BorderStyle/STBorderStyle enum order
+    @Test
+    public void testGetSetBorderNone() {
+        cellStyle.setBorderTop(BorderStyle.NONE);
+        assertEquals(BorderStyle.NONE, cellStyle.getBorderTop());
         int borderId = (int)cellStyle.getCoreXf().getBorderId();
         assertTrue(borderId > 0);
         //check changes in the underlying xml bean
         CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.MEDIUM, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        assertNull(ctBorder.getTop());
+        // no border style and STBorderStyle.NONE are equivalent
+        // POI prefers to unset the border style than explicitly set it STBorderStyle.NONE
+    }
+
+    @Test
+    public void testGetSetBorderThin() {
+        testGetSetBorderXMLBean(BorderStyle.THIN, STBorderStyle.THIN);
+    }
+    
+    @Test
+    public void testGetSetBorderMedium() {
+        testGetSetBorderXMLBean(BorderStyle.MEDIUM, STBorderStyle.MEDIUM);
+    }
+    
+    @Test
+    public void testGetSetBorderDashed() {
+        testGetSetBorderXMLBean(BorderStyle.DASHED, STBorderStyle.DASHED);
+    }
+    
+    @Test
+    public void testGetSetBorderDotted() {
+        testGetSetBorderXMLBean(BorderStyle.DOTTED, STBorderStyle.DOTTED);
+    }
+    
+    @Test
     public void testGetSetBorderThick() {
-        cellStyle.setBorderTop(CellStyle.BORDER_THICK);
-        assertEquals(CellStyle.BORDER_THICK, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.THICK, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.THICK, STBorderStyle.THICK);
+    }
+    
+    @Test
+    public void testGetSetBorderDouble() {
+        testGetSetBorderXMLBean(BorderStyle.DOUBLE, STBorderStyle.DOUBLE);
+    }
+    
+    @Test
     public void testGetSetBorderHair() {
-        cellStyle.setBorderTop(CellStyle.BORDER_HAIR);
-        assertEquals(CellStyle.BORDER_HAIR, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.HAIR, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderDotted() {
-        cellStyle.setBorderTop(CellStyle.BORDER_DOTTED);
-        assertEquals(CellStyle.BORDER_DOTTED, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.DOTTED, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderDashed() {
-        cellStyle.setBorderTop(CellStyle.BORDER_DASHED);
-        assertEquals(CellStyle.BORDER_DASHED, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.DASHED, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.HAIR, STBorderStyle.HAIR);
+    }
+    
+    @Test
+    public void testGetSetBorderMediumDashed() {
+        testGetSetBorderXMLBean(BorderStyle.MEDIUM_DASHED, STBorderStyle.MEDIUM_DASHED);
+    }
+    
+    @Test
     public void testGetSetBorderDashDot() {
-        cellStyle.setBorderTop(CellStyle.BORDER_DASH_DOT);
-        assertEquals(CellStyle.BORDER_DASH_DOT, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.DASH_DOT, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderDashDotDot() {
-        cellStyle.setBorderTop(CellStyle.BORDER_DASH_DOT_DOT);
-        assertEquals(CellStyle.BORDER_DASH_DOT_DOT, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.DASH_DOT_DOT, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.DASH_DOT, STBorderStyle.DASH_DOT);
+    }
+    
+    @Test
     public void testGetSetBorderMediumDashDot() {
-        cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASH_DOT);
-        assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.MEDIUM_DASH_DOT, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.MEDIUM_DASH_DOT, STBorderStyle.MEDIUM_DASH_DOT);
+    }
+    
+    @Test
+    public void testGetSetBorderDashDotDot() {
+        testGetSetBorderXMLBean(BorderStyle.DASH_DOT_DOT, STBorderStyle.DASH_DOT_DOT);
+    }
+    
+    @Test
     public void testGetSetBorderMediumDashDotDot() {
-        cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASH_DOT_DOT);
-        assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT_DOT, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.MEDIUM_DASH_DOT_DOT, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderMediumDashed() {
-        cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED);
-        assertEquals(CellStyle.BORDER_MEDIUM_DASHED, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.MEDIUM_DASHED, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.MEDIUM_DASH_DOT_DOT, STBorderStyle.MEDIUM_DASH_DOT_DOT);
+    }
+    
+    @Test
     public void testGetSetBorderSlantDashDot() {
-        cellStyle.setBorderTop(CellStyle.BORDER_SLANTED_DASH_DOT);
-        assertEquals(CellStyle.BORDER_SLANTED_DASH_DOT, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.SLANT_DASH_DOT, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
-    public void testGetSetBorderDouble() {
-        cellStyle.setBorderTop(CellStyle.BORDER_DOUBLE);
-        assertEquals(CellStyle.BORDER_DOUBLE, cellStyle.getBorderTop());
-        int borderId = (int)cellStyle.getCoreXf().getBorderId();
-        assertTrue(borderId > 0);
-        //check changes in the underlying xml bean
-        CTBorder ctBorder = stylesTable.getBorderAt(borderId).getCTBorder();
-        assertEquals(STBorderStyle.DOUBLE, ctBorder.getTop().getStyle());
-       }
-       
-       @Test
+        testGetSetBorderXMLBean(BorderStyle.SLANTED_DASH_DOT, STBorderStyle.SLANT_DASH_DOT);
+    }
+    
+    @Test
     public void testGetSetBottomBorderColor() {
         //defaults
         assertEquals(IndexedColors.BLACK.getIndex(), cellStyle.getBottomBorderColor());
@@ -780,21 +727,21 @@ public class TestXSSFCellStyle {
       assertEquals(2, wb.getNumberOfFonts());
       
       XSSFCellStyle orig = wb.createCellStyle();
-      orig.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
+      orig.setAlignment(CellStyle.ALIGN_RIGHT);
       orig.setFont(fnt);
       orig.setDataFormat((short)18);
       
-      assertTrue(HSSFCellStyle.ALIGN_RIGHT == orig.getAlignment());
+      assertTrue(CellStyle.ALIGN_RIGHT == orig.getAlignment());
       assertTrue(fnt == orig.getFont());
       assertTrue(18 == orig.getDataFormat());
       
       XSSFCellStyle clone = wb.createCellStyle();
-      assertFalse(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
+      assertFalse(CellStyle.ALIGN_RIGHT == clone.getAlignment());
       assertFalse(fnt == clone.getFont());
       assertFalse(18 == clone.getDataFormat());
       
       clone.cloneStyleFrom(orig);
-      assertTrue(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
+      assertTrue(CellStyle.ALIGN_RIGHT == clone.getAlignment());
       assertTrue(fnt == clone.getFont());
       assertTrue(18 == clone.getDataFormat());
       assertEquals(2, wb.getNumberOfFonts());
@@ -1104,5 +1051,7 @@ public class TestXSSFCellStyle {
 
         cellStyle.setRightBorderColor(null);
         assertNull(cellStyle.getRightBorderXSSFColor());
+        
+        workbook.close();
     }
 }
index a45d856145d4f21d78ff001e8c6b21e1fe644d1f..4f73f49a91deb0f354cafb8d567bde3eda391007 100644 (file)
@@ -25,6 +25,7 @@ import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.hwpf.converter.AbstractWordUtils;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.IOUtils;
@@ -66,28 +67,28 @@ public class AbstractExcelUtils
         }
     }
 
-    public static String getBorderStyle( short xlsBorder )
+    public static String getBorderStyle( BorderStyle xlsBorder )
     {
         final String borderStyle;
         switch ( xlsBorder )
         {
-        case HSSFCellStyle.BORDER_NONE:
+        case NONE:
             borderStyle = "none";
             break;
-        case HSSFCellStyle.BORDER_DASH_DOT:
-        case HSSFCellStyle.BORDER_DASH_DOT_DOT:
-        case HSSFCellStyle.BORDER_DOTTED:
-        case HSSFCellStyle.BORDER_HAIR:
-        case HSSFCellStyle.BORDER_MEDIUM_DASH_DOT:
-        case HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT:
-        case HSSFCellStyle.BORDER_SLANTED_DASH_DOT:
+        case DASH_DOT:
+        case DASH_DOT_DOT:
+        case DOTTED:
+        case HAIR:
+        case MEDIUM_DASH_DOT:
+        case MEDIUM_DASH_DOT_DOT:
+        case SLANTED_DASH_DOT:
             borderStyle = "dotted";
             break;
-        case HSSFCellStyle.BORDER_DASHED:
-        case HSSFCellStyle.BORDER_MEDIUM_DASHED:
+        case DASHED:
+        case MEDIUM_DASHED:
             borderStyle = "dashed";
             break;
-        case HSSFCellStyle.BORDER_DOUBLE:
+        case DOUBLE:
             borderStyle = "double";
             break;
         default:
@@ -97,17 +98,17 @@ public class AbstractExcelUtils
         return borderStyle;
     }
 
-    public static String getBorderWidth( short xlsBorder )
+    public static String getBorderWidth( BorderStyle xlsBorder )
     {
         final String borderWidth;
         switch ( xlsBorder )
         {
-        case HSSFCellStyle.BORDER_MEDIUM_DASH_DOT:
-        case HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT:
-        case HSSFCellStyle.BORDER_MEDIUM_DASHED:
+        case MEDIUM_DASH_DOT:
+        case MEDIUM_DASH_DOT_DOT:
+        case MEDIUM_DASHED:
             borderWidth = "2pt";
             break;
-        case HSSFCellStyle.BORDER_THICK:
+        case THICK:
             borderWidth = "thick";
             break;
         default:
index f5ba5f1ea028c1a3f035bec0e6d96b0837447aec..eff2f218d383f332b1ca1c5017a41e7791b0255a 100644 (file)
@@ -38,6 +38,7 @@ import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.hwpf.converter.FoDocumentFacade;
 import org.apache.poi.hwpf.converter.FontReplacer.Triplet;
 import org.apache.poi.ss.formula.eval.ErrorEval;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.Beta;
@@ -192,10 +193,10 @@ public class ExcelToFoConverter extends AbstractExcelConverter
     protected boolean isEmptyStyle( CellStyle cellStyle ) {
         return cellStyle == null || (
                cellStyle.getFillPattern() == 0
-            && cellStyle.getBorderTop() == HSSFCellStyle.BORDER_NONE
-            && cellStyle.getBorderRight() == HSSFCellStyle.BORDER_NONE
-            && cellStyle.getBorderBottom() == HSSFCellStyle.BORDER_NONE
-            && cellStyle.getBorderLeft() == HSSFCellStyle.BORDER_NONE
+            && cellStyle.getBorderTop() == BorderStyle.NONE
+            && cellStyle.getBorderRight() == BorderStyle.NONE
+            && cellStyle.getBorderBottom() == BorderStyle.NONE
+            && cellStyle.getBorderLeft() == BorderStyle.NONE
         );
     }
 
@@ -374,9 +375,9 @@ public class ExcelToFoConverter extends AbstractExcelConverter
     }
 
     protected void processCellStyleBorder( HSSFWorkbook workbook,
-            Element cellTarget, String type, short xlsBorder, short borderColor )
+            Element cellTarget, String type, BorderStyle xlsBorder, short borderColor )
     {
-        if ( xlsBorder == HSSFCellStyle.BORDER_NONE )
+        if ( xlsBorder == BorderStyle.NONE )
             return;
 
         StringBuilder borderStyle = new StringBuilder();
index c61f05d9a2f547d4917c185b657b7fb684e69afa..222e362c3c696e8ae84db85c88a758f6ccab2705 100644 (file)
@@ -42,6 +42,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.hwpf.converter.HtmlDocumentFacade;
 import org.apache.poi.ss.formula.eval.ErrorEval;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.POILogFactory;
@@ -190,9 +191,9 @@ public class ExcelToHtmlConverter extends AbstractExcelConverter
     }
 
     private void buildStyle_border( HSSFWorkbook workbook, StringBuilder style,
-            String type, short xlsBorder, short borderColor )
+            String type, BorderStyle xlsBorder, short borderColor )
     {
-        if ( xlsBorder == HSSFCellStyle.BORDER_NONE ) {
+        if ( xlsBorder == BorderStyle.NONE ) {
             return;
         }
 
index 17861e289a2b763bc9c61965ab9a3a8336556fa4..56071f6d93c8dde1250c0d3fb95692388a390579 100644 (file)
@@ -68,6 +68,7 @@ import org.apache.poi.ss.formula.ptg.Area3DPtg;
 import org.apache.poi.ss.formula.ptg.DeletedArea3DPtg;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.usermodel.BaseTestBugzillaIssues;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
@@ -2564,7 +2565,7 @@ public final class TestBugs extends BaseTestBugzillaIssues {
         HSSFSheet sheet = wb.getSheetAt(0);
         HSSFRow row = sheet.getRow(0);
         HSSFCellStyle rstyle = row.getRowStyle();
-        assertEquals(rstyle.getBorderBottom(), CellStyle.BORDER_DOUBLE);
+        assertEquals(BorderStyle.DOUBLE, rstyle.getBorderBottom());
         wb.close();
     }
 
index 8d7fd012a62c5f5b018271842ac701c66178a0ea..428d2bf96797647b9fd4758c2e76f7fd468e8caa 100644 (file)
@@ -24,6 +24,7 @@ import java.util.Calendar;
 import java.util.Date;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
@@ -180,10 +181,10 @@ public final class TestCellStyle extends TestCase {
         HSSFCellStyle    cs   = wb.createCellStyle();
         HSSFCellStyle    cs2  = wb.createCellStyle();
 
-        cs.setBorderBottom(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderLeft(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderRight(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        cs.setBorderBottom(BorderStyle.THIN);
+        cs.setBorderLeft(BorderStyle.THIN);
+        cs.setBorderRight(BorderStyle.THIN);
+        cs.setBorderTop(BorderStyle.THIN);
         cs.setFillForegroundColor(( short ) 0xA);
         cs.setFillPattern(( short ) 1);
         fnt.setColor(( short ) 0xf);
@@ -346,40 +347,40 @@ public final class TestCellStyle extends TestCase {
        HSSFCellStyle cs;
 
        cs = s.getRow(0).getCell(0).getCellStyle();
-       assertEquals(CellStyle.BORDER_HAIR, cs.getBorderRight());
+       assertEquals(BorderStyle.HAIR, cs.getBorderRight());
 
        cs = s.getRow(1).getCell(1).getCellStyle();
-       assertEquals(CellStyle.BORDER_DOTTED, cs.getBorderRight());
+       assertEquals(BorderStyle.DOTTED, cs.getBorderRight());
 
        cs = s.getRow(2).getCell(2).getCellStyle();
-       assertEquals(CellStyle.BORDER_DASH_DOT_DOT, cs.getBorderRight());
+       assertEquals(BorderStyle.DASH_DOT_DOT, cs.getBorderRight());
 
        cs = s.getRow(3).getCell(3).getCellStyle();
-       assertEquals(CellStyle.BORDER_DASHED, cs.getBorderRight());
+       assertEquals(BorderStyle.DASHED, cs.getBorderRight());
 
        cs = s.getRow(4).getCell(4).getCellStyle();
-       assertEquals(CellStyle.BORDER_THIN, cs.getBorderRight());
+       assertEquals(BorderStyle.THIN, cs.getBorderRight());
 
        cs = s.getRow(5).getCell(5).getCellStyle();
-       assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT_DOT, cs.getBorderRight());
+       assertEquals(BorderStyle.MEDIUM_DASH_DOT_DOT, cs.getBorderRight());
 
        cs = s.getRow(6).getCell(6).getCellStyle();
-       assertEquals(CellStyle.BORDER_SLANTED_DASH_DOT, cs.getBorderRight());
+       assertEquals(BorderStyle.SLANTED_DASH_DOT, cs.getBorderRight());
 
        cs = s.getRow(7).getCell(7).getCellStyle();
-       assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT, cs.getBorderRight());
+       assertEquals(BorderStyle.MEDIUM_DASH_DOT, cs.getBorderRight());
 
        cs = s.getRow(8).getCell(8).getCellStyle();
-       assertEquals(CellStyle.BORDER_MEDIUM_DASHED, cs.getBorderRight());
+       assertEquals(BorderStyle.MEDIUM_DASHED, cs.getBorderRight());
 
        cs = s.getRow(9).getCell(9).getCellStyle();
-       assertEquals(CellStyle.BORDER_MEDIUM, cs.getBorderRight());
+       assertEquals(BorderStyle.MEDIUM, cs.getBorderRight());
 
        cs = s.getRow(10).getCell(10).getCellStyle();
-       assertEquals(CellStyle.BORDER_THICK, cs.getBorderRight());
+       assertEquals(BorderStyle.THICK, cs.getBorderRight());
 
        cs = s.getRow(11).getCell(11).getCellStyle();
-       assertEquals(CellStyle.BORDER_DOUBLE, cs.getBorderRight());
+       assertEquals(BorderStyle.DOUBLE, cs.getBorderRight());
     }
 
     public void testShrinkToFit() {
@@ -485,7 +486,7 @@ public final class TestCellStyle extends TestCase {
         font.setColor(Font.COLOR_RED);
         
         CellStyle style = wb.createCellStyle();
-        style.setBorderBottom(CellStyle.BORDER_DOTTED);
+        style.setBorderBottom(BorderStyle.DOTTED);
         style.setFont(font);
         
         Cell cell = row.createCell(0);
@@ -498,7 +499,7 @@ public final class TestCellStyle extends TestCase {
         newCell.setCellValue("2testtext2");
 
         CellStyle newStyle = newCell.getCellStyle();
-        assertEquals(CellStyle.BORDER_DOTTED, newStyle.getBorderBottom());
+        assertEquals(BorderStyle.DOTTED, newStyle.getBorderBottom());
         assertEquals(Font.COLOR_RED, ((HSSFCellStyle)newStyle).getFont(wb).getColor());
         
 //        OutputStream out = new FileOutputStream("/tmp/56959.xls");
index d230185f739010d46c3b1ca0c51276fe5fc3e3e8..059ab3f384d7b1f64601480508a449dac512239a 100644 (file)
@@ -16,6 +16,8 @@
 ==================================================================== */
 package org.apache.poi.hssf.usermodel;
 
+import org.apache.poi.ss.usermodel.BorderStyle;
+
 import junit.framework.TestCase;
 
 public final class TestHSSFOptimiser extends TestCase {
@@ -278,13 +280,13 @@ public final class TestHSSFOptimiser extends TestCase {
            assertEquals(21, wb.getNumCellStyles());
            
            HSSFCellStyle cs1 = wb.createCellStyle();
-           cs1.setBorderBottom(HSSFCellStyle.BORDER_THICK);
+           cs1.setBorderBottom(BorderStyle.THICK);
            
            HSSFCellStyle cs2 = wb.createCellStyle();
-           cs2.setBorderBottom(HSSFCellStyle.BORDER_DASH_DOT);
+           cs2.setBorderBottom(BorderStyle.DASH_DOT);
            
            HSSFCellStyle cs3 = wb.createCellStyle(); // = cs1
-        cs3.setBorderBottom(HSSFCellStyle.BORDER_THICK);
+           cs3.setBorderBottom(BorderStyle.THICK);
            
            assertEquals(24, wb.getNumCellStyles());
            
@@ -306,8 +308,8 @@ public final class TestHSSFOptimiser extends TestCase {
            // Check
            assertEquals(23, wb.getNumCellStyles());
            
-           assertEquals(HSSFCellStyle.BORDER_THICK, r.getCell(0).getCellStyle().getBorderBottom());
-           assertEquals(HSSFCellStyle.BORDER_DASH_DOT, r.getCell(1).getCellStyle().getBorderBottom());
-           assertEquals(HSSFCellStyle.BORDER_THICK, r.getCell(2).getCellStyle().getBorderBottom());
+           assertEquals(BorderStyle.THICK, r.getCell(0).getCellStyle().getBorderBottom());
+           assertEquals(BorderStyle.DASH_DOT, r.getCell(1).getCellStyle().getBorderBottom());
+           assertEquals(BorderStyle.THICK, r.getCell(2).getCellStyle().getBorderBottom());
        }
 }
index 0eb2346e36c0e3cb9a2d64c2901e412bb73a4225..ba65d063ac8928b0ae0c0e252539b4f36e46fd0f 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hssf.usermodel;
 import junit.framework.TestCase;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.ss.usermodel.BorderStyle;
 
 /**
  * Class to test row styling functionality
@@ -110,10 +111,10 @@ public final class TestRowStyle extends TestCase {
         HSSFCellStyle    cs   = wb.createCellStyle();
         HSSFCellStyle    cs2  = wb.createCellStyle();
 
-        cs.setBorderBottom(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderLeft(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderRight(HSSFCellStyle.BORDER_THIN);
-        cs.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        cs.setBorderBottom(BorderStyle.THIN);
+        cs.setBorderLeft(BorderStyle.THIN);
+        cs.setBorderRight(BorderStyle.THIN);
+        cs.setBorderTop(BorderStyle.THIN);
         cs.setFillForegroundColor(( short ) 0xA);
         cs.setFillPattern(( short ) 1);
         fnt.setColor(( short ) 0xf);
@@ -150,12 +151,12 @@ public final class TestRowStyle extends TestCase {
             assertNotNull("Row is not null", r);
             
             cs = r.getRowStyle();
-            assertEquals("FillForegroundColor for row: ", cs.getBorderBottom(), HSSFCellStyle.BORDER_THIN);
-            assertEquals("FillPattern for row: ", cs.getBorderLeft(), HSSFCellStyle.BORDER_THIN);
-            assertEquals("FillForegroundColor for row: ", cs.getBorderRight(), HSSFCellStyle.BORDER_THIN);
-            assertEquals("FillPattern for row: ", cs.getBorderTop(), HSSFCellStyle.BORDER_THIN);
-            assertEquals("FillForegroundColor for row: ", cs.getFillForegroundColor(), 0xA);
-            assertEquals("FillPattern for row: ", cs.getFillPattern(), (short) 0x1);
+            assertEquals("Bottom Border Style for row:", BorderStyle.THIN, cs.getBorderBottom());
+            assertEquals("Left Border Style for row:",   BorderStyle.THIN, cs.getBorderLeft());
+            assertEquals("Right Border Style for row:",  BorderStyle.THIN, cs.getBorderRight());
+            assertEquals("Top Border Style for row:",    BorderStyle.THIN, cs.getBorderTop());
+            assertEquals("FillForegroundColor for row:", 0xA, cs.getFillForegroundColor());
+            assertEquals("FillPattern for row:",         0x1, cs.getFillPattern());
             
             rownum++;
             if (rownum >= 100) break; // I feel too lazy to check if this isreqd :-/ 
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBorderStyle.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBorderStyle.java
new file mode 100644 (file)
index 0000000..5ea2280
--- /dev/null
@@ -0,0 +1,82 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+   2012 - Alfresco Software, Ltd.
+   Alfresco Software has modified source of this file
+   The details of changes as svn diff can be found in svn at location root/projects/3rd-party/src 
+==================================================================== */
+
+package org.apache.poi.ss.usermodel;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.poi.ss.ITestDataProvider;
+import org.junit.Test;
+
+/**
+ * Tests of {@link BorderStyle}
+ */
+public class BaseTestBorderStyle {
+    
+    private final ITestDataProvider _testDataProvider;
+
+    protected BaseTestBorderStyle(ITestDataProvider testDataProvider) {
+        _testDataProvider = testDataProvider;
+    }
+
+    /**
+     * Test that we use the specified locale when deciding
+     *   how to format normal numbers
+     */
+    @Test
+    public void testBorderStyle() throws IOException {
+        String ext = _testDataProvider.getStandardFileNameExtension();
+        Workbook wb = _testDataProvider.openSampleWorkbook("59264."+ext);
+        Sheet sh = wb.getSheetAt(0);
+        
+        assertBorderStyleEquals(BorderStyle.NONE, getDiagonalCell(sh, 0));
+        assertBorderStyleEquals(BorderStyle.THIN, getDiagonalCell(sh, 1));
+        assertBorderStyleEquals(BorderStyle.MEDIUM, getDiagonalCell(sh, 2));
+        assertBorderStyleEquals(BorderStyle.DASHED, getDiagonalCell(sh, 3));
+        assertBorderStyleEquals(BorderStyle.DOTTED, getDiagonalCell(sh, 4));
+        assertBorderStyleEquals(BorderStyle.THICK, getDiagonalCell(sh, 5));
+        assertBorderStyleEquals(BorderStyle.DOUBLE, getDiagonalCell(sh, 6));
+        assertBorderStyleEquals(BorderStyle.HAIR, getDiagonalCell(sh, 7));
+        assertBorderStyleEquals(BorderStyle.MEDIUM_DASHED, getDiagonalCell(sh, 8));
+        assertBorderStyleEquals(BorderStyle.DASH_DOT, getDiagonalCell(sh, 9));
+        assertBorderStyleEquals(BorderStyle.MEDIUM_DASH_DOT, getDiagonalCell(sh, 10));
+        assertBorderStyleEquals(BorderStyle.DASH_DOT_DOT, getDiagonalCell(sh, 11));
+        assertBorderStyleEquals(BorderStyle.MEDIUM_DASH_DOT_DOT, getDiagonalCell(sh, 12));
+        assertBorderStyleEquals(BorderStyle.SLANTED_DASH_DOT, getDiagonalCell(sh, 13));
+        
+        wb.close();
+    }
+    
+    private Cell getDiagonalCell(Sheet sheet, int n) {
+        return sheet.getRow(n).getCell(n);
+    }
+    
+    protected void assertBorderStyleEquals(BorderStyle expected, Cell cell) {
+        CellStyle style = cell.getCellStyle();
+        assertEquals(expected, style.getBorderTop());
+        assertEquals(expected, style.getBorderBottom());
+        assertEquals(expected, style.getBorderLeft());
+        assertEquals(expected, style.getBorderRight());
+    }
+
+}
index 67693e4d6adbe422b6556648909a04e0dbc2465b..c9c1d55d3f7f5866c56fdc7bbe8e30f55b6c9f68 100644 (file)
@@ -254,10 +254,10 @@ public abstract class BaseTestCell {
         f.setFontName("Arial Unicode MS");
         cs.setFillBackgroundColor((short)3);
         cs.setFont(f);
-        cs.setBorderTop((short)1);
-        cs.setBorderRight((short)1);
-        cs.setBorderLeft((short)1);
-        cs.setBorderBottom((short)1);
+        cs.setBorderTop(BorderStyle.THIN);
+        cs.setBorderRight(BorderStyle.THIN);
+        cs.setBorderLeft(BorderStyle.THIN);
+        cs.setBorderBottom(BorderStyle.THIN);
 
         r = s.createRow(0);
         c=r.createCell(0);
@@ -270,15 +270,15 @@ public abstract class BaseTestCell {
         r = s.getRow(0);
         c = r.getCell(0);
 
-        assertTrue("Formula Cell at 0,0", (c.getCellType()==Cell.CELL_TYPE_FORMULA));
+        assertEquals("Formula Cell at 0,0", Cell.CELL_TYPE_FORMULA, c.getCellType());
         cs = c.getCellStyle();
 
         assertNotNull("Formula Cell Style", cs);
-        assertTrue("Font Index Matches", (cs.getFontIndex() == f.getIndex()));
-        assertTrue("Top Border", (cs.getBorderTop() == (short)1));
-        assertTrue("Left Border", (cs.getBorderLeft() == (short)1));
-        assertTrue("Right Border", (cs.getBorderRight() == (short)1));
-        assertTrue("Bottom Border", (cs.getBorderBottom() == (short)1));
+        assertEquals("Font Index Matches", f.getIndex(), cs.getFontIndex());
+        assertEquals("Top Border", BorderStyle.THIN, cs.getBorderTop());
+        assertEquals("Left Border", BorderStyle.THIN, cs.getBorderLeft());
+        assertEquals("Right Border", BorderStyle.THIN, cs.getBorderRight());
+        assertEquals("Bottom Border", BorderStyle.THIN, cs.getBorderBottom());
         wb2.close();
     }
 
index de7b298609e66664ead60fe6d1c7fe7813be4857..72691ff69fc97ee66f9103685d9569d18d1f0b62 100644 (file)
@@ -323,10 +323,10 @@ public abstract class BaseTestConditionalFormatting {
         fontFmt.setFontStyle(true, false);\r
 \r
         BorderFormatting bordFmt = rule1.createBorderFormatting();\r
-        bordFmt.setBorderBottom(BorderFormatting.BORDER_THIN);\r
-        bordFmt.setBorderTop(BorderFormatting.BORDER_THICK);\r
-        bordFmt.setBorderLeft(BorderFormatting.BORDER_DASHED);\r
-        bordFmt.setBorderRight(BorderFormatting.BORDER_DOTTED);\r
+        bordFmt.setBorderBottom(BorderStyle.THIN);\r
+        bordFmt.setBorderTop(BorderStyle.THICK);\r
+        bordFmt.setBorderLeft(BorderStyle.DASHED);\r
+        bordFmt.setBorderRight(BorderStyle.DOTTED);\r
 \r
         PatternFormatting patternFmt = rule1.createPatternFormatting();\r
         patternFmt.setFillBackgroundColor(IndexedColors.YELLOW.index);\r
@@ -376,10 +376,10 @@ public abstract class BaseTestConditionalFormatting {
 \r
         BorderFormatting  r1bf = rule1.getBorderFormatting();\r
         assertNotNull(r1bf);\r
-        assertEquals(BorderFormatting.BORDER_THIN, r1bf.getBorderBottom());\r
-        assertEquals(BorderFormatting.BORDER_THICK,r1bf.getBorderTop());\r
-        assertEquals(BorderFormatting.BORDER_DASHED,r1bf.getBorderLeft());\r
-        assertEquals(BorderFormatting.BORDER_DOTTED,r1bf.getBorderRight());\r
+        assertEquals(BorderStyle.THIN, r1bf.getBorderBottom());\r
+        assertEquals(BorderStyle.THICK,r1bf.getBorderTop());\r
+        assertEquals(BorderStyle.DASHED,r1bf.getBorderLeft());\r
+        assertEquals(BorderStyle.DOTTED,r1bf.getBorderRight());\r
 \r
         PatternFormatting r1pf = rule1.getPatternFormatting();\r
         assertNotNull(r1pf);\r
@@ -453,7 +453,7 @@ public abstract class BaseTestConditionalFormatting {
         ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(\r
                 ComparisonOperator.BETWEEN, "SUM(A10:A15)", "1+SUM(B16:B30)");\r
         BorderFormatting borderFmt = rule2.createBorderFormatting();\r
-        borderFmt.setBorderDiagonal((short) 2);\r
+        borderFmt.setBorderDiagonal(BorderStyle.MEDIUM);\r
 \r
         CellRangeAddress [] regions = {\r
             new CellRangeAddress(2, 4, 0, 0), // A3:A5\r
@@ -1019,6 +1019,38 @@ public abstract class BaseTestConditionalFormatting {
         \r
         workbook.close();\r
     }\r
+    \r
+    @Test\r
+    public void testAllCreateBorderFormatting() throws IOException {\r
+        // Make sure it is possible to create a conditional formatting rule\r
+        // with every type of Border Style\r
+        Workbook workbook = _testDataProvider.createWorkbook();\r
+        Sheet sheet = workbook.createSheet();\r
+\r
+        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();\r
+\r
+        ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.EQUAL, "7");\r
+        BorderFormatting borderFmt = rule1.createBorderFormatting();\r
+\r
+        for (BorderStyle border : BorderStyle.values()) {\r
+            borderFmt.setBorderTop(border);\r
+            assertEquals(border, borderFmt.getBorderTop());\r
+\r
+            borderFmt.setBorderBottom(border);\r
+            assertEquals(border, borderFmt.getBorderBottom());\r
+\r
+            borderFmt.setBorderLeft(border);\r
+            assertEquals(border, borderFmt.getBorderLeft());\r
+\r
+            borderFmt.setBorderRight(border);\r
+            assertEquals(border, borderFmt.getBorderRight());\r
+\r
+            borderFmt.setBorderDiagonal(border);\r
+            assertEquals(border, borderFmt.getBorderDiagonal());\r
+        }\r
+\r
+        workbook.close();\r
+    }\r
 \r
     @Test\r
     public void testCreateBorderFormatting() throws IOException {\r
@@ -1030,37 +1062,37 @@ public abstract class BaseTestConditionalFormatting {
         ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.EQUAL, "7");\r
         BorderFormatting borderFmt = rule1.createBorderFormatting();\r
 \r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderBottom());\r
-        borderFmt.setBorderBottom(BorderFormatting.BORDER_DOTTED);\r
-        assertEquals(BorderFormatting.BORDER_DOTTED, borderFmt.getBorderBottom());\r
-        borderFmt.setBorderBottom(BorderFormatting.BORDER_NONE);\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderBottom());\r
-        borderFmt.setBorderBottom(BorderFormatting.BORDER_THICK);\r
-        assertEquals(BorderFormatting.BORDER_THICK, borderFmt.getBorderBottom());\r
-\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderTop());\r
-        borderFmt.setBorderTop(BorderFormatting.BORDER_DOTTED);\r
-        assertEquals(BorderFormatting.BORDER_DOTTED, borderFmt.getBorderTop());\r
-        borderFmt.setBorderTop(BorderFormatting.BORDER_NONE);\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderTop());\r
-        borderFmt.setBorderTop(BorderFormatting.BORDER_THICK);\r
-        assertEquals(BorderFormatting.BORDER_THICK, borderFmt.getBorderTop());\r
-\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderLeft());\r
-        borderFmt.setBorderLeft(BorderFormatting.BORDER_DOTTED);\r
-        assertEquals(BorderFormatting.BORDER_DOTTED, borderFmt.getBorderLeft());\r
-        borderFmt.setBorderLeft(BorderFormatting.BORDER_NONE);\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderLeft());\r
-        borderFmt.setBorderLeft(BorderFormatting.BORDER_THIN);\r
-        assertEquals(BorderFormatting.BORDER_THIN, borderFmt.getBorderLeft());\r
-\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderRight());\r
-        borderFmt.setBorderRight(BorderFormatting.BORDER_DOTTED);\r
-        assertEquals(BorderFormatting.BORDER_DOTTED, borderFmt.getBorderRight());\r
-        borderFmt.setBorderRight(BorderFormatting.BORDER_NONE);\r
-        assertEquals(BorderFormatting.BORDER_NONE, borderFmt.getBorderRight());\r
-        borderFmt.setBorderRight(BorderFormatting.BORDER_HAIR);\r
-        assertEquals(BorderFormatting.BORDER_HAIR, borderFmt.getBorderRight());\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderBottom());\r
+        borderFmt.setBorderBottom(BorderStyle.DOTTED);\r
+        assertEquals(BorderStyle.DOTTED, borderFmt.getBorderBottom());\r
+        borderFmt.setBorderBottom(BorderStyle.NONE);\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderBottom());\r
+        borderFmt.setBorderBottom(BorderStyle.THICK);\r
+        assertEquals(BorderStyle.THICK, borderFmt.getBorderBottom());\r
+\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderTop());\r
+        borderFmt.setBorderTop(BorderStyle.DOTTED);\r
+        assertEquals(BorderStyle.DOTTED, borderFmt.getBorderTop());\r
+        borderFmt.setBorderTop(BorderStyle.NONE);\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderTop());\r
+        borderFmt.setBorderTop(BorderStyle.THICK);\r
+        assertEquals(BorderStyle.THICK, borderFmt.getBorderTop());\r
+\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderLeft());\r
+        borderFmt.setBorderLeft(BorderStyle.DOTTED);\r
+        assertEquals(BorderStyle.DOTTED, borderFmt.getBorderLeft());\r
+        borderFmt.setBorderLeft(BorderStyle.NONE);\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderLeft());\r
+        borderFmt.setBorderLeft(BorderStyle.THIN);\r
+        assertEquals(BorderStyle.THIN, borderFmt.getBorderLeft());\r
+\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderRight());\r
+        borderFmt.setBorderRight(BorderStyle.DOTTED);\r
+        assertEquals(BorderStyle.DOTTED, borderFmt.getBorderRight());\r
+        borderFmt.setBorderRight(BorderStyle.NONE);\r
+        assertEquals(BorderStyle.NONE, borderFmt.getBorderRight());\r
+        borderFmt.setBorderRight(BorderStyle.HAIR);\r
+        assertEquals(BorderStyle.HAIR, borderFmt.getBorderRight());\r
 \r
         ConditionalFormattingRule [] cfRules = { rule1 };\r
 \r
@@ -1076,10 +1108,10 @@ public abstract class BaseTestConditionalFormatting {
 \r
         BorderFormatting  r1fp = cf.getRule(0).getBorderFormatting();\r
         assertNotNull(r1fp);\r
-        assertEquals(BorderFormatting.BORDER_THICK, r1fp.getBorderBottom());\r
-        assertEquals(BorderFormatting.BORDER_THICK, r1fp.getBorderTop());\r
-        assertEquals(BorderFormatting.BORDER_THIN, r1fp.getBorderLeft());\r
-        assertEquals(BorderFormatting.BORDER_HAIR, r1fp.getBorderRight());\r
+        assertEquals(BorderStyle.THICK, r1fp.getBorderBottom());\r
+        assertEquals(BorderStyle.THICK, r1fp.getBorderTop());\r
+        assertEquals(BorderStyle.THIN, r1fp.getBorderLeft());\r
+        assertEquals(BorderStyle.HAIR, r1fp.getBorderRight());\r
         \r
         workbook.close();\r
     }\r
diff --git a/src/testcases/org/apache/poi/ss/usermodel/TestHSSFBorderStyle.java b/src/testcases/org/apache/poi/ss/usermodel/TestHSSFBorderStyle.java
new file mode 100644 (file)
index 0000000..7214645
--- /dev/null
@@ -0,0 +1,30 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ss.usermodel;
+
+import org.apache.poi.hssf.HSSFITestDataProvider;
+
+/**
+ * @author Yegor Kozlov
+ */
+public final class TestHSSFBorderStyle extends BaseTestBorderStyle  {
+
+    public TestHSSFBorderStyle() {
+        super(HSSFITestDataProvider.instance);
+    }
+}
\ No newline at end of file
index ebefd7d33700f9d3a01c95c33e6294966e4b1d5e..eddb6ac9ee0c60a1279002c406403ef045d47cc5 100644 (file)
@@ -29,13 +29,13 @@ import java.util.HashMap;
 import java.util.Map;\r
 \r
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;\r
+import org.apache.poi.ss.usermodel.BorderStyle;\r
 import org.apache.poi.ss.usermodel.Cell;\r
 import org.apache.poi.ss.usermodel.CellStyle;\r
 import org.apache.poi.ss.usermodel.Font;\r
 import org.apache.poi.ss.usermodel.Row;\r
 import org.apache.poi.ss.usermodel.Sheet;\r
 import org.apache.poi.ss.usermodel.Workbook;\r
-\r
 import org.junit.Test;\r
 \r
 /**\r
@@ -53,13 +53,13 @@ public final class TestCellUtil {
 \r
         // Add a border should create a new style\r
         int styCnt1 = wb.getNumCellStyles();\r
-        CellUtil.setCellStyleProperty(c, wb, CellUtil.BORDER_BOTTOM, CellStyle.BORDER_THIN);\r
+        CellUtil.setCellStyleProperty(c, wb, CellUtil.BORDER_BOTTOM, BorderStyle.THIN);\r
         int styCnt2 = wb.getNumCellStyles();\r
         assertEquals(styCnt2, styCnt1+1);\r
 \r
         // Add same border to another cell, should not create another style\r
         c = r.createCell(1);\r
-        CellUtil.setCellStyleProperty(c, wb, CellUtil.BORDER_BOTTOM, CellStyle.BORDER_THIN);\r
+        CellUtil.setCellStyleProperty(c, wb, CellUtil.BORDER_BOTTOM, BorderStyle.THIN);\r
         int styCnt3 = wb.getNumCellStyles();\r
         assertEquals(styCnt3, styCnt2);\r
 \r
@@ -76,19 +76,19 @@ public final class TestCellUtil {
         // Add multiple border properties to cell should create a single new style\r
         int styCnt1 = wb.getNumCellStyles();\r
         Map<String, Object> props = new HashMap<String, Object>();\r
-        props.put(CellUtil.BORDER_TOP, CellStyle.BORDER_THIN);\r
-        props.put(CellUtil.BORDER_BOTTOM, CellStyle.BORDER_THIN);\r
-        props.put(CellUtil.BORDER_LEFT, CellStyle.BORDER_THIN);\r
-        props.put(CellUtil.BORDER_RIGHT, CellStyle.BORDER_THIN);\r
+        props.put(CellUtil.BORDER_TOP, BorderStyle.THIN);\r
+        props.put(CellUtil.BORDER_BOTTOM, BorderStyle.THIN);\r
+        props.put(CellUtil.BORDER_LEFT, BorderStyle.THIN);\r
+        props.put(CellUtil.BORDER_RIGHT, BorderStyle.THIN);\r
         CellUtil.setCellStyleProperties(c, props);\r
         int styCnt2 = wb.getNumCellStyles();\r
-        assertEquals(styCnt2, styCnt1+1);\r
+        assertEquals(styCnt1+1, styCnt2);\r
 \r
         // Add same border another to same cell, should not create another style\r
         c = r.createCell(1);\r
         CellUtil.setCellStyleProperties(c, props);\r
         int styCnt3 = wb.getNumCellStyles();\r
-        assertEquals(styCnt3, styCnt2);\r
+        assertEquals(styCnt2, styCnt3);\r
 \r
         wb.close();\r
     }\r
diff --git a/test-data/spreadsheet/59264.xls b/test-data/spreadsheet/59264.xls
new file mode 100644 (file)
index 0000000..dcbaf2b
Binary files /dev/null and b/test-data/spreadsheet/59264.xls differ
diff --git a/test-data/spreadsheet/59264.xlsx b/test-data/spreadsheet/59264.xlsx
new file mode 100644 (file)
index 0000000..be0a4d0
Binary files /dev/null and b/test-data/spreadsheet/59264.xlsx differ