#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
This commit is contained in:
parent
d9bce7fff9
commit
c48a0cf334
@ -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 ))
|
||||
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,14 +1239,16 @@ 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,10 +2263,11 @@ 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) {
|
||||
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() != (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)
|
||||
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() != org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index)
|
||||
setFillBackgroundColor(org.apache.poi.hssf.util.HSSFColor.AUTOMATIC.index);
|
||||
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
|
||||
*
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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 {
|
||||
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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user