dmui 2003/11/17 13:34:06
Modified: src/testcases/org/apache/poi/hssf/record
TestMergeCellsRecord.java
src/java/org/apache/poi/hssf/record MergeCellsRecord.java
Log:
Really clone the merged regions...Thanks to Jason for pointing this out.
Revision Changes Path
1.3 +11 -0
jakarta-poi/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java
Index: TestMergeCellsRecord.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestMergeCellsRecord.java 17 Nov 2003 21:17:41 -0000 1.2
+++ TestMergeCellsRecord.java 17 Nov 2003 21:34:06 -0000 1.3
@@ -55,6 +55,8 @@
import junit.framework.TestCase;
+import org.apache.poi.hssf.record.MergeCellsRecord.MergedRegion;
+
/**
* Make sure the merge cells record behaves
* @author Danny Mui (dmui at apache dot org)
@@ -72,6 +74,15 @@
MergeCellsRecord clone = (MergeCellsRecord)merge.clone();
assertNotSame("Merged and cloned objects are the same", merge, clone);
+
+ MergedRegion mergeRegion = merge.getAreaAt(0);
+ MergedRegion cloneRegion = clone.getAreaAt(0);
+ assertNotSame("Should not point to same objects when cloning", mergeRegion,
cloneRegion);
+ assertEquals("New Clone Row From doesnt match", mergeRegion.row_from,
cloneRegion.row_from);
+ assertEquals("New Clone Row To doesnt match", mergeRegion.row_to,
cloneRegion.row_to);
+ assertEquals("New Clone Col From doesnt match", mergeRegion.col_from,
cloneRegion.col_from);
+ assertEquals("New Clone Col To doesnt match", mergeRegion.col_to,
cloneRegion.col_to);
+
merge.removeAreaAt(0);
assertNotNull("Clone's item not removed", clone.getAreaAt(0));
}
1.8 +7 -1
jakarta-poi/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java
Index: MergeCellsRecord.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MergeCellsRecord.java 17 Nov 2003 21:17:41 -0000 1.7
+++ MergeCellsRecord.java 17 Nov 2003 21:34:06 -0000 1.8
@@ -56,6 +56,7 @@
package org.apache.poi.hssf.record;
import java.util.ArrayList;
+import java.util.Iterator;
import org.apache.poi.util.LittleEndian;
@@ -327,7 +328,12 @@
MergeCellsRecord rec = new MergeCellsRecord();
rec.field_1_num_areas = field_1_num_areas;
rec.field_2_regions = new ArrayList();
- rec.field_2_regions.addAll(field_2_regions);
+ Iterator iterator = field_2_regions.iterator();
+ while (iterator.hasNext()) {
+ MergedRegion oldRegion = (MergedRegion)iterator.next();
+ rec.addArea(oldRegion.row_from, oldRegion.col_from, oldRegion.row_to,
oldRegion.col_to);
+ }
+
return rec;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]