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-ffa450edef68tags/REL_3_16_BETA2
@@ -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++) { |
@@ -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 |
@@ -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); |
@@ -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"); |
@@ -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; |
@@ -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<Integer,HSSFColor> 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]); | |||
} | |||
} |
@@ -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<Integer,HSSFColor> 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]); | |||
} | |||
} |
@@ -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()); |
@@ -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<Record> 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<Record> records = new ArrayList<Record>(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<Record> records = new ArrayList<Record>( 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); | |||
@@ -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<Short> lastDateFormat = new ThreadLocal<Short>() { | |||
@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 { | |||
* <p>0x40 0xSOMETHING</p> | |||
*/ | |||
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; |
@@ -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 | |||
* |
@@ -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(); | |||
} | |||
} |
@@ -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); |
@@ -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 | |||
{ |
@@ -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; | |||
} | |||
} |
@@ -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<String, HSSFColor> 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() | |||
); | |||
} | |||
} |