You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ye...@apache.org on 2008/09/18 09:42:41 UTC
svn commit: r696584 [2/2] - in /poi/branches/ooxml: ./
src/examples/src/org/apache/poi/xssf/usermodel/examples/
src/ooxml/interfaces-jdk14/org/apache/poi/ss/usermodel/
src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/
src/ooxml/java/org/apache/po...
Modified: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFColor.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFColor.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFColor.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFColor.java Thu Sep 18 00:42:40 2008
@@ -16,61 +16,183 @@
==================================================================== */
package org.apache.poi.xssf.usermodel.extensions;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
+/**
+ * Represents a color in SpreadsheetML
+ */
public class XSSFColor {
- private CTColor color;
-
- public XSSFColor(CTColor color) {
- this.color = color;
- if (this.color == null) {
- this.color = CTColor.Factory.newInstance();
- }
+ private CTColor ctColor;
+
+ /**
+ * Create an instance of XSSFColor from the supplied XML bean
+ */
+ public XSSFColor(CTColor color) {
+ this.ctColor = color;
}
- public boolean isAuto() {
- return color.getAuto();
+ /**
+ * Create an new instance of XSSFColor
+ */
+ public XSSFColor() {
+ this.ctColor = CTColor.Factory.newInstance();
+ }
+
+ /**
+ * A boolean value indicating the ctColor is automatic and system ctColor dependent.
+ */
+ public boolean isAuto() {
+ return ctColor.getAuto();
}
+ /**
+ * A boolean value indicating the ctColor is automatic and system ctColor dependent.
+ */
public void setAuto(boolean auto) {
- color.setAuto(auto);
+ ctColor.setAuto(auto);
}
-
- public long getIndexed() {
- return color.getIndexed();
+
+ /**
+ * Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
+ */
+ public int getIndexed() {
+ return (int)ctColor.getIndexed();
}
- public void setIndexed(long indexed) {
- color.setIndexed(indexed);
+ /**
+ * Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
+ */
+ public void setIndexed(int indexed) {
+ ctColor.setIndexed(indexed);
}
-
- public byte[] getRgb() {
- return color.getRgb();
+
+ /**
+ * Standard Alpha Red Green Blue ctColor value (ARGB).
+ */
+ public byte[] getRgb() {
+ return ctColor.getRgb();
}
+ /**
+ * Standard Alpha Red Green Blue ctColor value (ARGB).
+ */
public void setRgb(byte[] rgb) {
- color.setRgb(rgb);
+ ctColor.setRgb(rgb);
}
-
- public long getTheme() {
- return color.getTheme();
- }
-
- public void setTheme(long theme) {
- color.setTheme(theme);
+
+ /**
+ * Index into the <clrScheme> collection, referencing a particular <sysClr> or
+ * <srgbClr> value expressed in the Theme part.
+ */
+ public int getTheme() {
+ return (int)ctColor.getTheme();
}
- public double getTint() {
- return color.getTint();
+ /**
+ * Index into the <clrScheme> collection, referencing a particular <sysClr> or
+ * <srgbClr> value expressed in the Theme part.
+ */
+ public void setTheme(int theme) {
+ ctColor.setTheme(theme);
}
-
+
+ /**
+ * Specifies the tint value applied to the ctColor.
+ *
+ * <p>
+ * If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final
+ * ctColor applied.
+ * </p>
+ * <p>
+ * The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and
+ * 1.0 means 100% lighten. Also, 0.0 means no change.
+ * </p>
+ * <p>
+ * In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where
+ * HLSMAX is currently 255.
+ * </p>
+ * Here are some examples of how to apply tint to ctColor:
+ * <blockquote>
+ * <pre>
+ * If (tint < 0)
+ * Lum = Lum * (1.0 + tint)
+ *
+ * For example: Lum = 200; tint = -0.5; Darken 50%
+ * Lum = 200 * (0.5) => 100
+ * For example: Lum = 200; tint = -1.0; Darken 100% (make black)
+ * Lum = 200 * (1.0-1.0) => 0
+ * If (tint > 0)
+ * Lum = Lum * (1.0-tint) + (HLSMAX HLSMAX * (1.0-tint))
+ * For example: Lum = 100; tint = 0.75; Lighten 75%
+ *
+ * Lum = 100 * (1-.75) + (HLSMAX HLSMAX*(1-.75))
+ * = 100 * .25 + (255 255 * .25)
+ * = 25 + (255 63) = 25 + 192 = 217
+ * For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
+ * Lum = 100 * (1-1) + (HLSMAX HLSMAX*(1-1))
+ * = 100 * 0 + (255 255 * 0)
+ * = 0 + (255 0) = 255
+ * </pre>
+ * </blockquote>
+ *
+ * @return the tint value
+ */
+ public double getTint() {
+ return ctColor.getTint();
+ }
+
+ /**
+ * Specifies the tint value applied to the ctColor.
+ *
+ * <p>
+ * If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final
+ * ctColor applied.
+ * </p>
+ * <p>
+ * The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and
+ * 1.0 means 100% lighten. Also, 0.0 means no change.
+ * </p>
+ * <p>
+ * In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where
+ * HLSMAX is currently 255.
+ * </p>
+ * Here are some examples of how to apply tint to ctColor:
+ * <blockquote>
+ * <pre>
+ * If (tint < 0)
+ * Lum = Lum * (1.0 + tint)
+ *
+ * For example: Lum = 200; tint = -0.5; Darken 50%
+ * Lum = 200 * (0.5) => 100
+ * For example: Lum = 200; tint = -1.0; Darken 100% (make black)
+ * Lum = 200 * (1.0-1.0) => 0
+ * If (tint > 0)
+ * Lum = Lum * (1.0-tint) + (HLSMAX HLSMAX * (1.0-tint))
+ * For example: Lum = 100; tint = 0.75; Lighten 75%
+ *
+ * Lum = 100 * (1-.75) + (HLSMAX HLSMAX*(1-.75))
+ * = 100 * .25 + (255 255 * .25)
+ * = 25 + (255 63) = 25 + 192 = 217
+ * For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
+ * Lum = 100 * (1-1) + (HLSMAX HLSMAX*(1-1))
+ * = 100 * 0 + (255 255 * 0)
+ * = 0 + (255 0) = 255
+ * </pre>
+ * </blockquote>
+ *
+ * @param tint the tint value
+ */
public void setTint(double tint) {
- color.setTint(tint);
+ ctColor.setTint(tint);
}
- public void setToBorder(CTBorderPr border) {
- border.setColor(this.color);
- }
+ /**
+ * Returns the underlying XML bean
+ *
+ * @return the underlying XML bean
+ */
+ public CTColor getCTColor(){
+ return ctColor;
+ }
}
Modified: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/util/CTFontWrapper.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/util/CTFontWrapper.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/util/CTFontWrapper.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/util/CTFontWrapper.java Thu Sep 18 00:42:40 2008
@@ -1,176 +0,0 @@
-package org.apache.poi.xssf.util;
-
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBooleanProperty;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFontName;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFontScheme;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFontSize;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTIntProperty;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTUnderlineProperty;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTVerticalAlignFontProperty;
-
-/*
- * The font element in xml is definited like <choice maxOccurs="unbounded">.
- * So in the java object CTFont all methods get and set returns an array of elements also if there is always defined
- * only one type of attribute per type.
- * This class is made to make simple using method get and set instead of getArray() or set(index,object).
- * We consider always the index 0 like the only one index to refer of CT_Font attribute.
- *
- */
-
-
-public class CTFontWrapper{
-
- private CTFont font;
-
-
- public CTFontWrapper(CTFont font){
- this.font=font;
- }
-
- public CTFont getCTFont(){
- return font;
- }
-
-
- public CTBooleanProperty getB(){
- if( font.getBArray().length>0)
- return font.getBArray(0);
- else
- return null;
- }
-
-
- public CTIntProperty getCharset(){
- if(font.getCharsetArray().length>0)
- return font.getCharsetArray(0);
- else
- return null;
- }
-
- public CTColor getColor(){
- if(font.getColorArray().length>0)
- return font.getColorArray(0);
- else
- return null;
- }
-
- public CTBooleanProperty getStrike(){
- if(font.getStrikeArray().length>0)
- return font.getStrikeArray(0);
- else
- return null;
- }
-
- public CTVerticalAlignFontProperty getVertAlign() {
- if(font.getVertAlignArray().length>0)
- return font.getVertAlignArray(0);
- else
- return null;
- }
-
- public CTFontName setName(){
- if(font.getNameArray().length>0)
- return font.getNameArray(0);
- else
- return null;
- }
-
- public CTFontSize getSz(){
- if(font.getSzArray().length>0)
- return font.getSzArray(0);
- else
- return null;
- }
-
- public CTBooleanProperty getI(){
- if(font.getIArray().length>0)
- return font.getIArray(0);
- else
- return null;
- }
-
-
-
- public CTUnderlineProperty getU(){
- if(font.getUArray().length>0)
- return font.getUArray(0);
- else
- return null;
- }
-
- public void setB(CTBooleanProperty value){
- font.setBArray(0,value);
- }
-
- public void setCharset(CTIntProperty value){
- font.setCharsetArray(0, value);
- }
-
- public void setColor(CTColor value){
- font.setColorArray(0,value);
- }
-
- public void setFontName(CTFontName value){
- font.setNameArray(0,value);
- }
-
- public void setSz(CTFontSize value){
- font.setSzArray(0,value);
- }
- public void setI(CTBooleanProperty value){
- font.setIArray(0,value);
- }
-
- public void setU(CTUnderlineProperty value){
- font.setUArray(0,value);
- }
-
-
- public void setStrike(CTBooleanProperty value){
- font.setStrikeArray(0,value);
- }
-
-
- public void setVertAlign(CTVerticalAlignFontProperty value){
- font.setVertAlignArray(0,value);
- }
-
-
- public void setName(CTFontName fontName) {
- font.setNameArray(0,fontName);
- }
-
- public CTFontName getName() {
- return font.getNameArray(0);
- }
-
- public CTIntProperty getFamily() {
- return font.getFamilyArray(0);
- }
-
- public void setFamily(CTIntProperty family) {
- font.setFamilyArray(0,family);
- }
-
-
- public void setFontScheme(CTFontScheme ctFontScheme) {
- font.setSchemeArray(0,ctFontScheme);
- }
-
- public CTFontScheme getFontScheme() {
- return font.getSchemeArray(0);
- }
-
- // methods used in FontFormatting
-
- public CTBooleanProperty getOutline(){
- return font.getOutlineArray(0);
- }
-
-
-
-}
-
-
\ No newline at end of file
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java Thu Sep 18 00:42:40 2008
@@ -132,8 +132,6 @@
POITextExtractor extractor = extractors[i];
String text = extractor.getText().replaceAll("[\r\t]", "");
- //System.out.println(text.length());
- //System.out.println(text);
assertTrue(text.startsWith("First Sheet\nTest spreadsheet\n2nd row2nd row 2nd column\n"));
Pattern pattern = Pattern.compile(".*13(\\.0+)?\\s+Sheet3.*", Pattern.DOTALL);
Matcher m = pattern.matcher(text);
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java Thu Sep 18 00:42:40 2008
@@ -32,6 +32,7 @@
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.CommentsTable;
+import org.apache.poi.xssf.model.SharedStringsTable;
import org.apache.poi.xssf.model.SharedStringSource;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComment;
@@ -336,7 +337,7 @@
private static XSSFRow createParentObjects() {
XSSFWorkbook wb = new XSSFWorkbook();
- wb.setSharedStringSource(new DummySharedStringSource());
+ wb.setSharedStringSource(new SharedStringsTable());
XSSFSheet sheet = new XSSFSheet(wb);
XSSFRow row = new XSSFRow(sheet);
return row;
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java Thu Sep 18 00:42:40 2008
@@ -1,5 +1,7 @@
package org.apache.poi.xssf.usermodel;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -11,9 +13,8 @@
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.xssf.util.CTFontWrapper;
import org.apache.poi.xssf.util.Charset;
-import org.apache.poi.xssf.util.IndexedColors;
+import org.openxml4j.opc.Package;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBooleanProperty;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
@@ -38,60 +39,51 @@
public void testBoldweight(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
-
- CTBooleanProperty bool=wrapper.getCTFont().addNewB();
+ CTBooleanProperty bool=ctFont.addNewB();
bool.setVal(false);
- wrapper.setB(bool);
-
+ ctFont.setBArray(0,bool);
XSSFFont xssfFont=new XSSFFont(ctFont);
- assertEquals(Font.BOLDWEIGHT_NORMAL, xssfFont.getBoldweight());
+ assertEquals(false, xssfFont.getBold());
- xssfFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
+ xssfFont.setBold(true);
assertEquals(ctFont.getBArray().length,1);
assertEquals(true, ctFont.getBArray(0).getVal());
- assertEquals(true,wrapper.getB().getVal());
-
}
public void testCharSet(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTIntProperty prop=ctFont.addNewCharset();
prop.setVal(Charset.ANSI_CHARSET);
-
- wrapper.setCharset(prop);
+
+ ctFont.setCharsetArray(0,prop);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(Font.ANSI_CHARSET,xssfFont.getCharSet());
-
+
xssfFont.setCharSet(Font.DEFAULT_CHARSET);
- assertEquals(Charset.DEFAULT_CHARSET, wrapper.getCharset().getVal());
+ assertEquals(Charset.DEFAULT_CHARSET,ctFont.getCharsetArray(0).getVal());
}
public void testFontName(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTFontName fname=ctFont.addNewName();
fname.setVal("Arial");
- wrapper.setFontName(fname);
+ ctFont.setNameArray(0,fname);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals("Arial", xssfFont.getFontName());
xssfFont.setFontName("Courier");
- assertEquals("Courier",wrapper.getName().getVal());
+ assertEquals("Courier",ctFont.getNameArray(0).getVal());
}
public void testItalic(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
-
- CTBooleanProperty bool=wrapper.getCTFont().addNewI();
+ CTBooleanProperty bool=ctFont.addNewI();
bool.setVal(false);
- wrapper.setI(bool);
+ ctFont.setIArray(0,bool);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(false, xssfFont.getItalic());
@@ -99,17 +91,15 @@
xssfFont.setItalic(true);
assertEquals(ctFont.getIArray().length,1);
assertEquals(true, ctFont.getIArray(0).getVal());
- assertEquals(true,wrapper.getI().getVal());
+ assertEquals(true,ctFont.getIArray(0).getVal());
}
public void testStrikeout(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
-
- CTBooleanProperty bool=wrapper.getCTFont().addNewStrike();
+ CTBooleanProperty bool=ctFont.addNewStrike();
bool.setVal(false);
- wrapper.setStrike(bool);
+ ctFont.setStrikeArray(0,bool);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(false, xssfFont.getStrikeout());
@@ -117,139 +107,218 @@
xssfFont.setStrikeout(true);
assertEquals(ctFont.getStrikeArray().length,1);
assertEquals(true, ctFont.getStrikeArray(0).getVal());
- assertEquals(true,wrapper.getStrike().getVal());
+ assertEquals(true,ctFont.getStrikeArray(0).getVal());
}
public void testFontHeight(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTFontSize size=ctFont.addNewSz();
size.setVal(11);
- wrapper.setSz(size);
-
+ ctFont.setSzArray(0,size);
+
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(11/20,xssfFont.getFontHeight());
-
+
xssfFont.setFontHeight((short)20);
- assertEquals(new Double(20*20).doubleValue(),wrapper.getSz().getVal()); }
+ assertEquals(new Double(20*20).doubleValue(),ctFont.getSzArray(0).getVal());
+ }
public void testFontHeightInPoint(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTFontSize size=ctFont.addNewSz();
size.setVal(14);
- wrapper.setSz(size);
-
+ ctFont.setSzArray(0,size);
+
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(14,xssfFont.getFontHeightInPoints());
-
+
xssfFont.setFontHeightInPoints((short)20);
- assertEquals(new Double(20).doubleValue(),wrapper.getSz().getVal());
+ assertEquals(new Double(20).doubleValue(),ctFont.getSzArray(0).getVal());
}
public void testUnderline(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
-
- CTUnderlineProperty underlinePropr=wrapper.getCTFont().addNewU();
+ CTUnderlineProperty underlinePropr=ctFont.addNewU();
underlinePropr.setVal(STUnderlineValues.SINGLE);
- wrapper.setU(underlinePropr);
+ ctFont.setUArray(0,underlinePropr);
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(Font.U_SINGLE, xssfFont.getUnderline());
xssfFont.setUnderline(Font.U_DOUBLE);
assertEquals(ctFont.getUArray().length,1);
- assertEquals(STUnderlineValues.DOUBLE,wrapper.getU().getVal());
- }
+ assertEquals(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());
+ }
public void testColor(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTColor color=ctFont.addNewColor();
- //color.setIndexed(IndexedColors.DEFAULT_COLOR);
color.setIndexed(XSSFFont.DEFAULT_FONT_COLOR);
- wrapper.setColor(color);
-
+ ctFont.setColorArray(0,color);
+
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(Font.COLOR_NORMAL,xssfFont.getColor());
-
- xssfFont.setColor(Font.COLOR_RED);
- assertEquals(IndexedColors.RED,wrapper.getColor().getIndexed());
+
+ xssfFont.setColor(IndexedColors.RED.getIndex());
+ assertEquals(IndexedColors.RED.getIndex(), ctFont.getColorArray(0).getIndexed());
}
+/*
+ public void testRgbColor(){
+ CTFont ctFont=CTFont.Factory.newInstance();
+ CTColor color=ctFont.addNewColor();
+ color.setRgb(new byte[]{});
+ ctFont.setColorArray(0,color);
+
+ XSSFFont xssfFont=new XSSFFont(ctFont);
+ assertEquals(,xssfFont.getRgbColor());
+ xssfFont.setRgbColor(new XSSFColor(new java.awt.Color(10,19,10)));
+ //assertEquals(,ctFont.getColorArray(0).getRgb());
+ }
+
+ public void testThemeColor(){
+ CTFont ctFont=CTFont.Factory.newInstance();
+ CTColor color=ctFont.addNewColor();
+ color.setTheme();
+ ctFont.setColorArray(0,color);
+ XSSFFont xssfFont=new XSSFFont(ctFont);
+ assertEquals(,xssfFont.getThemeColor());
+
+ xssfFont.setThemeColor(Font.COLOR_RED);
+ assertEquals(,ctFont.getColorArray(0).getTheme());
+ assertEquals(,ctFont.getColorArray(0).getTint());
+ }
+*/
public void testFamily(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTIntProperty family=ctFont.addNewFamily();
family.setVal(XSSFFont.FONT_FAMILY_MODERN);
- wrapper.setFamily(family);
-
+ ctFont.setFamilyArray(0,family);
+
XSSFFont xssfFont=new XSSFFont(ctFont);
assertEquals(XSSFFont.FONT_FAMILY_MODERN,xssfFont.getFamily());
-
}
-
+
public void testScheme(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTFontScheme scheme=ctFont.addNewScheme();
scheme.setVal(STFontScheme.MAJOR);
- wrapper.setFontScheme(scheme);
-
+ ctFont.setSchemeArray(0,scheme);
+
XSSFFont font=new XSSFFont(ctFont);
assertEquals(XSSFFont.SCHEME_MAJOR,font.getScheme());
-
+
font.setScheme(XSSFFont.SCHEME_NONE);
- assertEquals(STFontScheme.NONE,wrapper.getFontScheme().getVal());
+ assertEquals(STFontScheme.NONE,ctFont.getSchemeArray(0).getVal());
}
public void testTypeOffset(){
CTFont ctFont=CTFont.Factory.newInstance();
- CTFontWrapper wrapper=new CTFontWrapper(ctFont);
CTVerticalAlignFontProperty valign=ctFont.addNewVertAlign();
valign.setVal(STVerticalAlignRun.BASELINE);
- wrapper.setVertAlign(valign);
-
+ ctFont.setVertAlignArray(0,valign);
+
XSSFFont font=new XSSFFont(ctFont);
assertEquals(Font.SS_NONE,font.getTypeOffset());
-
+
font.setTypeOffset(XSSFFont.SS_SUPER);
- assertEquals(STVerticalAlignRun.SUPERSCRIPT,wrapper.getVertAlign().getVal());
+ assertEquals(STVerticalAlignRun.SUPERSCRIPT,ctFont.getVertAlignArray(0).getVal());
}
-
+
+ /**
+ * Tests that we can define fonts to a new
+ * file, save, load, and still see them
+ * @throws Exception
+ */
+ public void testCreateSave() throws Exception {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet s1 = (XSSFSheet)wb.createSheet();
+ Row r1 = s1.createRow(0);
+ Cell r1c1 = r1.createCell(0);
+ r1c1.setCellValue(2.2);
+
+ assertEquals(1, wb.getNumberOfFonts());
+
+ XSSFFont font=wb.createFont();
+ font.setBold(true);
+ font.setStrikeout(true);
+ font.setColor(IndexedColors.YELLOW.getIndex());
+ font.setFontName("Courier");
+ wb.createCellStyle().setFont(font);
+ assertEquals(2, wb.getNumberOfFonts());
+
+ CellStyle cellStyleTitle=wb.createCellStyle();
+ cellStyleTitle.setFont(font);
+ r1c1.setCellStyle(cellStyleTitle);
+
+ // Save and re-load
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ wb.write(baos);
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+
+ wb = new XSSFWorkbook(Package.open(bais));
+ s1 = (XSSFSheet)wb.getSheetAt(0);
+
+ assertEquals(2, wb.getNumberOfFonts());
+ assertNotNull(s1.getRow(0).getCell(0).getCellStyle().getFont(wb));
+ assertEquals(IndexedColors.YELLOW.getIndex(), s1.getRow(0).getCell(0).getCellStyle().getFont(wb).getColor());
+ assertEquals("Courier", s1.getRow(0).getCell(0).getCellStyle().getFont(wb).getFontName());
+
+ // Now add an orphaned one
+ XSSFFont font2 = wb.createFont();
+ font2.setItalic(true);
+ font2.setFontHeightInPoints((short)15);
+ wb.createCellStyle().setFont(font2);
+ assertEquals(3, wb.getNumberOfFonts());
+
+ // Save and re-load
+ baos = new ByteArrayOutputStream();
+ wb.write(baos);
+ bais = new ByteArrayInputStream(baos.toByteArray());
+
+ wb = new XSSFWorkbook(Package.open(bais));
+ s1 = (XSSFSheet)wb.getSheetAt(0);
+
+ assertEquals(3, wb.getNumberOfFonts());
+ assertNotNull(wb.getFontAt((short)1));
+ assertNotNull(wb.getFontAt((short)2));
+
+ assertEquals(15, wb.getFontAt((short)2).getFontHeightInPoints());
+ assertEquals(true, wb.getFontAt((short)2).getItalic());
+ }
+
public void testXSSFFont() throws IOException{
XSSFWorkbook workbook=new XSSFWorkbook();
//Font font1=workbook.createFont();
-
+
Sheet sheet=workbook.createSheet("sheet 1 - test font");
-
-
+
+
Row row=sheet.createRow(0);
Cell cell=row.createCell(0);
cell.setCellValue(new XSSFRichTextString("XSSFFont test example file"));
- Font font=new XSSFFont();
- font.setBoldweight(Font.BOLDWEIGHT_BOLD);
+ XSSFFont font=new XSSFFont();
+ font.setBold(true);
font.setFontHeightInPoints((short)22);
- font.setColor((short)IndexedColors.BLUE);
+ font.setColor(IndexedColors.BLUE.getIndex());
font.setFontName("Verdana");
CellStyle cellStyleTitle=workbook.createCellStyle();
cellStyleTitle.setFont(font);
cell.setCellStyle(cellStyleTitle);
-
+
row=sheet.createRow(3);
- Font font1=new XSSFFont();
- font1.setBoldweight(Font.BOLDWEIGHT_BOLD);
+ XSSFFont font1=new XSSFFont();
+ font1.setBold(true);
font1.setItalic(true);
font1.setFontHeightInPoints((short)18);
- font1.setColor(Font.COLOR_RED);
+ font1.setColor(IndexedColors.RED.getIndex());
font1.setFontName("Arial");
CellStyle cellStyle1=workbook.createCellStyle();
cellStyle1.setFont(font1);
@@ -279,7 +348,7 @@
font3.setFontHeightInPoints((short)9);
font3.setFontName("Times");
font3.setStrikeout(true);
- font3.setColor((short)IndexedColors.PINK);
+ font3.setColor(IndexedColors.PINK.getIndex());
CellStyle cellStyle3=workbook.createCellStyle();
cellStyle3.setFont(font3);
Added: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java?rev=696584&view=auto
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java (added)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java Thu Sep 18 00:42:40 2008
@@ -0,0 +1,135 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xssf.usermodel;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Comment;
+import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.SharedStringSource;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.model.CommentsTable;
+import org.apache.xmlbeans.XmlOptions;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
+
+/**
+ * Tests functionality of the XSSFRichTextRun object
+ *
+ * @author Yegor Kozlov
+ */
+public class TestXSSFRichTextString extends TestCase {
+
+ public void testCreate() throws Exception {
+
+ XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
+ assertEquals("Apache POI", rt.getString());
+
+ CTRst st = rt.getCTRst();
+ assertTrue(st.isSetT());
+ assertEquals("Apache POI", st.getT());
+
+ rt.append(" is cool stuff");
+ assertEquals(2, st.sizeOfRArray());
+ assertFalse(st.isSetT());
+
+ assertEquals("Apache POI is cool stuff", rt.getString());
+ }
+
+
+ public void testApplyFont() throws Exception {
+
+ XSSFRichTextString rt = new XSSFRichTextString();
+ rt.append("123");
+ rt.append("4567");
+ rt.append("89");
+
+ XSSFFont font1 = new XSSFFont();
+ font1.setBold(true);
+
+ rt.applyFont(2, 5, font1);
+
+ assertEquals(4, rt.numFormattingRuns());
+ assertEquals(0, rt.getIndexOfFormattingRun(0));
+ assertEquals(2, rt.getLengthOfFormattingRun(0));
+
+ assertEquals(2, rt.getIndexOfFormattingRun(1));
+ assertEquals(3, rt.getLengthOfFormattingRun(1));
+
+ assertEquals(5, rt.getIndexOfFormattingRun(2));
+ assertEquals(2, rt.getLengthOfFormattingRun(2));
+
+ assertEquals(7, rt.getIndexOfFormattingRun(3));
+ assertEquals(2, rt.getLengthOfFormattingRun(3));
+ }
+
+ public void testClearFormatting() throws Exception {
+
+ XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
+ assertEquals("Apache POI", rt.getString());
+
+ rt.clearFormatting();
+
+ CTRst st = rt.getCTRst();
+ assertTrue(st.isSetT());
+ assertEquals("Apache POI", rt.getString());
+ assertEquals(0, rt.numFormattingRuns());
+
+ XSSFFont font = new XSSFFont();
+ font.setBold(true);
+
+ rt.applyFont(7, 10, font);
+ assertEquals(2, rt.numFormattingRuns());
+ rt.clearFormatting();
+ assertEquals("Apache POI", rt.getString());
+ assertEquals(0, rt.numFormattingRuns());
+
+ }
+
+ public void testGetFonts() throws Exception {
+
+ XSSFRichTextString rt = new XSSFRichTextString();
+
+ XSSFFont font1 = new XSSFFont();
+ font1.setFontName("Arial");
+ font1.setItalic(true);
+ rt.append("The quick", font1);
+
+ XSSFFont font1$ = rt.getFontOfFormattingRun(0);
+ assertEquals(font1.getItalic(), font1$.getItalic());
+ assertEquals(font1.getFontName(), font1$.getFontName());
+
+ XSSFFont font2 = new XSSFFont();
+ font2.setFontName("Courier");
+ font2.setBold(true);
+ rt.append(" brown fox", font2);
+
+ XSSFFont font2$ = rt.getFontOfFormattingRun(1);
+ assertEquals(font2.getBold(), font2$.getBold());
+ assertEquals(font2.getFontName(), font2$.getFontName());
+
+ }
+}
Propchange: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
------------------------------------------------------------------------------
svn:executable = *
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java Thu Sep 18 00:42:40 2008
@@ -24,6 +24,7 @@
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.TestXSSFCell.DummySharedStringSource;
+import org.apache.poi.xssf.model.SharedStringsTable;
/**
* Tests for XSSFRow
@@ -167,7 +168,7 @@
row.setZeroHeight(true);
assertTrue(row.getZeroHeight());
}
-
+
/**
* Tests for the missing/blank cell policy stuff
*/
@@ -184,7 +185,7 @@
row.createCell((short)1).setCellValue(3.2);
row.createCell((short)4, Cell.CELL_TYPE_BLANK);
row.createCell((short)5).setCellValue(4);
-
+
// First up, no policy
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1).getCellType());
@@ -192,7 +193,7 @@
assertEquals(null, row.getCell(3));
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5).getCellType());
-
+
// RETURN_NULL_AND_BLANK - same as default
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, Row.RETURN_NULL_AND_BLANK).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, Row.RETURN_NULL_AND_BLANK).getCellType());
@@ -200,7 +201,7 @@
assertEquals(null, row.getCell(3, Row.RETURN_NULL_AND_BLANK));
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, Row.RETURN_NULL_AND_BLANK).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, Row.RETURN_NULL_AND_BLANK).getCellType());
-
+
// RETURN_BLANK_AS_NULL - nearly the same
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, XSSFRow.RETURN_BLANK_AS_NULL).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, XSSFRow.RETURN_BLANK_AS_NULL).getCellType());
@@ -208,7 +209,7 @@
assertEquals(null, row.getCell(3, XSSFRow.RETURN_BLANK_AS_NULL));
assertEquals(null, row.getCell(4, XSSFRow.RETURN_BLANK_AS_NULL));
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, XSSFRow.RETURN_BLANK_AS_NULL).getCellType());
-
+
// CREATE_NULL_AS_BLANK - creates as needed
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, XSSFRow.CREATE_NULL_AS_BLANK).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, XSSFRow.CREATE_NULL_AS_BLANK).getCellType());
@@ -216,7 +217,7 @@
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(3, XSSFRow.CREATE_NULL_AS_BLANK).getCellType());
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, XSSFRow.CREATE_NULL_AS_BLANK).getCellType());
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, XSSFRow.CREATE_NULL_AS_BLANK).getCellType());
-
+
// Check created ones get the right column
assertEquals((short)0, row.getCell(0, XSSFRow.CREATE_NULL_AS_BLANK).getCellNum());
assertEquals((short)1, row.getCell(1, XSSFRow.CREATE_NULL_AS_BLANK).getCellNum());
@@ -244,7 +245,7 @@
private static XSSFSheet createParentObjects() {
XSSFWorkbook wb = new XSSFWorkbook();
- wb.setSharedStringSource(new DummySharedStringSource());
+ wb.setSharedStringSource(new SharedStringsTable());
return new XSSFSheet(wb);
}
}
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java Thu Sep 18 00:42:40 2008
@@ -639,12 +639,10 @@
}
public void testGetActiveCell() {
- Workbook workbook = new XSSFWorkbook();
- CTSheet ctSheet = CTSheet.Factory.newInstance();
- CTWorksheet ctWorksheet = CTWorksheet.Factory.newInstance();
- XSSFSheet sheet = new XSSFSheet(ctSheet, ctWorksheet, (XSSFWorkbook) workbook);
- ctWorksheet.addNewSheetViews().addNewSheetView().addNewSelection().setActiveCell("R5");
-
+ XSSFWorkbook workbook = new XSSFWorkbook();
+ XSSFSheet sheet = workbook.createSheet();
+ sheet.setActiveCell("R5");
+
assertEquals("R5", sheet.getActiveCell());
}
@@ -733,7 +731,6 @@
assertEquals(1, ctWorksheet.getColsArray(0).getColArray(0).getStyle());
XSSFRow row = (XSSFRow) sheet.createRow(0);
XSSFCell cell = (XSSFCell) sheet.getRow(0).createCell(3);
- //System.out.println(cell.getCellStyle());
}
@@ -772,7 +769,6 @@
XSSFSheet sheet = new XSSFSheet(ctSheet, ctWorksheet, (XSSFWorkbook) workbook);
//one level
- System.out.println("livello 1");
sheet.groupColumn((short)2,(short)7);
sheet.groupColumn((short)10,(short)11);
CTCols cols=sheet.getWorksheet().getColsArray(0);
@@ -784,7 +780,6 @@
assertEquals(1, colArray[0].getOutlineLevel());
//two level
- System.out.println("\n livello 2");
sheet.groupColumn((short)1,(short)2);
cols=sheet.getWorksheet().getColsArray(0);
assertEquals(4,cols.sizeOfColArray());
@@ -792,7 +787,6 @@
assertEquals(2, colArray[1].getOutlineLevel());
//three level
- System.out.println("\n livello 3");
sheet.groupColumn((short)6,(short)8);
sheet.groupColumn((short)2,(short)3);
cols=sheet.getWorksheet().getColsArray(0);
@@ -855,5 +849,13 @@
assertEquals(1,sheet.getSheetTypeSheetFormatPr().getOutlineLevelRow());
}
+
+ public void testSetZoom() {
+ Workbook workBook = new XSSFWorkbook();
+ XSSFSheet sheet1 = (XSSFSheet) workBook.createSheet("new sheet");
+ sheet1.setZoom(3,4); // 75 percent magnification
+ long zoom = sheet1.getSheetTypeSheetView().getZoomScale();
+ assertEquals(zoom, 75);
+ }
}
Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=696584&r1=696583&r2=696584&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java Thu Sep 18 00:42:40 2008
@@ -247,7 +247,7 @@
//get default font, then change 2 values and check against different values (height changes)
Font font=workbook.createFont();
- font.setBoldweight(Font.BOLDWEIGHT_BOLD);
+ ((XSSFFont)font).setBold(true);
font.setUnderline(Font.U_DOUBLE);
StylesSource styleSource=new StylesTable();
long index=styleSource.putFont(font);
@@ -291,6 +291,25 @@
assertNotNull(fontAt);
}
+ public void testGetNumberOfFonts(){
+ XSSFWorkbook wb = new XSSFWorkbook();
+
+ XSSFFont f1=wb.createFont();
+ f1.setBold(true);
+ wb.createCellStyle().setFont(f1);
+
+ XSSFFont f2=wb.createFont();
+ f2.setUnderline(Font.U_DOUBLE);
+ wb.createCellStyle().setFont(f2);
+
+ XSSFFont f3=wb.createFont();
+ f3.setFontHeightInPoints((short)23);
+ wb.createCellStyle().setFont(f3);
+
+ assertEquals(4,wb.getNumberOfFonts());
+ assertEquals(Font.U_DOUBLE,wb.getFontAt((short)2).getUnderline());
+ }
+
public void testGetNumCellStyles(){
XSSFWorkbook workbook = new XSSFWorkbook();
short i = workbook.getNumCellStyles();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org