You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ye...@apache.org on 2008/05/19 08:35:32 UTC
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...
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