/*********************************************************************
*
* Copyright (C) 2001 Andrew Khan
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
package jxl.read.biff;
import jxl.common.Logger;
import jxl.biff.IntegerHelper;
import jxl.biff.RecordData;
/**
* A row record
*/
public class RowRecord extends RecordData
{
/**
* The logger
*/
private static Logger logger = Logger.getLogger(RowRecord.class);
/**
* The number of this row
*/
private int rowNumber;
/**
* The height of this row
*/
private int rowHeight;
/**
* Flag to indicate whether this row is collapsed or not
*/
private boolean collapsed;
/**
* Indicates whether this row has an explicit default format
*/
private boolean defaultFormat;
/**
* Indicates whether the row record height matches the default font height
*/
private boolean matchesDefFontHeight;
/**
* The (default) xf index for cells on this row
*/
private int xfIndex;
/**
* The outline level of the row
*/
private int outlineLevel;
/**
* Is this the icon indicator row of a group?
*/
private boolean groupStart;
/**
* Indicates that the row is default height
*/
private static final int defaultHeightIndicator = 0xff;
/**
* Constructs this object from the raw data
*
* @param t the raw data
*/
RowRecord(Record t)
{
super(t);
byte[] data = getRecord().getData();
rowNumber = IntegerHelper.getInt(data[0], data[1]);
rowHeight = IntegerHelper.getInt(data[6], data[7]);
int options = IntegerHelper.getInt(data[12], data[13],
data[14], data[15]);
outlineLevel = (options & 0x7);
groupStart = (options & 0x10) != 0;
collapsed = (options & 0x20) != 0;
matchesDefFontHeight = (options & 0x40) == 0;
defaultFormat = (options & 0x80) != 0;
xfIndex = (options & 0x0fff0000) >> 16;
}
/**
* Interrogates whether this row is of default height
*
* @return TRUE if this is set to the default height, FALSE otherwise
*/
boolean isDefaultHeight()
{
return rowHeight == defaultHeightIndicator;
}
/**
* Interrogates this row to see whether it matches the default font height
*
* @return TRUE if this matches the default font height, FALSE otherwise
*/
public boolean matchesDefaultFontHeight()
{
return matchesDefFontHeight;
}
/**
* Gets the row number
*
* @return the number of this row
*/
public int getRowNumber()
{
return rowNumber;
}
/**
* Accessor for the row's outline level
*
* @return the row's outline level
*/
public int getOutlineLevel()
{
return outlineLevel;
}
/**
* Accessor for row's groupStart value
*
* @return the row's groupStart value
*/
public boolean getGroupStart()
{
return groupStart;
}
/**
* Gets the height of the row
*
* @return the row height
*/
public int getRowHeight()
{
return rowHeight;
}
/**
* Queries whether the row is collapsed
*
* @return the collapsed indicator
*/
public boolean isCollapsed()
{
return collapsed;
}
/**
* Gets the default xf index for this row
*
* @return the xf index
*/
public int getXFIndex()
{
return xfIndex;
}
/**
* Queries whether the row has a specific default cell format applied
*
* @return the default cell format
*/
public boolean hasDefaultFormat()
{
return defaultFormat;
}
}
|