package org.apache.poi.xssf.usermodel;\r
\r
import org.apache.poi.ss.usermodel.BorderFormatting;\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
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr;\r
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;\r
\r
/**\r
- * @author Yegor Kozlov\r
+ * XSSF high level representation for Border Formatting component\r
+ * of Conditional Formatting settings\r
*/\r
public class XSSFBorderFormatting implements BorderFormatting {\r
CTBorder _border;\r
\r
- /*package*/ XSSFBorderFormatting(CTBorder border){\r
+ /*package*/ XSSFBorderFormatting(CTBorder border) {\r
_border = border;\r
}\r
\r
- public short getBorderBottom(){\r
+ public short getBorderBottom() {\r
STBorderStyle.Enum ptrn = _border.isSetBottom() ? _border.getBottom().getStyle() : null;\r
return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
}\r
\r
- public short getBorderDiagonal(){\r
+ public short getBorderDiagonal() {\r
STBorderStyle.Enum ptrn = _border.isSetDiagonal() ? _border.getDiagonal().getStyle() : null;\r
return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
}\r
\r
- public short getBorderLeft(){\r
+ public short getBorderLeft() {\r
STBorderStyle.Enum ptrn = _border.isSetLeft() ? _border.getLeft().getStyle() : null;\r
return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
}\r
\r
- public short getBorderRight(){\r
+ public short getBorderRight() {\r
STBorderStyle.Enum ptrn = _border.isSetRight() ? _border.getRight().getStyle() : null;\r
return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
}\r
\r
- public short getBorderTop(){\r
+ public short getBorderTop() {\r
STBorderStyle.Enum ptrn = _border.isSetTop() ? _border.getTop().getStyle() : null;\r
return ptrn == null ? BORDER_NONE : (short)(ptrn.intValue() - 1);\r
}\r
\r
- public short getBottomBorderColor(){\r
- if(!_border.isSetBottom()) return 0;\r
+ public XSSFColor getBottomBorderColorColor() {\r
+ if(!_border.isSetBottom()) return null;\r
\r
CTBorderPr pr = _border.getBottom();\r
- return (short)pr.getColor().getIndexed();\r
+ return new XSSFColor(pr.getColor());\r
+ }\r
+ public short getBottomBorderColor() {\r
+ XSSFColor color = getBottomBorderColorColor();\r
+ if (color == null) return 0;\r
+ return color.getIndexed();\r
}\r
\r
- public short getDiagonalBorderColor(){\r
- if(!_border.isSetDiagonal()) return 0;\r
+ public XSSFColor getDiagonalBorderColorColor() {\r
+ if(!_border.isSetDiagonal()) return null;\r
\r
CTBorderPr pr = _border.getDiagonal();\r
- return (short)pr.getColor().getIndexed();\r
+ return new XSSFColor(pr.getColor());\r
+ }\r
+ public short getDiagonalBorderColor() {\r
+ XSSFColor color = getDiagonalBorderColorColor();\r
+ if (color == null) return 0;\r
+ return color.getIndexed();\r
}\r
\r
- public short getLeftBorderColor(){\r
- if(!_border.isSetLeft()) return 0;\r
+ public XSSFColor getLeftBorderColorColor() {\r
+ if(!_border.isSetLeft()) return null;\r
\r
CTBorderPr pr = _border.getLeft();\r
- return (short)pr.getColor().getIndexed();\r
+ return new XSSFColor(pr.getColor());\r
+ }\r
+ public short getLeftBorderColor() {\r
+ XSSFColor color = getLeftBorderColorColor();\r
+ if (color == null) return 0;\r
+ return color.getIndexed();\r
}\r
\r
- public short getRightBorderColor(){\r
- if(!_border.isSetRight()) return 0;\r
+ public XSSFColor getRightBorderColorColor() {\r
+ if(!_border.isSetRight()) return null;\r
\r
CTBorderPr pr = _border.getRight();\r
- return (short)pr.getColor().getIndexed();\r
+ return new XSSFColor(pr.getColor());\r
+ }\r
+ public short getRightBorderColor() {\r
+ XSSFColor color = getRightBorderColorColor();\r
+ if (color == null) return 0;\r
+ return color.getIndexed();\r
}\r
\r
- public short getTopBorderColor(){\r
- if(!_border.isSetTop()) return 0;\r
+ public XSSFColor getTopBorderColorColor() {\r
+ if(!_border.isSetTop()) return null;\r
\r
CTBorderPr pr = _border.getTop();\r
- return (short)pr.getColor().getIndexed();\r
+ return new XSSFColor(pr.getColor());\r
+ }\r
+ public short getTopBorderColor() {\r
+ XSSFColor color = getRightBorderColorColor();\r
+ if (color == null) return 0;\r
+ return color.getIndexed();\r
}\r
\r
- public void setBorderBottom(short border){\r
+ public void setBorderBottom(short 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
}\r
\r
- public void setBorderDiagonal(short border){\r
+ public void setBorderDiagonal(short 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
}\r
\r
- public void setBorderLeft(short border){\r
+ public void setBorderLeft(short 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
}\r
\r
- public void setBorderRight(short border){\r
+ public void setBorderRight(short 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
}\r
\r
- public void setBorderTop(short border){\r
+ public void setBorderTop(short 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
}\r
\r
- public void setBottomBorderColor(short color){\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
+ public void setBottomBorderColor(short color) {\r
+ CTColor ctColor = CTColor.Factory.newInstance();\r
+ ctColor.setIndexed(color);\r
+ setBottomBorderColor(ctColor);\r
+ }\r
+ public void setBottomBorderColor(CTColor color) {\r
CTBorderPr pr = _border.isSetBottom() ? _border.getBottom() : _border.addNewBottom();\r
+ if (color == null) {\r
+ pr.unsetColor();\r
+ } else {\r
+ pr.setColor(color);\r
+ }\r
+ }\r
\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
+ public void setDiagonalBorderColor(short color) {\r
CTColor ctColor = CTColor.Factory.newInstance();\r
ctColor.setIndexed(color);\r
- pr.setColor(ctColor);\r
+ setDiagonalBorderColor(ctColor);\r
}\r
-\r
- public void setDiagonalBorderColor(short color){\r
+ public void setDiagonalBorderColor(CTColor color) {\r
CTBorderPr pr = _border.isSetDiagonal() ? _border.getDiagonal() : _border.addNewDiagonal();\r
+ if (color == null) {\r
+ pr.unsetColor();\r
+ } else {\r
+ pr.setColor(color);\r
+ }\r
+ }\r
\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
+ public void setLeftBorderColor(short color) {\r
CTColor ctColor = CTColor.Factory.newInstance();\r
ctColor.setIndexed(color);\r
- pr.setColor(ctColor);\r
+ setLeftBorderColor(ctColor);\r
}\r
-\r
- public void setLeftBorderColor(short color){\r
+ public void setLeftBorderColor(CTColor color) {\r
CTBorderPr pr = _border.isSetLeft() ? _border.getLeft() : _border.addNewLeft();\r
+ if (color == null) {\r
+ pr.unsetColor();\r
+ } else {\r
+ pr.setColor(color);\r
+ }\r
+ }\r
\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
+ public void setRightBorderColor(short color) {\r
CTColor ctColor = CTColor.Factory.newInstance();\r
ctColor.setIndexed(color);\r
- pr.setColor(ctColor);\r
+ setRightBorderColor(ctColor);\r
}\r
-\r
- public void setRightBorderColor(short color){\r
+ public void setRightBorderColor(CTColor color) {\r
CTBorderPr pr = _border.isSetRight() ? _border.getRight() : _border.addNewRight();\r
+ if (color == null) {\r
+ pr.unsetColor();\r
+ } else {\r
+ pr.setColor(color);\r
+ }\r
+ }\r
\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
+ public void setTopBorderColor(short color) {\r
CTColor ctColor = CTColor.Factory.newInstance();\r
ctColor.setIndexed(color);\r
- pr.setColor(ctColor);\r
+ setTopBorderColor(ctColor);\r
}\r
-\r
- public void setTopBorderColor(short color){\r
+ public void setTopBorderColor(CTColor color) {\r
CTBorderPr pr = _border.isSetTop() ? _border.getTop() : _border.addNewTop();\r
-\r
- CTColor ctColor = CTColor.Factory.newInstance();\r
- ctColor.setIndexed(color);\r
- pr.setColor(ctColor);\r
+ if (color == null) {\r
+ pr.unsetColor();\r
+ } else {\r
+ pr.setColor(color);\r
+ }\r
}\r
- \r
}\r