<!-- Don't forget to update status.xml too! -->
<release version="3.2-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">45784 - Support long chart titles in SeriesTextRecords</action>
<action dev="POI-DEVELOPERS" type="fix">45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out</action>
<action dev="POI-DEVELOPERS" type="add">45844 - Addtional diagnostics for HSLF SlideShowRecordDumper</action>
<action dev="POI-DEVELOPERS" type="fix">45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero</action>
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.2-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">45784 - Support long chart titles in SeriesTextRecords</action>
<action dev="POI-DEVELOPERS" type="fix">45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out</action>
<action dev="POI-DEVELOPERS" type="add">45844 - Addtional diagnostics for HSLF SlideShowRecordDumper</action>
<action dev="POI-DEVELOPERS" type="fix">45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero</action>
field_1_id = in.readShort();
field_2_textLength = in.readByte();
field_3_undocumented = in.readByte();
- field_4_text = in.readUnicodeLEString(field_2_textLength);
+ field_4_text = in.readUnicodeLEString(
+ LittleEndian.ubyteToInt(field_2_textLength));
}
public String toString()
/**
* Get the text length field for the SeriesText record.
*/
- public byte getTextLength()
+ public int getTextLength()
{
- return field_2_textLength;
+ return LittleEndian.ubyteToInt(field_2_textLength);
}
/**
* Set the text length field for the SeriesText record.
+ * Needs to be wrapped.
*/
public void setTextLength(byte field_2_textLength)
{
this.field_2_textLength = field_2_textLength;
}
+ /**
+ * Set the text length field for the SeriesText record.
+ */
+ public void setTextLength(int field_2_textLength)
+ {
+ if(field_2_textLength > 255) {
+ throw new IllegalArgumentException("Length must be 0-255");
+ }
+ if(field_2_textLength > 127) {
+ this.field_2_textLength = (byte)
+ (field_2_textLength-256);
+ } else {
+ this.field_2_textLength = (byte)field_2_textLength;
+ }
+ }
/**
* Get the undocumented field for the SeriesText record.
fail();
} catch(IllegalArgumentException e) {}
}
+
+ /**
+ * Charts with long titles
+ */
+ public void test45784() {
+ // This used to break
+ HSSFWorkbook wb = openSample("45784.xls");
+ assertEquals(1, wb.getNumberOfSheets());
+
+ }
}