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]

Reply via email to