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/01/10 19:04:41 UTC
svn commit: r610855 - in /poi/trunk/src: documentation/content/xdocs/
java/org/apache/poi/hssf/record/ testcases/org/apache/poi/hssf/data/
testcases/org/apache/poi/hssf/record/
testcases/org/apache/poi/hssf/usermodel/
Author: yegor
Date: Thu Jan 10 10:04:38 2008
New Revision: 610855
URL: http://svn.apache.org/viewvc?rev=610855&view=rev
Log:
fixed bug 44200: Sheet not cloneable when Note added to excel cell
Added:
poi/trunk/src/testcases/org/apache/poi/hssf/data/44200.xls (with props)
Modified:
poi/trunk/src/documentation/content/xdocs/changes.xml
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/data/TestDataValidation.xls
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
Modified: poi/trunk/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/changes.xml?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/changes.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/changes.xml Thu Jan 10 10:04:38 2008
@@ -36,6 +36,7 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.0.2-FINAL" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">44200 - Enable cloning of sheets with notes </action>
<action dev="POI-DEVELOPERS" type="add">43008 - Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly</action>
<action dev="POI-DEVELOPERS" type="fix">43058 - Support setting row grouping on files from CR IX, which lack GutsRecords</action>
<action dev="POI-DEVELOPERS" type="fix">31795 - Support cloning of sheets with certain drawing objects on them</action>
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Thu Jan 10 10:04:38 2008
@@ -33,6 +33,7 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.0.2-FINAL" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">44200 - Enable cloning of sheets with notes </action>
<action dev="POI-DEVELOPERS" type="add">43008 - Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly</action>
<action dev="POI-DEVELOPERS" type="fix">43058 - Support setting row grouping on files from CR IX, which lack GutsRecords</action>
<action dev="POI-DEVELOPERS" type="fix">31795 - Support cloning of sheets with certain drawing objects on them</action>
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java Thu Jan 10 10:04:38 2008
@@ -243,4 +243,15 @@
public void setAuthor(String author){
field_5_author = author;
}
+
+ public Object clone() {
+ NoteRecord rec = new NoteRecord();
+ rec.field_1_row = field_1_row;
+ rec.field_2_col = field_2_col;
+ rec.field_3_flags = field_3_flags;
+ rec.field_4_shapeid = field_4_shapeid;
+ rec.field_5_author = field_5_author;
+ return rec;
+ }
+
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java Thu Jan 10 10:04:38 2008
@@ -125,6 +125,15 @@
{
return sid;
}
+
+ public Object clone() {
+ NoteStructureSubRecord rec = new NoteStructureSubRecord();
+ byte[] recdata = new byte[reserved.length];
+ System.arraycopy(reserved, 0, recdata, 0, recdata.length);
+ rec.reserved = recdata;
+ return rec;
+ }
+
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java Thu Jan 10 10:04:38 2008
@@ -251,4 +251,21 @@
buffer.append( "[/TXO]\n" );
return buffer.toString();
}
+
+ public Object clone() {
+
+ TextObjectRecord rec = new TextObjectRecord();
+ rec.str = str;
+
+ rec.setOptions(getOptions());
+ rec.setTextOrientation(getTextOrientation());
+ rec.setReserved4(getReserved4());
+ rec.setReserved5(getReserved5());
+ rec.setReserved6(getReserved6());
+ rec.setTextLength(getTextLength());
+ rec.setFormattingRunLength(getFormattingRunLength());
+ rec.setReserved7(getReserved7());
+ return rec;
+ }
+
}
Added: poi/trunk/src/testcases/org/apache/poi/hssf/data/44200.xls
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/data/44200.xls?rev=610855&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/src/testcases/org/apache/poi/hssf/data/44200.xls
------------------------------------------------------------------------------
svn:executable = *
Propchange: poi/trunk/src/testcases/org/apache/poi/hssf/data/44200.xls
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/data/TestDataValidation.xls
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/data/TestDataValidation.xls?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
Binary files - no diff available.
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java Thu Jan 10 10:04:38 2008
@@ -79,4 +79,27 @@
System.arraycopy(ser, 4, recdata, 0, recdata.length);
assertTrue(Arrays.equals(data, recdata));
}
+
+ public void testClone()
+ {
+ NoteRecord record = new NoteRecord();
+
+ record.setRow((short)1);
+ record.setColumn((short)2);
+ record.setFlags(NoteRecord.NOTE_VISIBLE);
+ record.setShapeId((short)1026);
+ record.setAuthor("Apache Software Foundation");
+
+ NoteRecord cloned = (NoteRecord)record.clone();
+ assertEquals(record.getRow(), cloned.getRow());
+ assertEquals(record.getColumn(), cloned.getColumn());
+ assertEquals(record.getFlags(), cloned.getFlags());
+ assertEquals(record.getShapeId(), cloned.getShapeId());
+ assertEquals(record.getAuthor(), cloned.getAuthor());
+
+ //finally check that the serialized data is the same
+ byte[] src = record.serialize();
+ byte[] cln = cloned.serialize();
+ assertTrue(Arrays.equals(src, cln));
+ }
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java Thu Jan 10 10:04:38 2008
@@ -65,4 +65,16 @@
assertEquals(ser.length - 4, data.length);
}
+
+ public void testClone()
+ {
+ NoteStructureSubRecord record = new NoteStructureSubRecord();
+ byte[] src = record.serialize();
+
+ NoteStructureSubRecord cloned = (NoteStructureSubRecord)record.clone();
+ byte[] cln = cloned.serialize();
+
+ assertEquals(record.getRecordSize(), cloned.getRecordSize());
+ assertTrue(Arrays.equals(src, cln));
+ }
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java Thu Jan 10 10:04:38 2008
@@ -117,4 +117,44 @@
}
}
+
+ /**
+ * Test cloning
+ */
+ public void testClone() {
+ String text = "Hello, World";
+ HSSFRichTextString str = new HSSFRichTextString(text);
+
+ TextObjectRecord obj = new TextObjectRecord();
+ int frLength = ( str.numFormattingRuns() + 1 ) * 8;
+ obj.setFormattingRunLength( (short) frLength );
+ obj.setTextLength( (short) str.length() );
+ obj.setReserved1(true);
+ obj.setReserved2((short)2);
+ obj.setReserved3((short)3);
+ obj.setReserved4((short)4);
+ obj.setReserved5((short)5);
+ obj.setReserved6((short)6);
+ obj.setReserved7((short)7);
+ obj.setStr( str );
+
+
+ TextObjectRecord cloned = (TextObjectRecord)obj.clone();
+ assertEquals(obj.getReserved2(), cloned.getReserved2());
+ assertEquals(obj.getReserved3(), cloned.getReserved3());
+ assertEquals(obj.getReserved4(), cloned.getReserved4());
+ assertEquals(obj.getReserved5(), cloned.getReserved5());
+ assertEquals(obj.getReserved6(), cloned.getReserved6());
+ assertEquals(obj.getReserved7(), cloned.getReserved7());
+ assertEquals(obj.getRecordSize(), cloned.getRecordSize());
+ assertEquals(obj.getOptions(), cloned.getOptions());
+ assertEquals(obj.getHorizontalTextAlignment(), cloned.getHorizontalTextAlignment());
+ assertEquals(obj.getFormattingRunLength(), cloned.getFormattingRunLength());
+ assertEquals(obj.getStr().getString(), cloned.getStr().getString());
+
+ //finally check that the serialized data is the same
+ byte[] src = obj.serialize();
+ byte[] cln = cloned.serialize();
+ assertTrue(Arrays.equals(src, cln));
+ }
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=610855&r1=610854&r2=610855&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Thu Jan 10 10:04:38 2008
@@ -913,7 +913,27 @@
}
-
+ /**
+ * Bug 44200: Sheet not cloneable when Note added to excel cell
+ */
+ public void test44200() throws Exception {
+ FileInputStream in = new FileInputStream(new File(cwd, "44200.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(in);
+ in.close();
+
+ wb.cloneSheet(0);
+ assertTrue("No Exceptions while cloning sheet", true);
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+ out.close();
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ assertTrue("No Exceptions while reading file", true);
+
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org