remove more deprecated code (fix some issues)

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884265 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2020-12-09 18:12:53 +00:00
parent 8d54ec7cc7
commit 5aef414f2a
2 changed files with 62 additions and 13 deletions

View File

@ -182,7 +182,7 @@ public final class HSSFCellStyle implements CellStyle, Duplicatable {
}
public void setFont(HSSFFont font) {
_format.setIndentNotParentFont(true);
short fontindex = font.getIndex();
short fontindex = (short) font.getIndex();
_format.setFontIndex(fontindex);
}

View File

@ -19,10 +19,10 @@ package org.apache.poi.xssf.usermodel;
import java.io.IOException;
import org.apache.poi.common.usermodel.fonts.FontCharset;
import org.apache.poi.ooxml.POIXMLException;
import org.apache.poi.ss.usermodel.BaseTestFont;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.FontCharset;
import org.apache.poi.ss.usermodel.FontFamily;
import org.apache.poi.ss.usermodel.FontScheme;
import org.apache.poi.ss.usermodel.FontUnderline;
@ -81,28 +81,78 @@ public final class TestXSSFFont extends BaseTestFont{
}
@SuppressWarnings("deprecation")
@Test
public void testCharSetWithDeprecatedFontCharset() throws IOException {
CTFont ctFont=CTFont.Factory.newInstance();
CTIntProperty prop=ctFont.addNewCharset();
prop.setVal(org.apache.poi.ss.usermodel.FontCharset.ANSI.getValue());
ctFont.setCharsetArray(0,prop);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(Font.ANSI_CHARSET,xssfFont.getCharSet());
xssfFont.setCharSet(org.apache.poi.ss.usermodel.FontCharset.DEFAULT);
assertEquals(org.apache.poi.ss.usermodel.FontCharset.DEFAULT.getValue(),ctFont.getCharsetArray(0).getVal());
// Try with a few less usual ones:
// Set with the Charset itself
xssfFont.setCharSet(org.apache.poi.ss.usermodel.FontCharset.RUSSIAN);
assertEquals(org.apache.poi.ss.usermodel.FontCharset.RUSSIAN.getValue(), xssfFont.getCharSet());
// And set with the Charset index
xssfFont.setCharSet(org.apache.poi.ss.usermodel.FontCharset.ARABIC.getValue());
assertEquals(org.apache.poi.ss.usermodel.FontCharset.ARABIC.getValue(), xssfFont.getCharSet());
xssfFont.setCharSet((byte)(org.apache.poi.ss.usermodel.FontCharset.ARABIC.getValue()));
assertEquals(org.apache.poi.ss.usermodel.FontCharset.ARABIC.getValue(), xssfFont.getCharSet());
// This one isn't allowed
assertNull(org.apache.poi.ss.usermodel.FontCharset.valueOf(9999));
try {
xssfFont.setCharSet(9999);
fail("Shouldn't be able to set an invalid charset");
} catch(POIXMLException e) {
// expected here
}
// Now try with a few sample files
// Normal charset
XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
assertEquals(0,
wb1.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
);
wb1.close();
// GB2312 charset
XSSFWorkbook wb2 = XSSFTestDataSamples.openSampleWorkbook("49273.xlsx");
assertEquals(134,
wb2.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
);
wb2.close();
}
@Test
public void testCharSet() throws IOException {
CTFont ctFont=CTFont.Factory.newInstance();
CTIntProperty prop=ctFont.addNewCharset();
prop.setVal(FontCharset.ANSI.getValue());
prop.setVal(FontCharset.ANSI.getNativeId());
ctFont.setCharsetArray(0,prop);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(Font.ANSI_CHARSET,xssfFont.getCharSet());
xssfFont.setCharSet(FontCharset.DEFAULT);
assertEquals(FontCharset.DEFAULT.getValue(),ctFont.getCharsetArray(0).getVal());
assertEquals(FontCharset.DEFAULT.getNativeId(),ctFont.getCharsetArray(0).getVal());
// Try with a few less usual ones:
// Set with the Charset itself
xssfFont.setCharSet(FontCharset.RUSSIAN);
assertEquals(FontCharset.RUSSIAN.getValue(), xssfFont.getCharSet());
assertEquals(FontCharset.RUSSIAN.getNativeId(), xssfFont.getCharSet());
// And set with the Charset index
xssfFont.setCharSet(FontCharset.ARABIC.getValue());
assertEquals(FontCharset.ARABIC.getValue(), xssfFont.getCharSet());
xssfFont.setCharSet((byte)(FontCharset.ARABIC.getValue()));
assertEquals(FontCharset.ARABIC.getValue(), xssfFont.getCharSet());
xssfFont.setCharSet(FontCharset.ARABIC.getNativeId());
assertEquals(FontCharset.ARABIC.getNativeId(), xssfFont.getCharSet());
xssfFont.setCharSet((byte)(FontCharset.ARABIC.getNativeId()));
assertEquals(FontCharset.ARABIC.getNativeId(), xssfFont.getCharSet());
// This one isn't allowed
assertNull(FontCharset.valueOf(9999));
@ -113,7 +163,6 @@ public final class TestXSSFFont extends BaseTestFont{
// expected here
}
// Now try with a few sample files
// Normal charset