]> source.dussan.org Git - poi.git/commitdiff
Fix bug #44916 - Allow access to the HSSFPatriarch from HSSFSheet once created
authorNick Burch <nick@apache.org>
Thu, 27 May 2010 16:27:09 +0000 (16:27 +0000)
committerNick Burch <nick@apache.org>
Thu, 27 May 2010 16:27:09 +0000 (16:27 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@948880 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPatriarch.java

index 4570c02b9c1fb40998a911e42e341a8577f58d20..93047f340ed1775b27e79856f2b63976dcba02d6 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.7-SNAPSHOT" date="2010-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">44916 - Allow access to the HSSFPatriarch from HSSFSheet once created</action>
            <action dev="POI-DEVELOPERS" type="add">48779 - Allow you to get straight from a CellStyle to a Color, irrespective of if the Color is indexed or inline-defined</action>
            <action dev="POI-DEVELOPERS" type="add">48924 - Allow access of the HWPF DateAndTime underlying date values</action>
            <action dev="POI-DEVELOPERS" type="add">48926 - Initial support for the HWPF revision marks authors list</action>
index 8ceb1df433aa20df343493fc848d8b5a9ddca688..cd667d3b478654faa3958b72bf881a8173def311 100644 (file)
@@ -95,6 +95,7 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
     private final TreeMap<Integer, HSSFRow> _rows;
     protected final InternalWorkbook _book;
     protected final HSSFWorkbook _workbook;
+    private HSSFPatriarch _patriarch;
     private int _firstrow;
     private int _lastrow;
 
@@ -1577,11 +1578,11 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
 
         _sheet.aggregateDrawingRecords(_book.getDrawingManager(), true);
         EscherAggregate agg = (EscherAggregate) _sheet.findFirstRecordBySid(EscherAggregate.sid);
-        HSSFPatriarch patriarch = new HSSFPatriarch(this, agg);
+        _patriarch = new HSSFPatriarch(this, agg);
         agg.clear();     // Initially the behaviour will be to clear out any existing shapes in the sheet when
                          // creating a new patriarch.
-        agg.setPatriarch(patriarch);
-        return patriarch;
+        agg.setPatriarch(_patriarch);
+        return _patriarch;
     }
 
     /**
@@ -1627,11 +1628,13 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
      *  start from scratch!
      */
     public HSSFPatriarch getDrawingPatriarch() {
+        if(_patriarch != null) return _patriarch;
+        
         EscherAggregate agg = getDrawingEscherAggregate();
         if(agg == null) return null;
 
-        HSSFPatriarch patriarch = new HSSFPatriarch(this, agg);
-        agg.setPatriarch(patriarch);
+        _patriarch = new HSSFPatriarch(this, agg);
+        agg.setPatriarch(_patriarch);
 
         // Have it process the records into high level objects
         //  as best it can do (this step may eat anything
@@ -1639,7 +1642,7 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
         agg.convertRecordsToUserModel();
 
         // Return what we could cope with
-        return patriarch;
+        return _patriarch;
     }
 
     /**
index a644f12889c4e40950e9df589462f050c0e4c8d6..c51ca938923c33ce56749ec734684349c1f48db7 100644 (file)
@@ -38,8 +38,7 @@ public final class TestHSSFPatriarch extends TestCase {
                // assert something more interesting
        }
 
-       // TODO - fix bug 44916 (1-May-2008)
-       public void DISABLED_test44916() {
+       public void test44916() {
 
                HSSFWorkbook wb = new HSSFWorkbook();
                HSSFSheet sheet = wb.createSheet();