From c48a0cf3342dd055a3c0f1a8fc975fa779f56556 Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Sun, 22 Jan 2017 22:01:22 +0000 Subject: [PATCH] #59836 - Tracker: Replace primitives with enums preparation for removing those many HSSFColor subclasses with an enum git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1779866 13f79535-47bb-0310-9956-ffa450edef68 --- .../hssf/usermodel/examples/BigExample.java | 35 +- .../poi/hssf/usermodel/examples/Borders.java | 10 +- .../hssf/usermodel/examples/CellComments.java | 4 +- .../usermodel/examples/FrillsAndFills.java | 6 +- .../hssf/usermodel/examples/Hyperlinks.java | 6 +- .../poi/hssf/view/SVTableCellEditor.java | 55 +- .../apache/poi/hssf/view/SVTableUtils.java | 43 +- .../poi/ss/examples/html/HSSFHtmlHelper.java | 11 +- .../poi/hssf/model/InternalWorkbook.java | 139 +- .../poi/hssf/usermodel/HSSFCellStyle.java | 65 +- .../poi/hssf/usermodel/HSSFPalette.java | 12 +- .../org/apache/poi/hssf/util/HSSFColor.java | 2113 ++++++----------- .../poi/hssf/record/TestCFRuleRecord.java | 98 +- .../poi/hssf/record/TestPaletteRecord.java | 6 +- .../poi/hssf/usermodel/TestHSSFPalette.java | 42 +- .../poi/hssf/util/AllHSSFUtilTests.java | 22 +- .../apache/poi/hssf/util/TestHSSFColor.java | 37 +- 17 files changed, 1054 insertions(+), 1650 deletions(-) diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/BigExample.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/BigExample.java index cf3775200..d108214e6 100644 --- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/BigExample.java +++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/BigExample.java @@ -17,19 +17,22 @@ package org.apache.poi.hssf.usermodel.examples; -import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.hssf.util.HSSFColor; -import org.apache.poi.ss.usermodel.CellStyle; -import org.apache.poi.ss.usermodel.Font; - import java.io.FileOutputStream; import java.io.IOException; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFDataFormat; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.FillPatternType; + /** * Demonstrates many features of the user API at once. Used in the HOW-TO guide. - * - * @author Glen Stampoultzis (glens at apache.org) - * @author Andrew Oliver (acoliver at apache.org) */ public class BigExample { public static void main(String[] args) throws IOException { @@ -56,17 +59,17 @@ public class BigExample { //set font 1 to 12 point type f.setFontHeightInPoints((short) 12); //make it red - f.setColor(HSSFColor.RED.index); + f.setColor(HSSFColorPredefined.RED.getIndex()); // make it bold //arial is the default font - f.setBoldweight(Font.BOLDWEIGHT_BOLD); + f.setBold(true); //set font 2 to 10 point type f2.setFontHeightInPoints((short) 10); //make it the color at palette index 0xf (white) - f2.setColor(HSSFColor.WHITE.index); + f2.setColor(HSSFColorPredefined.WHITE.getIndex()); //make it bold - f2.setBoldweight(Font.BOLDWEIGHT_BOLD); + f2.setBold(true); //set cell stlye cs.setFont(f); @@ -74,11 +77,11 @@ public class BigExample { cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); //set a thin border - cs2.setBorderBottom(CellStyle.BORDER_THIN); + cs2.setBorderBottom(BorderStyle.THIN); //fill w fg fill color - cs2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + cs2.setFillPattern(FillPatternType.SOLID_FOREGROUND); // set foreground fill to red - cs2.setFillForegroundColor(HSSFColor.RED.index); + cs2.setFillForegroundColor(HSSFColorPredefined.RED.getIndex()); // set the font cs2.setFont(f2); @@ -143,7 +146,7 @@ public class BigExample { // define the third style to be the default // except with a thick black border at the bottom - cs3.setBorderBottom(CellStyle.BORDER_THICK); + cs3.setBorderBottom(BorderStyle.THICK); //create 50 cells for (int cellnum =0; cellnum < 50; cellnum++) { diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/Borders.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/Borders.java index 9158b0ccf..8573f1113 100644 --- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/Borders.java +++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/Borders.java @@ -25,7 +25,7 @@ import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; 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.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.BorderStyle; /** @@ -46,13 +46,13 @@ public class Borders { // Style the cell with borders all around. HSSFCellStyle style = wb.createCellStyle(); style.setBorderBottom(BorderStyle.THIN); - style.setBottomBorderColor(HSSFColor.BLACK.index); + style.setBottomBorderColor(HSSFColorPredefined.BLACK.getIndex()); style.setBorderLeft(BorderStyle.THIN); - style.setLeftBorderColor(HSSFColor.GREEN.index); + style.setLeftBorderColor(HSSFColorPredefined.GREEN.getIndex()); style.setBorderRight(BorderStyle.THIN); - style.setRightBorderColor(HSSFColor.BLUE.index); + style.setRightBorderColor(HSSFColorPredefined.BLUE.getIndex()); style.setBorderTop(BorderStyle.MEDIUM_DASHED); - style.setTopBorderColor(HSSFColor.ORANGE.index); + style.setTopBorderColor(HSSFColorPredefined.ORANGE.getIndex()); cell.setCellStyle(style); // Write the output to a file diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/CellComments.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/CellComments.java index 4109a87f4..35df7690a 100644 --- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/CellComments.java +++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/CellComments.java @@ -28,7 +28,7 @@ import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFRichTextString; 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.hssf.util.HSSFColor.HSSFColorPredefined; /** * Demonstrates how to work with excel cell comments. @@ -81,7 +81,7 @@ public class CellComments { font.setFontName("Arial"); font.setFontHeightInPoints((short)10); font.setBold(true); - font.setColor(HSSFColor.RED.index); + font.setColor(HSSFColorPredefined.RED.getIndex()); string.applyFont(font); comment2.setString(string); diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/FrillsAndFills.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/FrillsAndFills.java index 40be15e01..9b05853e4 100644 --- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/FrillsAndFills.java +++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/FrillsAndFills.java @@ -25,7 +25,7 @@ import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; 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.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.FillPatternType; /** @@ -41,7 +41,7 @@ public class FrillsAndFills { // Aqua background HSSFCellStyle style = wb.createCellStyle(); - style.setFillBackgroundColor(HSSFColor.AQUA.index); + style.setFillBackgroundColor(HSSFColorPredefined.AQUA.getIndex()); style.setFillPattern(FillPatternType.BIG_SPOTS); HSSFCell cell = row.createCell(1); cell.setCellValue("X"); @@ -49,7 +49,7 @@ public class FrillsAndFills { // Orange "foreground", foreground being the fill foreground not the font color. style = wb.createCellStyle(); - style.setFillForegroundColor(HSSFColor.ORANGE.index); + style.setFillForegroundColor(HSSFColorPredefined.ORANGE.getIndex()); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); cell = row.createCell(2); cell.setCellValue("X"); diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/Hyperlinks.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/Hyperlinks.java index adad7da36..9a71bcd22 100644 --- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/Hyperlinks.java +++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/Hyperlinks.java @@ -28,13 +28,11 @@ import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFHyperlink; 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.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.Font; /** * Demonstrates how to create hyperlinks. - * - * @author Yegor Kozlov (yegor at apach.org) */ public class Hyperlinks { @@ -47,7 +45,7 @@ public class Hyperlinks { HSSFCellStyle hlink_style = wb.createCellStyle(); HSSFFont hlink_font = wb.createFont(); hlink_font.setUnderline(Font.U_SINGLE); - hlink_font.setColor(HSSFColor.BLUE.index); + hlink_font.setColor(HSSFColorPredefined.BLUE.getIndex()); hlink_style.setFont(hlink_font); HSSFCell cell; diff --git a/src/examples/src/org/apache/poi/hssf/view/SVTableCellEditor.java b/src/examples/src/org/apache/poi/hssf/view/SVTableCellEditor.java index 3c58d5346..9db98d95e 100644 --- a/src/examples/src/org/apache/poi/hssf/view/SVTableCellEditor.java +++ b/src/examples/src/org/apache/poi/hssf/view/SVTableCellEditor.java @@ -18,6 +18,8 @@ package org.apache.poi.hssf.view; +import static org.apache.poi.hssf.view.SVTableUtils.getAWTColor; + import java.awt.Color; import java.awt.Component; import java.awt.Font; @@ -25,7 +27,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.util.EventObject; -import java.util.Map; import javax.swing.AbstractCellEditor; import javax.swing.JTable; @@ -37,7 +38,7 @@ import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.FillPatternType; /** @@ -47,10 +48,8 @@ import org.apache.poi.ss.usermodel.FillPatternType; * @author Jason Height */ public class SVTableCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener { - private static final Color black = getAWTColor(new HSSFColor.BLACK()); - private static final Color white = getAWTColor(new HSSFColor.WHITE()); - private Map colors = HSSFColor.getIndexHash(); - + private static final Color black = getAWTColor(HSSFColorPredefined.BLACK); + private static final Color white = getAWTColor(HSSFColorPredefined.WHITE); private HSSFWorkbook wb; private JTextField editor; @@ -67,7 +66,7 @@ public class SVTableCellEditor extends AbstractCellEditor implements TableCellEd * @return The cellEditable value */ @Override -public boolean isCellEditable(java.util.EventObject e) { + public boolean isCellEditable(java.util.EventObject e) { if (e instanceof MouseEvent) { return ((MouseEvent) e).getClickCount() >= 2; } @@ -76,7 +75,7 @@ public boolean isCellEditable(java.util.EventObject e) { @Override -public boolean shouldSelectCell(EventObject anEvent) { + public boolean shouldSelectCell(EventObject anEvent) { return true; } @@ -88,7 +87,7 @@ public boolean shouldSelectCell(EventObject anEvent) { @Override -public boolean stopCellEditing() { + public boolean stopCellEditing() { System.out.println("Stop Cell Editing"); fireEditingStopped(); return true; @@ -96,14 +95,14 @@ public boolean stopCellEditing() { @Override -public void cancelCellEditing() { + public void cancelCellEditing() { System.out.println("Cancel Cell Editing"); fireEditingCanceled(); } @Override -public void actionPerformed(ActionEvent e) { + public void actionPerformed(ActionEvent e) { System.out.println("Action performed"); stopCellEditing(); } @@ -115,7 +114,7 @@ public void actionPerformed(ActionEvent e) { * @return The cellEditorValue value */ @Override -public Object getCellEditorValue() { + public Object getCellEditorValue() { System.out.println("GetCellEditorValue"); //JMH Look at when this method is called. Should it return a HSSFCell? return editor.getText(); @@ -128,7 +127,7 @@ public Object getCellEditorValue() { * @return The tableCellEditorComponent value */ @Override -public Component getTableCellEditorComponent(JTable table, Object value, + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { @@ -142,18 +141,26 @@ public Component getTableCellEditorComponent(JTable table, Object value, int fontstyle = Font.PLAIN; - if (isbold) fontstyle = Font.BOLD; - if (isitalics) fontstyle = fontstyle | Font.ITALIC; + if (isbold) { + fontstyle = Font.BOLD; + } + if (isitalics) { + fontstyle = fontstyle | Font.ITALIC; + } int fontheight = f.getFontHeightInPoints(); - if (fontheight == 9) fontheight = 10; //fix for stupid ol Windows + if (fontheight == 9) { + fontheight = 10; //fix for stupid ol Windows + } Font font = new Font(f.getFontName(),fontstyle,fontheight); editor.setFont(font); if (style.getFillPatternEnum() == FillPatternType.SOLID_FOREGROUND) { editor.setBackground(getAWTColor(style.getFillForegroundColor(), white)); - } else editor.setBackground(white); + } else { + editor.setBackground(white); + } editor.setForeground(getAWTColor(f.getColor(), black)); @@ -202,18 +209,4 @@ public Component getTableCellEditorComponent(JTable table, Object value, } return editor; } - - /** This method retrieves the AWT Color representation from the colour hash table - * - */ - private final Color getAWTColor(int index, Color deflt) { - HSSFColor clr = colors.get(index); - if (clr == null) return deflt; - return getAWTColor(clr); - } - - private static final Color getAWTColor(HSSFColor clr) { - short[] rgb = clr.getTriplet(); - return new Color(rgb[0],rgb[1],rgb[2]); - } } diff --git a/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java b/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java index 395f1cdb8..4ec32944d 100644 --- a/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java +++ b/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java @@ -18,12 +18,16 @@ package org.apache.poi.hssf.view; -import java.util.*; -import java.awt.*; -import javax.swing.border.*; +import java.awt.Color; +import java.awt.Font; +import java.util.Map; -import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.hssf.util.*; +import javax.swing.border.Border; +import javax.swing.border.EmptyBorder; + +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; /** * SVTableCell Editor and Renderer helper functions. @@ -33,9 +37,9 @@ import org.apache.poi.hssf.util.*; public class SVTableUtils { private final static Map colors = HSSFColor.getIndexHash(); /** Description of the Field */ - public final static Color black = getAWTColor(new HSSFColor.BLACK()); + public final static Color black = getAWTColor(HSSFColorPredefined.BLACK); /** Description of the Field */ - public final static Color white = getAWTColor(new HSSFColor.WHITE()); + public final static Color white = getAWTColor(HSSFColorPredefined.WHITE); /** Description of the Field */ public static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); @@ -44,7 +48,7 @@ public class SVTableUtils { * Creates a new font for a specific cell style */ public static Font makeFont(HSSFFont font) { - boolean isbold = font.getBoldweight() > HSSFFont.BOLDWEIGHT_NORMAL; + boolean isbold = font.getBold(); boolean isitalics = font.getItalic(); int fontstyle = Font.PLAIN; if (isbold) { @@ -63,31 +67,20 @@ public class SVTableUtils { return new Font(font.getFontName(), fontstyle, fontheight); } - - /** - * This method retrieves the AWT Color representation from the colour hash table + /** This method retrieves the AWT Color representation from the colour hash table * - * @param index Description of the Parameter - * @param deflt Description of the Parameter - * @return The aWTColor value */ - public final static Color getAWTColor(int index, Color deflt) { + /* package */ static final Color getAWTColor(int index, Color deflt) { HSSFColor clr = colors.get(index); if (clr == null) { return deflt; } - return getAWTColor(clr); + short[] rgb = clr.getTriplet(); + return new Color(rgb[0],rgb[1],rgb[2]); } - - /** - * Gets the aWTColor attribute of the SVTableUtils class - * - * @param clr Description of the Parameter - * @return The aWTColor value - */ - public final static Color getAWTColor(HSSFColor clr) { + /* package */ static final Color getAWTColor(HSSFColorPredefined clr) { short[] rgb = clr.getTriplet(); - return new Color(rgb[0], rgb[1], rgb[2]); + return new Color(rgb[0],rgb[1],rgb[2]); } } diff --git a/src/examples/src/org/apache/poi/ss/examples/html/HSSFHtmlHelper.java b/src/examples/src/org/apache/poi/ss/examples/html/HSSFHtmlHelper.java index 677a38ab7..9955eb30f 100644 --- a/src/examples/src/org/apache/poi/ss/examples/html/HSSFHtmlHelper.java +++ b/src/examples/src/org/apache/poi/ss/examples/html/HSSFHtmlHelper.java @@ -16,24 +16,23 @@ ==================================================================== */ package org.apache.poi.ss.examples.html; +import java.util.Formatter; + import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFPalette; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.CellStyle; -import java.util.Formatter; - /** * Implementation of {@link HtmlHelper} for HSSF files. - * - * @author Ken Arnold, Industrious Media LLC */ public class HSSFHtmlHelper implements HtmlHelper { private final HSSFWorkbook wb; private final HSSFPalette colors; - private static final HSSFColor HSSF_AUTO = new HSSFColor.AUTOMATIC(); + private static final HSSFColor HSSF_AUTO = HSSFColorPredefined.AUTOMATIC.getColor(); public HSSFHtmlHelper(HSSFWorkbook wb) { this.wb = wb; @@ -45,7 +44,7 @@ public class HSSFHtmlHelper implements HtmlHelper { @Override public void colorStyles(CellStyle style, Formatter out) { HSSFCellStyle cs = (HSSFCellStyle) style; - out.format(" /* fill pattern = %d */%n", cs.getFillPattern()); + out.format(" /* fill pattern = %d */%n", cs.getFillPatternEnum().getCode()); styleColor(out, "background-color", cs.getFillForegroundColor()); styleColor(out, "color", cs.getFont(wb).getColor()); styleColor(out, "border-left-color", cs.getLeftBorderColor()); diff --git a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java index 063830d32..976c888ce 100644 --- a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java +++ b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java @@ -88,7 +88,7 @@ import org.apache.poi.hssf.record.WriteAccessRecord; import org.apache.poi.hssf.record.WriteProtectRecord; import org.apache.poi.hssf.record.common.UnicodeString; import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey; -import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.poifs.crypt.CryptoFunctions; import org.apache.poi.poifs.crypt.Decryptor; import org.apache.poi.poifs.crypt.EncryptionInfo; @@ -231,9 +231,10 @@ public final class InternalWorkbook { * @return Workbook object */ public static InternalWorkbook createWorkbook(List recs) { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "Workbook (readfile) created with reclen=", Integer.valueOf(recs.size())); + } InternalWorkbook retval = new InternalWorkbook(); List records = new ArrayList(recs.size() / 3); retval.records.setRecords(records); @@ -244,54 +245,62 @@ public final class InternalWorkbook { if (rec.getSid() == EOFRecord.sid) { records.add(rec); - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found workbook eof record at " + k); + } break; } switch (rec.getSid()) { case BoundSheetRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found boundsheet record at " + k); + } retval.boundsheets.add((BoundSheetRecord) rec); retval.records.setBspos( k ); break; case SSTRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found sst record at " + k); + } retval.sst = ( SSTRecord ) rec; break; case FontRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found font record at " + k); + } retval.records.setFontpos( k ); retval.numfonts++; break; case ExtendedFormatRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found XF record at " + k); + } retval.records.setXfpos( k ); retval.numxfs++; break; case TabIdRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found tabid record at " + k); + } retval.records.setTabpos( k ); break; case ProtectRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found protect record at " + k); + } retval.records.setProtpos( k ); break; case BackupRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found backup record at " + k); + } retval.records.setBackuppos( k ); break; case ExternSheetRecord.sid : @@ -299,57 +308,67 @@ public final class InternalWorkbook { case NameRecord.sid : case SupBookRecord.sid : // LinkTable can start with either of these - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found SupBook record at " + k); + } retval.linkTable = new LinkTable(recs, k, retval.records, retval.commentRecords); k+=retval.linkTable.getRecordCount() - 1; continue; case FormatRecord.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found format record at " + k); + } retval.formats.add((FormatRecord) rec); retval.maxformatid = retval.maxformatid >= ((FormatRecord)rec).getIndexCode() ? retval.maxformatid : ((FormatRecord)rec).getIndexCode(); break; case DateWindow1904Record.sid : - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found datewindow1904 record at " + k); + } retval.uses1904datewindowing = ((DateWindow1904Record)rec).getWindowing() == 1; break; case PaletteRecord.sid: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found palette record at " + k); + } retval.records.setPalettepos( k ); break; case WindowOneRecord.sid: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found WindowOneRecord at " + k); + } retval.windowOne = (WindowOneRecord) rec; break; case WriteAccessRecord.sid: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found WriteAccess at " + k); + } retval.writeAccess = (WriteAccessRecord) rec; break; case WriteProtectRecord.sid: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found WriteProtect at " + k); + } retval.writeProtect = (WriteProtectRecord) rec; break; case FileSharingRecord.sid: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found FileSharing at " + k); + } retval.fileShare = (FileSharingRecord) rec; break; case NameCommentRecord.sid: final NameCommentRecord ncr = (NameCommentRecord) rec; - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "found NameComment at " + k); + } retval.commentRecords.put(ncr.getNameText(), ncr); break; default: - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "ignoring record (sid=" + rec.getSid() + ") at " + k); + } break; } records.add(rec); @@ -376,8 +395,9 @@ public final class InternalWorkbook { if (retval.windowOne == null) { retval.windowOne = createWindowOne(); } - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "exit create workbook from existing file function"); + } return retval; } @@ -389,8 +409,9 @@ public final class InternalWorkbook { */ public static InternalWorkbook createWorkbook() { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log( DEBUG, "creating new workbook from scratch" ); + } InternalWorkbook retval = new InternalWorkbook(); List records = new ArrayList( 30 ); retval.records.setRecords(records); @@ -463,8 +484,9 @@ public final class InternalWorkbook { records.add(InternalWorkbook.createExtendedSST()); records.add(EOFRecord.instance); - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log( DEBUG, "exit create new workbook from scratch" ); + } return retval; } @@ -592,9 +614,10 @@ public final class InternalWorkbook { */ public void setSheetBof(int sheetIndex, int pos) { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "setting bof for sheetnum =", Integer.valueOf(sheetIndex), " at pos=", Integer.valueOf(pos)); + } checkSheets(sheetIndex); getBoundSheetRec(sheetIndex) .setPositionOfBof(pos); @@ -626,7 +649,9 @@ public final class InternalWorkbook { checkSheets(sheetnum); // YK: Mimic Excel and silently truncate sheet names longer than 31 characters - if(sheetname.length() > 31) sheetname = sheetname.substring(0, 31); + if(sheetname.length() > 31) { + sheetname = sheetname.substring(0, 31); + } BoundSheetRecord sheet = boundsheets.get(sheetnum); sheet.setSheetname(sheetname); @@ -868,8 +893,9 @@ public final class InternalWorkbook { */ public int getNumSheets() { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "getNumSheets=", Integer.valueOf(boundsheets.size())); + } return boundsheets.size(); } @@ -880,8 +906,9 @@ public final class InternalWorkbook { */ public int getNumExFormats() { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "getXF=", Integer.valueOf(numxfs)); + } return numxfs; } @@ -1019,8 +1046,9 @@ public final class InternalWorkbook { */ public int addSSTString(UnicodeString string) { - if (log.check( POILogger.DEBUG )) - log.log(DEBUG, "insert to sst string='", string); + if (log.check( POILogger.DEBUG )) { + log.log(DEBUG, "insert to sst string='", string); + } if (sst == null) { insertSST(); } @@ -1038,9 +1066,10 @@ public final class InternalWorkbook { } UnicodeString retval = sst.getString(str); - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "Returning SST for index=", Integer.valueOf(str), " String= ", retval); + } return retval; } @@ -1052,8 +1081,9 @@ public final class InternalWorkbook { */ public void insertSST() { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log(DEBUG, "creating new SST via insertSST!"); + } sst = new SSTRecord(); records.add(records.size() - 1, createExtendedSST()); records.add(records.size() - 2, sst); @@ -1096,8 +1126,9 @@ public final class InternalWorkbook { */ public int serialize( int offset, byte[] data ) { - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log( DEBUG, "Serializing Workbook with offsets" ); + } int pos = 0; @@ -1133,8 +1164,9 @@ public final class InternalWorkbook { ///// DEBUG END ///// pos += len; // rec.length; } - if (log.check( POILogger.DEBUG )) + if (log.check( POILogger.DEBUG )) { log.log( DEBUG, "Exiting serialize workbook" ); + } return pos; } @@ -1207,13 +1239,15 @@ public final class InternalWorkbook { for ( int k = 0; k < records.size(); k++ ) { Record record = records.get( k ); - if (record instanceof SSTRecord) + if (record instanceof SSTRecord) { sst = (SSTRecord)record; + } - if (record.getSid() == ExtSSTRecord.sid && sst != null) + if (record.getSid() == ExtSSTRecord.sid && sst != null) { retval += sst.calcExtSSTRecordSize(); - else + } else { retval += record.getRecordSize(); + } } return retval; @@ -1250,7 +1284,9 @@ public final class InternalWorkbook { try { String username = System.getProperty("user.name"); // Google App engine returns null for user.name, see Bug 53974 - if(username == null) username = defaultUserName; + if(username == null) { + username = defaultUserName; + } retval.setUsername(username); } catch (AccessControlException e) { @@ -1799,10 +1835,10 @@ public final class InternalWorkbook { retval.setPaletteOptions(( short ) 0); retval.setAdtlPaletteOptions(( short ) 0); retval.setFillPaletteOptions(( short ) 0x20c0); - retval.setTopBorderPaletteIdx(HSSFColor.BLACK.index); - retval.setBottomBorderPaletteIdx(HSSFColor.BLACK.index); - retval.setLeftBorderPaletteIdx(HSSFColor.BLACK.index); - retval.setRightBorderPaletteIdx(HSSFColor.BLACK.index); + retval.setTopBorderPaletteIdx(HSSFColorPredefined.BLACK.getIndex()); + retval.setBottomBorderPaletteIdx(HSSFColorPredefined.BLACK.getIndex()); + retval.setLeftBorderPaletteIdx(HSSFColorPredefined.BLACK.getIndex()); + retval.setRightBorderPaletteIdx(HSSFColorPredefined.BLACK.getIndex()); return retval; } @@ -2172,8 +2208,9 @@ public final class InternalWorkbook { FormatRecord rec = new FormatRecord(maxformatid, formatString); int pos = 0; - while ( pos < records.size() && records.get( pos ).getSid() != FormatRecord.sid ) + while ( pos < records.size() && records.get( pos ).getSid() != FormatRecord.sid ) { pos++; + } pos += formats.size(); formats.add( rec ); records.add( pos, rec ); @@ -2226,8 +2263,9 @@ public final class InternalWorkbook { int matches = 0; for (Record record : records) { if (record.getSid() == sid) { - if (matches++ == pos) + if (matches++ == pos) { return record; + } } } return null; @@ -2266,7 +2304,9 @@ public final class InternalWorkbook { Record rec = records.get(palettePos); if (rec instanceof PaletteRecord) { palette = (PaletteRecord) rec; - } else throw new RuntimeException("InternalError: Expected PaletteRecord but got a '"+rec+"'"); + } else { + throw new RuntimeException("InternalError: Expected PaletteRecord but got a '"+rec+"'"); + } } else { @@ -2316,7 +2356,9 @@ public final class InternalWorkbook { drawingManager = new DrawingManager2(dgg); if(bStore != null){ for(EscherRecord bs : bStore.getChildRecords()){ - if(bs instanceof EscherBSERecord) escherBSERecords.add((EscherBSERecord)bs); + if(bs instanceof EscherBSERecord) { + escherBSERecords.add((EscherBSERecord)bs); + } } } return drawingManager; @@ -2344,7 +2386,9 @@ public final class InternalWorkbook { drawingManager = new DrawingManager2(dgg); if(bStore != null){ for(EscherRecord bs : bStore.getChildRecords()){ - if(bs instanceof EscherBSERecord) escherBSERecords.add((EscherBSERecord)bs); + if(bs instanceof EscherBSERecord) { + escherBSERecords.add((EscherBSERecord)bs); + } } } } @@ -2395,8 +2439,9 @@ public final class InternalWorkbook { splitMenuColors.setColor4(0x100000F7); dggContainer.addChildRecord(dgg); - if (bstoreContainer != null) + if (bstoreContainer != null) { dggContainer.addChildRecord( bstoreContainer ); + } dggContainer.addChildRecord(opt); dggContainer.addChildRecord(splitMenuColors); diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java b/src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java index 542ee2210..e6f5b91d5 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java @@ -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.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; @@ -112,6 +113,7 @@ public final class HSSFCellStyle implements CellStyle { // avoid multi-threading issues when different workbooks are accessed in // multiple threads at the same time private static final ThreadLocal lastDateFormat = new ThreadLocal() { + @Override protected Short initialValue() { return Short.MIN_VALUE; } @@ -273,6 +275,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #ALIGN_CENTER_SELECTION * @deprecated POI 3.15 beta 3. Use {@link #setAlignment(HorizontalAlignment)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setAlignment(short align) @@ -303,6 +306,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #ALIGN_CENTER_SELECTION * @deprecated POI 3.15 beta 3. Use {@link #getAlignmentEnum()} instead. */ + @Deprecated @Override public short getAlignment() { @@ -349,6 +353,7 @@ public final class HSSFCellStyle implements CellStyle { * @see VerticalAlignment * @deprecated POI 3.15 beta 3. Use {@link #setVerticalAlignment(VerticalAlignment)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setVerticalAlignment(short align) @@ -375,6 +380,7 @@ public final class HSSFCellStyle implements CellStyle { * @see VerticalAlignment * @deprecated POI 3.15 beta 3. Use {@link #getVerticalAlignmentEnum()} instead. */ + @Deprecated @Override public short getVerticalAlignment() { @@ -480,6 +486,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #BORDER_SLANTED_DASH_DOT * @deprecated 3.15 beta 2. Use {@link HSSFCellStyle#setBorderLeft(BorderStyle)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setBorderLeft(short border) @@ -504,6 +511,7 @@ public final class HSSFCellStyle implements CellStyle { * @return border type * @deprecated POI 3.15. Will return a BorderStyle enum in the future. Use {@link #getBorderLeftEnum()}. */ + @Deprecated @Override public short getBorderLeft() { @@ -539,6 +547,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #BORDER_SLANTED_DASH_DOT * @deprecated 3.15 beta 2. Use {@link HSSFCellStyle#setBorderRight(BorderStyle)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setBorderRight(short border) @@ -563,6 +572,7 @@ public final class HSSFCellStyle implements CellStyle { * @return border type * @deprecated POI 3.15. Will return a BorderStyle enum in the future. Use {@link #getBorderRightEnum()}. */ + @Deprecated @Override public short getBorderRight() { @@ -598,6 +608,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #BORDER_SLANTED_DASH_DOT * @deprecated 3.15 beta 2. Use {@link HSSFCellStyle#setBorderTop(BorderStyle)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setBorderTop(short border) @@ -622,6 +633,7 @@ public final class HSSFCellStyle implements CellStyle { * @return border type * @deprecated POI 3.15. Will return a BorderStyle enum in the future. Use {@link #getBorderTopEnum()}. */ + @Deprecated @Override public short getBorderTop() { @@ -657,6 +669,7 @@ public final class HSSFCellStyle implements CellStyle { * @see #BORDER_SLANTED_DASH_DOT * @deprecated 3.15 beta 2. Use {@link HSSFCellStyle#setBorderBottom(BorderStyle)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setBorderBottom(short border) @@ -681,6 +694,7 @@ public final class HSSFCellStyle implements CellStyle { * @return border type * @deprecated POI 3.15. Will return a BorderStyle enum in the future. Use {@link #getBorderBottomEnum()}. */ + @Deprecated @Override public short getBorderBottom() { @@ -806,6 +820,7 @@ public final class HSSFCellStyle implements CellStyle { * @param fp fill pattern (set to 1 to fill w/foreground color) * @deprecated POI 3.15 beta 3. Use {@link #setFillPattern(FillPatternType)} instead. */ + @Deprecated @Removal(version="3.17") @Override public void setFillPattern(short fp) @@ -830,6 +845,7 @@ public final class HSSFCellStyle implements CellStyle { * @return fill pattern * @deprecated POI 3.15 beta 3. This method will return {@link FillPatternType} in the future. Use {@link #setFillPattern(FillPatternType)} instead. */ + @Deprecated @Override public short getFillPattern() { @@ -857,16 +873,20 @@ public final class HSSFCellStyle implements CellStyle { *

0x40 0xSOMETHING

*/ private void checkDefaultBackgroundFills() { - if (_format.getFillForeground() == org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index) { - //JMH: Why +1, hell why not. I guess it made some sense to someone at the time. Doesnt - //to me now.... But experience has shown that when the fore is set to AUTOMATIC then the - //background needs to be incremented...... - if (_format.getFillBackground() != (org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index+1)) - setFillBackgroundColor((short)(org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index+1)); - } else if (_format.getFillBackground() == org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index+1) - //Now if the forground changes to a non-AUTOMATIC color the background resets itself!!! - if (_format.getFillForeground() != org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index) - setFillBackgroundColor(org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index); + final short autoIdx = HSSFColorPredefined.AUTOMATIC.getIndex(); + if (_format.getFillForeground() == autoIdx) { + //JMH: Why +1, hell why not. I guess it made some sense to someone at the time. Doesnt + //to me now.... But experience has shown that when the fore is set to AUTOMATIC then the + //background needs to be incremented...... + if (_format.getFillBackground() != autoIdx+1) { + setFillBackgroundColor((short)(autoIdx+1)); + } + } else if (_format.getFillBackground() == autoIdx+1) { + //Now if the forground changes to a non-AUTOMATIC color the background resets itself!!! + if (_format.getFillForeground() != autoIdx) { + setFillBackgroundColor(autoIdx); + } + } } /** @@ -909,13 +929,13 @@ public final class HSSFCellStyle implements CellStyle { * @return fill color */ @Override - public short getFillBackgroundColor() - { + public short getFillBackgroundColor() { + final short autoIndex = HSSFColorPredefined.AUTOMATIC.getIndex(); short result = _format.getFillBackground(); //JMH: Do this ridiculous conversion, and let HSSFCellStyle //internally migrate back and forth - if (result == (HSSFColor.AUTOMATIC.index+1)) { - return HSSFColor.AUTOMATIC.index; + if (result == autoIndex+1) { + return autoIndex; } return result; } @@ -1117,17 +1137,24 @@ public final class HSSFCellStyle implements CellStyle { @Override public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } if (obj instanceof HSSFCellStyle) { final HSSFCellStyle other = (HSSFCellStyle) obj; if (_format == null) { - if (other._format != null) + if (other._format != null) { return false; - } else if (!_format.equals(other._format)) + } + } else if (!_format.equals(other._format)) { return false; - if (_index != other._index) + } + if (_index != other._index) { return false; + } return true; } return false; diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFPalette.java b/src/java/org/apache/poi/hssf/usermodel/HSSFPalette.java index 0d754da67..7aeabe92c 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFPalette.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFPalette.java @@ -21,6 +21,7 @@ import java.util.Locale; import org.apache.poi.hssf.record.PaletteRecord; import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; /** * Represents a workbook color palette. @@ -45,16 +46,13 @@ public final class HSSFPalette { public HSSFColor getColor(short index) { //Handle the special AUTOMATIC case - if (index == HSSFColor.AUTOMATIC.index) { - return HSSFColor.AUTOMATIC.getInstance(); + if (index == HSSFColorPredefined.AUTOMATIC.getIndex()) { + return HSSFColorPredefined.AUTOMATIC.getColor(); } byte[] b = _palette.getColor(index); - if (b != null) - { - return new CustomColor(index, b); - } - return null; + return (b == null) ? null : new CustomColor(index, b); } + /** * Retrieves the color at a given index * diff --git a/src/java/org/apache/poi/hssf/util/HSSFColor.java b/src/java/org/apache/poi/hssf/util/HSSFColor.java index 55ff46bf1..129066fa1 100644 --- a/src/java/org/apache/poi/hssf/util/HSSFColor.java +++ b/src/java/org/apache/poi/hssf/util/HSSFColor.java @@ -17,12 +17,14 @@ package org.apache.poi.hssf.util; -import java.lang.reflect.Field; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import org.apache.poi.ss.usermodel.Color; +import org.apache.poi.util.Removal; /** @@ -32,15 +34,132 @@ import org.apache.poi.ss.usermodel.Color; * Each color has an index (for the standard palette in Excel (tm) ), * native (RGB) triplet and string triplet. The string triplet is as the * color would be represented by Gnumeric. Having (string) this here is a bit of a - * collusion of function between HSSF and the HSSFSerializer but I think its + * collision of function between HSSF and the HSSFSerializer but I think its * a reasonable one in this case. */ public class HSSFColor implements Color { - private static Map indexHash; + + private static Map indexHash; + private static Map enumList; + + private java.awt.Color color; + private int index; + private int index2; + + /** + * Predefined HSSFColors with their given palette index (and an optional 2nd index) + * + * @since POI 3.16 beta 2 + */ + public enum HSSFColorPredefined { + BLACK (0x08, -1, 0x000000), + BROWN (0x3C, -1, 0x993300), + OLIVE_GREEN (0x3B, -1, 0x333300), + DARK_GREEN (0x3A, -1, 0x003300), + DARK_TEAL (0x38, -1, 0x003366), + DARK_BLUE (0x12, 0x20, 0x000080), + INDIGO (0x3E, -1, 0x333399), + GREY_80_PERCENT (0x3F, -1, 0x333333), + ORANGE (0x35, -1, 0xFF6600), + DARK_YELLOW (0x13, -1, 0x808000), + GREEN (0x11, -1, 0x008000), + TEAL (0x15, 0x26, 0x008080), + BLUE (0x0C, 0x27, 0x0000FF), + BLUE_GREY (0x36, -1, 0x666699), + GREY_50_PERCENT (0x17, -1, 0x808080), + RED (0x0A, -1, 0xFF0000), + LIGHT_ORANGE (0x34, -1, 0xFF9900), + LIME (0x32, -1, 0x99CC00), + SEA_GREEN (0x39, -1, 0x339966), + AQUA (0x31, -1, 0x33CCCC), + LIGHT_BLUE (0x30, -1, 0x3366FF), + VIOLET (0x14, 0x24, 0x800080), + GREY_40_PERCENT (0x37, -1, 0x969696), + PINK (0x0E, 0x21, 0xFF00FF), + GOLD (0x33, -1, 0xFFCC00), + YELLOW (0x0D, 0x22, 0xFFFF00), + BRIGHT_GREEN (0x0B, -1, 0x00FF00), + TURQUOISE (0x0F, 0x23, 0x00FFFF), + DARK_RED (0x10, 0x25, 0x800000), + SKY_BLUE (0x28, -1, 0x00CCFF), + PLUM (0x3D, 0x19, 0x993366), + GREY_25_PERCENT (0x16, -1, 0xC0C0C0), + ROSE (0x2D, -1, 0xFF99CC), + LIGHT_YELLOW (0x2B, -1, 0xFFFF99), + LIGHT_GREEN (0x2A, -1, 0xCCFFCC), + LIGHT_TURQUOISE (0x29, 0x1B, 0xCCFFFF), + PALE_BLUE (0x2C, -1, 0x99CCFF), + LAVENDER (0x2E, -1, 0xCC99FF), + WHITE (0x09, -1, 0xFFFFFF), + CORNFLOWER_BLUE (0x18, -1, 0x9999FF), + LEMON_CHIFFON (0x1A, -1, 0xFFFFCC), + MAROON (0x19, -1, 0x7F0000), + ORCHID (0x1C, -1, 0x660066), + CORAL (0x1D, -1, 0xFF8080), + ROYAL_BLUE (0x1E, -1, 0x0066CC), + LIGHT_CORNFLOWER_BLUE(0x1F, -1, 0xCCCCFF), + TAN (0x2F, -1, 0xFFCC99), + + /** + * Special Default/Normal/Automatic color.

+ * Note: This class is NOT in the default Map returned by HSSFColor. + * The index is a special case which is interpreted in the various setXXXColor calls. + */ + AUTOMATIC (0x40, -1, 0x000000); + + private HSSFColor color; + + HSSFColorPredefined(int index, int index2, int rgb) { + this.color = new HSSFColor(index, index2, new java.awt.Color(rgb)); + } + + /** + * @see HSSFColor#getIndex() + */ + public short getIndex() { + return color.getIndex(); + } + + /** + * @see HSSFColor#getIndex2() + */ + public short getIndex2() { + return color.getIndex2(); + } + + /** + * @see HSSFColor#getTriplet() + */ + public short [] getTriplet() { + return color.getTriplet(); + } + + /** + * @see HSSFColor#getHexString() + */ + public String getHexString() { + return color.getHexString(); + } + + /** + * @return (a copy of) the HSSFColor assigned to the enum + */ + public HSSFColor getColor() { + return new HSSFColor(getIndex(), getIndex2(), color.color); + } + } + /** Creates a new instance of HSSFColor */ - public HSSFColor() - { + public HSSFColor() { + // automatic index + this(0x40, -1, java.awt.Color.BLACK); + } + + public HSSFColor(int index, int index2, java.awt.Color color) { + this.index = index; + this.index2 = index2; + this.color = color; } /** @@ -49,7 +168,7 @@ public class HSSFColor implements Color { * * @return a Map containing all colours keyed by Integer excel-style palette indexes */ - public final static Map getIndexHash() { + public static final synchronized Map getIndexHash() { if(indexHash == null) { indexHash = Collections.unmodifiableMap( createColorsByIndexMap() ); } @@ -62,85 +181,27 @@ public class HSSFColor implements Color { * the table, then call {@link #getIndexHash()} which returns a * statically cached imuatable map of colours. */ - public final static Map getMutableIndexHash() { + public static final Map getMutableIndexHash() { return createColorsByIndexMap(); } private static Map createColorsByIndexMap() { - HSSFColor[] colors = getAllColors(); - Map result = new HashMap(colors.length * 3 / 2); + Map eList = mapEnumToColorClass(); + Map result = new HashMap(eList.size() * 3 / 2); - for (int i = 0; i < colors.length; i++) { - HSSFColor color = colors[i]; - - Integer index1 = Integer.valueOf(color.getIndex()); - if (result.containsKey(index1)) { - HSSFColor prevColor = result.get(index1); - throw new RuntimeException("Dup color index (" + index1 - + ") for colors (" + prevColor.getClass().getName() - + "),(" + color.getClass().getName() + ")"); + for (Map.Entry colorRef : eList.entrySet()) { + Integer index1 = (int)colorRef.getKey().getIndex(); + if (!result.containsKey(index1)) { + result.put(index1, colorRef.getValue()); } - result.put(index1, color); - } - - for (int i = 0; i < colors.length; i++) { - HSSFColor color = colors[i]; - Integer index2 = getIndex2(color); - if (index2 == null) { - // most colors don't have a second index - continue; + Integer index2 = (int)colorRef.getKey().getIndex2(); + if (index2 != -1 && !result.containsKey(index2)) { + result.put(index2, colorRef.getValue()); } -// if (result.containsKey(index2)) { -// if (false) { // Many of the second indexes clash -// HSSFColor prevColor = (HSSFColor)result.get(index2); -// throw new RuntimeException("Dup color index (" + index2 -// + ") for colors (" + prevColor.getClass().getName() -// + "),(" + color.getClass().getName() + ")"); -// } -// } - result.put(index2, color); } return result; } - private static Integer getIndex2(HSSFColor color) { - - Field f; - try { - f = color.getClass().getDeclaredField("index2"); - } catch (NoSuchFieldException e) { - // can happen because not all colors have a second index - return null; - } - - Short s; - try { - s = (Short) f.get(color); - } catch (IllegalArgumentException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - return Integer.valueOf(s.intValue()); - } - - private static HSSFColor[] getAllColors() { - - return new HSSFColor[] { - new BLACK(), new BROWN(), new OLIVE_GREEN(), new DARK_GREEN(), - new DARK_TEAL(), new DARK_BLUE(), new INDIGO(), new GREY_80_PERCENT(), - new ORANGE(), new DARK_YELLOW(), new GREEN(), new TEAL(), new BLUE(), - new BLUE_GREY(), new GREY_50_PERCENT(), new RED(), new LIGHT_ORANGE(), new LIME(), - new SEA_GREEN(), new AQUA(), new LIGHT_BLUE(), new VIOLET(), new GREY_40_PERCENT(), - new PINK(), new GOLD(), new YELLOW(), new BRIGHT_GREEN(), new TURQUOISE(), - new DARK_RED(), new SKY_BLUE(), new PLUM(), new GREY_25_PERCENT(), new ROSE(), - new LIGHT_YELLOW(), new LIGHT_GREEN(), new LIGHT_TURQUOISE(), new PALE_BLUE(), - new LAVENDER(), new WHITE(), new CORNFLOWER_BLUE(), new LEMON_CHIFFON(), - new MAROON(), new ORCHID(), new CORAL(), new ROYAL_BLUE(), - new LIGHT_CORNFLOWER_BLUE(), new TAN(), - }; - } - /** * this function returns all colors in a hastable. Its not implemented as a * static member/staticly initialized because that would be dirty in a @@ -156,35 +217,97 @@ public class HSSFColor implements Color { } private static Map createColorsByHexStringMap() { - HSSFColor[] colors = getAllColors(); - Map result = new HashMap(colors.length * 3 / 2); + Map eList = mapEnumToColorClass(); + Map result = new HashMap(eList.size()); - for (int i = 0; i < colors.length; i++) { - HSSFColor color = colors[i]; - - String hexString = color.getHexString(); - if (result.containsKey(hexString)) { - HSSFColor other = result.get(hexString); - throw new RuntimeException( - "Dup color hexString (" + hexString - + ") for color (" + color.getClass().getName() + ") - " - + " already taken by (" + other.getClass().getName() + ")" - ); + for (Map.Entry colorRef : eList.entrySet()) { + String hexString = colorRef.getKey().getHexString(); + if (!result.containsKey(hexString)) { + result.put(hexString, colorRef.getValue()); } - result.put(hexString, color); } return result; } /** - * returns color standard palette index (0x08) + * Maps the Enums to the HSSFColor subclasses, in cases of user code evaluating the classname + * + * @deprecated in 3.16 - remove mapping when subclasses are removed and access + * HSSFColorPredfined.values() directly (but exclude AUTOMATIC) + */ + @Deprecated + @Removal(version="3.18") + private static synchronized Map mapEnumToColorClass() { + if (enumList == null) { + enumList = new EnumMap(HSSFColorPredefined.class); + // AUTOMATIC is not add to list + enumList.put(HSSFColorPredefined.BLACK, new BLACK()); + enumList.put(HSSFColorPredefined.BROWN, new BROWN()); + enumList.put(HSSFColorPredefined.OLIVE_GREEN, new OLIVE_GREEN()); + enumList.put(HSSFColorPredefined.DARK_GREEN, new DARK_GREEN()); + enumList.put(HSSFColorPredefined.DARK_TEAL, new DARK_TEAL()); + enumList.put(HSSFColorPredefined.DARK_BLUE, new DARK_BLUE()); + enumList.put(HSSFColorPredefined.INDIGO, new INDIGO()); + enumList.put(HSSFColorPredefined.GREY_80_PERCENT, new GREY_80_PERCENT()); + enumList.put(HSSFColorPredefined.ORANGE, new ORANGE()); + enumList.put(HSSFColorPredefined.DARK_YELLOW, new DARK_YELLOW()); + enumList.put(HSSFColorPredefined.GREEN, new GREEN()); + enumList.put(HSSFColorPredefined.TEAL, new TEAL()); + enumList.put(HSSFColorPredefined.BLUE, new BLUE()); + enumList.put(HSSFColorPredefined.BLUE_GREY, new BLUE_GREY()); + enumList.put(HSSFColorPredefined.GREY_50_PERCENT, new GREY_50_PERCENT()); + enumList.put(HSSFColorPredefined.RED, new RED()); + enumList.put(HSSFColorPredefined.LIGHT_ORANGE, new LIGHT_ORANGE()); + enumList.put(HSSFColorPredefined.LIME, new LIME()); + enumList.put(HSSFColorPredefined.SEA_GREEN, new SEA_GREEN()); + enumList.put(HSSFColorPredefined.AQUA, new AQUA()); + enumList.put(HSSFColorPredefined.LIGHT_BLUE, new LIGHT_BLUE()); + enumList.put(HSSFColorPredefined.VIOLET, new VIOLET()); + enumList.put(HSSFColorPredefined.GREY_40_PERCENT, new GREY_40_PERCENT()); + enumList.put(HSSFColorPredefined.PINK, new PINK()); + enumList.put(HSSFColorPredefined.GOLD, new GOLD()); + enumList.put(HSSFColorPredefined.YELLOW, new YELLOW()); + enumList.put(HSSFColorPredefined.BRIGHT_GREEN, new BRIGHT_GREEN()); + enumList.put(HSSFColorPredefined.TURQUOISE, new TURQUOISE()); + enumList.put(HSSFColorPredefined.DARK_RED, new DARK_RED()); + enumList.put(HSSFColorPredefined.SKY_BLUE, new SKY_BLUE()); + enumList.put(HSSFColorPredefined.PLUM, new PLUM()); + enumList.put(HSSFColorPredefined.GREY_25_PERCENT, new GREY_25_PERCENT()); + enumList.put(HSSFColorPredefined.ROSE, new ROSE()); + enumList.put(HSSFColorPredefined.LIGHT_YELLOW, new LIGHT_YELLOW()); + enumList.put(HSSFColorPredefined.LIGHT_GREEN, new LIGHT_GREEN()); + enumList.put(HSSFColorPredefined.LIGHT_TURQUOISE, new LIGHT_TURQUOISE()); + enumList.put(HSSFColorPredefined.PALE_BLUE, new PALE_BLUE()); + enumList.put(HSSFColorPredefined.LAVENDER, new LAVENDER()); + enumList.put(HSSFColorPredefined.WHITE, new WHITE()); + enumList.put(HSSFColorPredefined.CORNFLOWER_BLUE, new CORNFLOWER_BLUE()); + enumList.put(HSSFColorPredefined.LEMON_CHIFFON, new LEMON_CHIFFON()); + enumList.put(HSSFColorPredefined.MAROON, new MAROON()); + enumList.put(HSSFColorPredefined.ORCHID, new ORCHID()); + enumList.put(HSSFColorPredefined.CORAL, new CORAL()); + enumList.put(HSSFColorPredefined.ROYAL_BLUE, new ROYAL_BLUE()); + enumList.put(HSSFColorPredefined.LIGHT_CORNFLOWER_BLUE, new LIGHT_CORNFLOWER_BLUE()); + enumList.put(HSSFColorPredefined.TAN, new TAN()); + } + return enumList; + } + + /** + * returns color standard palette index * @return index to the standard palette */ - public short getIndex() - { - // this will be overridden by the specific color subclass - return BLACK.index; + public short getIndex() { + return (short)index; + } + + /** + * returns alternative color standard palette index + * @return alternative index to the standard palette, if -1 this index is not defined + */ + + public short getIndex2() { + return (short)index2; } /** @@ -192,10 +315,8 @@ public class HSSFColor implements Color { * @return triplet representation like that in Excel */ - public short [] getTriplet() - { - // this will be overridden by the specific color subclass - return BLACK.triplet; + public short [] getTriplet() { + return new short[] { (short)color.getRed(), (short)color.getGreen(), (short)color.getBlue() }; } /** @@ -203,12 +324,12 @@ public class HSSFColor implements Color { * @return a hex string exactly like a gnumeric triplet */ - public String getHexString() - { - // this will be overridden by the specific color subclass - return BLACK.hexString; + public String getHexString() { + return (Integer.toHexString(color.getRed()*0x101) + ":" + + Integer.toHexString(color.getGreen()*0x101) + ":" + + Integer.toHexString(color.getBlue()*0x101)).toUpperCase(Locale.ROOT); } - + /** * Checked type cast color to an HSSFColor. * @@ -227,1491 +348,689 @@ public class HSSFColor implements Color { } /** - * Class BLACK - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class BLACK - extends HSSFColor - { - public final static short index = 0x8; - public final static short[] triplet = - { - 0, 0, 0 - }; - public final static String hexString = "0:0:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; + @Deprecated + @Removal(version="3.18") + private static class HSSFColorRef extends HSSFColor { + HSSFColorRef(HSSFColorPredefined colorEnum) { + super(colorEnum.getIndex(), colorEnum.getIndex2(), colorEnum.color.color); } } /** - * Class BROWN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class BROWN - extends HSSFColor - { - public final static short index = 0x3c; - public final static short[] triplet = - { - 153, 51, 0 - }; - public final static String hexString = "9999:3333:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class BLACK extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.BLACK; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public BLACK() { super(ref); } } /** - * Class OLIVE_GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public static class OLIVE_GREEN - extends HSSFColor - { - public final static short index = 0x3b; - public final static short[] triplet = - { - 51, 51, 0 - }; - public final static String hexString = "3333:3333:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class BROWN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.BROWN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public BROWN() { super(ref); } } /** - * Class DARK_GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class DARK_GREEN - extends HSSFColor - { - public final static short index = 0x3a; - public final static short[] triplet = - { - 0, 51, 0 - }; - public final static String hexString = "0:3333:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class OLIVE_GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.OLIVE_GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public OLIVE_GREEN() { super(ref); } } /** - * Class DARK_TEAL - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class DARK_TEAL - extends HSSFColor - { - public final static short index = 0x38; - public final static short[] triplet = - { - 0, 51, 102 - }; - public final static String hexString = "0:3333:6666"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class DARK_GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.DARK_GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public DARK_GREEN() { super(ref); } } /** - * Class DARK_BLUE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class DARK_BLUE - extends HSSFColor - { - public final static short index = 0x12; - public final static short index2 = 0x20; - public final static short[] triplet = - { - 0, 0, 128 - }; - public final static String hexString = "0:0:8080"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class DARK_TEAL extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.DARK_TEAL; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public DARK_TEAL() { super(ref); } } /** - * Class INDIGO - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class INDIGO - extends HSSFColor - { - public final static short index = 0x3e; - public final static short[] triplet = - { - 51, 51, 153 - }; - public final static String hexString = "3333:3333:9999"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class DARK_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.DARK_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public DARK_BLUE() { super(ref); } } /** - * Class GREY_80_PERCENT - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GREY_80_PERCENT - extends HSSFColor - { - public final static short index = 0x3f; - public final static short[] triplet = - { - 51, 51, 51 - }; - public final static String hexString = "3333:3333:3333"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class INDIGO extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.INDIGO; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public INDIGO() { super(ref); } } /** - * Class DARK_RED - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class DARK_RED - extends HSSFColor - { - public final static short index = 0x10; - public final static short index2 = 0x25; - public final static short[] triplet = - { - 128, 0, 0 - }; - public final static String hexString = "8080:0:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GREY_80_PERCENT extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GREY_80_PERCENT; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GREY_80_PERCENT() { super(ref); } } /** - * Class ORANGE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class ORANGE - extends HSSFColor - { - public final static short index = 0x35; - public final static short[] triplet = - { - 255, 102, 0 - }; - public final static String hexString = "FFFF:6666:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class DARK_RED extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.DARK_RED; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public DARK_RED() { super(ref); } } /** - * Class DARK_YELLOW - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class DARK_YELLOW - extends HSSFColor - { - public final static short index = 0x13; - public final static short[] triplet = - { - 128, 128, 0 - }; - public final static String hexString = "8080:8080:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class ORANGE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.ORANGE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public ORANGE() { super(ref); } } /** - * Class GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GREEN - extends HSSFColor - { - public final static short index = 0x11; - public final static short[] triplet = - { - 0, 128, 0 - }; - public final static String hexString = "0:8080:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class DARK_YELLOW extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.DARK_YELLOW; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public DARK_YELLOW() { super(ref); } } /** - * Class TEAL - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class TEAL - extends HSSFColor - { - public final static short index = 0x15; - public final static short index2 = 0x26; - public final static short[] triplet = - { - 0, 128, 128 - }; - public final static String hexString = "0:8080:8080"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GREEN() { super(ref); } } /** - * Class BLUE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class BLUE - extends HSSFColor - { - public final static short index = 0xc; - public final static short index2 = 0x27; - public final static short[] triplet = - { - 0, 0, 255 - }; - public final static String hexString = "0:0:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class TEAL extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.TEAL; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public TEAL() { super(ref); } } /** - * Class BLUE_GREY - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class BLUE_GREY - extends HSSFColor - { - public final static short index = 0x36; - public final static short[] triplet = - { - 102, 102, 153 - }; - public final static String hexString = "6666:6666:9999"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public BLUE() { super(ref); } } /** - * Class GREY_50_PERCENT - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GREY_50_PERCENT - extends HSSFColor - { - public final static short index = 0x17; - public final static short[] triplet = - { - 128, 128, 128 - }; - public final static String hexString = "8080:8080:8080"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class BLUE_GREY extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.BLUE_GREY; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public BLUE_GREY() { super(ref); } } /** - * Class RED - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class RED - extends HSSFColor - { - public final static short index = 0xa; - public final static short[] triplet = - { - 255, 0, 0 - }; - public final static String hexString = "FFFF:0:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GREY_50_PERCENT extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GREY_50_PERCENT; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GREY_50_PERCENT() { super(ref); } } /** - * Class LIGHT_ORANGE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIGHT_ORANGE - extends HSSFColor - { - public final static short index = 0x34; - public final static short[] triplet = - { - 255, 153, 0 - }; - public final static String hexString = "FFFF:9999:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class RED extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.RED; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public RED() { super(ref); } } /** - * Class LIME - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIME - extends HSSFColor - { - public final static short index = 0x32; - public final static short[] triplet = - { - 153, 204, 0 - }; - public final static String hexString = "9999:CCCC:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIGHT_ORANGE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_ORANGE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_ORANGE() { super(ref); } } /** - * Class SEA_GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class SEA_GREEN - extends HSSFColor - { - public final static short index = 0x39; - public final static short[] triplet = - { - 51, 153, 102 - }; - public final static String hexString = "3333:9999:6666"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIME extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIME; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIME() { super(ref); } } /** - * Class AQUA - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class AQUA - extends HSSFColor - { - public final static short index = 0x31; - public final static short[] triplet = - { - 51, 204, 204 - }; - public final static String hexString = "3333:CCCC:CCCC"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class SEA_GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.SEA_GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public SEA_GREEN() { super(ref); } } /** - * Class LIGHT_BLUE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIGHT_BLUE - extends HSSFColor - { - public final static short index = 0x30; - public final static short[] triplet = - { - 51, 102, 255 - }; - public final static String hexString = "3333:6666:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class AQUA extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.AQUA; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public AQUA() { super(ref); } } /** - * Class VIOLET - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class VIOLET - extends HSSFColor - { - public final static short index = 0x14; - public final static short index2 = 0x24; - public final static short[] triplet = - { - 128, 0, 128 - }; - public final static String hexString = "8080:0:8080"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIGHT_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_BLUE() { super(ref); } } /** - * Class GREY_40_PERCENT - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GREY_40_PERCENT - extends HSSFColor - { - public final static short index = 0x37; - public final static short[] triplet = - { - 150, 150, 150 - }; - public final static String hexString = "9696:9696:9696"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class VIOLET extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.VIOLET; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public VIOLET() { super(ref); } } /** - * Class PINK - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class PINK - extends HSSFColor - { - public final static short index = 0xe; - public final static short index2 = 0x21; - public final static short[] triplet = - { - 255, 0, 255 - }; - public final static String hexString = "FFFF:0:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GREY_40_PERCENT extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GREY_40_PERCENT; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GREY_40_PERCENT() { super(ref); } } /** - * Class GOLD - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GOLD - extends HSSFColor - { - public final static short index = 0x33; - public final static short[] triplet = - { - 255, 204, 0 - }; - public final static String hexString = "FFFF:CCCC:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class PINK extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.PINK; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public PINK() { super(ref); } } /** - * Class YELLOW - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class YELLOW - extends HSSFColor - { - public final static short index = 0xd; - public final static short index2 = 0x22; - public final static short[] triplet = - { - 255, 255, 0 - }; - public final static String hexString = "FFFF:FFFF:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GOLD extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GOLD; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GOLD() { super(ref); } } /** - * Class BRIGHT_GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class BRIGHT_GREEN - extends HSSFColor - { - public final static short index = 0xb; - public final static short index2 = 0x23; - public final static short[] triplet = - { - 0, 255, 0 - }; - public final static String hexString = "0:FFFF:0"; - - public short getIndex() - { - return index; - } - - public String getHexString() - { - return hexString; - } - - public short [] getTriplet() - { - return triplet; - } + @Deprecated + @Removal(version="3.18") + public static class YELLOW extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.YELLOW; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public YELLOW() { super(ref); } } /** - * Class TURQUOISE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class TURQUOISE - extends HSSFColor - { - public final static short index = 0xf; - public final static short index2 = 0x23; - public final static short[] triplet = - { - 0, 255, 255 - }; - public final static String hexString = "0:FFFF:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class BRIGHT_GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.BRIGHT_GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public BRIGHT_GREEN() { super(ref); } } /** - * Class SKY_BLUE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class SKY_BLUE - extends HSSFColor - { - public final static short index = 0x28; - public final static short[] triplet = - { - 0, 204, 255 - }; - public final static String hexString = "0:CCCC:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class TURQUOISE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.TURQUOISE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public TURQUOISE() { super(ref); } } /** - * Class PLUM - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class PLUM - extends HSSFColor - { - public final static short index = 0x3d; - public final static short index2 = 0x19; - public final static short[] triplet = - { - 153, 51, 102 - }; - public final static String hexString = "9999:3333:6666"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class SKY_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.SKY_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public SKY_BLUE() { super(ref); } } /** - * Class GREY_25_PERCENT - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class GREY_25_PERCENT - extends HSSFColor - { - public final static short index = 0x16; - public final static short[] triplet = - { - 192, 192, 192 - }; - public final static String hexString = "C0C0:C0C0:C0C0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class PLUM extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.PLUM; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public PLUM() { super(ref); } } /** - * Class ROSE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class ROSE - extends HSSFColor - { - public final static short index = 0x2d; - public final static short[] triplet = - { - 255, 153, 204 - }; - public final static String hexString = "FFFF:9999:CCCC"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class GREY_25_PERCENT extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.GREY_25_PERCENT; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public GREY_25_PERCENT() { super(ref); } } /** - * Class TAN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class TAN - extends HSSFColor - { - public final static short index = 0x2f; - public final static short[] triplet = - { - 255, 204, 153 - }; - public final static String hexString = "FFFF:CCCC:9999"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class ROSE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.ROSE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public ROSE() { super(ref); } } /** - * Class LIGHT_YELLOW - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIGHT_YELLOW - extends HSSFColor - { - public final static short index = 0x2b; - public final static short[] triplet = - { - 255, 255, 153 - }; - public final static String hexString = "FFFF:FFFF:9999"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class TAN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.TAN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public TAN() { super(ref); } } /** - * Class LIGHT_GREEN - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIGHT_GREEN - extends HSSFColor - { - public final static short index = 0x2a; - public final static short[] triplet = - { - 204, 255, 204 - }; - public final static String hexString = "CCCC:FFFF:CCCC"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIGHT_YELLOW extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_YELLOW; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_YELLOW() { super(ref); } } /** - * Class LIGHT_TURQUOISE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LIGHT_TURQUOISE - extends HSSFColor - { - public final static short index = 0x29; - public final static short index2 = 0x1b; - public final static short[] triplet = - { - 204, 255, 255 - }; - public final static String hexString = "CCCC:FFFF:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIGHT_GREEN extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_GREEN; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_GREEN() { super(ref); } } /** - * Class PALE_BLUE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class PALE_BLUE - extends HSSFColor - { - public final static short index = 0x2c; - public final static short[] triplet = - { - 153, 204, 255 - }; - public final static String hexString = "9999:CCCC:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LIGHT_TURQUOISE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_TURQUOISE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_TURQUOISE() { super(ref); } } /** - * Class LAVENDER - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class LAVENDER - extends HSSFColor - { - public final static short index = 0x2e; - public final static short[] triplet = - { - 204, 153, 255 - }; - public final static String hexString = "CCCC:9999:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class PALE_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.PALE_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public PALE_BLUE() { super(ref); } } /** - * Class WHITE - * + * @deprecated use {@link HSSFColorPredefined} instead */ - - public final static class WHITE - extends HSSFColor - { - public final static short index = 0x9; - public final static short[] triplet = - { - 255, 255, 255 - }; - public final static String hexString = "FFFF:FFFF:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LAVENDER extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LAVENDER; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LAVENDER() { super(ref); } } /** - * Class CORNFLOWER_BLUE + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class CORNFLOWER_BLUE - extends HSSFColor - { - public final static short index = 0x18; - public final static short[] triplet = - { - 153, 153, 255 - }; - public final static String hexString = "9999:9999:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } - } - - - /** - * Class LEMON_CHIFFON - */ - public final static class LEMON_CHIFFON - extends HSSFColor - { - public final static short index = 0x1a; - public final static short[] triplet = - { - 255, 255, 204 - }; - public final static String hexString = "FFFF:FFFF:CCCC"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class WHITE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.WHITE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public WHITE() { super(ref); } } /** - * Class MAROON + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class MAROON - extends HSSFColor - { - public final static short index = 0x19; - public final static short[] triplet = - { - 127, 0, 0 - }; - public final static String hexString = "8000:0:0"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class CORNFLOWER_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.CORNFLOWER_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public CORNFLOWER_BLUE() { super(ref); } } /** - * Class ORCHID + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class ORCHID - extends HSSFColor - { - public final static short index = 0x1c; - public final static short[] triplet = - { - 102, 0, 102 - }; - public final static String hexString = "6666:0:6666"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class LEMON_CHIFFON extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LEMON_CHIFFON; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LEMON_CHIFFON() { super(ref); } } /** - * Class CORAL + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class CORAL - extends HSSFColor - { - public final static short index = 0x1d; - public final static short[] triplet = - { - 255, 128, 128 - }; - public final static String hexString = "FFFF:8080:8080"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class MAROON extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.MAROON; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public MAROON() { super(ref); } } /** - * Class ROYAL_BLUE + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class ROYAL_BLUE - extends HSSFColor - { - public final static short index = 0x1e; - public final static short[] triplet = - { - 0, 102, 204 - }; - public final static String hexString = "0:6666:CCCC"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class ORCHID extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.ORCHID; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public ORCHID() { super(ref); } } /** - * Class LIGHT_CORNFLOWER_BLUE + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class LIGHT_CORNFLOWER_BLUE - extends HSSFColor - { - public final static short index = 0x1f; - public final static short[] triplet = - { - 204, 204, 255 - }; - public final static String hexString = "CCCC:CCCC:FFFF"; - - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return triplet; - } - - public String getHexString() - { - return hexString; - } + @Deprecated + @Removal(version="3.18") + public static class CORAL extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.CORAL; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public CORAL() { super(ref); } } /** - * Special Default/Normal/Automatic color. - *

Note: This class is NOT in the default Map returned by HSSFColor. - * The index is a special case which is interpreted in the various setXXXColor calls. - * - * @author Jason - * + * @deprecated use {@link HSSFColorPredefined} instead */ - public final static class AUTOMATIC extends HSSFColor - { - private static HSSFColor instance = new AUTOMATIC(); + @Deprecated + @Removal(version="3.18") + public static class ROYAL_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.ROYAL_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public ROYAL_BLUE() { super(ref); } + } - public final static short index = 0x40; + /** + * @deprecated use {@link HSSFColorPredefined} instead + */ + @Deprecated + @Removal(version="3.18") + public static class LIGHT_CORNFLOWER_BLUE extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.LIGHT_CORNFLOWER_BLUE; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public LIGHT_CORNFLOWER_BLUE() { super(ref); } + } - public short getIndex() - { - return index; - } - - public short [] getTriplet() - { - return BLACK.triplet; - } - - public String getHexString() - { - return BLACK.hexString; - } + /** + * @deprecated use {@link HSSFColorPredefined} instead + */ + @Deprecated + @Removal(version="3.18") + public static class AUTOMATIC extends HSSFColorRef { + private static final HSSFColorPredefined ref = HSSFColorPredefined.AUTOMATIC; + public static final short index = ref.getIndex(); + public static final int index2 = ref.getIndex2(); + public static final short[] triplet = ref.getTriplet(); + public static final String hexString = ref.getHexString(); + public AUTOMATIC() { super(ref); } public static HSSFColor getInstance() { - return instance; + return ref.color; } } } diff --git a/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java b/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java index 3b2591e89..acaddd0f6 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java @@ -18,8 +18,13 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.hssf.record.CFRuleBase.ComparisonOperator; @@ -28,44 +33,49 @@ import org.apache.poi.hssf.record.cf.FontFormatting; import org.apache.poi.hssf.record.cf.PatternFormatting; 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.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.ss.formula.ptg.RefNPtg; import org.apache.poi.ss.formula.ptg.RefPtg; import org.apache.poi.ss.usermodel.ConditionalFormattingThreshold.RangeType; import org.apache.poi.ss.usermodel.IconMultiStateFormatting.IconSet; import org.apache.poi.util.LittleEndian; +import org.junit.Test; + +import junit.framework.AssertionFailedError; /** * Tests the serialization and deserialization of the TestCFRuleRecord * class works correctly. */ -@SuppressWarnings("resource") -public final class TestCFRuleRecord extends TestCase { - public void testConstructors () { +public final class TestCFRuleRecord { + @Test + public void testConstructors () throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CFRuleRecord rule1 = CFRuleRecord.create(sheet, "7"); - assertEquals(CFRuleRecord.CONDITION_TYPE_FORMULA, rule1.getConditionType()); + assertEquals(CFRuleBase.CONDITION_TYPE_FORMULA, rule1.getConditionType()); assertEquals(ComparisonOperator.NO_COMPARISON, rule1.getComparisonOperation()); assertNotNull(rule1.getParsedExpression1()); assertSame(Ptg.EMPTY_PTG_ARRAY, rule1.getParsedExpression2()); CFRuleRecord rule2 = CFRuleRecord.create(sheet, ComparisonOperator.BETWEEN, "2", "5"); - assertEquals(CFRuleRecord.CONDITION_TYPE_CELL_VALUE_IS, rule2.getConditionType()); + assertEquals(CFRuleBase.CONDITION_TYPE_CELL_VALUE_IS, rule2.getConditionType()); assertEquals(ComparisonOperator.BETWEEN, rule2.getComparisonOperation()); assertNotNull(rule2.getParsedExpression1()); assertNotNull(rule2.getParsedExpression2()); CFRuleRecord rule3 = CFRuleRecord.create(sheet, ComparisonOperator.EQUAL, null, null); - assertEquals(CFRuleRecord.CONDITION_TYPE_CELL_VALUE_IS, rule3.getConditionType()); + assertEquals(CFRuleBase.CONDITION_TYPE_CELL_VALUE_IS, rule3.getConditionType()); assertEquals(ComparisonOperator.EQUAL, rule3.getComparisonOperation()); assertSame(Ptg.EMPTY_PTG_ARRAY, rule3.getParsedExpression2()); assertSame(Ptg.EMPTY_PTG_ARRAY, rule3.getParsedExpression2()); + workbook.close(); } - public void testCreateCFRuleRecord() { + @Test + public void testCreateCFRuleRecord() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CFRuleRecord record = CFRuleRecord.create(sheet, "7"); @@ -87,13 +97,14 @@ public final class TestCFRuleRecord extends TestCase { // Compare assertEquals("Output size", recordData.length+4, output.length); //includes sid+recordlength - for (int i = 0; i < recordData.length;i++) - { + for (int i = 0; i < recordData.length;i++) { assertEquals("CFRuleRecord doesn't match", recordData[i], output[i+4]); } + workbook.close(); } - public void testCreateCFRule12Record() { + @Test + public void testCreateCFRule12Record() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CFRule12Record record = CFRule12Record.create(sheet, "7"); @@ -115,13 +126,14 @@ public final class TestCFRuleRecord extends TestCase { // Compare assertEquals("Output size", recordData.length+4, output.length); //includes sid+recordlength - for (int i = 0; i < recordData.length;i++) - { + for (int i = 0; i < recordData.length;i++) { assertEquals("CFRule12Record doesn't match", recordData[i], output[i+4]); } + workbook.close(); } - public void testCreateIconCFRule12Record() { + @Test + public void testCreateIconCFRule12Record() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CFRule12Record record = CFRule12Record.create(sheet, IconSet.GREY_5_ARROWS); @@ -155,10 +167,10 @@ public final class TestCFRuleRecord extends TestCase { // Compare assertEquals("Output size", recordData.length+4, output.length); //includes sid+recordlength - for (int i = 0; i < recordData.length;i++) - { + for (int i = 0; i < recordData.length;i++) { assertEquals("CFRule12Record doesn't match", recordData[i], output[i+4]); } + workbook.close(); } private void testCFRuleRecord(CFRuleRecord record) { @@ -227,11 +239,11 @@ public final class TestCFRuleRecord extends TestCase { } private void testPatternFormattingAccessors(PatternFormatting patternFormatting) { - patternFormatting.setFillBackgroundColor(HSSFColor.GREEN.index); - assertEquals(HSSFColor.GREEN.index,patternFormatting.getFillBackgroundColor()); + patternFormatting.setFillBackgroundColor(HSSFColorPredefined.GREEN.getIndex()); + assertEquals(HSSFColorPredefined.GREEN.getIndex(),patternFormatting.getFillBackgroundColor()); - patternFormatting.setFillForegroundColor(HSSFColor.INDIGO.index); - assertEquals(HSSFColor.INDIGO.index,patternFormatting.getFillForegroundColor()); + patternFormatting.setFillForegroundColor(HSSFColorPredefined.INDIGO.getIndex()); + assertEquals(HSSFColorPredefined.INDIGO.getIndex(),patternFormatting.getFillForegroundColor()); patternFormatting.setFillPattern(PatternFormatting.DIAMONDS); assertEquals(PatternFormatting.DIAMONDS,patternFormatting.getFillPattern()); @@ -258,24 +270,24 @@ public final class TestCFRuleRecord extends TestCase { borderFormatting.setBorderTop(BorderFormatting.BORDER_HAIR); assertEquals(BorderFormatting.BORDER_HAIR, borderFormatting.getBorderTop()); - borderFormatting.setBottomBorderColor(HSSFColor.AQUA.index); - assertEquals(HSSFColor.AQUA.index, borderFormatting.getBottomBorderColor()); + borderFormatting.setBottomBorderColor(HSSFColorPredefined.AQUA.getIndex()); + assertEquals(HSSFColorPredefined.AQUA.getIndex(), borderFormatting.getBottomBorderColor()); - borderFormatting.setDiagonalBorderColor(HSSFColor.RED.index); - assertEquals(HSSFColor.RED.index, borderFormatting.getDiagonalBorderColor()); + borderFormatting.setDiagonalBorderColor(HSSFColorPredefined.RED.getIndex()); + assertEquals(HSSFColorPredefined.RED.getIndex(), borderFormatting.getDiagonalBorderColor()); assertFalse(borderFormatting.isForwardDiagonalOn()); borderFormatting.setForwardDiagonalOn(true); assertTrue(borderFormatting.isForwardDiagonalOn()); - borderFormatting.setLeftBorderColor(HSSFColor.BLACK.index); - assertEquals(HSSFColor.BLACK.index, borderFormatting.getLeftBorderColor()); + borderFormatting.setLeftBorderColor(HSSFColorPredefined.BLACK.getIndex()); + assertEquals(HSSFColorPredefined.BLACK.getIndex(), borderFormatting.getLeftBorderColor()); - borderFormatting.setRightBorderColor(HSSFColor.BLUE.index); - assertEquals(HSSFColor.BLUE.index, borderFormatting.getRightBorderColor()); + borderFormatting.setRightBorderColor(HSSFColorPredefined.BLUE.getIndex()); + assertEquals(HSSFColorPredefined.BLUE.getIndex(), borderFormatting.getRightBorderColor()); - borderFormatting.setTopBorderColor(HSSFColor.GOLD.index); - assertEquals(HSSFColor.GOLD.index, borderFormatting.getTopBorderColor()); + borderFormatting.setTopBorderColor(HSSFColorPredefined.GOLD.getIndex()); + assertEquals(HSSFColorPredefined.GOLD.getIndex(), borderFormatting.getTopBorderColor()); } @@ -378,7 +390,8 @@ public final class TestCFRuleRecord extends TestCase { assertTrue(fontFormatting.isUnderlineTypeModified()); } - public void testWrite() { + @Test + public void testWrite() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); CFRuleRecord rr = CFRuleRecord.create(sheet, ComparisonOperator.BETWEEN, "5", "10"); @@ -397,6 +410,7 @@ public final class TestCFRuleRecord extends TestCase { assertEquals("undocumented flags should be 0000", 0, flags & 0x03C00000); // Otherwise Excel gets unhappy // check all remaining flag bits (some are not well understood yet) assertEquals(0x203FFFFF, flags); + workbook.close(); } private static final byte[] DATA_REFN = { @@ -413,6 +427,7 @@ public final class TestCFRuleRecord extends TestCase { /** * tRefN and tAreaN tokens must be preserved when re-serializing conditional format formulas */ + @Test public void testReserializeRefNTokens() { RecordInputStream is = TestcaseRecordInputStream.create(CFRuleRecord.sid, DATA_REFN); @@ -431,7 +446,8 @@ public final class TestCFRuleRecord extends TestCase { TestcaseRecordInputStream.confirmRecordEncoding(CFRuleRecord.sid, DATA_REFN, data); } - public void testBug53691() { + @Test + public void testBug53691() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); @@ -442,12 +458,16 @@ public final class TestCFRuleRecord extends TestCase { byte [] serializedRecord = record.serialize(); byte [] serializedClone = clone.serialize(); assertArrayEquals(serializedRecord, serializedClone); + workbook.close(); } - public void testBug57231_rewrite() { - HSSFWorkbook wb = HSSFITestDataProvider.instance.openSampleWorkbook("57231_MixedGasReport.xls"); - assertEquals(7, wb.getNumberOfSheets()); - wb = HSSFITestDataProvider.instance.writeOutAndReadBack(wb); - assertEquals(7, wb.getNumberOfSheets()); + @Test + public void testBug57231_rewrite() throws IOException { + HSSFWorkbook wb1 = HSSFITestDataProvider.instance.openSampleWorkbook("57231_MixedGasReport.xls"); + assertEquals(7, wb1.getNumberOfSheets()); + HSSFWorkbook wb2 = HSSFITestDataProvider.instance.writeOutAndReadBack(wb1); + assertEquals(7, wb2.getNumberOfSheets()); + wb2.close(); + wb1.close(); } } diff --git a/src/testcases/org/apache/poi/hssf/record/TestPaletteRecord.java b/src/testcases/org/apache/poi/hssf/record/TestPaletteRecord.java index 9fd3c2ad4..321b6e312 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestPaletteRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestPaletteRecord.java @@ -27,8 +27,6 @@ import org.junit.Test; /** * Verifies that custom palette editing works correctly - * - * @author Brian Sanders (bsanders at risklabs dot com) */ public final class TestPaletteRecord { @@ -46,8 +44,8 @@ public final class TestPaletteRecord { HSSFColor c = entry.getValue(); short[] rgbTriplet = c.getTriplet(); byte[] paletteTriplet = palette.getColor((short) index); - String msg = "Expected HSSFColor constant to match PaletteRecord at index 0x" - + Integer.toHexString(c.getIndex()); + String msg = "Expected HSSFColor constant to match PaletteRecord at index" + (index == c.getIndex2() ? "2" : "") + " 0x" + + Integer.toHexString(index); assertEquals(msg, rgbTriplet[0], paletteTriplet[0] & 0xff); assertEquals(msg, rgbTriplet[1], paletteTriplet[1] & 0xff); assertEquals(msg, rgbTriplet[2], paletteTriplet[2] & 0xff); diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java index fb2ae4543..f2f572458 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java @@ -18,6 +18,10 @@ package org.apache.poi.hssf.usermodel; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; import java.awt.Color; import java.io.IOException; @@ -27,21 +31,19 @@ import java.util.Map; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.record.PaletteRecord; import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.Font; +import org.junit.Before; import org.junit.Test; -import junit.framework.TestCase; - -/** - * @author Brian Sanders (bsanders at risklabs dot com) - */ -public final class TestHSSFPalette extends TestCase { +public final class TestHSSFPalette { private PaletteRecord _palette; private HSSFPalette _hssfPalette; - @Override - public void setUp() - { + @Before + public void setUp() { _palette = new PaletteRecord(); _hssfPalette = new HSSFPalette(_palette); } @@ -49,6 +51,7 @@ public final class TestHSSFPalette extends TestCase { /** * Verifies that a custom palette can be created, saved, and reloaded */ + @Test public void testCustomPalette() { //reading sample xls HSSFWorkbook book = HSSFTestDataSamples.openSampleWorkbook("Simple.xls"); @@ -62,9 +65,9 @@ public final class TestHSSFPalette extends TestCase { book = HSSFTestDataSamples.writeOutAndReadBack(book); palette = book.getCustomPalette(); - HSSFColor color = palette.getColor(HSSFColor.CORAL.index); //unmodified + HSSFColor color = palette.getColor(HSSFColorPredefined.CORAL.getIndex()); //unmodified assertNotNull("Unexpected null in custom palette (unmodified index)", color); - short[] expectedRGB = HSSFColor.CORAL.triplet; + short[] expectedRGB = HSSFColorPredefined.CORAL.getTriplet(); short[] actualRGB = color.getTriplet(); String msg = "Expected palette position to remain unmodified"; assertEquals(msg, expectedRGB[0], actualRGB[0]); @@ -83,6 +86,7 @@ public final class TestHSSFPalette extends TestCase { /** * Uses the palette from cell stylings */ + @Test public void testPaletteFromCellColours() { HSSFWorkbook book = HSSFTestDataSamples.openSampleWorkbook("SimpleWithColours.xls"); @@ -98,8 +102,8 @@ public final class TestHSSFPalette extends TestCase { assertEquals("I'm plain", cellA.getStringCellValue()); assertEquals(64, cellA.getCellStyle().getFillForegroundColor()); assertEquals(64, cellA.getCellStyle().getFillBackgroundColor()); - assertEquals(HSSFFont.COLOR_NORMAL, cellA.getCellStyle().getFont(book).getColor()); - assertEquals(0, cellA.getCellStyle().getFillPattern()); + assertEquals(Font.COLOR_NORMAL, cellA.getCellStyle().getFont(book).getColor()); + assertEquals(FillPatternType.NO_FILL, cellA.getCellStyle().getFillPatternEnum()); assertEquals("0:0:0", p.getColor((short)64).getHexString()); assertEquals(null, p.getColor((short)32767)); @@ -108,7 +112,7 @@ public final class TestHSSFPalette extends TestCase { assertEquals(64, cellB.getCellStyle().getFillForegroundColor()); assertEquals(64, cellB.getCellStyle().getFillBackgroundColor()); assertEquals(10, cellB.getCellStyle().getFont(book).getColor()); - assertEquals(0, cellB.getCellStyle().getFillPattern()); + assertEquals(FillPatternType.NO_FILL, cellB.getCellStyle().getFillPatternEnum()); assertEquals("0:0:0", p.getColor((short)64).getHexString()); assertEquals("FFFF:0:0", p.getColor((short)10).getHexString()); @@ -117,7 +121,7 @@ public final class TestHSSFPalette extends TestCase { assertEquals(11, cellC.getCellStyle().getFillForegroundColor()); assertEquals(64, cellC.getCellStyle().getFillBackgroundColor()); assertEquals(10, cellC.getCellStyle().getFont(book).getColor()); - assertEquals(1, cellC.getCellStyle().getFillPattern()); + assertEquals(FillPatternType.SOLID_FOREGROUND, cellC.getCellStyle().getFillPatternEnum()); assertEquals("0:FFFF:0", p.getColor((short)11).getHexString()); assertEquals("FFFF:0:0", p.getColor((short)10).getHexString()); @@ -126,7 +130,7 @@ public final class TestHSSFPalette extends TestCase { assertEquals(13, cellD.getCellStyle().getFillForegroundColor()); assertEquals(64, cellD.getCellStyle().getFillBackgroundColor()); assertEquals(14, cellD.getCellStyle().getFont(book).getColor()); - assertEquals(0, cellD.getCellStyle().getFillPattern()); + assertEquals(FillPatternType.NO_FILL, cellD.getCellStyle().getFillPatternEnum()); assertEquals("FFFF:FFFF:0", p.getColor((short)13).getHexString()); assertEquals("FFFF:0:FFFF", p.getColor((short)14).getHexString()); @@ -135,11 +139,12 @@ public final class TestHSSFPalette extends TestCase { assertEquals(13, cellE.getCellStyle().getFillForegroundColor()); assertEquals(64, cellE.getCellStyle().getFillBackgroundColor()); assertEquals(14, cellE.getCellStyle().getFont(book).getColor()); - assertEquals(0, cellE.getCellStyle().getFillPattern()); + assertEquals(FillPatternType.NO_FILL, cellE.getCellStyle().getFillPatternEnum()); assertEquals("FFFF:FFFF:0", p.getColor((short)13).getHexString()); assertEquals("FFFF:0:FFFF", p.getColor((short)14).getHexString()); } + @Test public void testFindSimilar() throws IOException { HSSFWorkbook book = new HSSFWorkbook(); HSSFPalette p = book.getCustomPalette(); @@ -230,6 +235,7 @@ public final class TestHSSFPalette extends TestCase { * Verifies that the generated gnumeric-format string values match the * hardcoded values in the HSSFColor default color palette */ + @Test public void testGnumericStrings() { compareToDefaults(new ColorComparator() { @Override @@ -243,6 +249,7 @@ public final class TestHSSFPalette extends TestCase { /** * Verifies that the palette handles invalid palette indexes */ + @Test public void testBadIndexes() { //too small _hssfPalette.setColorAtIndex((short) 2, (byte) 255, (byte) 255, (byte) 255); @@ -275,6 +282,7 @@ public final class TestHSSFPalette extends TestCase { } } + @Test public void testAddColor() { try { diff --git a/src/testcases/org/apache/poi/hssf/util/AllHSSFUtilTests.java b/src/testcases/org/apache/poi/hssf/util/AllHSSFUtilTests.java index 6faba7846..7e71fb2de 100644 --- a/src/testcases/org/apache/poi/hssf/util/AllHSSFUtilTests.java +++ b/src/testcases/org/apache/poi/hssf/util/AllHSSFUtilTests.java @@ -17,22 +17,18 @@ package org.apache.poi.hssf.util; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; /** * Collects all tests for org.apache.poi.hssf.util. - * - * @author Josh Micich */ +@RunWith(Suite.class) +@Suite.SuiteClasses({ + TestAreaReference.class, + TestCellReference.class, + TestHSSFColor.class, + TestRKUtil.class +}) public class AllHSSFUtilTests { - - public static Test suite() { - TestSuite result = new TestSuite(AllHSSFUtilTests.class.getName()); - result.addTestSuite(TestAreaReference.class); - // result.addTestSuite(TestCellReference.class); //converted to junit4 - result.addTestSuite(TestHSSFColor.class); - result.addTestSuite(TestRKUtil.class); - return result; - } } diff --git a/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java b/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java index 319a7449e..be35ee268 100644 --- a/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java +++ b/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java @@ -17,38 +17,45 @@ package org.apache.poi.hssf.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.util.Map; -import junit.framework.TestCase; -/** - * @author Nick Burch - */ -public final class TestHSSFColor extends TestCase { - public void testBasics() { +import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; +import org.junit.Test; + +public final class TestHSSFColor { + @Test + public void testBasics() { assertNotNull(HSSFColor.YELLOW.class); - assertTrue(HSSFColor.YELLOW.index > 0); - assertTrue(HSSFColor.YELLOW.index2 > 0); + assertTrue(HSSFColorPredefined.YELLOW.getIndex() > 0); + assertTrue(HSSFColorPredefined.YELLOW.getIndex2() > 0); } + @Test public void testContents() { - assertEquals(3, HSSFColor.YELLOW.triplet.length); - assertEquals(255, HSSFColor.YELLOW.triplet[0]); - assertEquals(255, HSSFColor.YELLOW.triplet[1]); - assertEquals(0, HSSFColor.YELLOW.triplet[2]); + short[] triplet = HSSFColorPredefined.YELLOW.getTriplet(); + assertEquals(3, triplet.length); + assertEquals(255, triplet[0]); + assertEquals(255, triplet[1]); + assertEquals(0, triplet[2]); - assertEquals("FFFF:FFFF:0", HSSFColor.YELLOW.hexString); + assertEquals("FFFF:FFFF:0", HSSFColorPredefined.YELLOW.getHexString()); } + @Test public void testTrippletHash() { Map tripplets = HSSFColor.getTripletHash(); assertEquals( HSSFColor.MAROON.class, - tripplets.get(HSSFColor.MAROON.hexString).getClass() + tripplets.get(HSSFColorPredefined.MAROON.getHexString()).getClass() ); assertEquals( HSSFColor.YELLOW.class, - tripplets.get(HSSFColor.YELLOW.hexString).getClass() + tripplets.get(HSSFColorPredefined.YELLOW.getHexString()).getClass() ); } }