Author: nick
Date: Sun Dec 27 17:13:44 2009
New Revision: 894081
URL: http://svn.apache.org/viewvc?rev=894081&view=rev
Log:
Make InternalSheet capture the feature related records
Modified:
poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java?rev=894081&r1=894080&r2=894081&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java Sun Dec 27
17:13:44 2009
@@ -35,6 +35,8 @@
import org.apache.poi.hssf.record.DrawingRecord;
import org.apache.poi.hssf.record.EOFRecord;
import org.apache.poi.hssf.record.EscherAggregate;
+import org.apache.poi.hssf.record.FeatHdrRecord;
+import org.apache.poi.hssf.record.FeatRecord;
import org.apache.poi.hssf.record.GridsetRecord;
import org.apache.poi.hssf.record.GutsRecord;
import org.apache.poi.hssf.record.IndexRecord;
@@ -265,6 +267,12 @@
continue;
}
+ if (recSid == FeatRecord.sid ||
+ recSid == FeatHdrRecord.sid) {
+ records.add(rec);
+ continue;
+ }
+
if (recSid == EOFRecord.sid) {
records.add(rec);
break;
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java?rev=894081&r1=894080&r2=894081&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java Sun
Dec 27 17:13:44 2009
@@ -18,7 +18,9 @@
package org.apache.poi.hssf.record;
import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.model.InternalSheet;
import org.apache.poi.hssf.model.InternalWorkbook;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFTestHelper;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -34,8 +36,12 @@
HSSFTestDataSamples.openSampleWorkbook("46136-WithWarnings.xls");
InternalWorkbook wb = HSSFTestHelper.getWorkbookForTest(hssf);
+ assertEquals(1, hssf.getNumberOfSheets());
+
int countFR = 0;
int countFRH = 0;
+
+ // Check on the workbook, but shouldn't be there!
for(Record r : wb.getRecords()) {
if(r instanceof FeatRecord) {
countFR++;
@@ -51,19 +57,41 @@
assertEquals(0, countFR);
assertEquals(0, countFRH);
+
+ // Now check on the sheet
+ HSSFSheet s = hssf.getSheetAt(0);
+ InternalSheet sheet = HSSFTestHelper.getSheetForTest(s);
+
+ for(RecordBase rb : sheet.getRecords()) {
+ if(rb instanceof Record) {
+ Record r = (Record)rb;
+ if(r instanceof FeatRecord) {
+ countFR++;
+ } else if (r.getSid() == FeatRecord.sid) {
+ countFR++;
+ }
+ if(r instanceof FeatHdrRecord) {
+ countFRH++;
+ } else if (r.getSid() == FeatHdrRecord.sid) {
+ countFRH++;
+ }
+ }
+ }
+
+ assertEquals(0, countFR);
+ assertEquals(0, countFRH);
}
- /**
- * TODO - make this work!
- * (Need to have the Internal Workbook capture it or something)
- */
- public void DISABLEDtestReadFeatRecord() throws Exception {
+ public void testReadFeatRecord() throws Exception {
HSSFWorkbook hssf =
HSSFTestDataSamples.openSampleWorkbook("46136-NoWarnings.xls");
InternalWorkbook wb = HSSFTestHelper.getWorkbookForTest(hssf);
FeatRecord fr = null;
+ assertEquals(1, hssf.getNumberOfSheets());
+
+ // First check it isn't on the Workbook
int countFR = 0;
int countFRH = 0;
for(Record r : wb.getRecords()) {
@@ -80,6 +108,30 @@
}
}
+ assertEquals(0, countFR);
+ assertEquals(0, countFRH);
+
+ // Now find it on our sheet
+ HSSFSheet s = hssf.getSheetAt(0);
+ InternalSheet sheet = HSSFTestHelper.getSheetForTest(s);
+
+ for(RecordBase rb : sheet.getRecords()) {
+ if(rb instanceof Record) {
+ Record r = (Record)rb;
+ if(r instanceof FeatRecord) {
+ fr = (FeatRecord)r;
+ countFR++;
+ } else if (r.getSid() == FeatRecord.sid) {
+ countFR++;
+ }
+ if(r instanceof FeatHdrRecord) {
+ countFRH++;
+ } else if (r.getSid() == FeatHdrRecord.sid) {
+ countFRH++;
+ }
+ }
+ }
+
assertEquals(1, countFR);
assertEquals(1, countFRH);
assertNotNull(fr);
Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java?rev=894081&r1=894080&r2=894081&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
Sun Dec 27 17:13:44 2009
@@ -16,6 +16,7 @@
==================================================================== */
package org.apache.poi.hssf.usermodel;
+import org.apache.poi.hssf.model.InternalSheet;
import org.apache.poi.hssf.model.InternalWorkbook;
/**
@@ -30,4 +31,7 @@
public static InternalWorkbook getWorkbookForTest(HSSFWorkbook wb) {
return wb.getWorkbook();
}
+ public static InternalSheet getSheetForTest(HSSFSheet sheet) {
+ return sheet.getSheet();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]