poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ye...@apache.org
Subject svn commit: r657731 [2/5] - in /poi/tags/REL_3_1_BETA2/src: contrib/src/org/apache/poi/hssf/usermodel/contrib/ documentation/ documentation/content/xdocs/ documentation/content/xdocs/hssf/ java/org/apache/poi/hssf/dev/ java/org/apache/poi/hssf/model/ j...
Date Mon, 19 May 2008 06:35:32 GMT
Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/model/Sheet.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/model/Sheet.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/model/Sheet.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/model/Sheet.java Sun May 18 23:35:30 2008
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -16,7 +15,6 @@
    limitations under the License.
 ==================================================================== */
 
-
 package org.apache.poi.hssf.model;
 
 import org.apache.poi.hssf.record.*;
@@ -57,9 +55,7 @@
  * @see org.apache.poi.hssf.usermodel.HSSFSheet
  * @version 1.0-pre
  */
-
-public class Sheet implements Model
-{
+public final class Sheet implements Model {
     public static final short   LeftMargin = 0;
     public static final short   RightMargin = 1;
     public static final short   TopMargin = 2;
@@ -97,9 +93,9 @@
     protected ObjectProtectRecord        objprotect        =     null;
     protected ScenarioProtectRecord      scenprotect       =     null;
     protected PasswordRecord             password          =     null;
-    protected List                       condFormatting    =     new ArrayList();;
+    protected List                       condFormatting    =     new ArrayList();
 
-    /** Add an UncalcedRecord if not true indicating formulas have not been calculated */ 
+    /** Add an UncalcedRecord if not true indicating formulas have not been calculated */
     protected boolean uncalced = false;
 	
     public static final byte PANE_LOWER_RIGHT = (byte)0;
@@ -108,7 +104,7 @@
     public static final byte PANE_UPPER_LEFT = (byte)3;
 
     /**
-     * Creates new Sheet with no intialization --useless at this point
+     * Creates new Sheet with no initialization --useless at this point
      * @see #createSheet(List,int,int)
      */
     public Sheet()
@@ -166,7 +162,7 @@
                 }
             }
             else if (rec.getSid() == UncalcedRecord.sid) {
-            	retval.uncalced = true; 
+                retval.uncalced = true;
             }
             else if (rec.getSid() == DimensionsRecord.sid)
             {
@@ -188,14 +184,14 @@
             }
             else if ( rec.getSid() == CFHeaderRecord.sid )
             {
-            	CFRecordsAggregate cfAgg = CFRecordsAggregate.createCFAggregate(recs, k);
-            	retval.condFormatting.add(cfAgg);
-            	rec = cfAgg;
+                CFRecordsAggregate cfAgg = CFRecordsAggregate.createCFAggregate(recs, k);
+                retval.condFormatting.add(cfAgg);
+                rec = cfAgg;
             }
             else if ( rec.getSid() == CFRuleRecord.sid )
             {
-            	// Skip it since it is processed by CFRecordsAggregate
-            	rec = null;
+                // Skip it since it is processed by CFRecordsAggregate
+                rec = null;
             }
             else if (rec.getSid() == ColumnInfoRecord.sid)
             {
@@ -244,7 +240,7 @@
                 if ( isfirstrow )
                 {
                     retval.rows = new RowRecordsAggregate();
-                    rec = retval.rows;                    
+                    rec = retval.rows;
                     isfirstrow = false;
                 }
                 retval.rows.insertRow(row);
@@ -256,7 +252,7 @@
             else if ( rec.getSid() == GridsetRecord.sid )
             {
                 retval.gridset = (GridsetRecord) rec;
-            }            
+            }
             else if ( rec.getSid() == HeaderRecord.sid && bofEofNestingLevel == 1)
             {
                 retval.header = (HeaderRecord) rec;
@@ -301,32 +297,32 @@
             {
                 rec = null;
             }
-            
-			else if ( rec.getSid() == ProtectRecord.sid )
-			{
-				retval.protect = (ProtectRecord) rec;
-			} 
-			else if ( rec.getSid() == ObjectProtectRecord.sid )
-			{
-				retval.objprotect = (ObjectProtectRecord) rec;
-			} 
-			else if ( rec.getSid() == ScenarioProtectRecord.sid )
-			{
-				retval.scenprotect = (ScenarioProtectRecord) rec;
-			} 
-			else if ( rec.getSid() == PasswordRecord.sid )
-			{
-				retval.password = (PasswordRecord) rec;
-			} 
-			else if (rec.getSid() == PageBreakRecord.HORIZONTAL_SID) 
-			{	
-				retval.rowBreaks = (PageBreakRecord)rec;				
-			}
-			else if (rec.getSid() == PageBreakRecord.VERTICAL_SID) 
-			{	
-				retval.colBreaks = (PageBreakRecord)rec;				
-			}
-            
+
+            else if ( rec.getSid() == ProtectRecord.sid )
+            {
+                retval.protect = (ProtectRecord) rec;
+            }
+            else if ( rec.getSid() == ObjectProtectRecord.sid )
+            {
+                retval.objprotect = (ObjectProtectRecord) rec;
+            }
+            else if ( rec.getSid() == ScenarioProtectRecord.sid )
+            {
+                retval.scenprotect = (ScenarioProtectRecord) rec;
+            }
+            else if ( rec.getSid() == PasswordRecord.sid )
+            {
+                retval.password = (PasswordRecord) rec;
+            }
+            else if (rec.getSid() == PageBreakRecord.HORIZONTAL_SID)
+            {
+                retval.rowBreaks = (PageBreakRecord)rec;
+            }
+            else if (rec.getSid() == PageBreakRecord.VERTICAL_SID)
+            {
+                retval.colBreaks = (PageBreakRecord)rec;
+            }
+
             if (rec != null)
             {
                 records.add(rec);
@@ -351,9 +347,9 @@
     /**
      * Clones the low level records of this sheet and returns the new sheet instance.
      * This method is implemented by adding methods for deep cloning to all records that
-     * can be added to a sheet. The <b>Record</b> object does not implement cloneable. 
+     * can be added to a sheet. The <b>Record</b> object does not implement cloneable.
      * When adding a new record, implement a public clone method if and only if the record
-     * belongs to a sheet. 
+     * belongs to a sheet.
      */
     public Sheet cloneSheet()
     {
@@ -374,7 +370,7 @@
           ValueRecordsAggregate vrAgg = (ValueRecordsAggregate)rec;
           for (Iterator cellIter = vrAgg.getIterator();cellIter.hasNext();) {
             Record valRec = (Record)cellIter.next();
-            
+
             if (valRec instanceof FormulaRecordAggregate) {
                 FormulaRecordAggregate fmAgg = (FormulaRecordAggregate)valRec;
                 Record fmAggRec = fmAgg.getFormulaRecord();
@@ -459,9 +455,9 @@
         records.add(retval.rowBreaks);
         retval.colBreaks = new PageBreakRecord(PageBreakRecord.VERTICAL_SID);
         records.add(retval.colBreaks);
-        
+
         retval.header = (HeaderRecord) retval.createHeader();
-        records.add( retval.header );        
+        records.add( retval.header );
         retval.footer = (FooterRecord) retval.createFooter();
         records.add( retval.footer );
         records.add( retval.createHCenter() );
@@ -479,11 +475,11 @@
         retval.dimsloc = records.size()-1;
         records.add(retval.windowTwo = retval.createWindowTwo());
         retval.setLoc(records.size() - 1);
-        retval.selection = 
+        retval.selection =
                 (SelectionRecord) retval.createSelection();
         records.add(retval.selection);
-		retval.protect = (ProtectRecord) retval.createProtect();
-		records.add(retval.protect);
+        retval.protect = (ProtectRecord) retval.createProtect();
+        records.add(retval.protect);
         records.add(retval.createEOF());
 
 
@@ -511,26 +507,25 @@
         }
     }
 
-    //public int addMergedRegion(short rowFrom, short colFrom, short rowTo,
-    public int addMergedRegion(int rowFrom, short colFrom, int rowTo,
-                               short colTo)
-    {
-    	// Validate input
-    	if(rowTo < rowFrom) {
-    		throw new IllegalArgumentException("The row to ("+rowTo+") must be >= the row from ("+rowFrom+")");
-    	}
-    	if(colTo < colFrom) {
-    		throw new IllegalArgumentException("The col to ("+colTo+") must be >= the col from ("+colFrom+")");
-    	}
-    	
+    public int addMergedRegion(int rowFrom, short colFrom, int rowTo, short colTo) {
+        // Validate input
+        if (rowTo < rowFrom) {
+            throw new IllegalArgumentException("The 'to' row (" + rowTo
+                    + ") must not be less than the 'from' row (" + rowFrom + ")");
+        }
+        if (colTo < colFrom) {
+            throw new IllegalArgumentException("The 'to' col (" + colTo
+                    + ") must not be less than the 'from' col (" + colFrom + ")");
+        }
+
         if (merged == null || merged.getNumAreas() == 1027)
         {
             merged = ( MergeCellsRecord ) createMergedCells();
-            mergedRecords.add(merged);            
+            mergedRecords.add(merged);
             records.add(records.size() - 1, merged);
         }
         merged.addArea(rowFrom, colFrom, rowTo, colTo);
-        return numMergedRegions++; 
+        return numMergedRegions++;
     }
 
     public void removeMergedRegion(int index)
@@ -538,15 +533,15 @@
         //safety checks
         if (index >= numMergedRegions || mergedRecords.size() == 0)
            return;
-            
+
         int pos = 0;
         int startNumRegions = 0;
-        
+
         //optimisation for current record
         if (numMergedRegions - index < merged.getNumAreas())
         {
             pos = mergedRecords.size() - 1;
-            startNumRegions = numMergedRegions - merged.getNumAreas(); 
+            startNumRegions = numMergedRegions - merged.getNumAreas();
         }
         else
         {
@@ -558,7 +553,7 @@
                     pos = n;
                     break;
                 }
-                startNumRegions += record.getNumAreas(); 
+                startNumRegions += record.getNumAreas();
             }
         }
 
@@ -567,17 +562,17 @@
         numMergedRegions--;
         if (rec.getNumAreas() == 0)
         {
-			mergedRecords.remove(pos);
-			//get rid of the record from the sheet
-			records.remove(merged);            
+            mergedRecords.remove(pos);
+            //get rid of the record from the sheet
+            records.remove(merged);
             if (merged == rec) {
-            	//pull up the LAST record for operations when we finally
-            	//support continue records for mergedRegions
-            	if (mergedRecords.size() > 0) {
-            		merged = (MergeCellsRecord) mergedRecords.get(mergedRecords.size() - 1);
-            	} else {
-            		merged = null;
-            	}
+                //pull up the LAST record for operations when we finally
+                //support continue records for mergedRegions
+                if (mergedRecords.size() > 0) {
+                    merged = (MergeCellsRecord) mergedRecords.get(mergedRecords.size() - 1);
+                } else {
+                    merged = null;
+                }
             }
         }
     }
@@ -587,10 +582,10 @@
         //safety checks
         if (index >= numMergedRegions || mergedRecords.size() == 0)
             return null;
-            
+
         int pos = 0;
         int startNumRegions = 0;
-        
+
         //optimisation for current record
         if (numMergedRegions - index < merged.getNumAreas())
         {
@@ -607,7 +602,7 @@
                     pos = n;
                     break;
                 }
-                startNumRegions += record.getNumAreas(); 
+                startNumRegions += record.getNumAreas();
             }
         }
         return ((MergeCellsRecord) mergedRecords.get(pos)).getAreaAt(index - startNumRegions);
@@ -620,62 +615,62 @@
     // Find correct position to add new CF record
     private int findConditionalFormattingPosition()
     {
-    	// This is default. 
-    	// If the algorithm does not find the right position,
-    	// this one will be used (this is a position before EOF record)
-    	int index = records.size()-2;
-    	
-    	for( int i=index; i>=0; i-- )
-    	{
-    		Record rec = (Record)records.get(i);
-    		short sid = rec.getSid();
-    		
-    		// CFRecordsAggregate records already exist, just add to the end
-    		if (rec instanceof CFRecordsAggregate)	{ return i+1; }
-    		
-    		if( sid == (short)0x00ef )				{ return i+1; }// PHONETICPR
-    		if( sid == (short)0x015f )				{ return i+1; }// LABELRANGES
-    		if( sid == MergeCellsRecord.sid )		{ return i+1; }
-    		if( sid == (short)0x0099 )				{ return i+1; }// STANDARDWIDTH
-    		if( sid == SelectionRecord.sid )		{ return i+1; }
-    		if( sid == PaneRecord.sid )				{ return i+1; }
-    		if( sid == SCLRecord.sid ) 				{ return i+1; }
-    		if( sid == WindowTwoRecord.sid )		{ return i+1; }
-    	}
-    	
-    	return index;
+        // This is default.
+        // If the algorithm does not find the right position,
+        // this one will be used (this is a position before EOF record)
+        int index = records.size()-2;
+
+        for( int i=index; i>=0; i-- )
+        {
+            Record rec = (Record)records.get(i);
+            short sid = rec.getSid();
+
+            // CFRecordsAggregate records already exist, just add to the end
+            if (rec instanceof CFRecordsAggregate)    { return i+1; }
+
+            if( sid == (short)0x00ef )                { return i+1; }// PHONETICPR
+            if( sid == (short)0x015f )                { return i+1; }// LABELRANGES
+            if( sid == MergeCellsRecord.sid )        { return i+1; }
+            if( sid == (short)0x0099 )                { return i+1; }// STANDARDWIDTH
+            if( sid == SelectionRecord.sid )        { return i+1; }
+            if( sid == PaneRecord.sid )                { return i+1; }
+            if( sid == SCLRecord.sid )                 { return i+1; }
+            if( sid == WindowTwoRecord.sid )        { return i+1; }
+        }
+
+        return index;
     }
 
     public int addConditionalFormatting(CFRecordsAggregate cfAggregate)
     {
-    	int index = findConditionalFormattingPosition();
-    	records.add(index, cfAggregate);
-    	condFormatting.add(cfAggregate);
-    	return condFormatting.size()-1;
+        int index = findConditionalFormattingPosition();
+        records.add(index, cfAggregate);
+        condFormatting.add(cfAggregate);
+        return condFormatting.size()-1;
     }
 
     public void removeConditionalFormatting(int index)
     {
         if (index >= 0 && index <= condFormatting.size()-1 )
         {
-        	CFRecordsAggregate cfAggregate = getCFRecordsAggregateAt(index);
-        	records.remove(cfAggregate);
-        	condFormatting.remove(index);
+            CFRecordsAggregate cfAggregate = getCFRecordsAggregateAt(index);
+            records.remove(cfAggregate);
+            condFormatting.remove(index);
         }
     }
-    
+
     public CFRecordsAggregate getCFRecordsAggregateAt(int index)
     {
         if (index >= 0 && index <= condFormatting.size()-1 )
         {
-        	return (CFRecordsAggregate) condFormatting.get(index);
+            return (CFRecordsAggregate) condFormatting.get(index);
         }
         return null;
     }
-    
+
     public int getNumConditionalFormattings()
     {
-    	return condFormatting.size();
+        return condFormatting.size();
     }
 
     /**
@@ -711,8 +706,6 @@
      *
      * @see org.apache.poi.hssf.record.DimensionsRecord
      */
-
-    //public void setDimensions(short firstrow, short firstcol, short lastrow,
     public void setDimensions(int firstrow, short firstcol, int lastrow,
                               short lastcol)
     {
@@ -735,7 +728,7 @@
 
     /**
      * set the locator for where we should look for the next value record.  The
-     * algorythm will actually start here and find the correct location so you
+     * algorithm will actually start here and find the correct location so you
      * can set this to 0 and watch performance go down the tubes but it will work.
      * After a value is set this is automatically advanced.  Its also set by the
      * create method.  So you probably shouldn't mess with this unless you have
@@ -813,13 +806,13 @@
         for (int k = 0; k < records.size(); k++)
         {
             Record record = (( Record ) records.get(k));
-            
+
             // Don't write out UncalcedRecord entries, as
             //  we handle those specially just below
             if (record instanceof UncalcedRecord) {
-            	continue;
+                continue;
             }
-            
+
             // Once the rows have been found in the list of records, start
             //  writing out the blocked row information. This includes the DBCell references
             if (record instanceof RowRecordsAggregate) {
@@ -829,13 +822,13 @@
             } else {
               pos += record.serialize(pos, data );   // rec.length;
             }
-            
+
             // If the BOF record was just serialized then add the IndexRecord
             if (record.getSid() == BOFRecord.sid) {
               // Add an optional UncalcedRecord
               if (uncalced) {
-            	  UncalcedRecord rec = new UncalcedRecord();
-            	  pos += rec.serialize(pos, data);
+                  UncalcedRecord rec = new UncalcedRecord();
+                  pos += rec.serialize(pos, data);
               }
               //Can there be more than one BOF for a sheet? If not then we can
               //remove this guard. So be safe it is left here.
@@ -871,7 +864,7 @@
             log.log(POILogger.DEBUG, "Sheet.serialize returning ");
         return pos-offset;
     }
-    
+
     private int serializeIndexRecord(final int BOFRecordIndex, final int offset, byte[] data) {
       IndexRecord index = new IndexRecord();
       index.setFirstRow(rows.getFirstRowNum());
@@ -906,7 +899,7 @@
       }
       return index.serialize(offset, data);
     }
-    
+
 
     /**
      * Create a row record.  (does not add it to the records contained in this sheet)
@@ -930,8 +923,6 @@
      * @return LabelSSTRecord newly created containing your SST Index, row,col.
      * @see org.apache.poi.hssf.record.SSTRecord
      */
-
-    //public LabelSSTRecord createLabelSST(short row, short col, int index)
     public LabelSSTRecord createLabelSST(int row, short col, int index)
     {
         log.logFormatted(POILogger.DEBUG, "create labelsst row,col,index %,%,%",
@@ -957,8 +948,6 @@
      *
      * @return NumberRecord for that row, col containing that value as added to the sheet
      */
-
-    //public NumberRecord createNumber(short row, short col, double value)
     public NumberRecord createNumber(int row, short col, double value)
     {
         log.logFormatted(POILogger.DEBUG, "create number row,col,value %,%,%",
@@ -968,7 +957,6 @@
         });
         NumberRecord rec = new NumberRecord();
 
-        //rec.setRow(( short ) row);
         rec.setRow(row);
         rec.setColumn(col);
         rec.setValue(value);
@@ -982,18 +970,14 @@
      * @param row - the row the BlankRecord is a member of
      * @param col - the column the BlankRecord is a member of
      */
-
-    //public BlankRecord createBlank(short row, short col)
     public BlankRecord createBlank(int row, short col)
     {
-        //log.logFormatted(POILogger.DEBUG, "create blank row,col %,%", new short[]
         log.logFormatted(POILogger.DEBUG, "create blank row,col %,%", new int[]
         {
             row, col
         });
         BlankRecord rec = new BlankRecord();
 
-        //rec.setRow(( short ) row);
         rec.setRow(row);
         rec.setColumn(col);
         rec.setXFIndex(( short ) 0x0f);
@@ -1009,12 +993,9 @@
      * @param formula - a String representing the formula.  To be parsed to PTGs
      * @return bogus/useless formula record
      */
-
-    //public FormulaRecord createFormula(short row, short col, String formula)
     public FormulaRecord createFormula(int row, short col, String formula)
     {
         log.logFormatted(POILogger.DEBUG, "create formula row,col,formula %,%,%",
-                         //new short[]
                          new int[]
         {
             row, col
@@ -1052,8 +1033,6 @@
      * @param row the row to add the cell value to
      * @param col the cell value record itself.
      */
-
-    //public void addValueRecord(short row, CellValueRecordInterface col)
     public void addValueRecord(int row, CellValueRecordInterface col)
     {
         checkCells();
@@ -1075,29 +1054,6 @@
             d.setFirstCol(col.getColumn());
         }
         cells.insertCell(col);
-
-        /*
-         * for (int k = loc; k < records.size(); k++)
-         * {
-         *   Record rec = ( Record ) records.get(k);
-         *
-         *   if (rec.getSid() == RowRecord.sid)
-         *   {
-         *       RowRecord rowrec = ( RowRecord ) rec;
-         *
-         *       if (rowrec.getRowNumber() == col.getRow())
-         *       {
-         *           records.add(k + 1, col);
-         *           loc = k;
-         *           if (rowrec.getLastCol() <= col.getColumn())
-         *           {
-         *               rowrec.setLastCol((( short ) (col.getColumn() + 1)));
-         *           }
-         *           break;
-         *       }
-         *   }
-         * }
-         */
     }
 
     /**
@@ -1109,8 +1065,6 @@
      * @param col - a record supporting the CellValueRecordInterface.
      * @see org.apache.poi.hssf.record.CellValueRecordInterface
      */
-
-    //public void removeValueRecord(short row, CellValueRecordInterface col)
     public void removeValueRecord(int row, CellValueRecordInterface col)
     {
         checkCells();
@@ -1118,27 +1072,6 @@
                          new int[]{row, dimsloc} );
         loc = dimsloc;
         cells.removeCell(col);
-
-        /*
-         * for (int k = loc; k < records.size(); k++)
-         * {
-         *   Record rec = ( Record ) records.get(k);
-         *
-         *   // checkDimsLoc(rec,k);
-         *   if (rec.isValue())
-         *   {
-         *       CellValueRecordInterface cell =
-         *           ( CellValueRecordInterface ) rec;
-         *
-         *       if ((cell.getRow() == col.getRow())
-         *               && (cell.getColumn() == col.getColumn()))
-         *       {
-         *           records.remove(k);
-         *           break;
-         *       }
-         *   }
-         * }
-         */
     }
 
     /**
@@ -1160,26 +1093,10 @@
         //The ValueRecordsAggregate use a tree map underneath.
         //The tree Map uses the CellValueRecordInterface as both the
         //key and the value, if we dont do a remove, then
-        //the previous instance of the key is retained, effectively using 
+        //the previous instance of the key is retained, effectively using
         //double the memory
         cells.removeCell(newval);
         cells.insertCell(newval);
-
-        /*
-         * CellValueRecordInterface oldval = getNextValueRecord();
-         *
-         * while (oldval != null)
-         * {
-         *   if (oldval.isEqual(newval))
-         *   {
-         *       records.set(( short ) (getLoc() - 1), newval);
-         *       return;
-         *   }
-         *   oldval = getNextValueRecord();
-         * }
-         * addValueRecord(newval.getRow(), newval);
-         * setLoc(dimsloc);
-         */
     }
 
     /**
@@ -1218,41 +1135,6 @@
 
         rows.insertRow(row);
 
-        /*
-         * for (int k = loc; k < records.size(); k++)
-         * {
-         *   Record rec = ( Record ) records.get(k);
-         *
-         *   if (rec.getSid() == IndexRecord.sid)
-         *   {
-         *       index = ( IndexRecord ) rec;
-         *   }
-         *   if (rec.getSid() == RowRecord.sid)
-         *   {
-         *       RowRecord rowrec = ( RowRecord ) rec;
-         *
-         *       if (rowrec.getRowNumber() > row.getRowNumber())
-         *       {
-         *           records.add(k, row);
-         *           loc = k;
-         *           break;
-         *       }
-         *   }
-         *   if (rec.getSid() == WindowTwoRecord.sid)
-         *   {
-         *       records.add(k, row);
-         *       loc = k;
-         *       break;
-         *   }
-         * }
-         * if (index != null)
-         * {
-         *   if (index.getLastRowAdd1() <= row.getRowNumber())
-         *   {
-         *       index.setLastRowAdd1(row.getRowNumber() + 1);
-         *   }
-         * }
-         */
         if (log.check( POILogger.DEBUG ))
             log.log(POILogger.DEBUG, "exit addRow");
     }
@@ -1268,33 +1150,9 @@
     public void removeRow(RowRecord row)
     {
         checkRows();
-        // IndexRecord index = null;
 
         setLoc(getDimsLoc());
         rows.removeRow(row);
-
-        /*
-         * for (int k = loc; k < records.size(); k++)
-         * {
-         *   Record rec = ( Record ) records.get(k);
-         *
-         *   // checkDimsLoc(rec,k);
-         *   if (rec.getSid() == RowRecord.sid)
-         *   {
-         *       RowRecord rowrec = ( RowRecord ) rec;
-         *
-         *       if (rowrec.getRowNumber() == row.getRowNumber())
-         *       {
-         *           records.remove(k);
-         *           break;
-         *       }
-         *   }
-         *   if (rec.getSid() == WindowTwoRecord.sid)
-         *   {
-         *       break;
-         *   }
-         * }
-         */
     }
 
     /**
@@ -1325,67 +1183,9 @@
             return null;
         }
         return ( CellValueRecordInterface ) valueRecIterator.next();
-
-        /*
-         *      if (this.getLoc() < records.size())
-         *     {
-         *         for (int k = getLoc(); k < records.size(); k++)
-         *         {
-         *             Record rec = ( Record ) records.get(k);
-         *
-         *             this.setLoc(k + 1);
-         *             if (rec instanceof CellValueRecordInterface)
-         *             {
-         *                 return ( CellValueRecordInterface ) rec;
-         *             }
-         *         }
-         *     }
-         *     return null;
-         */
     }
 
     /**
-     * get the NEXT RowRecord or CellValueRecord(from LOC).  The first record that
-     * is a Row record or CellValueRecord(starting at LOC) will be returned.
-     * <P>
-     * This method is "loc" sensitive.  Meaning you need to set LOC to where you
-     * want it to start searching.  If you don't know do this: setLoc(getDimsLoc).
-     * When adding several rows you can just start at the last one by leaving loc
-     * at what this sets it to.  For this method, set loc to dimsloc to start with.
-     * subsequent calls will return rows in (physical) sequence or NULL when you get to the end.
-     *
-     * @return RowRecord representing the next row record or CellValueRecordInterface
-     *  representing the next cellvalue or NULL if there are no more
-     * @see #setLoc(int)
-     *
-     */
-
-/*    public Record getNextRowOrValue()
-    {
-        POILogger.DEBUG((new StringBuffer("getNextRow loc= ")).append(loc)
-            .toString());
-        if (this.getLoc() < records.size())
-        {
-            for (int k = this.getLoc(); k < records.size(); k++)
-            {
-                Record rec = ( Record ) records.get(k);
-
-                this.setLoc(k + 1);
-                if (rec.getSid() == RowRecord.sid)
-                {
-                    return rec;
-                }
-                else if (rec.isValue())
-                {
-                    return rec;
-                }
-            }
-        }
-        return null;
-    }
- */
-
-    /**
      * get the NEXT RowRecord (from LOC).  The first record that is a Row record
      * (starting at LOC) will be returned.
      * <P>
@@ -1413,20 +1213,6 @@
             return null;
         }
         return ( RowRecord ) rowRecIterator.next();
-
-/*        if (this.getLoc() < records.size())
-        {
-            for (int k = this.getLoc(); k < records.size(); k++)
-            {
-                Record rec = ( Record ) records.get(k);
-
-                this.setLoc(k + 1);
-                if (rec.getSid() == RowRecord.sid)
-                {
-                    return ( RowRecord ) rec;
-                }
-            }
-        }*/
     }
 
     /**
@@ -1445,34 +1231,10 @@
      * @see #setLoc(int)
      *
      */
-
-    //public RowRecord getRow(short rownum)
-    public RowRecord getRow(int rownum)
-    {
+    public RowRecord getRow(int rownum) {
         if (log.check( POILogger.DEBUG ))
             log.log(POILogger.DEBUG, "getNextRow loc= " + loc);
         return rows.getRow(rownum);
-
-        /*
-         * if (this.getLoc() < records.size())
-         * {
-         *   for (int k = this.getLoc(); k < records.size(); k++)
-         *   {
-         *       Record rec = ( Record ) records.get(k);
-         *
-         *       this.setLoc(k + 1);
-         *       if (rec.getSid() == RowRecord.sid)
-         *       {
-         *           if ((( RowRecord ) rec).getRowNumber() == rownum)
-         *           {
-         *               return ( RowRecord ) rec;
-         *           }
-         *       }
-         *   }
-         * }
-         */
-
-        // return null;
     }
 
     /**
@@ -1489,7 +1251,6 @@
         retval.setVersion(( short ) 0x600);
         retval.setType(( short ) 0x010);
 
-        // retval.setBuild((short)0x10d3);
         retval.setBuild(( short ) 0x0dbb);
         retval.setBuildYear(( short ) 1996);
         retval.setHistoryBitMask(0xc1);
@@ -1807,7 +1568,7 @@
      * @see org.apache.poi.hssf.record.ColumnInfoRecord
      * @return record containing a ColumnInfoRecord
      */
-
+    // TODO change return type to ColumnInfoRecord 
     protected Record createColInfo()
     {
         return ColumnInfoRecordsAggregate.createColInfo();
@@ -1830,12 +1591,12 @@
 
     public boolean isGridsPrinted()
     {
-    	if (gridset == null) {
-    		gridset = (GridsetRecord)createGridset();
-    		//Insert the newlycreated Gridset record at the end of the record (just before the EOF)
-    		int loc = findFirstRecordLocBySid(EOFRecord.sid);
-    		records.add(loc, gridset);     		
-    	}
+        if (gridset == null) {
+            gridset = (GridsetRecord)createGridset();
+            //Insert the newlycreated Gridset record at the end of the record (just before the EOF)
+            int loc = findFirstRecordLocBySid(EOFRecord.sid);
+            records.add(loc, gridset);
+        }
         return !gridset.getGridset();
     }
 
@@ -1918,16 +1679,16 @@
         }
         return retval;
     }
-    
+
     /**
-     * get the index to the ExtendedFormatRecord "associated" with 
-     * the column at specified 0-based index. (In this case, an 
-     * ExtendedFormatRecord index is actually associated with a 
+     * get the index to the ExtendedFormatRecord "associated" with
+     * the column at specified 0-based index. (In this case, an
+     * ExtendedFormatRecord index is actually associated with a
      * ColumnInfoRecord which spans 1 or more columns)
      * <br/>
      * Returns the index to the default ExtendedFormatRecord (0xF)
      * if no ColumnInfoRecord exists that includes the column
-     * index specified. 
+     * index specified.
      * @param column
      * @return index of ExtendedFormatRecord associated with
      * ColumnInfoRecord that includes the column index or the
@@ -2116,38 +1877,38 @@
         retval.setNumRefs(( short ) 0x0);
         return retval;
     }
-    
-    public short getTopRow() 
+
+    public short getTopRow()
     {
-    	return (windowTwo==null) ? (short) 0 : windowTwo.getTopRow();
+        return (windowTwo==null) ? (short) 0 : windowTwo.getTopRow();
     }
-    
-    public void setTopRow(short topRow) 
+
+    public void setTopRow(short topRow)
     {
-    	if (windowTwo!=null) 
-    	{
-    		windowTwo.setTopRow(topRow);
-    	}
+        if (windowTwo!=null)
+        {
+            windowTwo.setTopRow(topRow);
+        }
     }
-   
+
     /**
      * Sets the left column to show in desktop window pane.
      * @param leftCol the left column to show in desktop window pane
      */
         public void setLeftCol(short leftCol){
-        	if (windowTwo!=null) 
-        	{   
-        	windowTwo.setLeftCol(leftCol);
-        	}
-        }
-        
-        public short getLeftCol() 
-        {
-        	return (windowTwo==null) ? (short) 0 : windowTwo.getLeftCol();
-        }
-        
-        
-    
+            if (windowTwo!=null)
+            {
+            windowTwo.setLeftCol(leftCol);
+            }
+        }
+
+        public short getLeftCol()
+        {
+            return (windowTwo==null) ? (short) 0 : windowTwo.getLeftCol();
+        }
+
+
+
     /**
      * Returns the active row
      *
@@ -2162,7 +1923,7 @@
         }
         return selection.getActiveCellRow();
     }
-    
+
     /**
      * Sets the active row
      *
@@ -2177,7 +1938,7 @@
             selection.setActiveCellRow(row);
         }
     }
-    
+
     /**
      * Returns the active column
      *
@@ -2192,7 +1953,7 @@
         }
         return selection.getActiveCellCol();
     }
-    
+
     /**
      * Sets the active column
      *
@@ -2278,9 +2039,9 @@
         }
         // Add space for UncalcedRecord
         if (uncalced) {
-        	retval += UncalcedRecord.getStaticRecordSize();
+            retval += UncalcedRecord.getStaticRecordSize();
         }
-        
+
         return retval;
     }
 
@@ -2367,16 +2128,19 @@
      */
     public HeaderRecord getHeader ()
     {
-	return header;
+    return header;
     }
 
+    public WindowTwoRecord getWindowTwo() {
+        return windowTwo;
+    }
     /**
      * Sets the HeaderRecord.
      * @param newHeader The new HeaderRecord for the sheet.
      */
     public void setHeader (HeaderRecord newHeader)
     {
-    	header = newHeader;
+        header = newHeader;
     }
 
     /**
@@ -2385,7 +2149,7 @@
      */
     public FooterRecord getFooter ()
     {
-	    return footer;
+        return footer;
     }
 
     /**
@@ -2394,7 +2158,7 @@
      */
     public void setFooter (FooterRecord newFooter)
     {
-	    footer = newFooter;
+        footer = newFooter;
     }
 
     /**
@@ -2403,7 +2167,7 @@
      */
     public PrintSetupRecord getPrintSetup ()
     {
-	    return printSetup;
+        return printSetup;
     }
 
     /**
@@ -2412,7 +2176,7 @@
      */
     public void setPrintSetup (PrintSetupRecord newPrintSetup)
     {
-	    printSetup = newPrintSetup;
+        printSetup = newPrintSetup;
     }
 
     /**
@@ -2421,7 +2185,7 @@
      */
     public PrintGridlinesRecord getPrintGridlines ()
     {
-	    return printGridlines;
+        return printGridlines;
     }
 
     /**
@@ -2430,7 +2194,7 @@
      */
     public void setPrintGridlines (PrintGridlinesRecord newPrintGridlines)
     {
-	    printGridlines = newPrintGridlines;
+        printGridlines = newPrintGridlines;
     }
 
     /**
@@ -2447,23 +2211,23 @@
       * @return the size of the margin
       */
     public double getMargin(short margin) {
-	if (getMargins()[margin] != null)
-	    return margins[margin].getMargin();
-	else {
-	    switch ( margin )
-		{
-		case LeftMargin:
-		    return .75;
-		case RightMargin:
-		    return .75;
-		case TopMargin:
-		    return 1.0;
-		case BottomMargin:
-		    return 1.0;
-		default :
-		    throw new RuntimeException( "Unknown margin constant:  " + margin );
-		}
-	}
+    if (getMargins()[margin] != null)
+        return margins[margin].getMargin();
+    else {
+        switch ( margin )
+        {
+        case LeftMargin:
+            return .75;
+        case RightMargin:
+            return .75;
+        case TopMargin:
+            return 1.0;
+        case BottomMargin:
+            return 1.0;
+        default :
+            throw new RuntimeException( "Unknown margin constant:  " + margin );
+        }
+    }
     }
 
      /**
@@ -2472,32 +2236,32 @@
       * @param size the size of the margin
       */
     public void setMargin(short margin, double size) {
-	Margin m = getMargins()[margin];
-	if (m  == null) {
-	    switch ( margin )
-		{
-		case LeftMargin:
-		    m = new LeftMarginRecord();
-		    records.add( getDimsLoc() + 1, m );
-		    break;
-		case RightMargin:
-		    m = new RightMarginRecord();
-		    records.add( getDimsLoc() + 1, m );
-		    break;
-		case TopMargin:
-		    m = new TopMarginRecord();
-		    records.add( getDimsLoc() + 1, m );
-		    break;
-		case BottomMargin:
-		    m = new BottomMarginRecord();
-		    records.add( getDimsLoc() + 1, m );
-		    break;
-		default :
-		    throw new RuntimeException( "Unknown margin constant:  " + margin );
-		}
-	    margins[margin] = m;
-	}
-	m.setMargin( size );
+    Margin m = getMargins()[margin];
+    if (m  == null) {
+        switch ( margin )
+        {
+        case LeftMargin:
+            m = new LeftMarginRecord();
+            records.add( getDimsLoc() + 1, m );
+            break;
+        case RightMargin:
+            m = new RightMarginRecord();
+            records.add( getDimsLoc() + 1, m );
+            break;
+        case TopMargin:
+            m = new TopMarginRecord();
+            records.add( getDimsLoc() + 1, m );
+            break;
+        case BottomMargin:
+            m = new BottomMarginRecord();
+            records.add( getDimsLoc() + 1, m );
+            break;
+        default :
+            throw new RuntimeException( "Unknown margin constant:  " + margin );
+        }
+        margins[margin] = m;
+    }
+    m.setMargin( size );
     }
 
     public int getEofLoc()
@@ -2514,10 +2278,10 @@
      */
     public void createFreezePane(int colSplit, int rowSplit, int topRow, int leftmostColumn )
     {
-    	int paneLoc = findFirstRecordLocBySid(PaneRecord.sid);
-    	if (paneLoc != -1)
-    		records.remove(paneLoc);
-    	
+        int paneLoc = findFirstRecordLocBySid(PaneRecord.sid);
+        if (paneLoc != -1)
+            records.remove(paneLoc);
+
         int loc = findFirstRecordLocBySid(WindowTwoRecord.sid);
         PaneRecord pane = new PaneRecord();
         pane.setX((short)colSplit);
@@ -2563,10 +2327,10 @@
      */
     public void createSplitPane(int xSplitPos, int ySplitPos, int topRow, int leftmostColumn, int activePane )
     {
-    	int paneLoc = findFirstRecordLocBySid(PaneRecord.sid);
-    	if (paneLoc != -1)
-    		records.remove(paneLoc);
-    	
+        int paneLoc = findFirstRecordLocBySid(PaneRecord.sid);
+        if (paneLoc != -1)
+            records.remove(paneLoc);
+
         int loc = findFirstRecordLocBySid(WindowTwoRecord.sid);
         PaneRecord r = new PaneRecord();
         r.setX((short)xSplitPos);
@@ -2583,7 +2347,7 @@
         sel.setPane(PANE_LOWER_RIGHT);
 
     }
-    
+
     /**
      * Returns the information regarding the currently configured pane (split or freeze).
      * @return null if no pane configured, or the pane information.
@@ -2592,9 +2356,9 @@
       PaneRecord rec = (PaneRecord)findFirstRecordBySid(PaneRecord.sid);
       if (rec == null)
         return null;
-        
+
       return new PaneInformation(rec.getX(), rec.getY(), rec.getTopRow(),
-    		                     rec.getLeftColumn(), (byte)rec.getActivePane(), windowTwo.getFreezePanes());      
+                                 rec.getLeftColumn(), (byte)rec.getActivePane(), windowTwo.getFreezePanes());
     }
 
     public SelectionRecord getSelection()
@@ -2660,12 +2424,12 @@
      */
     public ProtectRecord getProtect()
     {
-    	if (protect == null) {
-    		protect = (ProtectRecord)createProtect();
-    		//Insert the newlycreated protect record at the end of the record (just before the EOF)
-    		int loc = findFirstRecordLocBySid(EOFRecord.sid);
-    		records.add(loc, protect);    		
-    	}
+        if (protect == null) {
+            protect = (ProtectRecord)createProtect();
+            //Insert the newlycreated protect record at the end of the record (just before the EOF)
+            int loc = findFirstRecordLocBySid(EOFRecord.sid);
+            records.add(loc, protect);
+        }
         return protect;
     }
 
@@ -2674,12 +2438,12 @@
      */
     public PasswordRecord getPassword()
     {
-    	if (password == null) {
-    		password = createPassword();
-    		//Insert the newly created password record at the end of the record (just before the EOF)
-    		int loc = findFirstRecordLocBySid(EOFRecord.sid);
-    		records.add(loc, password);    		
-    	}
+        if (password == null) {
+            password = createPassword();
+            //Insert the newly created password record at the end of the record (just before the EOF)
+            int loc = findFirstRecordLocBySid(EOFRecord.sid);
+            records.add(loc, password);
+        }
         return password;
     }
 
@@ -2714,7 +2478,7 @@
      * @return whether gridlines are displayed
      */
     public boolean isDisplayGridlines() {
-	return windowTwo.getDisplayGridlines();
+    return windowTwo.getDisplayGridlines();
     }
 
     /**
@@ -2730,7 +2494,7 @@
      * @return whether formulas are displayed
      */
     public boolean isDisplayFormulas() {
-	return windowTwo.getDisplayFormulas();
+    return windowTwo.getDisplayFormulas();
     }
 
     /**
@@ -2746,24 +2510,24 @@
      * @return whether RowColHeadings are displayed
      */
     public boolean isDisplayRowColHeadings() {
-	    return windowTwo.getDisplayRowColHeadings();
+        return windowTwo.getDisplayRowColHeadings();
     }
-    
 
+
+    /**
+     * @return whether an uncalced record must be inserted or not at generation
+     */
+    public boolean getUncalced() {
+        return uncalced;
+    }
     /**
-	 * @return whether an uncalced record must be inserted or not at generation
-	 */
-	public boolean getUncalced() {
-		return uncalced;
-	}
-	/**
-	 * @param uncalced whether an uncalced record must be inserted or not at generation
-	 */
-	public void setUncalced(boolean uncalced) {
-		this.uncalced = uncalced;
-	}
+     * @param uncalced whether an uncalced record must be inserted or not at generation
+     */
+    public void setUncalced(boolean uncalced) {
+        this.uncalced = uncalced;
+    }
 
-	/**
+    /**
      * Returns the array of margins.  If not created, will create.
      *
      * @return the array of marings.
@@ -2771,7 +2535,7 @@
     protected Margin[] getMargins() {
         if (margins == null)
             margins = new Margin[4];
-    	return margins;
+        return margins;
     }
 
     /**
@@ -2789,11 +2553,11 @@
         boolean noDrawingRecordsFound = (loc == -1);
         if (noDrawingRecordsFound)
         {
-        	if(!createIfMissing) {
-        		// None found, and not allowed to add in
-        		return -1;
-        	}
-        	
+            if(!createIfMissing) {
+                // None found, and not allowed to add in
+                return -1;
+            }
+
             EscherAggregate aggregate = new EscherAggregate( drawingManager );
             loc = findFirstRecordLocBySid(EscherAggregate.sid);
             if (loc == -1)
@@ -2847,43 +2611,43 @@
      * @param breaks The page record to be shifted
      * @param start Starting "main" value to shift breaks
      * @param stop Ending "main" value to shift breaks
-     * @param count number of units (rows/columns) to shift by 
+     * @param count number of units (rows/columns) to shift by
      */
     public void shiftBreaks(PageBreakRecord breaks, short start, short stop, int count) {
-   	
-    	if(rowBreaks == null)
-    		return;
-    	Iterator iterator = breaks.getBreaksIterator();
-    	List shiftedBreak = new ArrayList();
-    	while(iterator.hasNext()) 
-    	{
-    		PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
-    		short breakLocation = breakItem.main;
-    		boolean inStart = (breakLocation >= start);
-    		boolean inEnd = (breakLocation <= stop);
-    		if(inStart && inEnd)
-    			shiftedBreak.add(breakItem);
-    	}
-    	
-    	iterator = shiftedBreak.iterator();
-    	while (iterator.hasNext()) {    		
-			PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
-    		breaks.removeBreak(breakItem.main);
-    		breaks.addBreak((short)(breakItem.main+count), breakItem.subFrom, breakItem.subTo);
-    	}
+
+        if(rowBreaks == null)
+            return;
+        Iterator iterator = breaks.getBreaksIterator();
+        List shiftedBreak = new ArrayList();
+        while(iterator.hasNext())
+        {
+            PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
+            short breakLocation = breakItem.main;
+            boolean inStart = (breakLocation >= start);
+            boolean inEnd = (breakLocation <= stop);
+            if(inStart && inEnd)
+                shiftedBreak.add(breakItem);
+        }
+
+        iterator = shiftedBreak.iterator();
+        while (iterator.hasNext()) {
+            PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
+            breaks.removeBreak(breakItem.main);
+            breaks.addBreak((short)(breakItem.main+count), breakItem.subFrom, breakItem.subTo);
+        }
     }
-    
+
     /**
      * Sets a page break at the indicated row
      * @param row
      */
-    public void setRowBreak(int row, short fromCol, short toCol) { 
-    	if (rowBreaks == null) {
+    public void setRowBreak(int row, short fromCol, short toCol) {
+        if (rowBreaks == null) {
             int loc = findFirstRecordLocBySid(WindowTwoRecord.sid);
             rowBreaks = new PageBreakRecord(PageBreakRecord.HORIZONTAL_SID);
             records.add(loc, rowBreaks);
-    	}
-    	rowBreaks.addBreak((short)row, fromCol, toCol);
+        }
+        rowBreaks.addBreak((short)row, fromCol, toCol);
     }
 
     /**
@@ -2891,9 +2655,9 @@
      * @param row
      */
     public void removeRowBreak(int row) {
-    	if (rowBreaks == null)
-    		throw new IllegalArgumentException("Sheet does not define any row breaks");
-    	rowBreaks.removeBreak((short)row);
+        if (rowBreaks == null)
+            throw new IllegalArgumentException("Sheet does not define any row breaks");
+        rowBreaks.removeBreak((short)row);
     }
 
     /**
@@ -2902,7 +2666,7 @@
      * @return true if the specified row has a page break
      */
     public boolean isRowBroken(int row) {
-    	return (rowBreaks == null) ? false : rowBreaks.getBreak((short)row) != null;
+        return (rowBreaks == null) ? false : rowBreaks.getBreak((short)row) != null;
     }
 
     /**
@@ -2910,12 +2674,12 @@
      *
      */
     public void setColumnBreak(short column, short fromRow, short toRow) {
-    	if (colBreaks == null) {
+        if (colBreaks == null) {
             int loc = findFirstRecordLocBySid(WindowTwoRecord.sid);
             colBreaks = new PageBreakRecord(PageBreakRecord.VERTICAL_SID);
             records.add(loc, colBreaks);
-    	}    	
-    	colBreaks.addBreak(column, fromRow, toRow);
+        }
+        colBreaks.addBreak(column, fromRow, toRow);
     }
 
     /**
@@ -2923,10 +2687,10 @@
      *
      */
     public void removeColumnBreak(short column) {
-    	if (colBreaks == null)
-    		throw new IllegalArgumentException("Sheet does not define any column breaks");
-    	
-    	colBreaks.removeBreak(column);
+        if (colBreaks == null)
+            throw new IllegalArgumentException("Sheet does not define any column breaks");
+
+        colBreaks.removeBreak(column);
     }
 
     /**
@@ -2935,9 +2699,9 @@
      * @return true if the specified column has a page break
      */
     public boolean isColumnBroken(short column) {
-    	return (colBreaks == null) ? false : colBreaks.getBreak(column) != null;
+        return (colBreaks == null) ? false : colBreaks.getBreak(column) != null;
     }
-    
+
     /**
      * Shifts the horizontal page breaks for the indicated count
      * @param startingRow
@@ -2945,7 +2709,7 @@
      * @param count
      */
     public void shiftRowBreaks(int startingRow, int endingRow, int count) {
-    	shiftBreaks(rowBreaks, (short)startingRow, (short)endingRow, (short)count);
+        shiftBreaks(rowBreaks, (short)startingRow, (short)endingRow, (short)count);
     }
 
     /**
@@ -2955,39 +2719,39 @@
      * @param count
      */
     public void shiftColumnBreaks(short startingCol, short endingCol, short count) {
-    	shiftBreaks(colBreaks, startingCol, endingCol, count);
+        shiftBreaks(colBreaks, startingCol, endingCol, count);
     }
-    
+
     /**
      * Returns all the row page breaks
      * @return all the row page breaks
      */
     public Iterator getRowBreaks() {
-    	return rowBreaks.getBreaksIterator();
+        return rowBreaks.getBreaksIterator();
     }
-    
+
     /**
      * Returns the number of row page breaks
      * @return the number of row page breaks
      */
     public int getNumRowBreaks(){
-    	return (rowBreaks == null) ? 0 : (int)rowBreaks.getNumBreaks();
+        return (rowBreaks == null) ? 0 : (int)rowBreaks.getNumBreaks();
     }
-    
+
     /**
      * Returns all the column page breaks
      * @return all the column page breaks
      */
     public Iterator getColumnBreaks(){
-    	return colBreaks.getBreaksIterator();
+        return colBreaks.getBreaksIterator();
     }
-    
+
     /**
      * Returns the number of column page breaks
      * @return the number of column page breaks
      */
     public int getNumColumnBreaks(){
-    	return (colBreaks == null) ? 0 : (int)colBreaks.getNumBreaks();
+        return (colBreaks == null) ? 0 : (int)colBreaks.getNumBreaks();
     }
 
     public void setColumnGroupCollapsed( short columnNumber, boolean collapsed )
@@ -3030,213 +2794,40 @@
             records.add(protIdx+2,srec);
             scenprotect = srec;
         }
-    }    
+    }
 
     /**
-     * unprotect objects in the sheet (will not protect them, but any set to false are 
+     * unprotect objects in the sheet (will not protect them, but any set to false are
      * unprotected.
      * @param sheet is unprotected (false = unprotect)
      * @param objects are unprotected (false = unprotect)
      * @param scenarios are unprotected (false = unprotect)
      */
     public void unprotectSheet( boolean sheet, boolean objects, boolean scenarios ) {
-        int protIdx = -1;
+
         if (!sheet) {
            ProtectRecord prec = getProtect();
            prec.setProtect(sheet);
            PasswordRecord pass = getPassword();
            pass.setPassword((short)00);
-        } 
+        }
         if(objprotect != null && !objects) {
             objprotect.setProtect(false);
         }
         if(scenprotect != null && !scenarios) {
             scenprotect.setProtect(false);
         }
-    }    
+    }
 
     /**
      * @return {sheet is protected, objects are proteced, scenarios are protected}
      */
     public boolean[] isProtected() {
-        return new boolean[] { (protect != null && protect.getProtect()), 
+        return new boolean[] { (protect != null && protect.getProtect()),
                              (objprotect != null && objprotect.getProtect()),
                              (scenprotect != null && scenprotect.getProtect())};
     }
- 
-//    private void collapseColumn( short columnNumber )
-//    {
-//        int idx = findColumnIdx( columnNumber, 0 );
-//        if (idx == -1)
-//            return;
-//
-//        // Find the start of the group.
-//        ColumnInfoRecord columnInfo = (ColumnInfoRecord) columnSizes.get( findStartOfColumnOutlineGroup( idx ) );
-//
-//        // Hide all the columns until the end of the group
-//        columnInfo = writeHidden( columnInfo, idx, true );
-//
-//        // Write collapse field
-//        setColumn( (short) ( columnInfo.getLastColumn() + 1 ), null, null, null, Boolean.TRUE);
-//    }
-
-//    private void expandColumn( short columnNumber )
-//    {
-//        int idx = findColumnIdx( columnNumber, 0 );
-//        if (idx == -1)
-//            return;
-//
-//        // If it is already exapanded do nothing.
-//        if (!isColumnGroupCollapsed(idx))
-//            return;
-//
-//        // Find the start of the group.
-//        int startIdx = findStartOfColumnOutlineGroup( idx );
-//        ColumnInfoRecord columnInfo = getColInfo( startIdx );
-//
-//        // Find the end of the group.
-//        int endIdx = findEndOfColumnOutlineGroup( idx );
-//        ColumnInfoRecord endColumnInfo = getColInfo( endIdx );
-//
-//        // expand:
-//        // colapsed bit must be unset
-//        // hidden bit gets unset _if_ surrounding groups are expanded you can determine
-//        //   this by looking at the hidden bit of the enclosing group.  You will have
-//        //   to look at the start and the end of the current group to determine which
-//        //   is the enclosing group
-//        // hidden bit only is altered for this outline level.  ie.  don't uncollapse contained groups
-//        if (!isColumnGroupHiddenByParent( idx ))
-//        {
-//            for (int i = startIdx; i <= endIdx; i++)
-//            {
-//                if (columnInfo.getOutlineLevel() == getColInfo(i).getOutlineLevel())
-//                    getColInfo(i).setHidden( false );
-//            }
-//        }
-//
-//        // Write collapse field
-//        setColumn( (short) ( columnInfo.getLastColumn() + 1 ), null, null, null, Boolean.FALSE);
-//    }
-
-//    private boolean isColumnGroupCollapsed( int idx )
-//    {
-//        int endOfOutlineGroupIdx = findEndOfColumnOutlineGroup( idx );
-//        if (endOfOutlineGroupIdx >= columnSizes.size())
-//            return false;
-//        if (getColInfo(endOfOutlineGroupIdx).getLastColumn() + 1 != getColInfo(endOfOutlineGroupIdx + 1).getFirstColumn())
-//            return false;
-//        else
-//            return getColInfo(endOfOutlineGroupIdx+1).getCollapsed();
-//    }
-
-//    private boolean isColumnGroupHiddenByParent( int idx )
-//    {
-//        // Look out outline details of end
-//        int endLevel;
-//        boolean endHidden;
-//        int endOfOutlineGroupIdx = findEndOfColumnOutlineGroup( idx );
-//        if (endOfOutlineGroupIdx >= columnSizes.size())
-//        {
-//            endLevel = 0;
-//            endHidden = false;
-//        }
-//        else if (getColInfo(endOfOutlineGroupIdx).getLastColumn() + 1 != getColInfo(endOfOutlineGroupIdx + 1).getFirstColumn())
-//        {
-//            endLevel = 0;
-//            endHidden = false;
-//        }
-//        else
-//        {
-//            endLevel = getColInfo( endOfOutlineGroupIdx + 1).getOutlineLevel();
-//            endHidden = getColInfo( endOfOutlineGroupIdx + 1).getHidden();
-//        }
-//
-//        // Look out outline details of start
-//        int startLevel;
-//        boolean startHidden;
-//        int startOfOutlineGroupIdx = findStartOfColumnOutlineGroup( idx );
-//        if (startOfOutlineGroupIdx <= 0)
-//        {
-//            startLevel = 0;
-//            startHidden = false;
-//        }
-//        else if (getColInfo(startOfOutlineGroupIdx).getFirstColumn() - 1 != getColInfo(startOfOutlineGroupIdx - 1).getLastColumn())
-//        {
-//            startLevel = 0;
-//            startHidden = false;
-//        }
-//        else
-//        {
-//            startLevel = getColInfo( startOfOutlineGroupIdx - 1).getOutlineLevel();
-//            startHidden = getColInfo( startOfOutlineGroupIdx - 1 ).getHidden();
-//        }
-//
-//        if (endLevel > startLevel)
-//        {
-//            return endHidden;
-//        }
-//        else
-//        {
-//            return startHidden;
-//        }
-//    }
 
-//    private ColumnInfoRecord getColInfo(int idx)
-//    {
-//        return columns.getColInfo( idx );
-//    }
-
-//    private int findStartOfColumnOutlineGroup(int idx)
-//    {
-//        // Find the start of the group.
-//        ColumnInfoRecord columnInfo = (ColumnInfoRecord) columnSizes.get( idx );
-//        int level = columnInfo.getOutlineLevel();
-//        while (idx != 0)
-//        {
-//            ColumnInfoRecord prevColumnInfo = (ColumnInfoRecord) columnSizes.get( idx - 1 );
-//            if (columnInfo.getFirstColumn() - 1 == prevColumnInfo.getLastColumn())
-//            {
-//                if (prevColumnInfo.getOutlineLevel() < level)
-//                {
-//                    break;
-//                }
-//                idx--;
-//                columnInfo = prevColumnInfo;
-//            }
-//            else
-//            {
-//                break;
-//            }
-//        }
-//
-//        return idx;
-//    }
-
-//    private int findEndOfColumnOutlineGroup(int idx)
-//    {
-//        // Find the end of the group.
-//        ColumnInfoRecord columnInfo = (ColumnInfoRecord) columnSizes.get( idx );
-//        int level = columnInfo.getOutlineLevel();
-//        while (idx < columnSizes.size() - 1)
-//        {
-//            ColumnInfoRecord nextColumnInfo = (ColumnInfoRecord) columnSizes.get( idx + 1 );
-//            if (columnInfo.getLastColumn() + 1 == nextColumnInfo.getFirstColumn())
-//            {
-//                if (nextColumnInfo.getOutlineLevel() < level)
-//                {
-//                    break;
-//                }
-//                idx++;
-//                columnInfo = nextColumnInfo;
-//            }
-//            else
-//            {
-//                break;
-//            }
-//        }
-//
-//        return idx;
-//    }
 
     public void groupRowRange(int fromRow, int toRow, boolean indent)
     {
@@ -3272,8 +2863,8 @@
         // Grab the guts record, adding if needed
         GutsRecord guts = (GutsRecord) findFirstRecordBySid( GutsRecord.sid );
         if(guts == null) {
-        	guts = new GutsRecord();
-        	records.add(guts);
+            guts = new GutsRecord();
+            records.add(guts);
         }
         // Set the levels onto it
         guts.setRowLevelMax( (short) ( maxLevel + 1 ) );
@@ -3291,126 +2882,4 @@
             rows.expandRow( row );
         }
     }
-
-
-//    private void collapseRow( int rowNumber )
-//    {
-//
-//        // Find the start of the group.
-//        int startRow = rows.findStartOfRowOutlineGroup( rowNumber );
-//        RowRecord rowRecord = (RowRecord) rows.getRow( startRow );
-//
-//        // Hide all the columns until the end of the group
-//        int lastRow = rows.writeHidden( rowRecord, startRow, true );
-//
-//        // Write collapse field
-//        if (getRow(lastRow + 1) != null)
-//        {
-//            getRow(lastRow + 1).setColapsed( true );
-//        }
-//        else
-//        {
-//            RowRecord row = createRow( lastRow + 1);
-//            row.setColapsed( true );
-//            rows.insertRow( row );
-//        }
-//    }
-
-//    private int findStartOfRowOutlineGroup(int row)
-//    {
-//        // Find the start of the group.
-//        RowRecord rowRecord = rows.getRow( row );
-//        int level = rowRecord.getOutlineLevel();
-//        int currentRow = row;
-//        while (rows.getRow( currentRow ) != null)
-//        {
-//            rowRecord = rows.getRow( currentRow );
-//            if (rowRecord.getOutlineLevel() < level)
-//                return currentRow + 1;
-//            currentRow--;
-//        }
-//
-//        return currentRow + 1;
-//    }
-
-//    private int writeHidden( RowRecord rowRecord, int row, boolean hidden )
-//    {
-//        int level = rowRecord.getOutlineLevel();
-//        while (rowRecord != null && rows.getRow(row).getOutlineLevel() >= level)
-//        {
-//            rowRecord.setZeroHeight( hidden );
-//            row++;
-//            rowRecord = rows.getRow( row );
-//        }
-//        return row - 1;
-//    }
-
-//    private int findEndOfRowOutlineGroup( int row )
-//    {
-//        int level = getRow( row ).getOutlineLevel();
-//        int currentRow;
-//        for (currentRow = row; currentRow < rows.getLastRowNum(); currentRow++)
-//        {
-//            if (getRow(currentRow) == null || getRow(currentRow).getOutlineLevel() < level)
-//            {
-//                break;
-//            }
-//        }
-//
-//        return currentRow-1;
-//    }
-
-//    private boolean isRowGroupCollapsed( int row )
-//    {
-//        int collapseRow = rows.findEndOfRowOutlineGroup( row ) + 1;
-//
-//        if (getRow(collapseRow) == null)
-//            return false;
-//        else
-//            return getRow( collapseRow ).getColapsed();
-//    }
-
-
-//    private boolean isRowGroupHiddenByParent( int row )
-//    {
-//        // Look out outline details of end
-//        int endLevel;
-//        boolean endHidden;
-//        int endOfOutlineGroupIdx = rows.findEndOfRowOutlineGroup( row );
-//        if (getRow( endOfOutlineGroupIdx + 1 ) == null)
-//        {
-//            endLevel = 0;
-//            endHidden = false;
-//        }
-//        else
-//        {
-//            endLevel = getRow( endOfOutlineGroupIdx + 1).getOutlineLevel();
-//            endHidden = getRow( endOfOutlineGroupIdx + 1).getZeroHeight();
-//        }
-//
-//        // Look out outline details of start
-//        int startLevel;
-//        boolean startHidden;
-//        int startOfOutlineGroupIdx = rows.findStartOfRowOutlineGroup( row );
-//        if (startOfOutlineGroupIdx - 1 < 0 || getRow(startOfOutlineGroupIdx - 1) == null)
-//        {
-//            startLevel = 0;
-//            startHidden = false;
-//        }
-//        else
-//        {
-//            startLevel = getRow( startOfOutlineGroupIdx - 1).getOutlineLevel();
-//            startHidden = getRow( startOfOutlineGroupIdx - 1 ).getZeroHeight();
-//        }
-//
-//        if (endLevel > startLevel)
-//        {
-//            return endHidden;
-//        }
-//        else
-//        {
-//            return startHidden;
-//        }
-//    }
-
 }

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/LabelRecord.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/LabelRecord.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/LabelRecord.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/LabelRecord.java Sun May 18 23:35:30 2008
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,13 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
-/*
- * LabelRecord.java
- *
- * Created on November 11, 2001, 12:51 PM
- */
 package org.apache.poi.hssf.record;
 
 /**
@@ -33,14 +26,10 @@
  * @version 2.0-pre
  * @see org.apache.poi.hssf.record.LabelSSTRecord
  */
-
-public class LabelRecord
-    extends Record
-    implements CellValueRecordInterface
-{
+public final class LabelRecord extends Record implements CellValueRecordInterface {
     public final static short sid = 0x204;
-    //private short             field_1_row;
-    private int             field_1_row;
+
+    private int               field_1_row;
     private short             field_2_column;
     private short             field_3_xf_index;
     private short             field_4_string_len;
@@ -85,35 +74,30 @@
 
     protected void fillFields(RecordInputStream in)
     {
-        //field_1_row          = LittleEndian.getShort(data, 0 + offset);
         field_1_row          = in.readUShort();
         field_2_column       = in.readShort();
         field_3_xf_index     = in.readShort();
         field_4_string_len   = in.readShort();
         field_5_unicode_flag = in.readByte();
         if (field_4_string_len > 0) {
-          if (isUnCompressedUnicode()) {
-            field_6_value = in.readUnicodeLEString(field_4_string_len);
-          } else {
-            field_6_value = in.readCompressedUnicode(field_4_string_len);
+            if (isUnCompressedUnicode()) {
+                field_6_value = in.readUnicodeLEString(field_4_string_len);
+            } else {
+                field_6_value = in.readCompressedUnicode(field_4_string_len);
+            }
+        } else {
+            field_6_value = "";
         }
-        } else field_6_value = null;
     }
 
-/* READ ONLY ACCESS... THIS IS FOR COMPATIBILITY ONLY...USE LABELSST!
-      public void setRow(short row) {
-        field_1_row = row;
-      }
-
-      public void setColumn(short col) {
-        field_2_column = col;
-      }
-
-      public void setXFIndex(short index) {
-        field_3_xf_index = index;
-      }
-  */
-    //public short getRow()
+/*
+ * READ ONLY ACCESS... THIS IS FOR COMPATIBILITY ONLY...USE LABELSST! public
+ * void setRow(short row) { field_1_row = row; }
+ * 
+ * public void setColumn(short col) { field_2_column = col; }
+ * 
+ * public void setXFIndex(short index) { field_3_xf_index = index; }
+ */
     public int getRow()
     {
         return field_1_row;

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/PaneRecord.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/PaneRecord.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/PaneRecord.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/PaneRecord.java Sun May 18 23:35:30 2008
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,13 +14,12 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
 
-
-import org.apache.poi.util.*;
+import org.apache.poi.util.HexDump;
+import org.apache.poi.util.LittleEndian;
 
 /**
  * Describes the frozen and unfozen panes.
@@ -30,9 +28,7 @@
 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public class PaneRecord
-    extends Record
-{
+public final class PaneRecord extends Record {
     public final static short      sid                             = 0x41;
     private  short      field_1_x;
     private  short      field_2_y;
@@ -42,7 +38,10 @@
     public final static short       ACTIVE_PANE_LOWER_RIGHT        = 0;
     public final static short       ACTIVE_PANE_UPPER_RIGHT        = 1;
     public final static short       ACTIVE_PANE_LOWER_LEFT         = 2;
+    // TODO - remove obsolete field (it was deprecated May-2008 v3.1)
+    /** @deprecated use ACTIVE_PANE_UPPER_LEFT */
     public final static short       ACTIVE_PANE_UPER_LEFT          = 3;
+    public final static short       ACTIVE_PANE_UPPER_LEFT         = 3;
 
 
     public PaneRecord()
@@ -82,7 +81,6 @@
         field_3_topRow                 = in.readShort();
         field_4_leftColumn             = in.readShort();
         field_5_activePane             = in.readShort();
-
     }
 
     public String toString()
@@ -229,7 +227,7 @@
      *        ACTIVE_PANE_LOWER_RIGHT
      *        ACTIVE_PANE_UPPER_RIGHT
      *        ACTIVE_PANE_LOWER_LEFT
-     *        ACTIVE_PANE_UPER_LEFT
+     *        ACTIVE_PANE_UPPER_LEFT
      */
     public short getActivePane()
     {
@@ -244,16 +242,10 @@
      *        ACTIVE_PANE_LOWER_RIGHT
      *        ACTIVE_PANE_UPPER_RIGHT
      *        ACTIVE_PANE_LOWER_LEFT
-     *        ACTIVE_PANE_UPER_LEFT
+     *        ACTIVE_PANE_UPPER_LEFT
      */
     public void setActivePane(short field_5_activePane)
     {
         this.field_5_activePane = field_5_activePane;
     }
-
-
-}  // END OF CLASS
-
-
-
-
+}

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/RowRecord.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/RowRecord.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/RowRecord.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/RowRecord.java Sun May 18 23:35:30 2008
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -31,20 +29,18 @@
  * @author Jason Height (jheight at chariot dot net dot au)
  * @version 2.0-pre
  */
-
-public class RowRecord
-    extends Record
-    implements Comparable
-{
-    public final static short sid = 0x208;
+public final class RowRecord extends Record implements Comparable {
+	public final static short sid = 0x208;
     
-    /** The maximum row number that excel can handle (zero bazed) ie 65536 rows is
+    private static final int OPTION_BITS_ALWAYS_SET = 0x0100;
+    private static final int DEFAULT_HEIGHT_BIT = 0x8000;
+
+    /** The maximum row number that excel can handle (zero based) ie 65536 rows is
      *  max number of rows.
      */
     public final static int MAX_ROW_NUMBER = 65535;
     
-    //private short             field_1_row_number;
-    private int             field_1_row_number;
+    private int               field_1_row_number;
     private short             field_2_first_col;
     private short             field_3_last_col;   // plus 1
     private short             field_4_height;
@@ -52,7 +48,8 @@
 
     // for generated sheets.
     private short             field_6_reserved;
-    private short             field_7_option_flags;
+    /** 16 bit options flags */
+    private int             field_7_option_flags;
     private static final BitField          outlineLevel  = BitFieldFactory.getInstance(0x07);
 
     // bit 3 reserved
@@ -62,8 +59,17 @@
     private static final BitField          formatted     = BitFieldFactory.getInstance(0x80);
     private short             field_8_xf_index;   // only if isFormatted
 
-    public RowRecord()
-    {
+    public RowRecord(int rowNumber) {
+        field_1_row_number = rowNumber;
+        field_2_first_col = -1;
+        field_3_last_col = -1;
+        field_4_height = (short)DEFAULT_HEIGHT_BIT;
+        field_4_height = (short)DEFAULT_HEIGHT_BIT;
+        field_5_optimize = ( short ) 0;
+        field_6_reserved = ( short ) 0;
+        field_7_option_flags = OPTION_BITS_ALWAYS_SET; // seems necessary for outlining
+
+        field_8_xf_index = ( short ) 0xf;
     }
 
     /**
@@ -86,7 +92,6 @@
 
     protected void fillFields(RecordInputStream in)
     {
-        //field_1_row_number   = LittleEndian.getShort(data, 0 + offset);
         field_1_row_number   = in.readUShort();
         field_2_first_col    = in.readShort();
         field_3_last_col     = in.readShort();
@@ -156,7 +161,7 @@
 
     public void setOptionFlags(short options)
     {
-        field_7_option_flags = options;
+        field_7_option_flags = options | OPTION_BITS_ALWAYS_SET;
     }
 
     // option bitfields
@@ -169,20 +174,18 @@
 
     public void setOutlineLevel(short ol)
     {
-        field_7_option_flags =
-            outlineLevel.setShortValue(field_7_option_flags, ol);
+        field_7_option_flags = outlineLevel.setValue(field_7_option_flags, ol);
     }
 
     /**
-     * set whether or not to colapse this row
-     * @param c - colapse or not
+     * set whether or not to collapse this row
+     * @param c - collapse or not
      * @see #setOptionFlags(short)
      */
 
     public void setColapsed(boolean c)
     {
-        field_7_option_flags = colapsed.setShortBoolean(field_7_option_flags,
-                c);
+        field_7_option_flags = colapsed.setBoolean(field_7_option_flags, c);
     }
 
     /**
@@ -193,8 +196,7 @@
 
     public void setZeroHeight(boolean z)
     {
-        field_7_option_flags =
-            zeroHeight.setShortBoolean(field_7_option_flags, z);
+        field_7_option_flags = zeroHeight.setBoolean(field_7_option_flags, z);
     }
 
     /**
@@ -205,8 +207,7 @@
 
     public void setBadFontHeight(boolean f)
     {
-        field_7_option_flags =
-            badFontHeight.setShortBoolean(field_7_option_flags, f);
+        field_7_option_flags = badFontHeight.setBoolean(field_7_option_flags, f);
     }
 
     /**
@@ -217,8 +218,7 @@
 
     public void setFormatted(boolean f)
     {
-        field_7_option_flags = formatted.setShortBoolean(field_7_option_flags,
-                f);
+        field_7_option_flags = formatted.setBoolean(field_7_option_flags, f);
     }
 
     // end bitfields
@@ -293,7 +293,7 @@
 
     public short getOptionFlags()
     {
-        return field_7_option_flags;
+        return (short)field_7_option_flags;
     }
 
     // option bitfields
@@ -306,7 +306,7 @@
 
     public short getOutlineLevel()
     {
-        return outlineLevel.getShortValue(field_7_option_flags);
+        return (short)outlineLevel.getValue(field_7_option_flags);
     }
 
     /**
@@ -410,7 +410,6 @@
     {
         LittleEndian.putShort(data, 0 + offset, sid);
         LittleEndian.putShort(data, 2 + offset, ( short ) 16);
-        //LittleEndian.putShort(data, 4 + offset, getRowNumber());
         LittleEndian.putShort(data, 4 + offset, ( short ) getRowNumber());
         LittleEndian.putShort(data, 6 + offset, getFirstCol() == -1 ? (short)0 : getFirstCol());
         LittleEndian.putShort(data, 8 + offset, getLastCol() == -1 ? (short)0 : getLastCol());
@@ -419,7 +418,6 @@
         LittleEndian.putShort(data, 14 + offset, field_6_reserved);
         LittleEndian.putShort(data, 16 + offset, getOptionFlags());
 
-//    LittleEndian.putShort(data,18,getOutlineLevel());
         LittleEndian.putShort(data, 18 + offset, getXFIndex());
         return getRecordSize();
     }
@@ -469,8 +467,7 @@
     }
 
     public Object clone() {
-      RowRecord rec = new RowRecord();
-      rec.field_1_row_number = field_1_row_number;
+      RowRecord rec = new RowRecord(field_1_row_number);
       rec.field_2_first_col = field_2_first_col;
       rec.field_3_last_col = field_3_last_col;
       rec.field_4_height = field_4_height;

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowOneRecord.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowOneRecord.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowOneRecord.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowOneRecord.java Sun May 18 23:35:30 2008
@@ -57,8 +57,8 @@
         BitFieldFactory.getInstance(0x20);                                        // display tabs at the bottom
 
     // all the rest are "reserved"
-    private short                 field_6_selected_tab;
-    private short                 field_7_displayed_tab;
+    private int                   field_6_active_sheet;
+    private int                   field_7_first_visible_tab;
     private short                 field_8_num_selected_tabs;
     private short                 field_9_tab_width_ratio;
 
@@ -91,8 +91,8 @@
         field_3_width             = in.readShort();
         field_4_height            = in.readShort();
         field_5_options           = in.readShort();
-        field_6_selected_tab      = in.readShort();
-        field_7_displayed_tab     = in.readShort();
+        field_6_active_sheet      = in.readShort();
+        field_7_first_visible_tab     = in.readShort();
         field_8_num_selected_tabs = in.readShort();
         field_9_tab_width_ratio   = in.readShort();
     }
@@ -202,24 +202,33 @@
 
     // end bitfields
 
+    public void setActiveSheetIndex(int index) {
+    	field_6_active_sheet = index;
+	}
     /**
-     * set the selected tab number
-     * @param s  tab number
+     * deprecated May 2008
+     * @deprecated - Misleading name - use setActiveSheetIndex() 
      */
-
     public void setSelectedTab(short s)
     {
-        field_6_selected_tab = s;
+        setActiveSheetIndex(s);
     }
 
     /**
-     * set the displayed tab number
-     * @param t  tab number
+     * Sets the first visible sheet in the worksheet tab-bar.  This method does <b>not</b>
+     *  hide, select or focus sheets.  It just sets the scroll position in the tab-bar.
+     * @param t the sheet index of the tab that will become the first in the tab-bar
      */
+    public void setFirstVisibleTab(int t) {
+        field_7_first_visible_tab = t;
+    }
 
-    public void setDisplayedTab(short t)
-    {
-        field_7_displayed_tab = t;
+    /**
+     * deprecated May 2008
+     * @deprecated - Misleading name - use setFirstVisibleTab() 
+     */
+    public void setDisplayedTab(short t) {
+        setFirstVisibleTab(t);
     }
 
     /**
@@ -347,24 +356,36 @@
 
     // end options bitfields
 
+    
     /**
-     * get the selected tab number
-     * @return Tab number
+     * @return the index of the currently displayed sheet 
+     */
+    public int getActiveSheetIndex() {
+    	return field_6_active_sheet;
+    }
+    /**
+     * deprecated May 2008
+     * @deprecated - Misleading name - use getActiveSheetIndex() 
      */
-
     public short getSelectedTab()
     {
-        return field_6_selected_tab;
+        return (short) getActiveSheetIndex();
     }
 
     /**
-     * get the displayed tab number
-     * @return Tab number
+     * @return the first visible sheet in the worksheet tab-bar. 
+     * I.E. the scroll position of the tab-bar.
+     */
+    public int getFirstVisibleTab() {
+        return field_7_first_visible_tab;
+    }
+    /**
+     * deprecated May 2008
+     * @deprecated - Misleading name - use getFirstVisibleTab() 
      */
-
     public short getDisplayedTab()
     {
-        return field_7_displayed_tab;
+        return (short) getFirstVisibleTab();
     }
 
     /**
@@ -412,10 +433,10 @@
             .append(getDisplayVerticalScrollbar()).append("\n");
         buffer.append("        .tabs        = ").append(getDisplayTabs())
             .append("\n");
-        buffer.append("    .selectedtab     = ")
-            .append(Integer.toHexString(getSelectedTab())).append("\n");
-        buffer.append("    .displayedtab    = ")
-            .append(Integer.toHexString(getDisplayedTab())).append("\n");
+        buffer.append("    .activeSheet     = ")
+            .append(Integer.toHexString(getActiveSheetIndex())).append("\n");
+        buffer.append("    .firstVisibleTab    = ")
+            .append(Integer.toHexString(getFirstVisibleTab())).append("\n");
         buffer.append("    .numselectedtabs = ")
             .append(Integer.toHexString(getNumSelectedTabs())).append("\n");
         buffer.append("    .tabwidthratio   = ")
@@ -434,8 +455,8 @@
         LittleEndian.putShort(data, 8 + offset, getWidth());
         LittleEndian.putShort(data, 10 + offset, getHeight());
         LittleEndian.putShort(data, 12 + offset, getOptions());
-        LittleEndian.putShort(data, 14 + offset, getSelectedTab());
-        LittleEndian.putShort(data, 16 + offset, getDisplayedTab());
+        LittleEndian.putUShort(data, 14 + offset, getActiveSheetIndex());
+        LittleEndian.putUShort(data, 16 + offset, getFirstVisibleTab());
         LittleEndian.putShort(data, 18 + offset, getNumSelectedTabs());
         LittleEndian.putShort(data, 20 + offset, getTabWidthRatio());
         return getRecordSize();

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowTwoRecord.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowTwoRecord.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowTwoRecord.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/WindowTwoRecord.java Sun May 18 23:35:30 2008
@@ -54,7 +54,7 @@
     private BitField          displayGuts             = BitFieldFactory.getInstance(0x80);
     private BitField          freezePanesNoSplit      = BitFieldFactory.getInstance(0x100);
     private BitField          selected                = BitFieldFactory.getInstance(0x200);
-    private BitField          paged                   = BitFieldFactory.getInstance(0x400);
+    private BitField          active                  = BitFieldFactory.getInstance(0x400);
     private BitField          savedInPageBreakPreview = BitFieldFactory.getInstance(0x800);
 
     // 4-7 reserved
@@ -222,12 +222,16 @@
      * is the sheet currently displayed in the window
      * @param p  displayed or not
      */
-
-    public void setPaged(boolean p)
-    {
-        field_1_options = paged.setShortBoolean(field_1_options, p);
+    public void setActive(boolean p) {
+        field_1_options = active.setShortBoolean(field_1_options, p);
+    }
+    /**
+     * deprecated May 2008
+     * @deprecated use setActive()
+     */
+    public void setPaged(boolean p) {
+    	setActive(p);
     }
-
     /**
      * was the sheet saved in page break view
      * @param p  pagebreaksaved or not
@@ -416,9 +420,15 @@
      * @return displayed or not
      */
 
-    public boolean getPaged()
-    {
-        return paged.isSet(field_1_options);
+    public boolean isActive() {
+        return active.isSet(field_1_options);
+    }
+    /**
+     * deprecated May 2008
+     * @deprecated use isActive()
+     */
+    public boolean getPaged() {
+        return isActive();
     }
 
     /**
@@ -520,7 +530,7 @@
             .append(getFreezePanesNoSplit()).append("\n");
         buffer.append("       .selected    = ").append(getSelected())
             .append("\n");
-        buffer.append("       .paged       = ").append(getPaged())
+        buffer.append("       .active       = ").append(isActive())
             .append("\n");
         buffer.append("       .svdinpgbrkpv= ")
             .append(getSavedInPageBreakPreview()).append("\n");

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java Sun May 18 23:35:30 2008
@@ -35,19 +35,17 @@
  * @author Jason Height (jheight at chariot dot net dot au)
  */
 
-public class RowRecordsAggregate
-    extends Record
-{
-    int     firstrow = -1;
-    int     lastrow  = -1;
-    Map records  = null;
-    int     size     = 0;
+public final class RowRecordsAggregate extends Record {
+    private int     firstrow = -1;
+    private int     lastrow  = -1;
+    private Map records  = null; // TODO - use a proper key in this map
+    private int     size     = 0;
 
     /** Creates a new instance of ValueRecordsAggregate */
 
     public RowRecordsAggregate()
     {
-        records = new TreeMap();
+        records = new TreeMap();  
     }
 
     public void insertRow(RowRecord row)
@@ -74,15 +72,13 @@
         records.remove(row);
     }
 
-    public RowRecord getRow(int rownum)
-    {
-		// Row must be between 0 and 65535
-		if(rownum < 0 || rownum > 65535) {
-			throw new IllegalArgumentException("The row number must be between 0 and 65535");
-		}
+    public RowRecord getRow(int rownum) {
+        // Row must be between 0 and 65535
+        if(rownum < 0 || rownum > 65535) {
+            throw new IllegalArgumentException("The row number must be between 0 and 65535");
+        }
 
-        RowRecord row = new RowRecord();
-        row.setRowNumber(rownum);
+        RowRecord row = new RowRecord(rownum);
         return ( RowRecord ) records.get(row);
     }
 
@@ -333,7 +329,7 @@
 
         // Find the start of the group.
         int startRow = findStartOfRowOutlineGroup( rowNumber );
-        RowRecord rowRecord = (RowRecord) getRow( startRow );
+        RowRecord rowRecord = getRow( startRow );
 
         // Hide all the columns until the end of the group
         int lastRow = writeHidden( rowRecord, startRow, true );
@@ -358,17 +354,8 @@
      * @return RowRecord created for the passed in row number
      * @see org.apache.poi.hssf.record.RowRecord
      */
-    public static RowRecord createRow(int row)
-    {
-        RowRecord rowrec = new RowRecord();
-
-        //rowrec.setRowNumber(( short ) row);
-        rowrec.setRowNumber(row);
-        rowrec.setHeight(( short ) 0xff);
-        rowrec.setOptimize(( short ) 0x0);
-        rowrec.setOptionFlags(( short ) 0x100);  // seems necessary for outlining
-        rowrec.setXFIndex(( short ) 0xf);
-        return rowrec;
+    public static RowRecord createRow(int rowNumber) {
+        return new RowRecord(rowNumber);
     }
 
     public boolean isRowGroupCollapsed( int row )
@@ -399,12 +386,12 @@
         int endIdx = findEndOfRowOutlineGroup( idx );
 
         // expand:
-        // colapsed bit must be unset
+        // collapsed bit must be unset
         // hidden bit gets unset _if_ surrounding groups are expanded you can determine
         //   this by looking at the hidden bit of the enclosing group.  You will have
         //   to look at the start and the end of the current group to determine which
         //   is the enclosing group
-        // hidden bit only is altered for this outline level.  ie.  don't uncollapse contained groups
+        // hidden bit only is altered for this outline level.  ie.  don't un-collapse contained groups
         if ( !isRowGroupHiddenByParent( idx ) )
         {
             for ( int i = startIdx; i <= endIdx; i++ )

Modified: poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java
URL: http://svn.apache.org/viewvc/poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java?rev=657731&r1=657730&r2=657731&view=diff
==============================================================================
--- poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java (original)
+++ poi/tags/REL_3_1_BETA2/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java Sun May 18 23:35:30 2008
@@ -24,9 +24,8 @@
 
 /**
  * To support Constant Values (2.5.7) as required by the CRN record.
- * This class should probably also be used for two dimensional arrays which are encoded by 
+ * This class is also used for two dimensional arrays which are encoded by 
  * EXTERNALNAME (5.39) records and Array tokens.<p/>
- * TODO - code in ArrayPtg should be merged with this code.  It currently supports only 2 of the constant types
  * 
  * @author Josh Micich
  */



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message