Some changes to record generation
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352885 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3dc6a403e9
commit
a46e6bdc12
@ -164,6 +164,8 @@ public class HSSFCellUtil
|
||||
*@param workbook The workbook that is being worked with.
|
||||
*@param align the column alignment to use.
|
||||
*@exception NestableException Thrown if an error happens.
|
||||
*
|
||||
* @see HSSFCellStyle for alignment options
|
||||
*/
|
||||
public static void setAlignment( HSSFCell cell, HSSFWorkbook workbook, short align ) throws NestableException
|
||||
{
|
||||
@ -198,7 +200,6 @@ public class HSSFCellUtil
|
||||
*@param cell The cell that needs it's style changes
|
||||
*@exception NestableException Thrown if an error happens.
|
||||
*/
|
||||
|
||||
public static void setCellStyleProperty( HSSFCell cell, HSSFWorkbook workbook, String propertyName, Object propertyValue )
|
||||
throws NestableException
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
|
||||
<!-- <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd"> -->
|
||||
|
||||
<document>
|
||||
<header>
|
||||
@ -20,34 +20,37 @@
|
||||
</p>
|
||||
<p>
|
||||
A utility was needed to take the defintition of what a
|
||||
record looked like and do all the boring stuff. Thus the
|
||||
record generator was born.
|
||||
record looked like and do all the boring and repetitive work.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section title="Capabilities">
|
||||
<p>
|
||||
The record generator takes XML as input and produced the following
|
||||
The record generator takes XML as input and produces the following
|
||||
output:
|
||||
<ul>
|
||||
<li>A Java file capabile of decoding and encoding the record.</li>
|
||||
<li>A test class with provides a fill-in-the-blanks implementation of a test case
|
||||
for ensuring the record operates as designed.</li>
|
||||
<li>A test class that provides a fill-in-the-blanks implementation
|
||||
of a test case for ensuring the record operates as
|
||||
designed.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</section>
|
||||
<section title="Usage">
|
||||
<p>
|
||||
The record generator is invoked as an Ant target (generate-records). It goes
|
||||
through looking for all files in src/records/defintitions ending with _record.xml.
|
||||
It then creates two files; the Java record definition and the Java test case template.
|
||||
The record generator is invoked as an Ant target
|
||||
(generate-records). It goes through looking for all files in
|
||||
<code>src/records/defintitions</code> ending with _record.xml.
|
||||
It then creates two files; the Java record definition and the
|
||||
Java test case template.
|
||||
</p>
|
||||
<p>
|
||||
The records themselves have the following general layout:
|
||||
</p>
|
||||
<source><![CDATA[
|
||||
<record id="0x1032" name="Frame" package="org.apache.poi.hssf.record">
|
||||
<description>The frame record indicates whether there is a border
|
||||
<record id="0x1032" name="Frame" package="org.apache.poi.hssf.record"
|
||||
excel-record-id="FRAME">
|
||||
<description>The frame record indicates whether there is a border
|
||||
around the displayed text of a chart.</description>
|
||||
<author>Glen Stampoultzis (glens at apache.org)</author>
|
||||
<fields>
|
||||
@ -56,22 +59,76 @@
|
||||
<const name="shadow" value="1" description="rectangle with shadow"/>
|
||||
</field>
|
||||
<field type="int" size="2" name="options">
|
||||
<bit number="0" name="auto size"
|
||||
<bit number="0" name="auto size"
|
||||
description="excel calculates the size automatically if true"/>
|
||||
<bit number="1" name="auto position"
|
||||
<bit number="1" name="auto position"
|
||||
description="excel calculates the position automatically"/>
|
||||
</field>
|
||||
</fields>
|
||||
</record>
|
||||
]]></source>
|
||||
<p>
|
||||
Currently the type can be of type int, float or string. The 'int'
|
||||
type covers bytes, shorts and integers which is selected using a
|
||||
size of 1, 2 or 4. An additional type called varword is used to
|
||||
represent a array of word values where the first short is the length
|
||||
of the array. The string type generation is only partially
|
||||
implemented. If choosing string you must select a size of 'var'.
|
||||
The following table details the allowable types and sizes for
|
||||
the fields.
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Size</th>
|
||||
<th>Java Type</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int</td>
|
||||
<td>1</td>
|
||||
<td>byte</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int</td>
|
||||
<td>2</td>
|
||||
<td>short</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int</td>
|
||||
<td>4</td>
|
||||
<td>int</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int</td>
|
||||
<td>8</td>
|
||||
<td>long</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int</td>
|
||||
<td>varword</td>
|
||||
<td>array of shorts</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bits</td>
|
||||
<td>1</td>
|
||||
<td>A byte comprising of a bits (defined by the bit element)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bits</td>
|
||||
<td>2</td>
|
||||
<td>An short comprising of a bits</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bits</td>
|
||||
<td>4</td>
|
||||
<td>A int comprising of a bits</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>float</td>
|
||||
<td>8</td>
|
||||
<td>double</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>hbstring</td>
|
||||
<td>java expression</td>
|
||||
<td>String</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
The Java records are regenerated each time the record generator is
|
||||
run, however the test stubs are only created if the test stub does
|
||||
@ -79,6 +136,29 @@
|
||||
stubs but not the generated records.
|
||||
</p>
|
||||
</section>
|
||||
<section title="Custom Field Types">
|
||||
<p>
|
||||
Occationally the builtin types are not enough. More control
|
||||
over the encoding and decoding of the streams is required. This
|
||||
can be achieved using a custom type.
|
||||
</p>
|
||||
<p>
|
||||
A custom type lets you escape to java to define the way in which
|
||||
the field encodes and decodes. To code a custom type you
|
||||
declare your field like this:
|
||||
</p>
|
||||
<source><![CDATA[
|
||||
<field type="custom:org.apache.poi.hssf.record.LinkedDataFormulaField"
|
||||
size="var" name="formula of link" description="formula"/>
|
||||
]]></source>
|
||||
<p>
|
||||
Where the class name specified after <code>custom:</code> is a
|
||||
class implementing the interface <code>CustomField</code>.
|
||||
</p>
|
||||
<p>
|
||||
You can then implement the encoding yourself.
|
||||
</p>
|
||||
</section>
|
||||
<section title="How it Works">
|
||||
<p>
|
||||
The record generation works by taking an XML file and styling it
|
||||
@ -89,23 +169,23 @@
|
||||
See record.xsl, record_test.xsl, FieldIterator.java,
|
||||
RecordUtil.java, RecordGenerator.java
|
||||
</p>
|
||||
<p>
|
||||
There is a corresponding "type" generator for HDF.
|
||||
See the HDF documentation for details.
|
||||
</p>
|
||||
</section>
|
||||
<section title="Limitations">
|
||||
<p>
|
||||
The record generator does not handle all possible record types and
|
||||
is not ment to. Sometimes it's going to make more sense to generate
|
||||
the records manually. The main point of this thing is to make the
|
||||
easy stuff simple.
|
||||
</p>
|
||||
<p>
|
||||
Currently the record generator is optimized to create Excel records.
|
||||
It could be adapted to create Word records with a little poking
|
||||
around.
|
||||
The record generator does not handle all possible record types and
|
||||
goes not intend to perform this function. When dealing with a
|
||||
non-standard record sometimes the cost-benifit of coding the
|
||||
record by hand will be greater than attempting modify the
|
||||
generator. The main point of the record generator is to save
|
||||
time, so keep that in mind.
|
||||
</p>
|
||||
<p>
|
||||
Currently the the XSL file that generates the record calls out to
|
||||
Java objects. This would have been better done as Javascript inside
|
||||
the XSL file itself. The Java code for the record generation is
|
||||
Java objects. The Java code for the record generation is
|
||||
currently quite messy with minimal comments.
|
||||
</p>
|
||||
</section>
|
||||
|
@ -56,15 +56,11 @@
|
||||
|
||||
package org.apache.poi.hssf.model;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Stack;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.File;
|
||||
|
||||
import org.apache.poi.hssf.util.SheetReferences;
|
||||
import org.apache.poi.hssf.record.formula.*;
|
||||
import org.apache.poi.hssf.util.SheetReferences;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -101,7 +97,7 @@ public class FormulaParser {
|
||||
private static char TAB = '\t';
|
||||
private static char CR = '\n';
|
||||
|
||||
private char Look; // Lookahead Character
|
||||
private char look; // Lookahead Character
|
||||
|
||||
private Workbook book;
|
||||
|
||||
@ -115,7 +111,7 @@ public class FormulaParser {
|
||||
formulaString = formula;
|
||||
pointer=0;
|
||||
this.book = book;
|
||||
formulaLength = formulaString.length();
|
||||
formulaLength = formulaString.length();
|
||||
}
|
||||
|
||||
|
||||
@ -125,10 +121,10 @@ public class FormulaParser {
|
||||
// Just return if so and reset Look to smoething to keep
|
||||
// SkipWhitespace from spinning
|
||||
if (pointer == formulaLength) {
|
||||
Look = (char)0;
|
||||
look = (char)0;
|
||||
return;
|
||||
}
|
||||
Look=formulaString.charAt(pointer++);
|
||||
look=formulaString.charAt(pointer++);
|
||||
//System.out.println("Got char: "+Look);
|
||||
}
|
||||
|
||||
@ -193,7 +189,7 @@ public class FormulaParser {
|
||||
|
||||
/** Skip Over Leading White Space */
|
||||
private void SkipWhite() {
|
||||
while (IsWhite(Look)) {
|
||||
while (IsWhite(look)) {
|
||||
GetChar();
|
||||
}
|
||||
}
|
||||
@ -202,7 +198,7 @@ public class FormulaParser {
|
||||
|
||||
/** Match a Specific Input Character */
|
||||
private void Match(char x) {
|
||||
if (Look != x) {
|
||||
if (look != x) {
|
||||
Expected("" + x + "");
|
||||
}else {
|
||||
GetChar();
|
||||
@ -213,11 +209,11 @@ public class FormulaParser {
|
||||
/** Get an Identifier */
|
||||
private String GetName() {
|
||||
StringBuffer Token = new StringBuffer();
|
||||
if (!IsAlpha(Look)) {
|
||||
if (!IsAlpha(look)) {
|
||||
Expected("Name");
|
||||
}
|
||||
while (IsAlNum(Look)) {
|
||||
Token = Token.append(Character.toUpperCase(Look));
|
||||
while (IsAlNum(look)) {
|
||||
Token = Token.append(Character.toUpperCase(look));
|
||||
GetChar();
|
||||
}
|
||||
SkipWhite();
|
||||
@ -228,11 +224,11 @@ public class FormulaParser {
|
||||
converting to uppercase; used for literals */
|
||||
private String GetNameAsIs() {
|
||||
StringBuffer Token = new StringBuffer();
|
||||
if (!IsAlpha(Look)) {
|
||||
if (!IsAlpha(look)) {
|
||||
Expected("Name");
|
||||
}
|
||||
while (IsAlNum(Look) || IsWhite(Look)) {
|
||||
Token = Token.append(Look);
|
||||
while (IsAlNum(look) || IsWhite(look)) {
|
||||
Token = Token.append(look);
|
||||
GetChar();
|
||||
}
|
||||
return Token.toString();
|
||||
@ -242,9 +238,9 @@ public class FormulaParser {
|
||||
/** Get a Number */
|
||||
private String GetNum() {
|
||||
String Value ="";
|
||||
if (!IsDigit(Look)) Expected("Integer");
|
||||
while (IsDigit(Look)){
|
||||
Value = Value + Look;
|
||||
if (!IsDigit(look)) Expected("Integer");
|
||||
while (IsDigit(look)){
|
||||
Value = Value + look;
|
||||
GetChar();
|
||||
}
|
||||
SkipWhite();
|
||||
@ -266,20 +262,20 @@ public class FormulaParser {
|
||||
private void Ident() {
|
||||
String name;
|
||||
name = GetName();
|
||||
if (Look == '('){
|
||||
if (look == '('){
|
||||
//This is a function
|
||||
function(name);
|
||||
} else if (Look == ':') { // this is a AreaReference
|
||||
} else if (look == ':') { // this is a AreaReference
|
||||
String first = name;
|
||||
Match(':');
|
||||
String second = GetName();
|
||||
tokens.add(new AreaPtg(first+":"+second));
|
||||
} else if (Look == '!') {
|
||||
} else if (look == '!') {
|
||||
Match('!');
|
||||
String sheetName = name;
|
||||
String first = GetName();
|
||||
short externIdx = book.checkExternSheet(book.getSheetIndex(sheetName));
|
||||
if (Look == ':') {
|
||||
if (look == ':') {
|
||||
Match(':');
|
||||
String second=GetName();
|
||||
|
||||
@ -326,12 +322,12 @@ public class FormulaParser {
|
||||
/** get arguments to a function */
|
||||
private int Arguments() {
|
||||
int numArgs = 0;
|
||||
if (Look != ')') {
|
||||
if (look != ')') {
|
||||
numArgs++;
|
||||
Expression();
|
||||
}
|
||||
while (Look == ',' || Look == ';') { //TODO handle EmptyArgs
|
||||
if(Look == ',') {
|
||||
while (look == ',' || look == ';') { //TODO handle EmptyArgs
|
||||
if(look == ',') {
|
||||
Match(',');
|
||||
}
|
||||
else {
|
||||
@ -345,23 +341,23 @@ public class FormulaParser {
|
||||
|
||||
/** Parse and Translate a Math Factor */
|
||||
private void Factor() {
|
||||
if (Look == '(' ) {
|
||||
if (look == '(' ) {
|
||||
Match('(');
|
||||
Expression();
|
||||
Match(')');
|
||||
tokens.add(new ParenthesisPtg());
|
||||
return;
|
||||
} else if (IsAlpha(Look)){
|
||||
} else if (IsAlpha(look)){
|
||||
Ident();
|
||||
} else if(Look == '"') {
|
||||
} else if(look == '"') {
|
||||
StringLiteral();
|
||||
} else {
|
||||
|
||||
String number = GetNum();
|
||||
if (Look=='.') {
|
||||
if (look=='.') {
|
||||
Match('.');
|
||||
String decimalPart = null;
|
||||
if (IsDigit(Look)) number = number +"."+ GetNum(); //this also takes care of someone entering "1234."
|
||||
if (IsDigit(look)) number = number +"."+ GetNum(); //this also takes care of someone entering "1234."
|
||||
tokens.add(new NumberPtg(number));
|
||||
} else {
|
||||
tokens.add(new IntPtg(number)); //TODO:what if the number is too big to be a short? ..add factory to return Int or Number!
|
||||
@ -397,13 +393,13 @@ public class FormulaParser {
|
||||
/** Parse and Translate a Math Term */
|
||||
private void Term(){
|
||||
Factor();
|
||||
while (Look == '*' || Look == '/' || Look == '^' || Look == '&' || Look == '=' ) {
|
||||
while (look == '*' || look == '/' || look == '^' || look == '&' || look == '=' ) {
|
||||
///TODO do we need to do anything here??
|
||||
if (Look == '*') Multiply();
|
||||
if (Look == '/') Divide();
|
||||
if (Look == '^') Power();
|
||||
if (Look == '&') Concat();
|
||||
if (Look == '=') Equal();
|
||||
if (look == '*') Multiply();
|
||||
if (look == '/') Divide();
|
||||
if (look == '^') Power();
|
||||
if (look == '&') Concat();
|
||||
if (look == '=') Equal();
|
||||
}
|
||||
}
|
||||
|
||||
@ -444,16 +440,16 @@ public class FormulaParser {
|
||||
|
||||
/** Parse and Translate an Expression */
|
||||
private void Expression() {
|
||||
if (IsAddop(Look)) {
|
||||
if (IsAddop(look)) {
|
||||
EmitLn("CLR D0"); //unaryAdd ptg???
|
||||
} else {
|
||||
Term();
|
||||
}
|
||||
while (IsAddop(Look)) {
|
||||
if ( Look == '+' ) Add();
|
||||
if (Look == '-') Subtract();
|
||||
if (Look == '*') Multiply();
|
||||
if (Look == '/') Divide();
|
||||
while (IsAddop(look)) {
|
||||
if ( look == '+' ) Add();
|
||||
if (look == '-') Subtract();
|
||||
if (look == '*') Multiply();
|
||||
if (look == '/') Divide();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,6 +98,7 @@ public class AreaFormatRecord
|
||||
public AreaFormatRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,6 +114,7 @@ public class AreaFormatRecord
|
||||
public AreaFormatRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,12 +132,14 @@ public class AreaFormatRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_foregroundColor = LittleEndian.getInt(data, 0x0 + offset);
|
||||
field_2_backgroundColor = LittleEndian.getInt(data, 0x4 + offset);
|
||||
field_3_pattern = LittleEndian.getShort(data, 0x8 + offset);
|
||||
field_4_formatFlags = LittleEndian.getShort(data, 0xa + offset);
|
||||
field_5_forecolorIndex = LittleEndian.getShort(data, 0xc + offset);
|
||||
field_6_backcolorIndex = LittleEndian.getShort(data, 0xe + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_foregroundColor = LittleEndian.getInt(data, pos + 0x0 + offset);
|
||||
field_2_backgroundColor = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
field_3_pattern = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
field_4_formatFlags = LittleEndian.getShort(data, pos + 0xa + offset);
|
||||
field_5_forecolorIndex = LittleEndian.getShort(data, pos + 0xc + offset);
|
||||
field_6_backcolorIndex = LittleEndian.getShort(data, pos + 0xe + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -143,55 +147,51 @@ public class AreaFormatRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[AreaFormat]\n");
|
||||
|
||||
buffer.append("[AREAFORMAT]\n");
|
||||
buffer.append(" .foregroundColor = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getForegroundColor()))
|
||||
.append(" (").append(getForegroundColor()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getForegroundColor ()))
|
||||
.append(" (").append( getForegroundColor() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .backgroundColor = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getBackgroundColor()))
|
||||
.append(" (").append(getBackgroundColor()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBackgroundColor ()))
|
||||
.append(" (").append( getBackgroundColor() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .pattern = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getPattern()))
|
||||
.append(" (").append(getPattern()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getPattern ()))
|
||||
.append(" (").append( getPattern() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .formatFlags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatFlags()))
|
||||
.append(" (").append(getFormatFlags()).append(" )\n");
|
||||
buffer.append(" .automatic = ").append(isAutomatic ()).append('\n');
|
||||
buffer.append(" .invert = ").append(isInvert ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getFormatFlags ()))
|
||||
.append(" (").append( getFormatFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .automatic = ").append(isAutomatic()).append('\n');
|
||||
buffer.append(" .invert = ").append(isInvert()).append('\n');
|
||||
buffer.append(" .forecolorIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getForecolorIndex()))
|
||||
.append(" (").append(getForecolorIndex()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getForecolorIndex ()))
|
||||
.append(" (").append( getForecolorIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .backcolorIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getBackcolorIndex()))
|
||||
.append(" (").append(getBackcolorIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getBackcolorIndex ()))
|
||||
.append(" (").append( getBackcolorIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/AreaFormat]\n");
|
||||
buffer.append("[/AREAFORMAT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putInt(data, 4 + offset, field_1_foregroundColor);
|
||||
LittleEndian.putInt(data, 8 + offset, field_2_backgroundColor);
|
||||
LittleEndian.putShort(data, 12 + offset, field_3_pattern);
|
||||
LittleEndian.putShort(data, 14 + offset, field_4_formatFlags);
|
||||
LittleEndian.putShort(data, 16 + offset, field_5_forecolorIndex);
|
||||
LittleEndian.putShort(data, 18 + offset, field_6_backcolorIndex);
|
||||
LittleEndian.putInt(data, 4 + offset + pos, field_1_foregroundColor);
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_2_backgroundColor);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_3_pattern);
|
||||
LittleEndian.putShort(data, 14 + offset + pos, field_4_formatFlags);
|
||||
LittleEndian.putShort(data, 16 + offset + pos, field_5_forecolorIndex);
|
||||
LittleEndian.putShort(data, 18 + offset + pos, field_6_backcolorIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -201,7 +201,7 @@ public class AreaFormatRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 4 + 4 + 2 + 2 + 2 + 2;
|
||||
return 4 + 4 + 4 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -210,19 +210,20 @@ public class AreaFormatRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AreaFormatRecord rec = new AreaFormatRecord();
|
||||
|
||||
rec.field_1_foregroundColor = field_1_foregroundColor;
|
||||
rec.field_2_backgroundColor = field_2_backgroundColor;
|
||||
rec.field_3_pattern = field_3_pattern;
|
||||
rec.field_4_formatFlags = field_4_formatFlags;
|
||||
rec.field_5_forecolorIndex = field_5_forecolorIndex;
|
||||
rec.field_6_backcolorIndex = field_6_backcolorIndex;
|
||||
|
||||
return rec;
|
||||
AreaFormatRecord rec = new AreaFormatRecord();
|
||||
|
||||
rec.field_1_foregroundColor = field_1_foregroundColor;
|
||||
rec.field_2_backgroundColor = field_2_backgroundColor;
|
||||
rec.field_3_pattern = field_3_pattern;
|
||||
rec.field_4_formatFlags = field_4_formatFlags;
|
||||
rec.field_5_forecolorIndex = field_5_forecolorIndex;
|
||||
rec.field_6_backcolorIndex = field_6_backcolorIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the foreground color field for the AreaFormat record.
|
||||
*/
|
||||
|
@ -94,6 +94,7 @@ public class AreaRecord
|
||||
public AreaRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,6 +110,7 @@ public class AreaRecord
|
||||
public AreaRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,7 +128,9 @@ public class AreaRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_formatFlags = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_formatFlags = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -134,26 +138,27 @@ public class AreaRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Area]\n");
|
||||
|
||||
buffer.append("[AREA]\n");
|
||||
buffer.append(" .formatFlags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatFlags()))
|
||||
.append(" (").append(getFormatFlags()).append(" )\n");
|
||||
buffer.append(" .stacked = ").append(isStacked ()).append('\n');
|
||||
buffer.append(" .displayAsPercentage = ").append(isDisplayAsPercentage ()).append('\n');
|
||||
buffer.append(" .shadow = ").append(isShadow ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getFormatFlags ()))
|
||||
.append(" (").append( getFormatFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .stacked = ").append(isStacked()).append('\n');
|
||||
buffer.append(" .displayAsPercentage = ").append(isDisplayAsPercentage()).append('\n');
|
||||
buffer.append(" .shadow = ").append(isShadow()).append('\n');
|
||||
|
||||
buffer.append("[/Area]\n");
|
||||
buffer.append("[/AREA]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_formatFlags);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_formatFlags);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -163,7 +168,7 @@ public class AreaRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -172,14 +177,15 @@ public class AreaRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AreaRecord rec = new AreaRecord();
|
||||
|
||||
rec.field_1_formatFlags = field_1_formatFlags;
|
||||
|
||||
return rec;
|
||||
AreaRecord rec = new AreaRecord();
|
||||
|
||||
rec.field_1_formatFlags = field_1_formatFlags;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the format flags field for the Area record.
|
||||
*/
|
||||
|
@ -95,6 +95,7 @@ public class AxisLineFormatRecord
|
||||
public AxisLineFormatRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,6 +111,7 @@ public class AxisLineFormatRecord
|
||||
public AxisLineFormatRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,7 +129,9 @@ public class AxisLineFormatRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_axisType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_axisType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -135,23 +139,24 @@ public class AxisLineFormatRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[AxisLineFormat]\n");
|
||||
|
||||
buffer.append("[AXISLINEFORMAT]\n");
|
||||
buffer.append(" .axisType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getAxisType()))
|
||||
.append(" (").append(getAxisType()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getAxisType ()))
|
||||
.append(" (").append( getAxisType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/AxisLineFormat]\n");
|
||||
buffer.append("[/AXISLINEFORMAT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_axisType);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_axisType);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -161,7 +166,7 @@ public class AxisLineFormatRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -170,14 +175,15 @@ public class AxisLineFormatRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AxisLineFormatRecord rec = new AxisLineFormatRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
|
||||
return rec;
|
||||
AxisLineFormatRecord rec = new AxisLineFormatRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the axis type field for the AxisLineFormat record.
|
||||
*
|
||||
|
@ -107,6 +107,7 @@ public class AxisOptionsRecord
|
||||
public AxisOptionsRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -122,6 +123,7 @@ public class AxisOptionsRecord
|
||||
public AxisOptionsRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -139,15 +141,17 @@ public class AxisOptionsRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_minimumCategory = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_maximumCategory = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_majorUnitValue = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_4_majorUnit = LittleEndian.getShort(data, 0x6 + offset);
|
||||
field_5_minorUnitValue = LittleEndian.getShort(data, 0x8 + offset);
|
||||
field_6_minorUnit = LittleEndian.getShort(data, 0xa + offset);
|
||||
field_7_baseUnit = LittleEndian.getShort(data, 0xc + offset);
|
||||
field_8_crossingPoint = LittleEndian.getShort(data, 0xe + offset);
|
||||
field_9_options = LittleEndian.getShort(data, 0x10 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_minimumCategory = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_maximumCategory = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_majorUnitValue = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_4_majorUnit = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
field_5_minorUnitValue = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
field_6_minorUnit = LittleEndian.getShort(data, pos + 0xa + offset);
|
||||
field_7_baseUnit = LittleEndian.getShort(data, pos + 0xc + offset);
|
||||
field_8_crossingPoint = LittleEndian.getShort(data, pos + 0xe + offset);
|
||||
field_9_options = LittleEndian.getShort(data, pos + 0x10 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -155,79 +159,72 @@ public class AxisOptionsRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[AxisOptions]\n");
|
||||
|
||||
buffer.append("[AXCEXT]\n");
|
||||
buffer.append(" .minimumCategory = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMinimumCategory()))
|
||||
.append(" (").append(getMinimumCategory()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMinimumCategory ()))
|
||||
.append(" (").append( getMinimumCategory() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .maximumCategory = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMaximumCategory()))
|
||||
.append(" (").append(getMaximumCategory()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMaximumCategory ()))
|
||||
.append(" (").append( getMaximumCategory() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .majorUnitValue = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMajorUnitValue()))
|
||||
.append(" (").append(getMajorUnitValue()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMajorUnitValue ()))
|
||||
.append(" (").append( getMajorUnitValue() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .majorUnit = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMajorUnit()))
|
||||
.append(" (").append(getMajorUnit()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMajorUnit ()))
|
||||
.append(" (").append( getMajorUnit() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .minorUnitValue = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMinorUnitValue()))
|
||||
.append(" (").append(getMinorUnitValue()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMinorUnitValue ()))
|
||||
.append(" (").append( getMinorUnitValue() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .minorUnit = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getMinorUnit()))
|
||||
.append(" (").append(getMinorUnit()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMinorUnit ()))
|
||||
.append(" (").append( getMinorUnit() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .baseUnit = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getBaseUnit()))
|
||||
.append(" (").append(getBaseUnit()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBaseUnit ()))
|
||||
.append(" (").append( getBaseUnit() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .crossingPoint = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getCrossingPoint()))
|
||||
.append(" (").append(getCrossingPoint()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getCrossingPoint ()))
|
||||
.append(" (").append( getCrossingPoint() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .defaultMinimum = ").append(isDefaultMinimum ()).append('\n');
|
||||
buffer.append(" .defaultMaximum = ").append(isDefaultMaximum ()).append('\n');
|
||||
buffer.append(" .defaultMajor = ").append(isDefaultMajor ()).append('\n');
|
||||
buffer.append(" .defaultMinorUnit = ").append(isDefaultMinorUnit ()).append('\n');
|
||||
buffer.append(" .isDate = ").append(isIsDate ()).append('\n');
|
||||
buffer.append(" .defaultBase = ").append(isDefaultBase ()).append('\n');
|
||||
buffer.append(" .defaultCross = ").append(isDefaultCross ()).append('\n');
|
||||
buffer.append(" .defaultDateSettings = ").append(isDefaultDateSettings ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .defaultMinimum = ").append(isDefaultMinimum()).append('\n');
|
||||
buffer.append(" .defaultMaximum = ").append(isDefaultMaximum()).append('\n');
|
||||
buffer.append(" .defaultMajor = ").append(isDefaultMajor()).append('\n');
|
||||
buffer.append(" .defaultMinorUnit = ").append(isDefaultMinorUnit()).append('\n');
|
||||
buffer.append(" .isDate = ").append(isIsDate()).append('\n');
|
||||
buffer.append(" .defaultBase = ").append(isDefaultBase()).append('\n');
|
||||
buffer.append(" .defaultCross = ").append(isDefaultCross()).append('\n');
|
||||
buffer.append(" .defaultDateSettings = ").append(isDefaultDateSettings()).append('\n');
|
||||
|
||||
buffer.append("[/AxisOptions]\n");
|
||||
buffer.append("[/AXCEXT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_minimumCategory);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_maximumCategory);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_majorUnitValue);
|
||||
LittleEndian.putShort(data, 10 + offset, field_4_majorUnit);
|
||||
LittleEndian.putShort(data, 12 + offset, field_5_minorUnitValue);
|
||||
LittleEndian.putShort(data, 14 + offset, field_6_minorUnit);
|
||||
LittleEndian.putShort(data, 16 + offset, field_7_baseUnit);
|
||||
LittleEndian.putShort(data, 18 + offset, field_8_crossingPoint);
|
||||
LittleEndian.putShort(data, 20 + offset, field_9_options);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_minimumCategory);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_maximumCategory);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_majorUnitValue);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_4_majorUnit);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_5_minorUnitValue);
|
||||
LittleEndian.putShort(data, 14 + offset + pos, field_6_minorUnit);
|
||||
LittleEndian.putShort(data, 16 + offset + pos, field_7_baseUnit);
|
||||
LittleEndian.putShort(data, 18 + offset + pos, field_8_crossingPoint);
|
||||
LittleEndian.putShort(data, 20 + offset + pos, field_9_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -237,7 +234,7 @@ public class AxisOptionsRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -246,22 +243,23 @@ public class AxisOptionsRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AxisOptionsRecord rec = new AxisOptionsRecord();
|
||||
|
||||
rec.field_1_minimumCategory = field_1_minimumCategory;
|
||||
rec.field_2_maximumCategory = field_2_maximumCategory;
|
||||
rec.field_3_majorUnitValue = field_3_majorUnitValue;
|
||||
rec.field_4_majorUnit = field_4_majorUnit;
|
||||
rec.field_5_minorUnitValue = field_5_minorUnitValue;
|
||||
rec.field_6_minorUnit = field_6_minorUnit;
|
||||
rec.field_7_baseUnit = field_7_baseUnit;
|
||||
rec.field_8_crossingPoint = field_8_crossingPoint;
|
||||
rec.field_9_options = field_9_options;
|
||||
|
||||
return rec;
|
||||
AxisOptionsRecord rec = new AxisOptionsRecord();
|
||||
|
||||
rec.field_1_minimumCategory = field_1_minimumCategory;
|
||||
rec.field_2_maximumCategory = field_2_maximumCategory;
|
||||
rec.field_3_majorUnitValue = field_3_majorUnitValue;
|
||||
rec.field_4_majorUnit = field_4_majorUnit;
|
||||
rec.field_5_minorUnitValue = field_5_minorUnitValue;
|
||||
rec.field_6_minorUnit = field_6_minorUnit;
|
||||
rec.field_7_baseUnit = field_7_baseUnit;
|
||||
rec.field_8_crossingPoint = field_8_crossingPoint;
|
||||
rec.field_9_options = field_9_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the minimum category field for the AxisOptions record.
|
||||
*/
|
||||
|
@ -97,6 +97,7 @@ public class AxisParentRecord
|
||||
public AxisParentRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,6 +113,7 @@ public class AxisParentRecord
|
||||
public AxisParentRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,11 +131,13 @@ public class AxisParentRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_axisType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_x = LittleEndian.getInt(data, 0x2 + offset);
|
||||
field_3_y = LittleEndian.getInt(data, 0x6 + offset);
|
||||
field_4_width = LittleEndian.getInt(data, 0xa + offset);
|
||||
field_5_height = LittleEndian.getInt(data, 0xe + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_axisType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_x = LittleEndian.getInt(data, pos + 0x2 + offset);
|
||||
field_3_y = LittleEndian.getInt(data, pos + 0x6 + offset);
|
||||
field_4_width = LittleEndian.getInt(data, pos + 0xa + offset);
|
||||
field_5_height = LittleEndian.getInt(data, pos + 0xe + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -141,47 +145,44 @@ public class AxisParentRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[AxisParent]\n");
|
||||
|
||||
buffer.append("[AXISPARENT]\n");
|
||||
buffer.append(" .axisType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getAxisType()))
|
||||
.append(" (").append(getAxisType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getAxisType ()))
|
||||
.append(" (").append( getAxisType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .x = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getX()))
|
||||
.append(" (").append(getX()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getX ()))
|
||||
.append(" (").append( getX() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .y = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getY()))
|
||||
.append(" (").append(getY()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getY ()))
|
||||
.append(" (").append( getY() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .width = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getWidth()))
|
||||
.append(" (").append(getWidth()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getWidth ()))
|
||||
.append(" (").append( getWidth() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .height = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getHeight()))
|
||||
.append(" (").append(getHeight()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getHeight ()))
|
||||
.append(" (").append( getHeight() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/AxisParent]\n");
|
||||
buffer.append("[/AXISPARENT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_axisType);
|
||||
LittleEndian.putInt(data, 6 + offset, field_2_x);
|
||||
LittleEndian.putInt(data, 10 + offset, field_3_y);
|
||||
LittleEndian.putInt(data, 14 + offset, field_4_width);
|
||||
LittleEndian.putInt(data, 18 + offset, field_5_height);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_axisType);
|
||||
LittleEndian.putInt(data, 6 + offset + pos, field_2_x);
|
||||
LittleEndian.putInt(data, 10 + offset + pos, field_3_y);
|
||||
LittleEndian.putInt(data, 14 + offset + pos, field_4_width);
|
||||
LittleEndian.putInt(data, 18 + offset + pos, field_5_height);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -191,7 +192,7 @@ public class AxisParentRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 4 + 4 + 4 + 4;
|
||||
return 4 + 2 + 4 + 4 + 4 + 4;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -200,18 +201,19 @@ public class AxisParentRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AxisParentRecord rec = new AxisParentRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
rec.field_2_x = field_2_x;
|
||||
rec.field_3_y = field_3_y;
|
||||
rec.field_4_width = field_4_width;
|
||||
rec.field_5_height = field_5_height;
|
||||
|
||||
return rec;
|
||||
AxisParentRecord rec = new AxisParentRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
rec.field_2_x = field_2_x;
|
||||
rec.field_3_y = field_3_y;
|
||||
rec.field_4_width = field_4_width;
|
||||
rec.field_5_height = field_5_height;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the axis type field for the AxisParent record.
|
||||
*
|
||||
|
@ -98,6 +98,7 @@ public class AxisRecord
|
||||
public AxisRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,6 +114,7 @@ public class AxisRecord
|
||||
public AxisRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,11 +132,13 @@ public class AxisRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_axisType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_reserved1 = LittleEndian.getInt(data, 0x2 + offset);
|
||||
field_3_reserved2 = LittleEndian.getInt(data, 0x6 + offset);
|
||||
field_4_reserved3 = LittleEndian.getInt(data, 0xa + offset);
|
||||
field_5_reserved4 = LittleEndian.getInt(data, 0xe + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_axisType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_reserved1 = LittleEndian.getInt(data, pos + 0x2 + offset);
|
||||
field_3_reserved2 = LittleEndian.getInt(data, pos + 0x6 + offset);
|
||||
field_4_reserved3 = LittleEndian.getInt(data, pos + 0xa + offset);
|
||||
field_5_reserved4 = LittleEndian.getInt(data, pos + 0xe + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -142,47 +146,44 @@ public class AxisRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Axis]\n");
|
||||
|
||||
buffer.append("[AXIS]\n");
|
||||
buffer.append(" .axisType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getAxisType()))
|
||||
.append(" (").append(getAxisType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getAxisType ()))
|
||||
.append(" (").append( getAxisType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .reserved1 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getReserved1()))
|
||||
.append(" (").append(getReserved1()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getReserved1 ()))
|
||||
.append(" (").append( getReserved1() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .reserved2 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getReserved2()))
|
||||
.append(" (").append(getReserved2()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getReserved2 ()))
|
||||
.append(" (").append( getReserved2() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .reserved3 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getReserved3()))
|
||||
.append(" (").append(getReserved3()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getReserved3 ()))
|
||||
.append(" (").append( getReserved3() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .reserved4 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getReserved4()))
|
||||
.append(" (").append(getReserved4()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getReserved4 ()))
|
||||
.append(" (").append( getReserved4() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Axis]\n");
|
||||
buffer.append("[/AXIS]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_axisType);
|
||||
LittleEndian.putInt(data, 6 + offset, field_2_reserved1);
|
||||
LittleEndian.putInt(data, 10 + offset, field_3_reserved2);
|
||||
LittleEndian.putInt(data, 14 + offset, field_4_reserved3);
|
||||
LittleEndian.putInt(data, 18 + offset, field_5_reserved4);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_axisType);
|
||||
LittleEndian.putInt(data, 6 + offset + pos, field_2_reserved1);
|
||||
LittleEndian.putInt(data, 10 + offset + pos, field_3_reserved2);
|
||||
LittleEndian.putInt(data, 14 + offset + pos, field_4_reserved3);
|
||||
LittleEndian.putInt(data, 18 + offset + pos, field_5_reserved4);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -192,7 +193,7 @@ public class AxisRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 4 + 4 + 4 + 4;
|
||||
return 4 + 2 + 4 + 4 + 4 + 4;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -201,18 +202,19 @@ public class AxisRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AxisRecord rec = new AxisRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
rec.field_2_reserved1 = field_2_reserved1;
|
||||
rec.field_3_reserved2 = field_3_reserved2;
|
||||
rec.field_4_reserved3 = field_4_reserved3;
|
||||
rec.field_5_reserved4 = field_5_reserved4;
|
||||
|
||||
return rec;
|
||||
AxisRecord rec = new AxisRecord();
|
||||
|
||||
rec.field_1_axisType = field_1_axisType;
|
||||
rec.field_2_reserved1 = field_2_reserved1;
|
||||
rec.field_3_reserved2 = field_3_reserved2;
|
||||
rec.field_4_reserved3 = field_4_reserved3;
|
||||
rec.field_5_reserved4 = field_5_reserved4;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the axis type field for the Axis record.
|
||||
*
|
||||
|
@ -91,6 +91,7 @@ public class AxisUsedRecord
|
||||
public AxisUsedRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class AxisUsedRecord
|
||||
public AxisUsedRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class AxisUsedRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_numAxis = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_numAxis = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class AxisUsedRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[AxisUsed]\n");
|
||||
|
||||
buffer.append("[AXISUSED]\n");
|
||||
buffer.append(" .numAxis = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getNumAxis()))
|
||||
.append(" (").append(getNumAxis()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getNumAxis ()))
|
||||
.append(" (").append( getNumAxis() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/AxisUsed]\n");
|
||||
buffer.append("[/AXISUSED]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_numAxis);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_numAxis);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class AxisUsedRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class AxisUsedRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
AxisUsedRecord rec = new AxisUsedRecord();
|
||||
|
||||
rec.field_1_numAxis = field_1_numAxis;
|
||||
|
||||
return rec;
|
||||
AxisUsedRecord rec = new AxisUsedRecord();
|
||||
|
||||
rec.field_1_numAxis = field_1_numAxis;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the num axis field for the AxisUsed record.
|
||||
*/
|
||||
|
@ -82,7 +82,6 @@ public class BarRecord
|
||||
|
||||
public BarRecord()
|
||||
{
|
||||
field_2_categorySpace = 50;
|
||||
|
||||
}
|
||||
|
||||
@ -98,6 +97,7 @@ public class BarRecord
|
||||
public BarRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,6 +113,7 @@ public class BarRecord
|
||||
public BarRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,9 +131,11 @@ public class BarRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_barSpace = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_categorySpace = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_formatFlags = LittleEndian.getShort(data, 0x4 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_barSpace = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_categorySpace = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_formatFlags = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -140,39 +143,38 @@ public class BarRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Bar]\n");
|
||||
|
||||
buffer.append("[BAR]\n");
|
||||
buffer.append(" .barSpace = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getBarSpace()))
|
||||
.append(" (").append(getBarSpace()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBarSpace ()))
|
||||
.append(" (").append( getBarSpace() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .categorySpace = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getCategorySpace()))
|
||||
.append(" (").append(getCategorySpace()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getCategorySpace ()))
|
||||
.append(" (").append( getCategorySpace() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .formatFlags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatFlags()))
|
||||
.append(" (").append(getFormatFlags()).append(" )\n");
|
||||
buffer.append(" .horizontal = ").append(isHorizontal ()).append('\n');
|
||||
buffer.append(" .stacked = ").append(isStacked ()).append('\n');
|
||||
buffer.append(" .displayAsPercentage = ").append(isDisplayAsPercentage ()).append('\n');
|
||||
buffer.append(" .shadow = ").append(isShadow ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getFormatFlags ()))
|
||||
.append(" (").append( getFormatFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .horizontal = ").append(isHorizontal()).append('\n');
|
||||
buffer.append(" .stacked = ").append(isStacked()).append('\n');
|
||||
buffer.append(" .displayAsPercentage = ").append(isDisplayAsPercentage()).append('\n');
|
||||
buffer.append(" .shadow = ").append(isShadow()).append('\n');
|
||||
|
||||
buffer.append("[/Bar]\n");
|
||||
buffer.append("[/BAR]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_barSpace);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_categorySpace);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_formatFlags);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_barSpace);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_categorySpace);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_formatFlags);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -182,7 +184,7 @@ public class BarRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -191,16 +193,17 @@ public class BarRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
BarRecord rec = new BarRecord();
|
||||
|
||||
rec.field_1_barSpace = field_1_barSpace;
|
||||
rec.field_2_categorySpace = field_2_categorySpace;
|
||||
rec.field_3_formatFlags = field_3_formatFlags;
|
||||
|
||||
return rec;
|
||||
BarRecord rec = new BarRecord();
|
||||
|
||||
rec.field_1_barSpace = field_1_barSpace;
|
||||
rec.field_2_categorySpace = field_2_categorySpace;
|
||||
rec.field_3_formatFlags = field_3_formatFlags;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the bar space field for the Bar record.
|
||||
*/
|
||||
|
@ -97,6 +97,7 @@ public class CategorySeriesAxisRecord
|
||||
public CategorySeriesAxisRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,6 +113,7 @@ public class CategorySeriesAxisRecord
|
||||
public CategorySeriesAxisRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,10 +131,12 @@ public class CategorySeriesAxisRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_crossingPoint = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_labelFrequency = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_tickMarkFrequency = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_4_options = LittleEndian.getShort(data, 0x6 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_crossingPoint = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_labelFrequency = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_tickMarkFrequency = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_4_options = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -140,44 +144,42 @@ public class CategorySeriesAxisRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[CategorySeriesAxis]\n");
|
||||
|
||||
buffer.append("[CATSERRANGE]\n");
|
||||
buffer.append(" .crossingPoint = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getCrossingPoint()))
|
||||
.append(" (").append(getCrossingPoint()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getCrossingPoint ()))
|
||||
.append(" (").append( getCrossingPoint() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .labelFrequency = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getLabelFrequency()))
|
||||
.append(" (").append(getLabelFrequency()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLabelFrequency ()))
|
||||
.append(" (").append( getLabelFrequency() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .tickMarkFrequency = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getTickMarkFrequency()))
|
||||
.append(" (").append(getTickMarkFrequency()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getTickMarkFrequency ()))
|
||||
.append(" (").append( getTickMarkFrequency() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .valueAxisCrossing = ").append(isValueAxisCrossing ()).append('\n');
|
||||
buffer.append(" .crossesFarRight = ").append(isCrossesFarRight ()).append('\n');
|
||||
buffer.append(" .reversed = ").append(isReversed ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .valueAxisCrossing = ").append(isValueAxisCrossing()).append('\n');
|
||||
buffer.append(" .crossesFarRight = ").append(isCrossesFarRight()).append('\n');
|
||||
buffer.append(" .reversed = ").append(isReversed()).append('\n');
|
||||
|
||||
buffer.append("[/CategorySeriesAxis]\n");
|
||||
buffer.append("[/CATSERRANGE]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_crossingPoint);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_labelFrequency);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_tickMarkFrequency);
|
||||
LittleEndian.putShort(data, 10 + offset, field_4_options);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_crossingPoint);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_labelFrequency);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_tickMarkFrequency);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_4_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -187,7 +189,7 @@ public class CategorySeriesAxisRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -196,17 +198,18 @@ public class CategorySeriesAxisRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
CategorySeriesAxisRecord rec = new CategorySeriesAxisRecord();
|
||||
|
||||
rec.field_1_crossingPoint = field_1_crossingPoint;
|
||||
rec.field_2_labelFrequency = field_2_labelFrequency;
|
||||
rec.field_3_tickMarkFrequency = field_3_tickMarkFrequency;
|
||||
rec.field_4_options = field_4_options;
|
||||
|
||||
return rec;
|
||||
CategorySeriesAxisRecord rec = new CategorySeriesAxisRecord();
|
||||
|
||||
rec.field_1_crossingPoint = field_1_crossingPoint;
|
||||
rec.field_2_labelFrequency = field_2_labelFrequency;
|
||||
rec.field_3_tickMarkFrequency = field_3_tickMarkFrequency;
|
||||
rec.field_4_options = field_4_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the crossing point field for the CategorySeriesAxis record.
|
||||
*/
|
||||
|
@ -94,6 +94,7 @@ public class ChartRecord
|
||||
public ChartRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,6 +110,7 @@ public class ChartRecord
|
||||
public ChartRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,10 +128,12 @@ public class ChartRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_x = LittleEndian.getInt(data, 0x0 + offset);
|
||||
field_2_y = LittleEndian.getInt(data, 0x4 + offset);
|
||||
field_3_width = LittleEndian.getInt(data, 0x8 + offset);
|
||||
field_4_height = LittleEndian.getInt(data, 0xc + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_x = LittleEndian.getInt(data, pos + 0x0 + offset);
|
||||
field_2_y = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
field_3_width = LittleEndian.getInt(data, pos + 0x8 + offset);
|
||||
field_4_height = LittleEndian.getInt(data, pos + 0xc + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -137,41 +141,39 @@ public class ChartRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Chart]\n");
|
||||
|
||||
buffer.append("[CHART]\n");
|
||||
buffer.append(" .x = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getX()))
|
||||
.append(" (").append(getX()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getX ()))
|
||||
.append(" (").append( getX() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .y = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getY()))
|
||||
.append(" (").append(getY()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getY ()))
|
||||
.append(" (").append( getY() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .width = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getWidth()))
|
||||
.append(" (").append(getWidth()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getWidth ()))
|
||||
.append(" (").append( getWidth() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .height = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getHeight()))
|
||||
.append(" (").append(getHeight()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getHeight ()))
|
||||
.append(" (").append( getHeight() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Chart]\n");
|
||||
buffer.append("[/CHART]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putInt(data, 4 + offset, field_1_x);
|
||||
LittleEndian.putInt(data, 8 + offset, field_2_y);
|
||||
LittleEndian.putInt(data, 12 + offset, field_3_width);
|
||||
LittleEndian.putInt(data, 16 + offset, field_4_height);
|
||||
LittleEndian.putInt(data, 4 + offset + pos, field_1_x);
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_2_y);
|
||||
LittleEndian.putInt(data, 12 + offset + pos, field_3_width);
|
||||
LittleEndian.putInt(data, 16 + offset + pos, field_4_height);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -181,7 +183,7 @@ public class ChartRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 4 + 4 + 4 + 4;
|
||||
return 4 + 4 + 4 + 4 + 4;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -190,17 +192,18 @@ public class ChartRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
ChartRecord rec = new ChartRecord();
|
||||
|
||||
rec.field_1_x = field_1_x;
|
||||
rec.field_2_y = field_2_y;
|
||||
rec.field_3_width = field_3_width;
|
||||
rec.field_4_height = field_4_height;
|
||||
|
||||
return rec;
|
||||
ChartRecord rec = new ChartRecord();
|
||||
|
||||
rec.field_1_x = field_1_x;
|
||||
rec.field_2_y = field_2_y;
|
||||
rec.field_3_width = field_3_width;
|
||||
rec.field_4_height = field_4_height;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the x field for the Chart record.
|
||||
*/
|
||||
|
38
src/java/org/apache/poi/hssf/record/CustomField.java
Normal file
38
src/java/org/apache/poi/hssf/record/CustomField.java
Normal file
@ -0,0 +1,38 @@
|
||||
package org.apache.poi.hssf.record;
|
||||
|
||||
public interface CustomField
|
||||
extends Cloneable
|
||||
{
|
||||
/**
|
||||
* @return The size of this field in bytes. This operation is not valid
|
||||
* until after the call to <code>fillField()</code>
|
||||
*/
|
||||
int getSize();
|
||||
|
||||
/**
|
||||
* Populates this fields data from the byte array passed in.
|
||||
* @param data raw data
|
||||
* @param size size of data
|
||||
* @param offset of the record's data (provided a big array of the file)
|
||||
* @return the number of bytes read.
|
||||
*/
|
||||
int fillField(byte [] data, short size, int offset);
|
||||
|
||||
/**
|
||||
* Appends the string representation of this field to the supplied
|
||||
* StringBuffer.
|
||||
*
|
||||
* @param str The string buffer to append to.
|
||||
*/
|
||||
void toString(StringBuffer str);
|
||||
|
||||
/**
|
||||
* Converts this field to it's byte array form.
|
||||
* @param offset The offset into the byte array to start writing to.
|
||||
* @param data The data array to write to.
|
||||
* @return The number of bytes written.
|
||||
*/
|
||||
int serializeField(int offset, byte[] data);
|
||||
|
||||
|
||||
}
|
@ -95,6 +95,7 @@ public class DatRecord
|
||||
public DatRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,6 +111,7 @@ public class DatRecord
|
||||
public DatRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,7 +129,9 @@ public class DatRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_options = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_options = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -135,27 +139,28 @@ public class DatRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Dat]\n");
|
||||
|
||||
buffer.append("[DAT]\n");
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .horizontalBorder = ").append(isHorizontalBorder ()).append('\n');
|
||||
buffer.append(" .verticalBorder = ").append(isVerticalBorder ()).append('\n');
|
||||
buffer.append(" .border = ").append(isBorder ()).append('\n');
|
||||
buffer.append(" .showSeriesKey = ").append(isShowSeriesKey ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .horizontalBorder = ").append(isHorizontalBorder()).append('\n');
|
||||
buffer.append(" .verticalBorder = ").append(isVerticalBorder()).append('\n');
|
||||
buffer.append(" .border = ").append(isBorder()).append('\n');
|
||||
buffer.append(" .showSeriesKey = ").append(isShowSeriesKey()).append('\n');
|
||||
|
||||
buffer.append("[/Dat]\n");
|
||||
buffer.append("[/DAT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_options);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -165,7 +170,7 @@ public class DatRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -174,14 +179,15 @@ public class DatRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
DatRecord rec = new DatRecord();
|
||||
|
||||
rec.field_1_options = field_1_options;
|
||||
|
||||
return rec;
|
||||
DatRecord rec = new DatRecord();
|
||||
|
||||
rec.field_1_options = field_1_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the options field for the Dat record.
|
||||
*/
|
||||
|
@ -95,6 +95,7 @@ public class DataFormatRecord
|
||||
public DataFormatRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,6 +111,7 @@ public class DataFormatRecord
|
||||
public DataFormatRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,10 +129,12 @@ public class DataFormatRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_pointNumber = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_seriesIndex = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_seriesNumber = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_4_formatFlags = LittleEndian.getShort(data, 0x6 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_pointNumber = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_seriesIndex = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_seriesNumber = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_4_formatFlags = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -138,42 +142,40 @@ public class DataFormatRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[DataFormat]\n");
|
||||
|
||||
buffer.append("[DATAFORMAT]\n");
|
||||
buffer.append(" .pointNumber = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getPointNumber()))
|
||||
.append(" (").append(getPointNumber()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getPointNumber ()))
|
||||
.append(" (").append( getPointNumber() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .seriesIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getSeriesIndex()))
|
||||
.append(" (").append(getSeriesIndex()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getSeriesIndex ()))
|
||||
.append(" (").append( getSeriesIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .seriesNumber = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getSeriesNumber()))
|
||||
.append(" (").append(getSeriesNumber()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getSeriesNumber ()))
|
||||
.append(" (").append( getSeriesNumber() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .formatFlags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatFlags()))
|
||||
.append(" (").append(getFormatFlags()).append(" )\n");
|
||||
buffer.append(" .useExcel4Colors = ").append(isUseExcel4Colors ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getFormatFlags ()))
|
||||
.append(" (").append( getFormatFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .useExcel4Colors = ").append(isUseExcel4Colors()).append('\n');
|
||||
|
||||
buffer.append("[/DataFormat]\n");
|
||||
buffer.append("[/DATAFORMAT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_pointNumber);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_seriesIndex);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_seriesNumber);
|
||||
LittleEndian.putShort(data, 10 + offset, field_4_formatFlags);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_pointNumber);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_seriesIndex);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_seriesNumber);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_4_formatFlags);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -183,7 +185,7 @@ public class DataFormatRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -192,17 +194,18 @@ public class DataFormatRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
DataFormatRecord rec = new DataFormatRecord();
|
||||
|
||||
rec.field_1_pointNumber = field_1_pointNumber;
|
||||
rec.field_2_seriesIndex = field_2_seriesIndex;
|
||||
rec.field_3_seriesNumber = field_3_seriesNumber;
|
||||
rec.field_4_formatFlags = field_4_formatFlags;
|
||||
|
||||
return rec;
|
||||
DataFormatRecord rec = new DataFormatRecord();
|
||||
|
||||
rec.field_1_pointNumber = field_1_pointNumber;
|
||||
rec.field_2_seriesIndex = field_2_seriesIndex;
|
||||
rec.field_3_seriesNumber = field_3_seriesNumber;
|
||||
rec.field_4_formatFlags = field_4_formatFlags;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the point number field for the DataFormat record.
|
||||
*/
|
||||
|
@ -94,6 +94,7 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
public DefaultDataLabelTextPropertiesRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,6 +110,7 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
public DefaultDataLabelTextPropertiesRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,7 +128,9 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_categoryDataType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_categoryDataType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -134,23 +138,24 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[DefaultDataLabelTextProperties]\n");
|
||||
|
||||
buffer.append("[DEFAULTTEXT]\n");
|
||||
buffer.append(" .categoryDataType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getCategoryDataType()))
|
||||
.append(" (").append(getCategoryDataType()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getCategoryDataType ()))
|
||||
.append(" (").append( getCategoryDataType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/DefaultDataLabelTextProperties]\n");
|
||||
buffer.append("[/DEFAULTTEXT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_categoryDataType);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_categoryDataType);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -160,7 +165,7 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -169,14 +174,15 @@ public class DefaultDataLabelTextPropertiesRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
DefaultDataLabelTextPropertiesRecord rec = new DefaultDataLabelTextPropertiesRecord();
|
||||
|
||||
rec.field_1_categoryDataType = field_1_categoryDataType;
|
||||
|
||||
return rec;
|
||||
DefaultDataLabelTextPropertiesRecord rec = new DefaultDataLabelTextPropertiesRecord();
|
||||
|
||||
rec.field_1_categoryDataType = field_1_categoryDataType;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the category data type field for the DefaultDataLabelTextProperties record.
|
||||
*
|
||||
|
@ -95,6 +95,7 @@ public class FontBasisRecord
|
||||
public FontBasisRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,6 +111,7 @@ public class FontBasisRecord
|
||||
public FontBasisRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,11 +129,13 @@ public class FontBasisRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_xBasis = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_yBasis = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_heightBasis = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_4_scale = LittleEndian.getShort(data, 0x6 + offset);
|
||||
field_5_indexToFontTable = LittleEndian.getShort(data, 0x8 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_xBasis = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_yBasis = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_heightBasis = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_4_scale = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
field_5_indexToFontTable = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -139,47 +143,44 @@ public class FontBasisRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[FontBasis]\n");
|
||||
|
||||
buffer.append("[FBI]\n");
|
||||
buffer.append(" .xBasis = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getXBasis()))
|
||||
.append(" (").append(getXBasis()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getXBasis ()))
|
||||
.append(" (").append( getXBasis() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .yBasis = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getYBasis()))
|
||||
.append(" (").append(getYBasis()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getYBasis ()))
|
||||
.append(" (").append( getYBasis() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .heightBasis = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getHeightBasis()))
|
||||
.append(" (").append(getHeightBasis()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getHeightBasis ()))
|
||||
.append(" (").append( getHeightBasis() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .scale = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getScale()))
|
||||
.append(" (").append(getScale()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getScale ()))
|
||||
.append(" (").append( getScale() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .indexToFontTable = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getIndexToFontTable()))
|
||||
.append(" (").append(getIndexToFontTable()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getIndexToFontTable ()))
|
||||
.append(" (").append( getIndexToFontTable() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/FontBasis]\n");
|
||||
buffer.append("[/FBI]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_xBasis);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_yBasis);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_heightBasis);
|
||||
LittleEndian.putShort(data, 10 + offset, field_4_scale);
|
||||
LittleEndian.putShort(data, 12 + offset, field_5_indexToFontTable);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_xBasis);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_yBasis);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_heightBasis);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_4_scale);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_5_indexToFontTable);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -189,7 +190,7 @@ public class FontBasisRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -198,18 +199,19 @@ public class FontBasisRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
FontBasisRecord rec = new FontBasisRecord();
|
||||
|
||||
rec.field_1_xBasis = field_1_xBasis;
|
||||
rec.field_2_yBasis = field_2_yBasis;
|
||||
rec.field_3_heightBasis = field_3_heightBasis;
|
||||
rec.field_4_scale = field_4_scale;
|
||||
rec.field_5_indexToFontTable = field_5_indexToFontTable;
|
||||
|
||||
return rec;
|
||||
FontBasisRecord rec = new FontBasisRecord();
|
||||
|
||||
rec.field_1_xBasis = field_1_xBasis;
|
||||
rec.field_2_yBasis = field_2_yBasis;
|
||||
rec.field_3_heightBasis = field_3_heightBasis;
|
||||
rec.field_4_scale = field_4_scale;
|
||||
rec.field_5_indexToFontTable = field_5_indexToFontTable;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the x Basis field for the FontBasis record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class FontIndexRecord
|
||||
public FontIndexRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class FontIndexRecord
|
||||
public FontIndexRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class FontIndexRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_fontIndex = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_fontIndex = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class FontIndexRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[FontIndex]\n");
|
||||
|
||||
buffer.append("[FONTX]\n");
|
||||
buffer.append(" .fontIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFontIndex()))
|
||||
.append(" (").append(getFontIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getFontIndex ()))
|
||||
.append(" (").append( getFontIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/FontIndex]\n");
|
||||
buffer.append("[/FONTX]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_fontIndex);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_fontIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class FontIndexRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class FontIndexRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
FontIndexRecord rec = new FontIndexRecord();
|
||||
|
||||
rec.field_1_fontIndex = field_1_fontIndex;
|
||||
|
||||
return rec;
|
||||
FontIndexRecord rec = new FontIndexRecord();
|
||||
|
||||
rec.field_1_fontIndex = field_1_fontIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the font index field for the FontIndex record.
|
||||
*/
|
||||
|
@ -96,6 +96,7 @@ public class FrameRecord
|
||||
public FrameRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -111,6 +112,7 @@ public class FrameRecord
|
||||
public FrameRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -128,8 +130,10 @@ public class FrameRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_borderType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_options = LittleEndian.getShort(data, 0x2 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_borderType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_options = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -137,31 +141,31 @@ public class FrameRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Frame]\n");
|
||||
|
||||
buffer.append("[FRAME]\n");
|
||||
buffer.append(" .borderType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getBorderType()))
|
||||
.append(" (").append(getBorderType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBorderType ()))
|
||||
.append(" (").append( getBorderType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .autoSize = ").append(isAutoSize ()).append('\n');
|
||||
buffer.append(" .autoPosition = ").append(isAutoPosition ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .autoSize = ").append(isAutoSize()).append('\n');
|
||||
buffer.append(" .autoPosition = ").append(isAutoPosition()).append('\n');
|
||||
|
||||
buffer.append("[/Frame]\n");
|
||||
buffer.append("[/FRAME]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_borderType);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_options);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_borderType);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -171,7 +175,7 @@ public class FrameRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2;
|
||||
return 4 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -180,15 +184,16 @@ public class FrameRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
FrameRecord rec = new FrameRecord();
|
||||
|
||||
rec.field_1_borderType = field_1_borderType;
|
||||
rec.field_2_options = field_2_options;
|
||||
|
||||
return rec;
|
||||
FrameRecord rec = new FrameRecord();
|
||||
|
||||
rec.field_1_borderType = field_1_borderType;
|
||||
rec.field_2_options = field_2_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the border type field for the Frame record.
|
||||
*
|
||||
|
@ -112,6 +112,7 @@ public class LegendRecord
|
||||
public LegendRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,6 +128,7 @@ public class LegendRecord
|
||||
public LegendRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -144,13 +146,15 @@ public class LegendRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_xAxisUpperLeft = LittleEndian.getInt(data, 0x0 + offset);
|
||||
field_2_yAxisUpperLeft = LittleEndian.getInt(data, 0x4 + offset);
|
||||
field_3_xSize = LittleEndian.getInt(data, 0x8 + offset);
|
||||
field_4_ySize = LittleEndian.getInt(data, 0xc + offset);
|
||||
field_5_type = data[ 0x10 + offset ];
|
||||
field_6_spacing = data[ 0x11 + offset ];
|
||||
field_7_options = LittleEndian.getShort(data, 0x12 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_xAxisUpperLeft = LittleEndian.getInt(data, pos + 0x0 + offset);
|
||||
field_2_yAxisUpperLeft = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
field_3_xSize = LittleEndian.getInt(data, pos + 0x8 + offset);
|
||||
field_4_ySize = LittleEndian.getInt(data, pos + 0xc + offset);
|
||||
field_5_type = data[ pos + 0x10 + offset ];
|
||||
field_6_spacing = data[ pos + 0x11 + offset ];
|
||||
field_7_options = LittleEndian.getShort(data, pos + 0x12 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -158,65 +162,60 @@ public class LegendRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Legend]\n");
|
||||
|
||||
buffer.append("[LEGEND]\n");
|
||||
buffer.append(" .xAxisUpperLeft = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getXAxisUpperLeft()))
|
||||
.append(" (").append(getXAxisUpperLeft()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getXAxisUpperLeft ()))
|
||||
.append(" (").append( getXAxisUpperLeft() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .yAxisUpperLeft = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getYAxisUpperLeft()))
|
||||
.append(" (").append(getYAxisUpperLeft()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getYAxisUpperLeft ()))
|
||||
.append(" (").append( getYAxisUpperLeft() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .xSize = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getXSize()))
|
||||
.append(" (").append(getXSize()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getXSize ()))
|
||||
.append(" (").append( getXSize() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .ySize = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getYSize()))
|
||||
.append(" (").append(getYSize()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getYSize ()))
|
||||
.append(" (").append( getYSize() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .type = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getType()))
|
||||
.append(" (").append(getType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getType ()))
|
||||
.append(" (").append( getType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .spacing = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getSpacing()))
|
||||
.append(" (").append(getSpacing()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getSpacing ()))
|
||||
.append(" (").append( getSpacing() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .autoPosition = ").append(isAutoPosition ()).append('\n');
|
||||
buffer.append(" .autoSeries = ").append(isAutoSeries ()).append('\n');
|
||||
buffer.append(" .autoXPositioning = ").append(isAutoXPositioning ()).append('\n');
|
||||
buffer.append(" .autoYPositioning = ").append(isAutoYPositioning ()).append('\n');
|
||||
buffer.append(" .vertical = ").append(isVertical ()).append('\n');
|
||||
buffer.append(" .dataTable = ").append(isDataTable ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .autoPosition = ").append(isAutoPosition()).append('\n');
|
||||
buffer.append(" .autoSeries = ").append(isAutoSeries()).append('\n');
|
||||
buffer.append(" .autoXPositioning = ").append(isAutoXPositioning()).append('\n');
|
||||
buffer.append(" .autoYPositioning = ").append(isAutoYPositioning()).append('\n');
|
||||
buffer.append(" .vertical = ").append(isVertical()).append('\n');
|
||||
buffer.append(" .dataTable = ").append(isDataTable()).append('\n');
|
||||
|
||||
buffer.append("[/Legend]\n");
|
||||
buffer.append("[/LEGEND]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putInt(data, 4 + offset, field_1_xAxisUpperLeft);
|
||||
LittleEndian.putInt(data, 8 + offset, field_2_yAxisUpperLeft);
|
||||
LittleEndian.putInt(data, 12 + offset, field_3_xSize);
|
||||
LittleEndian.putInt(data, 16 + offset, field_4_ySize);
|
||||
data[ 20 + offset ] = field_5_type;
|
||||
data[ 21 + offset ] = field_6_spacing;
|
||||
LittleEndian.putShort(data, 22 + offset, field_7_options);
|
||||
LittleEndian.putInt(data, 4 + offset + pos, field_1_xAxisUpperLeft);
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_2_yAxisUpperLeft);
|
||||
LittleEndian.putInt(data, 12 + offset + pos, field_3_xSize);
|
||||
LittleEndian.putInt(data, 16 + offset + pos, field_4_ySize);
|
||||
data[ 20 + offset + pos ] = field_5_type;
|
||||
data[ 21 + offset + pos ] = field_6_spacing;
|
||||
LittleEndian.putShort(data, 22 + offset + pos, field_7_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -235,20 +234,21 @@ public class LegendRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
LegendRecord rec = new LegendRecord();
|
||||
|
||||
rec.field_1_xAxisUpperLeft = field_1_xAxisUpperLeft;
|
||||
rec.field_2_yAxisUpperLeft = field_2_yAxisUpperLeft;
|
||||
rec.field_3_xSize = field_3_xSize;
|
||||
rec.field_4_ySize = field_4_ySize;
|
||||
rec.field_5_type = field_5_type;
|
||||
rec.field_6_spacing = field_6_spacing;
|
||||
rec.field_7_options = field_7_options;
|
||||
|
||||
return rec;
|
||||
LegendRecord rec = new LegendRecord();
|
||||
|
||||
rec.field_1_xAxisUpperLeft = field_1_xAxisUpperLeft;
|
||||
rec.field_2_yAxisUpperLeft = field_2_yAxisUpperLeft;
|
||||
rec.field_3_xSize = field_3_xSize;
|
||||
rec.field_4_ySize = field_4_ySize;
|
||||
rec.field_5_type = field_5_type;
|
||||
rec.field_6_spacing = field_6_spacing;
|
||||
rec.field_7_options = field_7_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the x axis upper left field for the Legend record.
|
||||
*/
|
||||
|
@ -111,6 +111,7 @@ public class LineFormatRecord
|
||||
public LineFormatRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,6 +127,7 @@ public class LineFormatRecord
|
||||
public LineFormatRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -143,11 +145,13 @@ public class LineFormatRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_lineColor = LittleEndian.getInt(data, 0x0 + offset);
|
||||
field_2_linePattern = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_3_weight = LittleEndian.getShort(data, 0x6 + offset);
|
||||
field_4_format = LittleEndian.getShort(data, 0x8 + offset);
|
||||
field_5_colourPaletteIndex = LittleEndian.getShort(data, 0xa + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_lineColor = LittleEndian.getInt(data, pos + 0x0 + offset);
|
||||
field_2_linePattern = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_3_weight = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
field_4_format = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
field_5_colourPaletteIndex = LittleEndian.getShort(data, pos + 0xa + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -155,50 +159,47 @@ public class LineFormatRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[LineFormat]\n");
|
||||
|
||||
buffer.append("[LINEFORMAT]\n");
|
||||
buffer.append(" .lineColor = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getLineColor()))
|
||||
.append(" (").append(getLineColor()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLineColor ()))
|
||||
.append(" (").append( getLineColor() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .linePattern = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getLinePattern()))
|
||||
.append(" (").append(getLinePattern()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLinePattern ()))
|
||||
.append(" (").append( getLinePattern() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .weight = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getWeight()))
|
||||
.append(" (").append(getWeight()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getWeight ()))
|
||||
.append(" (").append( getWeight() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .format = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormat()))
|
||||
.append(" (").append(getFormat()).append(" )\n");
|
||||
buffer.append(" .auto = ").append(isAuto ()).append('\n');
|
||||
buffer.append(" .drawTicks = ").append(isDrawTicks ()).append('\n');
|
||||
buffer.append(" .unknown = ").append(isUnknown ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getFormat ()))
|
||||
.append(" (").append( getFormat() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .auto = ").append(isAuto()).append('\n');
|
||||
buffer.append(" .drawTicks = ").append(isDrawTicks()).append('\n');
|
||||
buffer.append(" .unknown = ").append(isUnknown()).append('\n');
|
||||
buffer.append(" .colourPaletteIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getColourPaletteIndex()))
|
||||
.append(" (").append(getColourPaletteIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getColourPaletteIndex ()))
|
||||
.append(" (").append( getColourPaletteIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/LineFormat]\n");
|
||||
buffer.append("[/LINEFORMAT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putInt(data, 4 + offset, field_1_lineColor);
|
||||
LittleEndian.putShort(data, 8 + offset, field_2_linePattern);
|
||||
LittleEndian.putShort(data, 10 + offset, field_3_weight);
|
||||
LittleEndian.putShort(data, 12 + offset, field_4_format);
|
||||
LittleEndian.putShort(data, 14 + offset, field_5_colourPaletteIndex);
|
||||
LittleEndian.putInt(data, 4 + offset + pos, field_1_lineColor);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_2_linePattern);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_3_weight);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_4_format);
|
||||
LittleEndian.putShort(data, 14 + offset + pos, field_5_colourPaletteIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -208,7 +209,7 @@ public class LineFormatRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 4 + 2 + 2 + 2 + 2;
|
||||
return 4 + 4 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -217,18 +218,19 @@ public class LineFormatRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
LineFormatRecord rec = new LineFormatRecord();
|
||||
|
||||
rec.field_1_lineColor = field_1_lineColor;
|
||||
rec.field_2_linePattern = field_2_linePattern;
|
||||
rec.field_3_weight = field_3_weight;
|
||||
rec.field_4_format = field_4_format;
|
||||
rec.field_5_colourPaletteIndex = field_5_colourPaletteIndex;
|
||||
|
||||
return rec;
|
||||
LineFormatRecord rec = new LineFormatRecord();
|
||||
|
||||
rec.field_1_lineColor = field_1_lineColor;
|
||||
rec.field_2_linePattern = field_2_linePattern;
|
||||
rec.field_3_weight = field_3_weight;
|
||||
rec.field_4_format = field_4_format;
|
||||
rec.field_5_colourPaletteIndex = field_5_colourPaletteIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the line color field for the LineFormat record.
|
||||
*/
|
||||
|
@ -0,0 +1,91 @@
|
||||
/* ====================================================================
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
* Copyright (c) 2002 The Apache Software Foundation. All rights
|
||||
* reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. The end-user documentation included with the redistribution,
|
||||
* if any, must include the following acknowledgment:
|
||||
* "This product includes software developed by the
|
||||
* Apache Software Foundation (http://www.apache.org/)."
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The names "Apache" and "Apache Software Foundation" and
|
||||
* "Apache POI" must not be used to endorse or promote products
|
||||
* derived from this software without prior written permission. For
|
||||
* written permission, please contact apache@apache.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "Apache",
|
||||
* "Apache POI", nor may "Apache" appear in their name, without
|
||||
* prior written permission of the Apache Software Foundation.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This software consists of voluntary contributions made by many
|
||||
* individuals on behalf of the Apache Software Foundation. For more
|
||||
* information on the Apache Software Foundation, please see
|
||||
* <http://www.apache.org/>.
|
||||
*/
|
||||
|
||||
package org.apache.poi.hssf.record;
|
||||
|
||||
/**
|
||||
* Not implemented yet. May commit it anyway just so people can see
|
||||
* where I'm heading.
|
||||
*
|
||||
* @author Glen Stampoultzis (glens at apache.org)
|
||||
*/
|
||||
public class LinkedDataFormulaField
|
||||
implements CustomField
|
||||
{
|
||||
public int getSize()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public int fillField( byte[] data, short size, int offset )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void toString( StringBuffer str )
|
||||
{
|
||||
str.append("todo");
|
||||
}
|
||||
|
||||
public int serializeField( int offset, byte[] data )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
@ -84,7 +84,7 @@ public class LinkedDataRecord
|
||||
private short field_3_options;
|
||||
private BitField customNumberFormat = new BitField(0x1);
|
||||
private short field_4_indexNumberFmtRecord;
|
||||
private short field_5_formulaOfLink;
|
||||
private LinkedDataFormulaField field_5_formulaOfLink = new org.apache.poi.hssf.record.LinkedDataFormulaField();
|
||||
|
||||
|
||||
public LinkedDataRecord()
|
||||
@ -104,6 +104,7 @@ public class LinkedDataRecord
|
||||
public LinkedDataRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -119,6 +120,7 @@ public class LinkedDataRecord
|
||||
public LinkedDataRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -136,11 +138,14 @@ public class LinkedDataRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_linkType = data[ 0x0 + offset ];
|
||||
field_2_referenceType = data[ 0x1 + offset ];
|
||||
field_3_options = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_4_indexNumberFmtRecord = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_5_formulaOfLink = LittleEndian.getShort(data, 0x6 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_linkType = data[ pos + 0x0 + offset ];
|
||||
field_2_referenceType = data[ pos + 0x1 + offset ];
|
||||
field_3_options = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_4_indexNumberFmtRecord = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_5_formulaOfLink = new org.apache.poi.hssf.record.LinkedDataFormulaField();
|
||||
pos += field_5_formulaOfLink.fillField(data,size,pos + 6);
|
||||
|
||||
}
|
||||
|
||||
@ -148,48 +153,44 @@ public class LinkedDataRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[LinkedData]\n");
|
||||
|
||||
buffer.append("[AI]\n");
|
||||
buffer.append(" .linkType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getLinkType()))
|
||||
.append(" (").append(getLinkType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLinkType ()))
|
||||
.append(" (").append( getLinkType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .referenceType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getReferenceType()))
|
||||
.append(" (").append(getReferenceType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getReferenceType ()))
|
||||
.append(" (").append( getReferenceType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .customNumberFormat = ").append(isCustomNumberFormat ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .customNumberFormat = ").append(isCustomNumberFormat()).append('\n');
|
||||
buffer.append(" .indexNumberFmtRecord = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getIndexNumberFmtRecord()))
|
||||
.append(" (").append(getIndexNumberFmtRecord()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getIndexNumberFmtRecord ()))
|
||||
.append(" (").append( getIndexNumberFmtRecord() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .formulaOfLink = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormulaOfLink()))
|
||||
.append(" (").append(getFormulaOfLink()).append(" )\n");
|
||||
.append(" (").append( getFormulaOfLink() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/LinkedData]\n");
|
||||
buffer.append("[/AI]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
data[ 4 + offset ] = field_1_linkType;
|
||||
data[ 5 + offset ] = field_2_referenceType;
|
||||
LittleEndian.putShort(data, 6 + offset, field_3_options);
|
||||
LittleEndian.putShort(data, 8 + offset, field_4_indexNumberFmtRecord);
|
||||
LittleEndian.putShort(data, 10 + offset, field_5_formulaOfLink);
|
||||
data[ 4 + offset + pos ] = field_1_linkType;
|
||||
data[ 5 + offset + pos ] = field_2_referenceType;
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_3_options);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_4_indexNumberFmtRecord);
|
||||
pos += field_5_formulaOfLink.serializeField( pos + offset, data );
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -199,7 +200,7 @@ public class LinkedDataRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 1 + 1 + 2 + 2 + 2;
|
||||
return 4 + 1 + 1 + 2 + 2 + field_5_formulaOfLink.getSize();
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -208,18 +209,19 @@ public class LinkedDataRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
LinkedDataRecord rec = new LinkedDataRecord();
|
||||
|
||||
rec.field_1_linkType = field_1_linkType;
|
||||
rec.field_2_referenceType = field_2_referenceType;
|
||||
rec.field_3_options = field_3_options;
|
||||
rec.field_4_indexNumberFmtRecord = field_4_indexNumberFmtRecord;
|
||||
rec.field_5_formulaOfLink = field_5_formulaOfLink;
|
||||
|
||||
return rec;
|
||||
LinkedDataRecord rec = new LinkedDataRecord();
|
||||
|
||||
rec.field_1_linkType = field_1_linkType;
|
||||
rec.field_2_referenceType = field_2_referenceType;
|
||||
rec.field_3_options = field_3_options;
|
||||
rec.field_4_indexNumberFmtRecord = field_4_indexNumberFmtRecord;
|
||||
rec.field_5_formulaOfLink = ((org.apache.poi.hssf.record.LinkedDataFormulaField)field_5_formulaOfLink.clone());;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the link type field for the LinkedData record.
|
||||
*
|
||||
@ -313,7 +315,7 @@ public class LinkedDataRecord
|
||||
/**
|
||||
* Get the formula of link field for the LinkedData record.
|
||||
*/
|
||||
public short getFormulaOfLink()
|
||||
public LinkedDataFormulaField getFormulaOfLink()
|
||||
{
|
||||
return field_5_formulaOfLink;
|
||||
}
|
||||
@ -321,7 +323,7 @@ public class LinkedDataRecord
|
||||
/**
|
||||
* Set the formula of link field for the LinkedData record.
|
||||
*/
|
||||
public void setFormulaOfLink(short field_5_formulaOfLink)
|
||||
public void setFormulaOfLink(LinkedDataFormulaField field_5_formulaOfLink)
|
||||
{
|
||||
this.field_5_formulaOfLink = field_5_formulaOfLink;
|
||||
}
|
||||
|
@ -91,6 +91,7 @@ public class NumberFormatIndexRecord
|
||||
public NumberFormatIndexRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class NumberFormatIndexRecord
|
||||
public NumberFormatIndexRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class NumberFormatIndexRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_formatIndex = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_formatIndex = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class NumberFormatIndexRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[NumberFormatIndex]\n");
|
||||
|
||||
buffer.append("[IFMT]\n");
|
||||
buffer.append(" .formatIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatIndex()))
|
||||
.append(" (").append(getFormatIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getFormatIndex ()))
|
||||
.append(" (").append( getFormatIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/NumberFormatIndex]\n");
|
||||
buffer.append("[/IFMT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_formatIndex);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_formatIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class NumberFormatIndexRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class NumberFormatIndexRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
NumberFormatIndexRecord rec = new NumberFormatIndexRecord();
|
||||
|
||||
rec.field_1_formatIndex = field_1_formatIndex;
|
||||
|
||||
return rec;
|
||||
NumberFormatIndexRecord rec = new NumberFormatIndexRecord();
|
||||
|
||||
rec.field_1_formatIndex = field_1_formatIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the format index field for the NumberFormatIndex record.
|
||||
*/
|
||||
|
@ -98,6 +98,7 @@ public class ObjectLinkRecord
|
||||
public ObjectLinkRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,6 +114,7 @@ public class ObjectLinkRecord
|
||||
public ObjectLinkRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,9 +132,11 @@ public class ObjectLinkRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_anchorId = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_link1 = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_link2 = LittleEndian.getShort(data, 0x4 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_anchorId = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_link1 = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_link2 = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -140,35 +144,34 @@ public class ObjectLinkRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[ObjectLink]\n");
|
||||
|
||||
buffer.append("[OBJECTLINK]\n");
|
||||
buffer.append(" .anchorId = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getAnchorId()))
|
||||
.append(" (").append(getAnchorId()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getAnchorId ()))
|
||||
.append(" (").append( getAnchorId() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .link1 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getLink1()))
|
||||
.append(" (").append(getLink1()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLink1 ()))
|
||||
.append(" (").append( getLink1() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .link2 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getLink2()))
|
||||
.append(" (").append(getLink2()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getLink2 ()))
|
||||
.append(" (").append( getLink2() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/ObjectLink]\n");
|
||||
buffer.append("[/OBJECTLINK]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_anchorId);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_link1);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_link2);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_anchorId);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_link1);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_link2);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -187,16 +190,17 @@ public class ObjectLinkRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
ObjectLinkRecord rec = new ObjectLinkRecord();
|
||||
|
||||
rec.field_1_anchorId = field_1_anchorId;
|
||||
rec.field_2_link1 = field_2_link1;
|
||||
rec.field_3_link2 = field_3_link2;
|
||||
|
||||
return rec;
|
||||
ObjectLinkRecord rec = new ObjectLinkRecord();
|
||||
|
||||
rec.field_1_anchorId = field_1_anchorId;
|
||||
rec.field_2_link1 = field_2_link1;
|
||||
rec.field_3_link2 = field_3_link2;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the anchor id field for the ObjectLink record.
|
||||
*
|
||||
|
@ -90,6 +90,7 @@ public class PlotAreaRecord
|
||||
public PlotAreaRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -105,6 +106,7 @@ public class PlotAreaRecord
|
||||
public PlotAreaRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,20 +125,24 @@ public class PlotAreaRecord
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
|
||||
int pos = 0;
|
||||
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[PlotArea]\n");
|
||||
buffer.append("[PLOTAREA]\n");
|
||||
|
||||
buffer.append("[/PlotArea]\n");
|
||||
buffer.append("[/PLOTAREA]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
@ -158,14 +164,15 @@ public class PlotAreaRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
PlotAreaRecord rec = new PlotAreaRecord();
|
||||
|
||||
|
||||
return rec;
|
||||
PlotAreaRecord rec = new PlotAreaRecord();
|
||||
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} // END OF CLASS
|
||||
|
||||
|
||||
|
@ -92,6 +92,7 @@ public class PlotGrowthRecord
|
||||
public PlotGrowthRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -107,6 +108,7 @@ public class PlotGrowthRecord
|
||||
public PlotGrowthRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,8 +126,10 @@ public class PlotGrowthRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_horizontalScale = LittleEndian.getInt(data, 0x0 + offset);
|
||||
field_2_verticalScale = LittleEndian.getInt(data, 0x4 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_horizontalScale = LittleEndian.getInt(data, pos + 0x0 + offset);
|
||||
field_2_verticalScale = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -133,29 +137,29 @@ public class PlotGrowthRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[PlotGrowth]\n");
|
||||
|
||||
buffer.append("[PLOTGROWTH]\n");
|
||||
buffer.append(" .horizontalScale = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getHorizontalScale()))
|
||||
.append(" (").append(getHorizontalScale()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getHorizontalScale ()))
|
||||
.append(" (").append( getHorizontalScale() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .verticalScale = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getVerticalScale()))
|
||||
.append(" (").append(getVerticalScale()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getVerticalScale ()))
|
||||
.append(" (").append( getVerticalScale() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/PlotGrowth]\n");
|
||||
buffer.append("[/PLOTGROWTH]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putInt(data, 4 + offset, field_1_horizontalScale);
|
||||
LittleEndian.putInt(data, 8 + offset, field_2_verticalScale);
|
||||
LittleEndian.putInt(data, 4 + offset + pos, field_1_horizontalScale);
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_2_verticalScale);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -165,7 +169,7 @@ public class PlotGrowthRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 4 + 4;
|
||||
return 4 + 4 + 4;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -174,15 +178,16 @@ public class PlotGrowthRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
PlotGrowthRecord rec = new PlotGrowthRecord();
|
||||
|
||||
rec.field_1_horizontalScale = field_1_horizontalScale;
|
||||
rec.field_2_verticalScale = field_2_verticalScale;
|
||||
|
||||
return rec;
|
||||
PlotGrowthRecord rec = new PlotGrowthRecord();
|
||||
|
||||
rec.field_1_horizontalScale = field_1_horizontalScale;
|
||||
rec.field_2_verticalScale = field_2_verticalScale;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the horizontalScale field for the PlotGrowth record.
|
||||
*/
|
||||
|
@ -92,6 +92,7 @@ public class SCLRecord
|
||||
public SCLRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -107,6 +108,7 @@ public class SCLRecord
|
||||
public SCLRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,8 +126,10 @@ public class SCLRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_numerator = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_denominator = LittleEndian.getShort(data, 0x2 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_numerator = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_denominator = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -134,16 +138,14 @@ public class SCLRecord
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SCL]\n");
|
||||
|
||||
buffer.append(" .numerator = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getNumerator()))
|
||||
.append(" (").append(getNumerator()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getNumerator ()))
|
||||
.append(" (").append( getNumerator() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .denominator = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getDenominator()))
|
||||
.append(" (").append(getDenominator()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getDenominator ()))
|
||||
.append(" (").append( getDenominator() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SCL]\n");
|
||||
return buffer.toString();
|
||||
@ -151,11 +153,13 @@ public class SCLRecord
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_numerator);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_denominator);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_numerator);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_denominator);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -165,7 +169,7 @@ public class SCLRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2;
|
||||
return 4 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -174,15 +178,16 @@ public class SCLRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SCLRecord rec = new SCLRecord();
|
||||
|
||||
rec.field_1_numerator = field_1_numerator;
|
||||
rec.field_2_denominator = field_2_denominator;
|
||||
|
||||
return rec;
|
||||
SCLRecord rec = new SCLRecord();
|
||||
|
||||
rec.field_1_numerator = field_1_numerator;
|
||||
rec.field_2_denominator = field_2_denominator;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the numerator field for the SCL record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class SeriesChartGroupIndexRecord
|
||||
public SeriesChartGroupIndexRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class SeriesChartGroupIndexRecord
|
||||
public SeriesChartGroupIndexRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class SeriesChartGroupIndexRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_chartGroupIndex = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_chartGroupIndex = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class SeriesChartGroupIndexRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesChartGroupIndex]\n");
|
||||
|
||||
buffer.append("[SERTOCRT]\n");
|
||||
buffer.append(" .chartGroupIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getChartGroupIndex()))
|
||||
.append(" (").append(getChartGroupIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getChartGroupIndex ()))
|
||||
.append(" (").append( getChartGroupIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SeriesChartGroupIndex]\n");
|
||||
buffer.append("[/SERTOCRT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_chartGroupIndex);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_chartGroupIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class SeriesChartGroupIndexRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class SeriesChartGroupIndexRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesChartGroupIndexRecord rec = new SeriesChartGroupIndexRecord();
|
||||
|
||||
rec.field_1_chartGroupIndex = field_1_chartGroupIndex;
|
||||
|
||||
return rec;
|
||||
SeriesChartGroupIndexRecord rec = new SeriesChartGroupIndexRecord();
|
||||
|
||||
rec.field_1_chartGroupIndex = field_1_chartGroupIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the chart group index field for the SeriesChartGroupIndex record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class SeriesIndexRecord
|
||||
public SeriesIndexRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class SeriesIndexRecord
|
||||
public SeriesIndexRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class SeriesIndexRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_index = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_index = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class SeriesIndexRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesIndex]\n");
|
||||
|
||||
buffer.append("[SINDEX]\n");
|
||||
buffer.append(" .index = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getIndex()))
|
||||
.append(" (").append(getIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getIndex ()))
|
||||
.append(" (").append( getIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SeriesIndex]\n");
|
||||
buffer.append("[/SINDEX]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_index);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_index);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -166,14 +171,15 @@ public class SeriesIndexRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesIndexRecord rec = new SeriesIndexRecord();
|
||||
|
||||
rec.field_1_index = field_1_index;
|
||||
|
||||
return rec;
|
||||
SeriesIndexRecord rec = new SeriesIndexRecord();
|
||||
|
||||
rec.field_1_index = field_1_index;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the index field for the SeriesIndex record.
|
||||
*/
|
||||
|
@ -97,6 +97,7 @@ public class SeriesLabelsRecord
|
||||
public SeriesLabelsRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,6 +113,7 @@ public class SeriesLabelsRecord
|
||||
public SeriesLabelsRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,7 +131,9 @@ public class SeriesLabelsRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_formatFlags = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_formatFlags = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -137,29 +141,30 @@ public class SeriesLabelsRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesLabels]\n");
|
||||
|
||||
buffer.append("[ATTACHEDLABEL]\n");
|
||||
buffer.append(" .formatFlags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFormatFlags()))
|
||||
.append(" (").append(getFormatFlags()).append(" )\n");
|
||||
buffer.append(" .showActual = ").append(isShowActual ()).append('\n');
|
||||
buffer.append(" .showPercent = ").append(isShowPercent ()).append('\n');
|
||||
buffer.append(" .labelAsPercentage = ").append(isLabelAsPercentage ()).append('\n');
|
||||
buffer.append(" .smoothedLine = ").append(isSmoothedLine ()).append('\n');
|
||||
buffer.append(" .showLabel = ").append(isShowLabel ()).append('\n');
|
||||
buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getFormatFlags ()))
|
||||
.append(" (").append( getFormatFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .showActual = ").append(isShowActual()).append('\n');
|
||||
buffer.append(" .showPercent = ").append(isShowPercent()).append('\n');
|
||||
buffer.append(" .labelAsPercentage = ").append(isLabelAsPercentage()).append('\n');
|
||||
buffer.append(" .smoothedLine = ").append(isSmoothedLine()).append('\n');
|
||||
buffer.append(" .showLabel = ").append(isShowLabel()).append('\n');
|
||||
buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes()).append('\n');
|
||||
|
||||
buffer.append("[/SeriesLabels]\n");
|
||||
buffer.append("[/ATTACHEDLABEL]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_formatFlags);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_formatFlags);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -169,7 +174,7 @@ public class SeriesLabelsRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -178,14 +183,15 @@ public class SeriesLabelsRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesLabelsRecord rec = new SeriesLabelsRecord();
|
||||
|
||||
rec.field_1_formatFlags = field_1_formatFlags;
|
||||
|
||||
return rec;
|
||||
SeriesLabelsRecord rec = new SeriesLabelsRecord();
|
||||
|
||||
rec.field_1_formatFlags = field_1_formatFlags;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the format flags field for the SeriesLabels record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class SeriesListRecord
|
||||
public SeriesListRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class SeriesListRecord
|
||||
public SeriesListRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class SeriesListRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_seriesNumbers = LittleEndian.getShortArray(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_seriesNumbers = LittleEndian.getShortArray(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,21 +135,23 @@ public class SeriesListRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesList]\n");
|
||||
|
||||
buffer.append("[SERIESLIST]\n");
|
||||
buffer.append(" .seriesNumbers = ")
|
||||
.append(" (").append(getSeriesNumbers()).append(" )\n");
|
||||
.append(" (").append( getSeriesNumbers() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SeriesList]\n");
|
||||
buffer.append("[/SERIESLIST]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShortArray(data, 4 + offset, field_1_seriesNumbers);
|
||||
LittleEndian.putShortArray(data, 4 + offset + pos, field_1_seriesNumbers);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -155,7 +161,7 @@ public class SeriesListRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + field_1_seriesNumbers.length * 2 + 2;
|
||||
return 4 + field_1_seriesNumbers.length * 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -164,14 +170,15 @@ public class SeriesListRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesListRecord rec = new SeriesListRecord();
|
||||
|
||||
rec.field_1_seriesNumbers = field_1_seriesNumbers;
|
||||
|
||||
return rec;
|
||||
SeriesListRecord rec = new SeriesListRecord();
|
||||
|
||||
rec.field_1_seriesNumbers = field_1_seriesNumbers;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the series numbers field for the SeriesList record.
|
||||
*/
|
||||
|
@ -108,6 +108,7 @@ public class SeriesRecord
|
||||
public SeriesRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,6 +124,7 @@ public class SeriesRecord
|
||||
public SeriesRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -140,12 +142,14 @@ public class SeriesRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_categoryDataType = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_valuesDataType = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_3_numCategories = LittleEndian.getShort(data, 0x4 + offset);
|
||||
field_4_numValues = LittleEndian.getShort(data, 0x6 + offset);
|
||||
field_5_bubbleSeriesType = LittleEndian.getShort(data, 0x8 + offset);
|
||||
field_6_numBubbleValues = LittleEndian.getShort(data, 0xa + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_categoryDataType = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_valuesDataType = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_3_numCategories = LittleEndian.getShort(data, pos + 0x4 + offset);
|
||||
field_4_numValues = LittleEndian.getShort(data, pos + 0x6 + offset);
|
||||
field_5_bubbleSeriesType = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
field_6_numBubbleValues = LittleEndian.getShort(data, pos + 0xa + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -153,53 +157,49 @@ public class SeriesRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Series]\n");
|
||||
|
||||
buffer.append("[SERIES]\n");
|
||||
buffer.append(" .categoryDataType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getCategoryDataType()))
|
||||
.append(" (").append(getCategoryDataType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getCategoryDataType ()))
|
||||
.append(" (").append( getCategoryDataType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .valuesDataType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getValuesDataType()))
|
||||
.append(" (").append(getValuesDataType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getValuesDataType ()))
|
||||
.append(" (").append( getValuesDataType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .numCategories = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getNumCategories()))
|
||||
.append(" (").append(getNumCategories()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getNumCategories ()))
|
||||
.append(" (").append( getNumCategories() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .numValues = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getNumValues()))
|
||||
.append(" (").append(getNumValues()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getNumValues ()))
|
||||
.append(" (").append( getNumValues() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .bubbleSeriesType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getBubbleSeriesType()))
|
||||
.append(" (").append(getBubbleSeriesType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBubbleSeriesType ()))
|
||||
.append(" (").append( getBubbleSeriesType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .numBubbleValues = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getNumBubbleValues()))
|
||||
.append(" (").append(getNumBubbleValues()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getNumBubbleValues ()))
|
||||
.append(" (").append( getNumBubbleValues() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Series]\n");
|
||||
buffer.append("[/SERIES]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_categoryDataType);
|
||||
LittleEndian.putShort(data, 6 + offset, field_2_valuesDataType);
|
||||
LittleEndian.putShort(data, 8 + offset, field_3_numCategories);
|
||||
LittleEndian.putShort(data, 10 + offset, field_4_numValues);
|
||||
LittleEndian.putShort(data, 12 + offset, field_5_bubbleSeriesType);
|
||||
LittleEndian.putShort(data, 14 + offset, field_6_numBubbleValues);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_categoryDataType);
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_2_valuesDataType);
|
||||
LittleEndian.putShort(data, 8 + offset + pos, field_3_numCategories);
|
||||
LittleEndian.putShort(data, 10 + offset + pos, field_4_numValues);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_5_bubbleSeriesType);
|
||||
LittleEndian.putShort(data, 14 + offset + pos, field_6_numBubbleValues);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -209,7 +209,7 @@ public class SeriesRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 2 + 2 + 2 + 2 + 2;
|
||||
return 4 + 2 + 2 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -218,19 +218,20 @@ public class SeriesRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesRecord rec = new SeriesRecord();
|
||||
|
||||
rec.field_1_categoryDataType = field_1_categoryDataType;
|
||||
rec.field_2_valuesDataType = field_2_valuesDataType;
|
||||
rec.field_3_numCategories = field_3_numCategories;
|
||||
rec.field_4_numValues = field_4_numValues;
|
||||
rec.field_5_bubbleSeriesType = field_5_bubbleSeriesType;
|
||||
rec.field_6_numBubbleValues = field_6_numBubbleValues;
|
||||
|
||||
return rec;
|
||||
SeriesRecord rec = new SeriesRecord();
|
||||
|
||||
rec.field_1_categoryDataType = field_1_categoryDataType;
|
||||
rec.field_2_valuesDataType = field_2_valuesDataType;
|
||||
rec.field_3_numCategories = field_3_numCategories;
|
||||
rec.field_4_numValues = field_4_numValues;
|
||||
rec.field_5_bubbleSeriesType = field_5_bubbleSeriesType;
|
||||
rec.field_6_numBubbleValues = field_6_numBubbleValues;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the category data type field for the Series record.
|
||||
*
|
||||
|
@ -94,6 +94,7 @@ public class SeriesTextRecord
|
||||
public SeriesTextRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,6 +110,7 @@ public class SeriesTextRecord
|
||||
public SeriesTextRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,10 +128,12 @@ public class SeriesTextRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_id = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_textLength = data[ 0x2 + offset ];
|
||||
field_3_undocumented = data[ 0x3 + offset ];
|
||||
field_4_text = StringUtil.getFromUnicodeHigh(data, 0x4 + offset, ((field_2_textLength *2)/2));
|
||||
|
||||
int pos = 0;
|
||||
field_1_id = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_textLength = data[ pos + 0x2 + offset ];
|
||||
field_3_undocumented = data[ pos + 0x3 + offset ];
|
||||
field_4_text = StringUtil.getFromUnicodeHigh(data, pos + 0x4 + offset, ((field_2_textLength *2)/2));
|
||||
|
||||
}
|
||||
|
||||
@ -137,39 +141,38 @@ public class SeriesTextRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesText]\n");
|
||||
|
||||
buffer.append("[SERIESTEXT]\n");
|
||||
buffer.append(" .id = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getId()))
|
||||
.append(" (").append(getId()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getId ()))
|
||||
.append(" (").append( getId() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .textLength = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getTextLength()))
|
||||
.append(" (").append(getTextLength()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getTextLength ()))
|
||||
.append(" (").append( getTextLength() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .undocumented = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getUndocumented()))
|
||||
.append(" (").append(getUndocumented()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getUndocumented ()))
|
||||
.append(" (").append( getUndocumented() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .text = ")
|
||||
.append(" (").append(getText()).append(" )\n");
|
||||
.append(" (").append( getText() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SeriesText]\n");
|
||||
buffer.append("[/SERIESTEXT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_id);
|
||||
data[ 6 + offset ] = field_2_textLength;
|
||||
data[ 7 + offset ] = field_3_undocumented;
|
||||
StringUtil.putUncompressedUnicodeHigh(field_4_text, data, 8 + offset);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_id);
|
||||
data[ 6 + offset + pos ] = field_2_textLength;
|
||||
data[ 7 + offset + pos ] = field_3_undocumented;
|
||||
StringUtil.putUncompressedUnicodeHigh(field_4_text, data, 8 + offset + pos);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -188,17 +191,18 @@ public class SeriesTextRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesTextRecord rec = new SeriesTextRecord();
|
||||
|
||||
rec.field_1_id = field_1_id;
|
||||
rec.field_2_textLength = field_2_textLength;
|
||||
rec.field_3_undocumented = field_3_undocumented;
|
||||
rec.field_4_text = field_4_text;
|
||||
|
||||
return rec;
|
||||
SeriesTextRecord rec = new SeriesTextRecord();
|
||||
|
||||
rec.field_1_id = field_1_id;
|
||||
rec.field_2_textLength = field_2_textLength;
|
||||
rec.field_3_undocumented = field_3_undocumented;
|
||||
rec.field_4_text = field_4_text;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the id field for the SeriesText record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class SeriesToChartGroupRecord
|
||||
public SeriesToChartGroupRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class SeriesToChartGroupRecord
|
||||
public SeriesToChartGroupRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class SeriesToChartGroupRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_chartGroupIndex = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_chartGroupIndex = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -132,11 +136,10 @@ public class SeriesToChartGroupRecord
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SeriesToChartGroup]\n");
|
||||
|
||||
buffer.append(" .chartGroupIndex = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getChartGroupIndex()))
|
||||
.append(" (").append(getChartGroupIndex()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getChartGroupIndex ()))
|
||||
.append(" (").append( getChartGroupIndex() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SeriesToChartGroup]\n");
|
||||
return buffer.toString();
|
||||
@ -144,10 +147,12 @@ public class SeriesToChartGroupRecord
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_chartGroupIndex);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_chartGroupIndex);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class SeriesToChartGroupRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class SeriesToChartGroupRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SeriesToChartGroupRecord rec = new SeriesToChartGroupRecord();
|
||||
|
||||
rec.field_1_chartGroupIndex = field_1_chartGroupIndex;
|
||||
|
||||
return rec;
|
||||
SeriesToChartGroupRecord rec = new SeriesToChartGroupRecord();
|
||||
|
||||
rec.field_1_chartGroupIndex = field_1_chartGroupIndex;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the chart group index field for the SeriesToChartGroup record.
|
||||
*/
|
||||
|
@ -100,6 +100,7 @@ public class SheetPropertiesRecord
|
||||
public SheetPropertiesRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,6 +116,7 @@ public class SheetPropertiesRecord
|
||||
public SheetPropertiesRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -132,8 +134,10 @@ public class SheetPropertiesRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_flags = LittleEndian.getShort(data, 0x0 + offset);
|
||||
field_2_empty = data[ 0x2 + offset ];
|
||||
|
||||
int pos = 0;
|
||||
field_1_flags = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
field_2_empty = data[ pos + 0x2 + offset ];
|
||||
|
||||
}
|
||||
|
||||
@ -141,34 +145,34 @@ public class SheetPropertiesRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[SheetProperties]\n");
|
||||
|
||||
buffer.append("[SHTPROPS]\n");
|
||||
buffer.append(" .flags = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getFlags()))
|
||||
.append(" (").append(getFlags()).append(" )\n");
|
||||
buffer.append(" .chartTypeManuallyFormatted = ").append(isChartTypeManuallyFormatted()).append('\n');
|
||||
buffer.append(" .plotVisibleOnly = ").append(isPlotVisibleOnly ()).append('\n');
|
||||
buffer.append(" .doNotSizeWithWindow = ").append(isDoNotSizeWithWindow ()).append('\n');
|
||||
buffer.append(" .defaultPlotDimensions = ").append(isDefaultPlotDimensions()).append('\n');
|
||||
buffer.append(" .autoPlotArea = ").append(isAutoPlotArea ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getFlags ()))
|
||||
.append(" (").append( getFlags() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .chartTypeManuallyFormatted = ").append(isChartTypeManuallyFormatted()).append('\n');
|
||||
buffer.append(" .plotVisibleOnly = ").append(isPlotVisibleOnly()).append('\n');
|
||||
buffer.append(" .doNotSizeWithWindow = ").append(isDoNotSizeWithWindow()).append('\n');
|
||||
buffer.append(" .defaultPlotDimensions = ").append(isDefaultPlotDimensions()).append('\n');
|
||||
buffer.append(" .autoPlotArea = ").append(isAutoPlotArea()).append('\n');
|
||||
buffer.append(" .empty = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getEmpty()))
|
||||
.append(" (").append(getEmpty()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getEmpty ()))
|
||||
.append(" (").append( getEmpty() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/SheetProperties]\n");
|
||||
buffer.append("[/SHTPROPS]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_flags);
|
||||
data[ 6 + offset ] = field_2_empty;
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_flags);
|
||||
data[ 6 + offset + pos ] = field_2_empty;
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -178,7 +182,7 @@ public class SheetPropertiesRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2 + 1;
|
||||
return 4 + 2 + 1;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -187,15 +191,16 @@ public class SheetPropertiesRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
SheetPropertiesRecord rec = new SheetPropertiesRecord();
|
||||
|
||||
rec.field_1_flags = field_1_flags;
|
||||
rec.field_2_empty = field_2_empty;
|
||||
|
||||
return rec;
|
||||
SheetPropertiesRecord rec = new SheetPropertiesRecord();
|
||||
|
||||
rec.field_1_flags = field_1_flags;
|
||||
rec.field_2_empty = field_2_empty;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the flags field for the SheetProperties record.
|
||||
*/
|
||||
|
@ -141,6 +141,7 @@ public class TextRecord
|
||||
public TextRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -156,6 +157,7 @@ public class TextRecord
|
||||
public TextRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -173,18 +175,20 @@ public class TextRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_horizontalAlignment = data[ 0x0 + offset ];
|
||||
field_2_verticalAlignment = data[ 0x1 + offset ];
|
||||
field_3_displayMode = LittleEndian.getShort(data, 0x2 + offset);
|
||||
field_4_rgbColor = LittleEndian.getInt(data, 0x4 + offset);
|
||||
field_5_x = LittleEndian.getInt(data, 0x8 + offset);
|
||||
field_6_y = LittleEndian.getInt(data, 0xc + offset);
|
||||
field_7_width = LittleEndian.getInt(data, 0x10 + offset);
|
||||
field_8_height = LittleEndian.getInt(data, 0x14 + offset);
|
||||
field_9_options1 = LittleEndian.getShort(data, 0x18 + offset);
|
||||
field_10_indexOfColorValue = LittleEndian.getShort(data, 0x1a + offset);
|
||||
field_11_options2 = LittleEndian.getShort(data, 0x1c + offset);
|
||||
field_12_textRotation = LittleEndian.getShort(data, 0x1e + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_horizontalAlignment = data[ pos + 0x0 + offset ];
|
||||
field_2_verticalAlignment = data[ pos + 0x1 + offset ];
|
||||
field_3_displayMode = LittleEndian.getShort(data, pos + 0x2 + offset);
|
||||
field_4_rgbColor = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
field_5_x = LittleEndian.getInt(data, pos + 0x8 + offset);
|
||||
field_6_y = LittleEndian.getInt(data, pos + 0xc + offset);
|
||||
field_7_width = LittleEndian.getInt(data, pos + 0x10 + offset);
|
||||
field_8_height = LittleEndian.getInt(data, pos + 0x14 + offset);
|
||||
field_9_options1 = LittleEndian.getShort(data, pos + 0x18 + offset);
|
||||
field_10_indexOfColorValue = LittleEndian.getShort(data, pos + 0x1a + offset);
|
||||
field_11_options2 = LittleEndian.getShort(data, pos + 0x1c + offset);
|
||||
field_12_textRotation = LittleEndian.getShort(data, pos + 0x1e + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -192,103 +196,93 @@ public class TextRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Text]\n");
|
||||
|
||||
buffer.append("[TEXT]\n");
|
||||
buffer.append(" .horizontalAlignment = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getHorizontalAlignment()))
|
||||
.append(" (").append(getHorizontalAlignment()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getHorizontalAlignment ()))
|
||||
.append(" (").append( getHorizontalAlignment() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .verticalAlignment = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getVerticalAlignment()))
|
||||
.append(" (").append(getVerticalAlignment()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getVerticalAlignment ()))
|
||||
.append(" (").append( getVerticalAlignment() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .displayMode = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getDisplayMode()))
|
||||
.append(" (").append(getDisplayMode()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getDisplayMode ()))
|
||||
.append(" (").append( getDisplayMode() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .rgbColor = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getRgbColor()))
|
||||
.append(" (").append(getRgbColor()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getRgbColor ()))
|
||||
.append(" (").append( getRgbColor() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .x = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getX()))
|
||||
.append(" (").append(getX()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getX ()))
|
||||
.append(" (").append( getX() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .y = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getY()))
|
||||
.append(" (").append(getY()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getY ()))
|
||||
.append(" (").append( getY() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .width = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getWidth()))
|
||||
.append(" (").append(getWidth()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getWidth ()))
|
||||
.append(" (").append( getWidth() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .height = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getHeight()))
|
||||
.append(" (").append(getHeight()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getHeight ()))
|
||||
.append(" (").append( getHeight() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options1 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions1()))
|
||||
.append(" (").append(getOptions1()).append(" )\n");
|
||||
buffer.append(" .autoColor = ").append(isAutoColor ()).append('\n');
|
||||
buffer.append(" .showKey = ").append(isShowKey ()).append('\n');
|
||||
buffer.append(" .showValue = ").append(isShowValue ()).append('\n');
|
||||
buffer.append(" .vertical = ").append(isVertical ()).append('\n');
|
||||
buffer.append(" .autoGeneratedText = ").append(isAutoGeneratedText ()).append('\n');
|
||||
buffer.append(" .generated = ").append(isGenerated ()).append('\n');
|
||||
buffer.append(" .autoLabelDeleted = ").append(isAutoLabelDeleted ()).append('\n');
|
||||
buffer.append(" .autoBackground = ").append(isAutoBackground ()).append('\n');
|
||||
buffer.append(" .rotation = ").append(getRotation ()).append('\n');
|
||||
buffer.append(" .showCategoryLabelAsPercentage = ").append(isShowCategoryLabelAsPercentage()).append('\n');
|
||||
buffer.append(" .showValueAsPercentage = ").append(isShowValueAsPercentage()).append('\n');
|
||||
buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes ()).append('\n');
|
||||
buffer.append(" .showLabel = ").append(isShowLabel ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getOptions1 ()))
|
||||
.append(" (").append( getOptions1() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .autoColor = ").append(isAutoColor()).append('\n');
|
||||
buffer.append(" .showKey = ").append(isShowKey()).append('\n');
|
||||
buffer.append(" .showValue = ").append(isShowValue()).append('\n');
|
||||
buffer.append(" .vertical = ").append(isVertical()).append('\n');
|
||||
buffer.append(" .autoGeneratedText = ").append(isAutoGeneratedText()).append('\n');
|
||||
buffer.append(" .generated = ").append(isGenerated()).append('\n');
|
||||
buffer.append(" .autoLabelDeleted = ").append(isAutoLabelDeleted()).append('\n');
|
||||
buffer.append(" .autoBackground = ").append(isAutoBackground()).append('\n');
|
||||
buffer.append(" .rotation = ").append(getRotation()).append('\n');
|
||||
buffer.append(" .showCategoryLabelAsPercentage = ").append(isShowCategoryLabelAsPercentage()).append('\n');
|
||||
buffer.append(" .showValueAsPercentage = ").append(isShowValueAsPercentage()).append('\n');
|
||||
buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes()).append('\n');
|
||||
buffer.append(" .showLabel = ").append(isShowLabel()).append('\n');
|
||||
buffer.append(" .indexOfColorValue = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getIndexOfColorValue()))
|
||||
.append(" (").append(getIndexOfColorValue()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getIndexOfColorValue ()))
|
||||
.append(" (").append( getIndexOfColorValue() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options2 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions2()))
|
||||
.append(" (").append(getOptions2()).append(" )\n");
|
||||
buffer.append(" .dataLabelPlacement = ").append(getDataLabelPlacement ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getOptions2 ()))
|
||||
.append(" (").append( getOptions2() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .dataLabelPlacement = ").append(getDataLabelPlacement()).append('\n');
|
||||
buffer.append(" .textRotation = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getTextRotation()))
|
||||
.append(" (").append(getTextRotation()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getTextRotation ()))
|
||||
.append(" (").append( getTextRotation() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Text]\n");
|
||||
buffer.append("[/TEXT]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
data[ 4 + offset ] = field_1_horizontalAlignment;
|
||||
data[ 5 + offset ] = field_2_verticalAlignment;
|
||||
LittleEndian.putShort(data, 6 + offset, field_3_displayMode);
|
||||
LittleEndian.putInt(data, 8 + offset, field_4_rgbColor);
|
||||
LittleEndian.putInt(data, 12 + offset, field_5_x);
|
||||
LittleEndian.putInt(data, 16 + offset, field_6_y);
|
||||
LittleEndian.putInt(data, 20 + offset, field_7_width);
|
||||
LittleEndian.putInt(data, 24 + offset, field_8_height);
|
||||
LittleEndian.putShort(data, 28 + offset, field_9_options1);
|
||||
LittleEndian.putShort(data, 30 + offset, field_10_indexOfColorValue);
|
||||
LittleEndian.putShort(data, 32 + offset, field_11_options2);
|
||||
LittleEndian.putShort(data, 34 + offset, field_12_textRotation);
|
||||
data[ 4 + offset + pos ] = field_1_horizontalAlignment;
|
||||
data[ 5 + offset + pos ] = field_2_verticalAlignment;
|
||||
LittleEndian.putShort(data, 6 + offset + pos, field_3_displayMode);
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_4_rgbColor);
|
||||
LittleEndian.putInt(data, 12 + offset + pos, field_5_x);
|
||||
LittleEndian.putInt(data, 16 + offset + pos, field_6_y);
|
||||
LittleEndian.putInt(data, 20 + offset + pos, field_7_width);
|
||||
LittleEndian.putInt(data, 24 + offset + pos, field_8_height);
|
||||
LittleEndian.putShort(data, 28 + offset + pos, field_9_options1);
|
||||
LittleEndian.putShort(data, 30 + offset + pos, field_10_indexOfColorValue);
|
||||
LittleEndian.putShort(data, 32 + offset + pos, field_11_options2);
|
||||
LittleEndian.putShort(data, 34 + offset + pos, field_12_textRotation);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -298,7 +292,7 @@ public class TextRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 1 + 1 + 2 + 4 + 4 + 4 + 4 + 4 + 2 + 2 + 2 + 2;
|
||||
return 4 + 1 + 1 + 2 + 4 + 4 + 4 + 4 + 4 + 2 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -307,25 +301,26 @@ public class TextRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
TextRecord rec = new TextRecord();
|
||||
|
||||
rec.field_1_horizontalAlignment = field_1_horizontalAlignment;
|
||||
rec.field_2_verticalAlignment = field_2_verticalAlignment;
|
||||
rec.field_3_displayMode = field_3_displayMode;
|
||||
rec.field_4_rgbColor = field_4_rgbColor;
|
||||
rec.field_5_x = field_5_x;
|
||||
rec.field_6_y = field_6_y;
|
||||
rec.field_7_width = field_7_width;
|
||||
rec.field_8_height = field_8_height;
|
||||
rec.field_9_options1 = field_9_options1;
|
||||
rec.field_10_indexOfColorValue = field_10_indexOfColorValue;
|
||||
rec.field_11_options2 = field_11_options2;
|
||||
rec.field_12_textRotation = field_12_textRotation;
|
||||
|
||||
return rec;
|
||||
TextRecord rec = new TextRecord();
|
||||
|
||||
rec.field_1_horizontalAlignment = field_1_horizontalAlignment;
|
||||
rec.field_2_verticalAlignment = field_2_verticalAlignment;
|
||||
rec.field_3_displayMode = field_3_displayMode;
|
||||
rec.field_4_rgbColor = field_4_rgbColor;
|
||||
rec.field_5_x = field_5_x;
|
||||
rec.field_6_y = field_6_y;
|
||||
rec.field_7_width = field_7_width;
|
||||
rec.field_8_height = field_8_height;
|
||||
rec.field_9_options1 = field_9_options1;
|
||||
rec.field_10_indexOfColorValue = field_10_indexOfColorValue;
|
||||
rec.field_11_options2 = field_11_options2;
|
||||
rec.field_12_textRotation = field_12_textRotation;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the horizontal alignment field for the Text record.
|
||||
*
|
||||
|
@ -104,6 +104,7 @@ public class TickRecord
|
||||
public TickRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -119,6 +120,7 @@ public class TickRecord
|
||||
public TickRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -136,16 +138,18 @@ public class TickRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_majorTickType = data[ 0x0 + offset ];
|
||||
field_2_minorTickType = data[ 0x1 + offset ];
|
||||
field_3_labelPosition = data[ 0x2 + offset ];
|
||||
field_4_background = data[ 0x3 + offset ];
|
||||
field_5_labelColorRgb = LittleEndian.getInt(data, 0x4 + offset);
|
||||
field_6_zero1 = LittleEndian.getShort(data, 0x8 + offset);
|
||||
field_7_zero2 = LittleEndian.getShort(data, 0x10 + offset);
|
||||
field_8_options = LittleEndian.getShort(data, 0x18 + offset);
|
||||
field_9_tickColor = LittleEndian.getShort(data, 0x1a + offset);
|
||||
field_10_zero3 = LittleEndian.getShort(data, 0x1c + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_majorTickType = data[ pos + 0x0 + offset ];
|
||||
field_2_minorTickType = data[ pos + 0x1 + offset ];
|
||||
field_3_labelPosition = data[ pos + 0x2 + offset ];
|
||||
field_4_background = data[ pos + 0x3 + offset ];
|
||||
field_5_labelColorRgb = LittleEndian.getInt(data, pos + 0x4 + offset);
|
||||
field_6_zero1 = LittleEndian.getShort(data, pos + 0x8 + offset);
|
||||
field_7_zero2 = LittleEndian.getShort(data, pos + 0x10 + offset);
|
||||
field_8_options = LittleEndian.getShort(data, pos + 0x18 + offset);
|
||||
field_9_tickColor = LittleEndian.getShort(data, pos + 0x1a + offset);
|
||||
field_10_zero3 = LittleEndian.getShort(data, pos + 0x1c + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -153,81 +157,73 @@ public class TickRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Tick]\n");
|
||||
|
||||
buffer.append("[TICK]\n");
|
||||
buffer.append(" .majorTickType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getMajorTickType()))
|
||||
.append(" (").append(getMajorTickType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMajorTickType ()))
|
||||
.append(" (").append( getMajorTickType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .minorTickType = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getMinorTickType()))
|
||||
.append(" (").append(getMinorTickType()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getMinorTickType ()))
|
||||
.append(" (").append( getMinorTickType() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .labelPosition = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getLabelPosition()))
|
||||
.append(" (").append(getLabelPosition()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLabelPosition ()))
|
||||
.append(" (").append( getLabelPosition() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .background = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((byte)getBackground()))
|
||||
.append(" (").append(getBackground()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getBackground ()))
|
||||
.append(" (").append( getBackground() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .labelColorRgb = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((int)getLabelColorRgb()))
|
||||
.append(" (").append(getLabelColorRgb()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getLabelColorRgb ()))
|
||||
.append(" (").append( getLabelColorRgb() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .zero1 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getZero1()))
|
||||
.append(" (").append(getZero1()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getZero1 ()))
|
||||
.append(" (").append( getZero1() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .zero2 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getZero2()))
|
||||
.append(" (").append(getZero2()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getZero2 ()))
|
||||
.append(" (").append( getZero2() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .autoTextColor = ").append(isAutoTextColor ()).append('\n');
|
||||
buffer.append(" .autoTextBackground = ").append(isAutoTextBackground ()).append('\n');
|
||||
buffer.append(" .rotation = ").append(getRotation ()).append('\n');
|
||||
buffer.append(" .autorotate = ").append(isAutorotate ()).append('\n');
|
||||
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .autoTextColor = ").append(isAutoTextColor()).append('\n');
|
||||
buffer.append(" .autoTextBackground = ").append(isAutoTextBackground()).append('\n');
|
||||
buffer.append(" .rotation = ").append(getRotation()).append('\n');
|
||||
buffer.append(" .autorotate = ").append(isAutorotate()).append('\n');
|
||||
buffer.append(" .tickColor = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getTickColor()))
|
||||
.append(" (").append(getTickColor()).append(" )\n");
|
||||
|
||||
.append("0x").append(HexDump.toHex( getTickColor ()))
|
||||
.append(" (").append( getTickColor() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .zero3 = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getZero3()))
|
||||
.append(" (").append(getZero3()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getZero3 ()))
|
||||
.append(" (").append( getZero3() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Tick]\n");
|
||||
buffer.append("[/TICK]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
data[ 4 + offset ] = field_1_majorTickType;
|
||||
data[ 5 + offset ] = field_2_minorTickType;
|
||||
data[ 6 + offset ] = field_3_labelPosition;
|
||||
data[ 7 + offset ] = field_4_background;
|
||||
LittleEndian.putInt(data, 8 + offset, field_5_labelColorRgb);
|
||||
LittleEndian.putShort(data, 12 + offset, field_6_zero1);
|
||||
LittleEndian.putShort(data, 20 + offset, field_7_zero2);
|
||||
LittleEndian.putShort(data, 28 + offset, field_8_options);
|
||||
LittleEndian.putShort(data, 30 + offset, field_9_tickColor);
|
||||
LittleEndian.putShort(data, 32 + offset, field_10_zero3);
|
||||
data[ 4 + offset + pos ] = field_1_majorTickType;
|
||||
data[ 5 + offset + pos ] = field_2_minorTickType;
|
||||
data[ 6 + offset + pos ] = field_3_labelPosition;
|
||||
data[ 7 + offset + pos ] = field_4_background;
|
||||
LittleEndian.putInt(data, 8 + offset + pos, field_5_labelColorRgb);
|
||||
LittleEndian.putShort(data, 12 + offset + pos, field_6_zero1);
|
||||
LittleEndian.putShort(data, 20 + offset + pos, field_7_zero2);
|
||||
LittleEndian.putShort(data, 28 + offset + pos, field_8_options);
|
||||
LittleEndian.putShort(data, 30 + offset + pos, field_9_tickColor);
|
||||
LittleEndian.putShort(data, 32 + offset + pos, field_10_zero3);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -237,7 +233,7 @@ public class TickRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 1 + 1 + 1 + 1 + 4 + 8 + 8 + 2 + 2 + 2;
|
||||
return 4 + 1 + 1 + 1 + 1 + 4 + 8 + 8 + 2 + 2 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -246,23 +242,24 @@ public class TickRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
TickRecord rec = new TickRecord();
|
||||
|
||||
rec.field_1_majorTickType = field_1_majorTickType;
|
||||
rec.field_2_minorTickType = field_2_minorTickType;
|
||||
rec.field_3_labelPosition = field_3_labelPosition;
|
||||
rec.field_4_background = field_4_background;
|
||||
rec.field_5_labelColorRgb = field_5_labelColorRgb;
|
||||
rec.field_6_zero1 = field_6_zero1;
|
||||
rec.field_7_zero2 = field_7_zero2;
|
||||
rec.field_8_options = field_8_options;
|
||||
rec.field_9_tickColor = field_9_tickColor;
|
||||
rec.field_10_zero3 = field_10_zero3;
|
||||
|
||||
return rec;
|
||||
TickRecord rec = new TickRecord();
|
||||
|
||||
rec.field_1_majorTickType = field_1_majorTickType;
|
||||
rec.field_2_minorTickType = field_2_minorTickType;
|
||||
rec.field_3_labelPosition = field_3_labelPosition;
|
||||
rec.field_4_background = field_4_background;
|
||||
rec.field_5_labelColorRgb = field_5_labelColorRgb;
|
||||
rec.field_6_zero1 = field_6_zero1;
|
||||
rec.field_7_zero2 = field_7_zero2;
|
||||
rec.field_8_options = field_8_options;
|
||||
rec.field_9_tickColor = field_9_tickColor;
|
||||
rec.field_10_zero3 = field_10_zero3;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the major tick type field for the Tick record.
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@ public class UnitsRecord
|
||||
public UnitsRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +107,7 @@ public class UnitsRecord
|
||||
public UnitsRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +125,9 @@ public class UnitsRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_units = LittleEndian.getShort(data, 0x0 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_units = LittleEndian.getShort(data, pos + 0x0 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -131,23 +135,24 @@ public class UnitsRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[Units]\n");
|
||||
|
||||
buffer.append("[UNITS]\n");
|
||||
buffer.append(" .units = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getUnits()))
|
||||
.append(" (").append(getUnits()).append(" )\n");
|
||||
.append("0x").append(HexDump.toHex( getUnits ()))
|
||||
.append(" (").append( getUnits() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
|
||||
buffer.append("[/Units]\n");
|
||||
buffer.append("[/UNITS]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putShort(data, 4 + offset, field_1_units);
|
||||
LittleEndian.putShort(data, 4 + offset + pos, field_1_units);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -157,7 +162,7 @@ public class UnitsRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 2;
|
||||
return 4 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -166,14 +171,15 @@ public class UnitsRecord
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
UnitsRecord rec = new UnitsRecord();
|
||||
|
||||
rec.field_1_units = field_1_units;
|
||||
|
||||
return rec;
|
||||
UnitsRecord rec = new UnitsRecord();
|
||||
|
||||
rec.field_1_units = field_1_units;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the units field for the Units record.
|
||||
*/
|
||||
|
@ -105,6 +105,7 @@ public class ValueRangeRecord
|
||||
public ValueRangeRecord(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -120,6 +121,7 @@ public class ValueRangeRecord
|
||||
public ValueRangeRecord(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -137,12 +139,14 @@ public class ValueRangeRecord
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
field_1_minimumAxisValue = LittleEndian.getDouble(data, 0x0 + offset);
|
||||
field_2_maximumAxisValue = LittleEndian.getDouble(data, 0x8 + offset);
|
||||
field_3_majorIncrement = LittleEndian.getDouble(data, 0x10 + offset);
|
||||
field_4_minorIncrement = LittleEndian.getDouble(data, 0x18 + offset);
|
||||
field_5_categoryAxisCross = LittleEndian.getDouble(data, 0x20 + offset);
|
||||
field_6_options = LittleEndian.getShort(data, 0x28 + offset);
|
||||
|
||||
int pos = 0;
|
||||
field_1_minimumAxisValue = LittleEndian.getDouble(data, pos + 0x0 + offset);
|
||||
field_2_maximumAxisValue = LittleEndian.getDouble(data, pos + 0x8 + offset);
|
||||
field_3_majorIncrement = LittleEndian.getDouble(data, pos + 0x10 + offset);
|
||||
field_4_minorIncrement = LittleEndian.getDouble(data, pos + 0x18 + offset);
|
||||
field_5_categoryAxisCross = LittleEndian.getDouble(data, pos + 0x20 + offset);
|
||||
field_6_options = LittleEndian.getShort(data, pos + 0x28 + offset);
|
||||
|
||||
}
|
||||
|
||||
@ -150,52 +154,53 @@ public class ValueRangeRecord
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[ValueRange]\n");
|
||||
|
||||
buffer.append("[VALUERANGE]\n");
|
||||
buffer.append(" .minimumAxisValue = ")
|
||||
.append(" (").append(getMinimumAxisValue()).append(" )\n");
|
||||
|
||||
.append(" (").append( getMinimumAxisValue() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .maximumAxisValue = ")
|
||||
.append(" (").append(getMaximumAxisValue()).append(" )\n");
|
||||
|
||||
.append(" (").append( getMaximumAxisValue() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .majorIncrement = ")
|
||||
.append(" (").append(getMajorIncrement()).append(" )\n");
|
||||
|
||||
.append(" (").append( getMajorIncrement() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .minorIncrement = ")
|
||||
.append(" (").append(getMinorIncrement()).append(" )\n");
|
||||
|
||||
.append(" (").append( getMinorIncrement() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .categoryAxisCross = ")
|
||||
.append(" (").append(getCategoryAxisCross()).append(" )\n");
|
||||
|
||||
.append(" (").append( getCategoryAxisCross() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .options = ")
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((short)getOptions()))
|
||||
.append(" (").append(getOptions()).append(" )\n");
|
||||
buffer.append(" .automaticMinimum = ").append(isAutomaticMinimum ()).append('\n');
|
||||
buffer.append(" .automaticMaximum = ").append(isAutomaticMaximum ()).append('\n');
|
||||
buffer.append(" .automaticMajor = ").append(isAutomaticMajor ()).append('\n');
|
||||
buffer.append(" .automaticMinor = ").append(isAutomaticMinor ()).append('\n');
|
||||
buffer.append(" .automaticCategoryCrossing = ").append(isAutomaticCategoryCrossing()).append('\n');
|
||||
buffer.append(" .logarithmicScale = ").append(isLogarithmicScale ()).append('\n');
|
||||
buffer.append(" .valuesInReverse = ").append(isValuesInReverse ()).append('\n');
|
||||
buffer.append(" .crossCategoryAxisAtMaximum = ").append(isCrossCategoryAxisAtMaximum()).append('\n');
|
||||
buffer.append(" .reserved = ").append(isReserved ()).append('\n');
|
||||
.append("0x").append(HexDump.toHex( getOptions ()))
|
||||
.append(" (").append( getOptions() ).append(" )");
|
||||
buffer.append(System.getProperty("line.separator"));
|
||||
buffer.append(" .automaticMinimum = ").append(isAutomaticMinimum()).append('\n');
|
||||
buffer.append(" .automaticMaximum = ").append(isAutomaticMaximum()).append('\n');
|
||||
buffer.append(" .automaticMajor = ").append(isAutomaticMajor()).append('\n');
|
||||
buffer.append(" .automaticMinor = ").append(isAutomaticMinor()).append('\n');
|
||||
buffer.append(" .automaticCategoryCrossing = ").append(isAutomaticCategoryCrossing()).append('\n');
|
||||
buffer.append(" .logarithmicScale = ").append(isLogarithmicScale()).append('\n');
|
||||
buffer.append(" .valuesInReverse = ").append(isValuesInReverse()).append('\n');
|
||||
buffer.append(" .crossCategoryAxisAtMaximum = ").append(isCrossCategoryAxisAtMaximum()).append('\n');
|
||||
buffer.append(" .reserved = ").append(isReserved()).append('\n');
|
||||
|
||||
buffer.append("[/ValueRange]\n");
|
||||
buffer.append("[/VALUERANGE]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
|
||||
LittleEndian.putDouble(data, 4 + offset, field_1_minimumAxisValue);
|
||||
LittleEndian.putDouble(data, 12 + offset, field_2_maximumAxisValue);
|
||||
LittleEndian.putDouble(data, 20 + offset, field_3_majorIncrement);
|
||||
LittleEndian.putDouble(data, 28 + offset, field_4_minorIncrement);
|
||||
LittleEndian.putDouble(data, 36 + offset, field_5_categoryAxisCross);
|
||||
LittleEndian.putShort(data, 44 + offset, field_6_options);
|
||||
LittleEndian.putDouble(data, 4 + offset + pos, field_1_minimumAxisValue);
|
||||
LittleEndian.putDouble(data, 12 + offset + pos, field_2_maximumAxisValue);
|
||||
LittleEndian.putDouble(data, 20 + offset + pos, field_3_majorIncrement);
|
||||
LittleEndian.putDouble(data, 28 + offset + pos, field_4_minorIncrement);
|
||||
LittleEndian.putDouble(data, 36 + offset + pos, field_5_categoryAxisCross);
|
||||
LittleEndian.putShort(data, 44 + offset + pos, field_6_options);
|
||||
|
||||
return getRecordSize();
|
||||
}
|
||||
@ -205,7 +210,7 @@ public class ValueRangeRecord
|
||||
*/
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 4 + 8 + 8 + 8 + 8 + 8 + 2;
|
||||
return 4 + 8 + 8 + 8 + 8 + 8 + 2;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
@ -213,6 +218,20 @@ public class ValueRangeRecord
|
||||
return this.sid;
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
ValueRangeRecord rec = new ValueRangeRecord();
|
||||
|
||||
rec.field_1_minimumAxisValue = field_1_minimumAxisValue;
|
||||
rec.field_2_maximumAxisValue = field_2_maximumAxisValue;
|
||||
rec.field_3_majorIncrement = field_3_majorIncrement;
|
||||
rec.field_4_minorIncrement = field_4_minorIncrement;
|
||||
rec.field_5_categoryAxisCross = field_5_categoryAxisCross;
|
||||
rec.field_6_options = field_6_options;
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the minimum axis value field for the ValueRange record.
|
||||
|
@ -59,57 +59,56 @@
|
||||
*/
|
||||
package org.apache.poi.hssf.usermodel;
|
||||
|
||||
import java.util.Vector;
|
||||
import org.apache.poi.hssf.model.Workbook;
|
||||
import org.apache.poi.hssf.record.FormatRecord;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.poi.hssf.model.Workbook;
|
||||
import org.apache.poi.hssf.record.Record;
|
||||
import org.apache.poi.hssf.record.FormatRecord;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* Utility to identify builin formats. Now can handle user defined data formats also. The following is a list of the formats as
|
||||
* returned by this class.<P>
|
||||
*<P>
|
||||
* 0, "General"<P>
|
||||
* 1, "0"<P>
|
||||
* 2, "0.00"<P>
|
||||
* 3, "#,##0"<P>
|
||||
* 4, "#,##0.00"<P>
|
||||
* 5, "($#,##0_);($#,##0)"<P>
|
||||
* 6, "($#,##0_);[Red]($#,##0)"<P>
|
||||
* 7, "($#,##0.00);($#,##0.00)"<P>
|
||||
* 8, "($#,##0.00_);[Red]($#,##0.00)"<P>
|
||||
* 9, "0%"<P>
|
||||
* 0xa, "0.00%"<P>
|
||||
* 0xb, "0.00E+00"<P>
|
||||
* 0xc, "# ?/?"<P>
|
||||
* 0xd, "# ??/??"<P>
|
||||
* 0xe, "m/d/yy"<P>
|
||||
* 0xf, "d-mmm-yy"<P>
|
||||
* 0x10, "d-mmm"<P>
|
||||
* 0x11, "mmm-yy"<P>
|
||||
* 0x12, "h:mm AM/PM"<P>
|
||||
* 0x13, "h:mm:ss AM/PM"<P>
|
||||
* 0x14, "h:mm"<P>
|
||||
* 0x15, "h:mm:ss"<P>
|
||||
* 0x16, "m/d/yy h:mm"<P>
|
||||
* 0, "General"<br>
|
||||
* 1, "0"<br>
|
||||
* 2, "0.00"<br>
|
||||
* 3, "#,##0"<br>
|
||||
* 4, "#,##0.00"<br>
|
||||
* 5, "($#,##0_);($#,##0)"<br>
|
||||
* 6, "($#,##0_);[Red]($#,##0)"<br>
|
||||
* 7, "($#,##0.00);($#,##0.00)"<br>
|
||||
* 8, "($#,##0.00_);[Red]($#,##0.00)"<br>
|
||||
* 9, "0%"<br>
|
||||
* 0xa, "0.00%"<br>
|
||||
* 0xb, "0.00E+00"<br>
|
||||
* 0xc, "# ?/?"<br>
|
||||
* 0xd, "# ??/??"<br>
|
||||
* 0xe, "m/d/yy"<br>
|
||||
* 0xf, "d-mmm-yy"<br>
|
||||
* 0x10, "d-mmm"<br>
|
||||
* 0x11, "mmm-yy"<br>
|
||||
* 0x12, "h:mm AM/PM"<br>
|
||||
* 0x13, "h:mm:ss AM/PM"<br>
|
||||
* 0x14, "h:mm"<br>
|
||||
* 0x15, "h:mm:ss"<br>
|
||||
* 0x16, "m/d/yy h:mm"<br>
|
||||
*<P>
|
||||
* // 0x17 - 0x24 reserved for international and undocumented
|
||||
* 0x25, "(#,##0_);(#,##0)"<P>
|
||||
* 0x26, "(#,##0_);[Red](#,##0)"<P>
|
||||
* 0x27, "(#,##0.00_);(#,##0.00)"<P>
|
||||
* 0x28, "(#,##0.00_);[Red](#,##0.00)"<P>
|
||||
* 0x29, "_(*#,##0_);_(*(#,##0);_(* \"-\"_);_(@_)"<P>
|
||||
* 0x2a, "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)"<P>
|
||||
* 0x2b, "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)"<P>
|
||||
* 0x2c, "_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)"<P>
|
||||
* 0x2d, "mm:ss"<P>
|
||||
* 0x2e, "[h]:mm:ss"<P>
|
||||
* 0x2f, "mm:ss.0"<P>
|
||||
* 0x30, "##0.0E+0"<P>
|
||||
* 0x31, "@"<P>
|
||||
* // 0x17 - 0x24 reserved for international and undocumented<br>
|
||||
* 0x25, "(#,##0_);(#,##0)"<br>
|
||||
* 0x26, "(#,##0_);[Red](#,##0)"<br>
|
||||
* 0x27, "(#,##0.00_);(#,##0.00)"<br>
|
||||
* 0x28, "(#,##0.00_);[Red](#,##0.00)"<br>
|
||||
* 0x29, "_(*#,##0_);_(*(#,##0);_(* \"-\"_);_(@_)"<br>
|
||||
* 0x2a, "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)"<br>
|
||||
* 0x2b, "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)"<br>
|
||||
* 0x2c, "_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)"<br>
|
||||
* 0x2d, "mm:ss"<br>
|
||||
* 0x2e, "[h]:mm:ss"<br>
|
||||
* 0x2f, "mm:ss.0"<br>
|
||||
* 0x30, "##0.0E+0"<br>
|
||||
* 0x31, "@"<br>
|
||||
*
|
||||
*
|
||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||
@ -122,92 +121,95 @@ public class HSSFDataFormat
|
||||
private Vector formats = new Vector();
|
||||
private Workbook workbook;
|
||||
private boolean movedBuiltins = false; // Flag to see if need to
|
||||
// check the built in list
|
||||
// or if the regular list
|
||||
// has all entries.
|
||||
// check the built in list
|
||||
// or if the regular list
|
||||
// has all entries.
|
||||
|
||||
/**
|
||||
/**
|
||||
* Construncts a new data formatter. It takes a workbook to have
|
||||
* access to the workbooks format records.
|
||||
* @param workbook the workbook the formats are tied to.
|
||||
*/
|
||||
public HSSFDataFormat(Workbook workbook) {
|
||||
this.workbook = workbook;
|
||||
if (builtinFormats == null) populateBuiltinFormats();
|
||||
Iterator i = workbook.getFormats().iterator();
|
||||
while (i.hasNext()) {
|
||||
FormatRecord r = (FormatRecord)i.next();
|
||||
if (formats.size() < r.getIndexCode() + 1) {
|
||||
formats.setSize(r.getIndexCode() + 1);
|
||||
}
|
||||
formats.set(r.getIndexCode(), r.getFormatString());
|
||||
}
|
||||
public HSSFDataFormat( Workbook workbook )
|
||||
{
|
||||
this.workbook = workbook;
|
||||
if ( builtinFormats == null ) populateBuiltinFormats();
|
||||
Iterator i = workbook.getFormats().iterator();
|
||||
while ( i.hasNext() )
|
||||
{
|
||||
FormatRecord r = (FormatRecord) i.next();
|
||||
if ( formats.size() < r.getIndexCode() + 1 )
|
||||
{
|
||||
formats.setSize( r.getIndexCode() + 1 );
|
||||
}
|
||||
formats.set( r.getIndexCode(), r.getFormatString() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static synchronized void populateBuiltinFormats()
|
||||
{
|
||||
builtinFormats = new Vector();
|
||||
builtinFormats.add(0, "General");
|
||||
builtinFormats.add(1, "0");
|
||||
builtinFormats.add(2, "0.00");
|
||||
builtinFormats.add(3, "#,##0");
|
||||
builtinFormats.add(4, "#,##0.00");
|
||||
builtinFormats.add(5, "($#,##0_);($#,##0)");
|
||||
builtinFormats.add(6, "($#,##0_);[Red]($#,##0)");
|
||||
builtinFormats.add(7, "($#,##0.00);($#,##0.00)");
|
||||
builtinFormats.add(8, "($#,##0.00_);[Red]($#,##0.00)");
|
||||
builtinFormats.add(9, "0%");
|
||||
builtinFormats.add(0xa, "0.00%");
|
||||
builtinFormats.add(0xb, "0.00E+00");
|
||||
builtinFormats.add(0xc, "# ?/?");
|
||||
builtinFormats.add(0xd, "# ??/??");
|
||||
builtinFormats.add(0xe, "m/d/yy");
|
||||
builtinFormats.add(0xf, "d-mmm-yy");
|
||||
builtinFormats.add(0x10, "d-mmm");
|
||||
builtinFormats.add(0x11, "mmm-yy");
|
||||
builtinFormats.add(0x12, "h:mm AM/PM");
|
||||
builtinFormats.add(0x13, "h:mm:ss AM/PM");
|
||||
builtinFormats.add(0x14, "h:mm");
|
||||
builtinFormats.add(0x15, "h:mm:ss");
|
||||
builtinFormats.add(0x16, "m/d/yy h:mm");
|
||||
builtinFormats.add( 0, "General" );
|
||||
builtinFormats.add( 1, "0" );
|
||||
builtinFormats.add( 2, "0.00" );
|
||||
builtinFormats.add( 3, "#,##0" );
|
||||
builtinFormats.add( 4, "#,##0.00" );
|
||||
builtinFormats.add( 5, "($#,##0_);($#,##0)" );
|
||||
builtinFormats.add( 6, "($#,##0_);[Red]($#,##0)" );
|
||||
builtinFormats.add( 7, "($#,##0.00);($#,##0.00)" );
|
||||
builtinFormats.add( 8, "($#,##0.00_);[Red]($#,##0.00)" );
|
||||
builtinFormats.add( 9, "0%" );
|
||||
builtinFormats.add( 0xa, "0.00%" );
|
||||
builtinFormats.add( 0xb, "0.00E+00" );
|
||||
builtinFormats.add( 0xc, "# ?/?" );
|
||||
builtinFormats.add( 0xd, "# ??/??" );
|
||||
builtinFormats.add( 0xe, "m/d/yy" );
|
||||
builtinFormats.add( 0xf, "d-mmm-yy" );
|
||||
builtinFormats.add( 0x10, "d-mmm" );
|
||||
builtinFormats.add( 0x11, "mmm-yy" );
|
||||
builtinFormats.add( 0x12, "h:mm AM/PM" );
|
||||
builtinFormats.add( 0x13, "h:mm:ss AM/PM" );
|
||||
builtinFormats.add( 0x14, "h:mm" );
|
||||
builtinFormats.add( 0x15, "h:mm:ss" );
|
||||
builtinFormats.add( 0x16, "m/d/yy h:mm" );
|
||||
|
||||
// 0x17 - 0x24 reserved for international and undocumented
|
||||
builtinFormats.add(0x17, "0x17");
|
||||
builtinFormats.add(0x18, "0x18");
|
||||
builtinFormats.add(0x19, "0x19");
|
||||
builtinFormats.add(0x1a, "0x1a");
|
||||
builtinFormats.add(0x1b, "0x1b");
|
||||
builtinFormats.add(0x1c, "0x1c");
|
||||
builtinFormats.add(0x1d, "0x1d");
|
||||
builtinFormats.add(0x1e, "0x1e");
|
||||
builtinFormats.add(0x1f, "0x1f");
|
||||
builtinFormats.add(0x20, "0x20");
|
||||
builtinFormats.add(0x21, "0x21");
|
||||
builtinFormats.add(0x22, "0x22");
|
||||
builtinFormats.add(0x23, "0x23");
|
||||
builtinFormats.add(0x24, "0x24");
|
||||
builtinFormats.add( 0x17, "0x17" );
|
||||
builtinFormats.add( 0x18, "0x18" );
|
||||
builtinFormats.add( 0x19, "0x19" );
|
||||
builtinFormats.add( 0x1a, "0x1a" );
|
||||
builtinFormats.add( 0x1b, "0x1b" );
|
||||
builtinFormats.add( 0x1c, "0x1c" );
|
||||
builtinFormats.add( 0x1d, "0x1d" );
|
||||
builtinFormats.add( 0x1e, "0x1e" );
|
||||
builtinFormats.add( 0x1f, "0x1f" );
|
||||
builtinFormats.add( 0x20, "0x20" );
|
||||
builtinFormats.add( 0x21, "0x21" );
|
||||
builtinFormats.add( 0x22, "0x22" );
|
||||
builtinFormats.add( 0x23, "0x23" );
|
||||
builtinFormats.add( 0x24, "0x24" );
|
||||
|
||||
// 0x17 - 0x24 reserved for international and undocumented
|
||||
builtinFormats.add(0x25, "(#,##0_);(#,##0)");
|
||||
builtinFormats.add(0x26, "(#,##0_);[Red](#,##0)");
|
||||
builtinFormats.add(0x27, "(#,##0.00_);(#,##0.00)");
|
||||
builtinFormats.add(0x28, "(#,##0.00_);[Red](#,##0.00)");
|
||||
builtinFormats.add(0x29, "_(*#,##0_);_(*(#,##0);_(* \"-\"_);_(@_)");
|
||||
builtinFormats.add(0x2a, "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)");
|
||||
builtinFormats.add(0x2b, "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)");
|
||||
builtinFormats.add(0x2c,
|
||||
"_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)");
|
||||
builtinFormats.add(0x2d, "mm:ss");
|
||||
builtinFormats.add(0x2e, "[h]:mm:ss");
|
||||
builtinFormats.add(0x2f, "mm:ss.0");
|
||||
builtinFormats.add(0x30, "##0.0E+0");
|
||||
builtinFormats.add(0x31, "@");
|
||||
builtinFormats.add( 0x25, "(#,##0_);(#,##0)" );
|
||||
builtinFormats.add( 0x26, "(#,##0_);[Red](#,##0)" );
|
||||
builtinFormats.add( 0x27, "(#,##0.00_);(#,##0.00)" );
|
||||
builtinFormats.add( 0x28, "(#,##0.00_);[Red](#,##0.00)" );
|
||||
builtinFormats.add( 0x29, "_(*#,##0_);_(*(#,##0);_(* \"-\"_);_(@_)" );
|
||||
builtinFormats.add( 0x2a, "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)" );
|
||||
builtinFormats.add( 0x2b, "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)" );
|
||||
builtinFormats.add( 0x2c,
|
||||
"_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)" );
|
||||
builtinFormats.add( 0x2d, "mm:ss" );
|
||||
builtinFormats.add( 0x2e, "[h]:mm:ss" );
|
||||
builtinFormats.add( 0x2f, "mm:ss.0" );
|
||||
builtinFormats.add( 0x30, "##0.0E+0" );
|
||||
builtinFormats.add( 0x31, "@" );
|
||||
}
|
||||
|
||||
public static List getBuiltinFormats()
|
||||
{
|
||||
if (builtinFormats == null)
|
||||
if ( builtinFormats == null )
|
||||
{
|
||||
populateBuiltinFormats();
|
||||
}
|
||||
@ -220,19 +222,19 @@ public class HSSFDataFormat
|
||||
* @return index of format or -1 if undefined.
|
||||
*/
|
||||
|
||||
public static short getBuiltinFormat(String format)
|
||||
public static short getBuiltinFormat( String format )
|
||||
{
|
||||
if (builtinFormats == null)
|
||||
if ( builtinFormats == null )
|
||||
{
|
||||
populateBuiltinFormats();
|
||||
}
|
||||
short retval = -1;
|
||||
|
||||
for (short k = 0; k < 0x31; k++)
|
||||
for ( short k = 0; k < 0x31; k++ )
|
||||
{
|
||||
String nformat = ( String ) builtinFormats.get(k);
|
||||
String nformat = (String) builtinFormats.get( k );
|
||||
|
||||
if ((nformat != null) && nformat.equals(format))
|
||||
if ( ( nformat != null ) && nformat.equals( format ) )
|
||||
{
|
||||
retval = k;
|
||||
break;
|
||||
@ -248,31 +250,34 @@ public class HSSFDataFormat
|
||||
* @return index of format.
|
||||
*/
|
||||
|
||||
public short getFormat(String format)
|
||||
public short getFormat( String format )
|
||||
{
|
||||
ListIterator i;
|
||||
int ind;
|
||||
if (!movedBuiltins) {
|
||||
i = builtinFormats.listIterator();
|
||||
while (i.hasNext()) {
|
||||
ind = i.nextIndex();
|
||||
formats.add(ind, i.next());
|
||||
}
|
||||
movedBuiltins = true;
|
||||
}
|
||||
i = formats.listIterator();
|
||||
while (i.hasNext()) {
|
||||
ind = i.nextIndex();
|
||||
if (format.equals(i.next()))
|
||||
return (short)ind;
|
||||
}
|
||||
|
||||
ind = workbook.getFormat(format, true);
|
||||
if (formats.size() <= ind)
|
||||
formats.setSize(ind + 1);
|
||||
formats.add(ind, format);
|
||||
ListIterator i;
|
||||
int ind;
|
||||
if ( !movedBuiltins )
|
||||
{
|
||||
i = builtinFormats.listIterator();
|
||||
while ( i.hasNext() )
|
||||
{
|
||||
ind = i.nextIndex();
|
||||
formats.add( ind, i.next() );
|
||||
}
|
||||
movedBuiltins = true;
|
||||
}
|
||||
i = formats.listIterator();
|
||||
while ( i.hasNext() )
|
||||
{
|
||||
ind = i.nextIndex();
|
||||
if ( format.equals( i.next() ) )
|
||||
return (short) ind;
|
||||
}
|
||||
|
||||
return (short)ind;
|
||||
ind = workbook.getFormat( format, true );
|
||||
if ( formats.size() <= ind )
|
||||
formats.setSize( ind + 1 );
|
||||
formats.add( ind, format );
|
||||
|
||||
return (short) ind;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -281,12 +286,14 @@ public class HSSFDataFormat
|
||||
* @return string represented at index of format or null if there is not a format at that index
|
||||
*/
|
||||
|
||||
public String getFormat(short index)
|
||||
public String getFormat( short index )
|
||||
{
|
||||
if (movedBuiltins)
|
||||
return ( String ) formats.get(index);
|
||||
else
|
||||
return (String) (builtinFormats.size() > index && builtinFormats.get(index) != null ? builtinFormats.get(index) : formats.get(index));
|
||||
if ( movedBuiltins )
|
||||
return (String) formats.get( index );
|
||||
else
|
||||
return (String) ( builtinFormats.size() > index
|
||||
&& builtinFormats.get( index ) != null
|
||||
? builtinFormats.get( index ) : formats.get( index ) );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -295,13 +302,13 @@ public class HSSFDataFormat
|
||||
* @return string represented at index of format or null if there is not a builtin format at that index
|
||||
*/
|
||||
|
||||
public static String getBuiltinFormat(short index)
|
||||
public static String getBuiltinFormat( short index )
|
||||
{
|
||||
if (builtinFormats == null)
|
||||
if ( builtinFormats == null )
|
||||
{
|
||||
populateBuiltinFormats();
|
||||
}
|
||||
return ( String ) builtinFormats.get(index);
|
||||
return (String) builtinFormats.get( index );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -311,7 +318,7 @@ public class HSSFDataFormat
|
||||
|
||||
public static int getNumberOfBuiltinBuiltinFormats()
|
||||
{
|
||||
if (builtinFormats == null)
|
||||
if ( builtinFormats == null )
|
||||
{
|
||||
populateBuiltinFormats();
|
||||
}
|
||||
|
@ -702,14 +702,14 @@ public class HSSFWorkbook
|
||||
workbook.removeName(index);
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Creates an instance of HSSFDataFormat.
|
||||
* @return the HSSFDataFormat object
|
||||
* @see org.apache.poi.hssf.record.FormatRecord
|
||||
* @see org.apache.poi.hssf.record.Record
|
||||
*/
|
||||
public HSSFDataFormat createDataFormat() {
|
||||
return new HSSFDataFormat(workbook);
|
||||
return new HSSFDataFormat(workbook);
|
||||
}
|
||||
|
||||
/** remove the named range by his name
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x100a" name="AreaFormat" package="org.apache.poi.hssf.record">
|
||||
<record id="0x100a" name="AreaFormat" excel-record-id="AREAFORMAT" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The area format record is used to define the colours and patterns for an area.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x101A" name="Area" package="org.apache.poi.hssf.record">
|
||||
<record id="0x101A" name="Area" excel-record-id="AREA"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The area record is used to define a area chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x100c" name="SeriesLabels" package="org.apache.poi.hssf.record">
|
||||
<record id="0x100c" name="SeriesLabels" excel-record-id="ATTACHEDLABEL"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The series label record defines the type of label associated with the data format record.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1046" name="AxisUsed" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1046" name="AxisUsed" excel-record-id="AXISUSED"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The number of axes used on a chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1021" name="AxisLineFormat" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1021" name="AxisLineFormat" excel-record-id="AXISLINEFORMAT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The axis line format record defines the axis type details.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1062" name="AxisOptions" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1062" name="AxisOptions" excel-record-id="AXCEXT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The axis options record provides unit information and other various tidbits about the axis.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1041" name="AxisParent" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1041" name="AxisParent" excel-record-id="AXISPARENT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The axis size and location</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x101d" name="Axis" package="org.apache.poi.hssf.record">
|
||||
<record id="0x101d" name="Axis" excel-record-id="AXIS" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The axis record defines the type of an axis.</description>
|
||||
|
@ -1,11 +1,12 @@
|
||||
<record id="0x1017" name="Bar" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1017" name="Bar" excel-record-id="BAR"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The bar record is used to define a bar chart.</description>
|
||||
<author>Glen Stampoultzis (glens at apache.org)</author>
|
||||
<fields>
|
||||
<field type="int" size="2" name="bar space" description="space between bars"/>
|
||||
<field type="int" size="2" name="category space" default="50" description="space between categories"/>
|
||||
<field type="int" size="2" name="category space" description="space between categories"/>
|
||||
<field type="int" size="2" name="format flags">
|
||||
<bit number="0" name="horizontal" description="true to display horizontal bar charts, false for vertical"/>
|
||||
<bit number="1" name="stacked" description="stack displayed values"/>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1020" name="CategorySeriesAxis" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1020" name="CategorySeriesAxis" excel-record-id="CATSERRANGE"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>This record refers to a category or series axis and is used to specify label/tickmark frequency.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1002" name="Chart" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1002" name="Chart" excel-record-id="CHART"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The chart record is used to define the location and size of a chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1063" name="Dat" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1063" name="Dat" excel-record-id="DAT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The dat record is used to store options for the chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1006" name="DataFormat" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1006" name="DataFormat" excel-record-id="DATAFORMAT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The data format record is used to index into a series.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1024" name="DefaultDataLabelTextProperties" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1024" name="DefaultDataLabelTextProperties"
|
||||
excel-record-id="DEFAULTTEXT" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The default data label text properties record identifies the text characteristics of the preceeding text record.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1060" name="FontBasis" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1060" name="FontBasis" excel-record-id="FBI"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The font basis record stores various font metrics.</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x31" name="Font" package="org.apache.poi.hssf.records">
|
||||
<record id="0x31" name="Font" excel-record-id="FONT" package="org.apache.poi.hssf.records">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Describes a font record. In Excel a font belongs in the font table.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1026" name="FontIndex" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1026" name="FontIndex" excel-record-id="FONTX"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The font index record indexes into the font table for the text record.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1032" name="Frame" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1032" name="Frame" excel-record-id="FRAME"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The frame record indicates whether there is a border around the displayed text of a chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1015" name="Legend" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1015" name="Legend" excel-record-id="LEGEND"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Defines a legend for a chart.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1007" name="LineFormat" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1007" name="LineFormat" excel-record-id="LINEFORMAT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Describes a line format record. The line format record controls how a line on a chart appears.</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x1051" name="LinkedData" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1051" name="LinkedData" excel-record-id="AI" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Describes a linked data record. This record referes to the series data or text.</description>
|
||||
@ -20,6 +20,7 @@
|
||||
<bit number="0" name="custom number format" description="true if this object has a custom number format"/>
|
||||
</field>
|
||||
<field type="int" size="2" name="index number fmt record"/>
|
||||
<field type="int" size="2" name="formula of link" description="not supported"/>
|
||||
<field type="custom:org.apache.poi.hssf.record.LinkedDataFormulaField"
|
||||
size="var" name="formula of link" description="formula"/>
|
||||
</fields>
|
||||
</record>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x104e" name="NumberFormatIndex" package="org.apache.poi.hssf.record">
|
||||
<record id="0x104e" name="NumberFormatIndex" excel-record-id="IFMT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The number format index record indexes format table. This applies to an axis.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1027" name="ObjectLink" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1027" name="ObjectLink" excel-record-id="OBJECTLINK"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Links text to an object on the chart or identifies it as the title.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1035" name="PlotArea" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1035" name="PlotArea" excel-record-id="PLOTAREA"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>preceeds and identifies a frame as belonging to the plot area.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1064" name="PlotGrowth" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1064" name="PlotGrowth" excel-record-id="PLOTGROWTH"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The plot growth record specifies the scaling factors used when a font is scaled.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1045" name="SeriesChartGroupIndex" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1045" name="SeriesChartGroupIndex" excel-record-id="SERTOCRT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The series chart group index record stores the index to the CHARTFORMAT record (0 based).</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1065" name="SeriesIndex" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1065" name="SeriesIndex" excel-record-id="SINDEX"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>links a series to its position in the series list.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x1016" name="SeriesList" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1016" name="SeriesList" excel-record-id="SERIESLIST"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The series list record defines the series displayed as an overlay to the main chart record.</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x1003" name="Series" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1003" name="Series" excel-record-id="SERIES" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The series record describes the overall data for a series.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x100d" name="SeriesText" package="org.apache.poi.hssf.record">
|
||||
<record id="0x100d" name="SeriesText" excel-record-id="SERIESTEXT"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Defines a series name</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x1044" name="SheetProperties" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1044" name="SheetProperties" excel-record-id="SHTPROPS" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>Describes a chart sheet properties record.</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x1025" name="Text" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1025" name="Text" excel-record-id="TEXT" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The text record is used to define text stored on a chart.</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x101e" name="Tick" package="org.apache.poi.hssf.record">
|
||||
<record id="0x101e" name="Tick" excel-record-id="TICK" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The Tick record defines how tick marks and label positioning/formatting</description>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<record id="0x1001" name="Units" package="org.apache.poi.hssf.record">
|
||||
<record id="0x1001" name="Units" excel-record-id="UNITS" package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The units record describes units.</description>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<record id="0x101f" name="ValueRange" package="org.apache.poi.hssf.record">
|
||||
<record id="0x101f" name="ValueRange" excel-record-id="VALUERANGE"
|
||||
package="org.apache.poi.hssf.record">
|
||||
<suffix>Record</suffix>
|
||||
<extends>Record</extends>
|
||||
<description>The value range record defines the range of the value axis.</description>
|
||||
|
@ -76,7 +76,7 @@ public class <xsl:value-of select="@name"/>Record
|
||||
extends Record
|
||||
{
|
||||
public final static short sid = <xsl:value-of select="@id"/>;
|
||||
<xsl:for-each select="//fields/field"> private <xsl:value-of select="recutil:getType(@size,@type,10)"/><xsl:text> </xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,0)"/>;
|
||||
<xsl:for-each select="//fields/field"> private <xsl:value-of select="recutil:getType(@size,@type,10)"/><xsl:text> </xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,0)"/><xsl:value-of select="recutil:initializeText(@size,@type)"/>;
|
||||
<xsl:apply-templates select="./bit|./const|./bit/const"/>
|
||||
</xsl:for-each>
|
||||
|
||||
@ -100,6 +100,14 @@ public class <xsl:value-of select="@name"/>Record
|
||||
public <xsl:value-of select="@name"/>Record(short id, short size, byte [] data)
|
||||
{
|
||||
super(id, size, data);
|
||||
<xsl:for-each select="//fields/field">
|
||||
<xsl:if test="@default">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName(position(),@name,0)"/> =
|
||||
<xsl:value-of select="@default"/>;
|
||||
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,6 +123,14 @@ public class <xsl:value-of select="@name"/>Record
|
||||
public <xsl:value-of select="@name"/>Record(short id, short size, byte [] data, int offset)
|
||||
{
|
||||
super(id, size, data, offset);
|
||||
<xsl:for-each select="//fields/field">
|
||||
<xsl:if test="@default">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName(position(),@name,0)"/> =
|
||||
<xsl:value-of select="@default"/>;
|
||||
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
}
|
||||
|
||||
/**
|
||||
@ -132,9 +148,13 @@ public class <xsl:value-of select="@name"/>Record
|
||||
|
||||
protected void fillFields(byte [] data, short size, int offset)
|
||||
{
|
||||
<xsl:variable name="fieldIterator" select="field:new()"/>
|
||||
|
||||
<xsl:text> int pos = 0;
|
||||
</xsl:text>
|
||||
|
||||
<xsl:variable name="fieldIterator" select="field:new()"/>
|
||||
<xsl:for-each select="//fields/field">
|
||||
<xsl:text> </xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,30)"/> = <xsl:value-of select="field:fillDecoder($fieldIterator,@size,@type)"/>;
|
||||
<xsl:text> </xsl:text><xsl:value-of select="field:fillDecoder2($fieldIterator,position(),@name,@size,@type)"/>;
|
||||
</xsl:for-each>
|
||||
}
|
||||
|
||||
@ -142,14 +162,16 @@ public class <xsl:value-of select="@name"/>Record
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[<xsl:value-of select="@name"/>]\n");
|
||||
buffer.append("[<xsl:value-of select="recutil:getRecordId(@name,@excel-record-id)"/>]\n");
|
||||
<xsl:apply-templates select="//field" mode="tostring"/>
|
||||
buffer.append("[/<xsl:value-of select="@name"/>]\n");
|
||||
buffer.append("[/<xsl:value-of select="recutil:getRecordId(@name,@excel-record-id)"/>]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte[] data)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
|
||||
<xsl:variable name="fieldIterator" select="field:new()"/>
|
||||
@ -178,11 +200,12 @@ public class <xsl:value-of select="@name"/>Record
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
<xsl:value-of select="@name"/>Record rec = new <xsl:value-of select="@name"/>Record();
|
||||
|
||||
<xsl:for-each select="//fields/field"><xsl:text> rec.</xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,0)"/><xsl:text> = </xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,0)"/><xsl:text>;
|
||||
</xsl:text></xsl:for-each>
|
||||
return rec;
|
||||
<xsl:value-of select="@name"/>Record rec = new <xsl:value-of select="@name"/>Record();
|
||||
<xsl:for-each select="//fields/field">
|
||||
<xsl:text>
|
||||
</xsl:text><xsl:value-of select="recutil:clone(@name,@type,position())"/><xsl:text>;</xsl:text>
|
||||
</xsl:for-each>
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
@ -276,19 +299,29 @@ public class <xsl:value-of select="@name"/>Record
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="field" mode="tostring">
|
||||
buffer.append(" .<xsl:value-of select="recutil:getFieldName(@name,20)"/> = ")<xsl:choose><xsl:when test="@type != 'string' and @type != 'hbstring' and @type != 'float' and @size != 'varword'">
|
||||
.append("0x")
|
||||
.append(HexDump.toHex((<xsl:value-of select="recutil:getType(@size,@type,00)"/>)get<xsl:value-of select="recutil:getFieldName1stCap(@name,0)"/>()))</xsl:when></xsl:choose>
|
||||
.append(" (").append(get<xsl:value-of select="recutil:getFieldName1stCap(@name,0)"/>()).append(" )\n");
|
||||
<xsl:apply-templates select="bit" mode="bittostring"/>
|
||||
<xsl:value-of select="recutil:getToString(@name,@type,@size)"/>
|
||||
<xsl:text>
|
||||
buffer.append(System.getProperty("line.separator")); </xsl:text>
|
||||
<xsl:apply-templates select="bit" mode="bittostring"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="bit" mode="bittostring">
|
||||
<xsl:if test="not (@mask)"> buffer.append(" .<xsl:value-of select="recutil:getFieldName(@name,20)"/> = ").append(is<xsl:value-of select="recutil:getFieldName1stCap(@name,20)"/>()).append('\n');
|
||||
</xsl:if>
|
||||
<xsl:if test="@mask"> buffer.append(" .<xsl:value-of select="recutil:getFieldName(@name,20)"/> = ").append(get<xsl:value-of select="recutil:getFieldName1stCap(@name,20)"/>()).append('\n');
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="bit" mode="bittostring">
|
||||
<xsl:if test="not (@mask)">
|
||||
<xsl:text> buffer.append(" .</xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName(@name,20)"/>
|
||||
<xsl:text> = ").append(is</xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName1stCap(@name,0)"/>
|
||||
<xsl:text>()).append('\n'); </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@mask">
|
||||
<xsl:text> buffer.append(" .</xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName(@name,20)"/>
|
||||
<xsl:text> = ").append(get</xsl:text>
|
||||
<xsl:value-of select="recutil:getFieldName1stCap(@name,0)"/>
|
||||
<xsl:text>()).append('\n'); </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="author">
|
||||
* @author <xsl:value-of select="."/>
|
||||
|
@ -56,7 +56,7 @@
|
||||
package org.apache.poi.generator;
|
||||
|
||||
/**
|
||||
* For iterating through our fields. Todo: Change this to javascript in the style sheet.
|
||||
* For iterating through our fields.
|
||||
*
|
||||
* @author Glen Stampoultzis (glens at apache.org)
|
||||
*/
|
||||
@ -74,31 +74,31 @@ public class FieldIterator
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* This utility function returns a fill method entry for a given field
|
||||
*
|
||||
* @param size - how big of an "int" or the name of the size field for a string
|
||||
* @param type - int or string
|
||||
*/
|
||||
*/
|
||||
public String fillDecoder(String size, String type)
|
||||
{
|
||||
String javaType = RecordUtil.getType(size, type, 0);
|
||||
|
||||
String result = "";
|
||||
if (javaType.equals("short"))
|
||||
result = "LittleEndian.getShort(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
result = "LittleEndian.getShort(data, pos + 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
else if (javaType.equals("short[]"))
|
||||
result = "LittleEndian.getShortArray(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
result = "LittleEndian.getShortArray(data, pos + 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
else if (javaType.equals("int"))
|
||||
result = "LittleEndian.getInt(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
result = "LittleEndian.getInt(data, pos + 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
else if (javaType.equals("byte"))
|
||||
result = "data[ 0x" + Integer.toHexString(offset) + " + offset ]";
|
||||
result = "data[ pos + 0x" + Integer.toHexString(offset) + " + offset ]";
|
||||
else if (javaType.equals("double"))
|
||||
result = "LittleEndian.getDouble(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
result = "LittleEndian.getDouble(data, pos + 0x" + Integer.toHexString(offset) + " + offset)";
|
||||
else if (javaType.equals("String") && !type.equals("hbstring"))
|
||||
result = "StringUtil.getFromUnicode(data, 0x" + Integer.toHexString(offset) + " + offset,("+ size + "-1)/2)";
|
||||
result = "StringUtil.getFromUnicode(data, pos + 0x" + Integer.toHexString(offset) + " + offset,("+ size + "-1)/2)";
|
||||
else if (javaType.equals("String") && type.equals("hbstring"))
|
||||
result = "StringUtil.getFromUnicodeHigh(data, 0x" + Integer.toHexString(offset) + " + offset, ("+ size+"/2))";
|
||||
result = "StringUtil.getFromUnicodeHigh(data, pos + 0x" + Integer.toHexString(offset) + " + offset, ("+ size+"/2))";
|
||||
|
||||
try
|
||||
{
|
||||
@ -109,7 +109,31 @@ public class FieldIterator
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public String fillDecoder2(int position, String name, String size, String type)
|
||||
{
|
||||
if (type.startsWith("custom:"))
|
||||
{
|
||||
StringBuffer result = new StringBuffer();
|
||||
result.append( RecordUtil.getFieldName( position, name, 0 ) );
|
||||
result.append( " = new " );
|
||||
String javaType = type.substring( 7 );
|
||||
result.append(javaType);
|
||||
result.append( "();\n");
|
||||
result.append( " pos += " );
|
||||
result.append(RecordUtil.getFieldName(position, name, 0))
|
||||
.append(".fillField(data,size,pos + ")
|
||||
.append(offset)
|
||||
.append(")");
|
||||
return result.toString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return RecordUtil.getFieldName(position, name, 30) +
|
||||
" = " + fillDecoder(size, type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//position(),@name,@size,@type
|
||||
public String serialiseEncoder( int fieldNumber, String fieldName, String size, String type)
|
||||
@ -118,21 +142,23 @@ public class FieldIterator
|
||||
String javaFieldName = RecordUtil.getFieldName(fieldNumber,fieldName,0);
|
||||
|
||||
String result = "";
|
||||
if (javaType.equals("short"))
|
||||
result = "LittleEndian.putShort(data, " + (offset+4) + " + offset, " + javaFieldName + ");";
|
||||
if (type.startsWith("custom:"))
|
||||
result = "pos += " + javaFieldName + ".serializeField( pos + offset, data );";
|
||||
else if (javaType.equals("short"))
|
||||
result = "LittleEndian.putShort(data, " + (offset+4) + " + offset + pos, " + javaFieldName + ");";
|
||||
else if (javaType.equals("short[]"))
|
||||
result = "LittleEndian.putShortArray(data, " + (offset+4) + " + offset, " + javaFieldName + ");";
|
||||
result = "LittleEndian.putShortArray(data, " + (offset+4) + " + offset + pos, " + javaFieldName + ");";
|
||||
else if (javaType.equals("int"))
|
||||
result = "LittleEndian.putInt(data, " + (offset+4) + " + offset, " + javaFieldName + ");";
|
||||
result = "LittleEndian.putInt(data, " + (offset+4) + " + offset + pos, " + javaFieldName + ");";
|
||||
else if (javaType.equals("byte"))
|
||||
result = "data[ " + (offset+4) + " + offset ] = " + javaFieldName + ";";
|
||||
result = "data[ " + (offset+4) + " + offset + pos ] = " + javaFieldName + ";";
|
||||
else if (javaType.equals("double"))
|
||||
result = "LittleEndian.putDouble(data, " + (offset+4) + " + offset, " + javaFieldName + ");";
|
||||
result = "LittleEndian.putDouble(data, " + (offset+4) + " + offset + pos, " + javaFieldName + ");";
|
||||
else if (javaType.equals("String") && !type.equals("hbstring"))
|
||||
result = "StringUtil.putUncompressedUnicode("+ javaFieldName +", data, offset+4);";
|
||||
result = "StringUtil.putUncompressedUnicode("+ javaFieldName +", data, offset + pos + 4);";
|
||||
else if (javaType.equals("String") && type.equals("hbstring"))
|
||||
result = "StringUtil.putUncompressedUnicodeHigh("+ javaFieldName +", data, "+(offset+4)+" + offset);";
|
||||
|
||||
result = "StringUtil.putUncompressedUnicodeHigh("+ javaFieldName +", data, "+(offset+4)+" + offset + pos);";
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
@ -148,7 +174,12 @@ public class FieldIterator
|
||||
public String calcSize( int fieldNumber, String fieldName, String size, String type)
|
||||
{
|
||||
String result = " + ";
|
||||
if ("var".equals(size))
|
||||
if (type.startsWith("custom:"))
|
||||
{
|
||||
String javaFieldName = RecordUtil.getFieldName(fieldNumber, fieldName, 0);
|
||||
return result + javaFieldName + ".getSize()";
|
||||
}
|
||||
else if ("var".equals(size))
|
||||
{
|
||||
String javaFieldName = RecordUtil.getFieldName(fieldNumber,fieldName,0);
|
||||
return result + " ("+javaFieldName + ".length() *2)";
|
||||
@ -157,12 +188,12 @@ public class FieldIterator
|
||||
{
|
||||
String javaFieldName = RecordUtil.getFieldName(fieldNumber,fieldName,0);
|
||||
return result + javaFieldName + ".length * 2 + 2";
|
||||
} else
|
||||
} else
|
||||
{
|
||||
return result + size;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -64,6 +64,8 @@ import java.util.StringTokenizer;
|
||||
*/
|
||||
public class RecordUtil
|
||||
{
|
||||
private static final String CR = "\n";
|
||||
|
||||
public static String getFieldName(int position, String name, int padTo)
|
||||
{
|
||||
StringBuffer fieldName = new StringBuffer("field_" + position + "_");
|
||||
@ -99,6 +101,36 @@ public class RecordUtil
|
||||
return fieldName.toString();
|
||||
}
|
||||
|
||||
public static String clone(String name, String type, int pos) {
|
||||
StringBuffer fieldName = new StringBuffer();
|
||||
toIdentifier(name, fieldName);
|
||||
|
||||
String javaFieldName = getFieldName(pos, name, 0);
|
||||
|
||||
if (type.startsWith("custom:"))
|
||||
{
|
||||
String javaType = type.substring(7);
|
||||
return "rec." + javaFieldName + " = ((" + javaType + ")" + javaFieldName + ".clone());";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "rec." + javaFieldName + " = " + javaFieldName;
|
||||
}
|
||||
}
|
||||
|
||||
public static String initializeText(String size, String type)
|
||||
{
|
||||
if (type.startsWith("custom:"))
|
||||
{
|
||||
String javaType = type.substring( 7 );
|
||||
return " = new " + javaType + "()";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private static void toIdentifier(String name, StringBuffer fieldName)
|
||||
{
|
||||
for (int i = 0; i < name.length(); i++)
|
||||
@ -139,7 +171,12 @@ public class RecordUtil
|
||||
return pad(new StringBuffer("String"), padTo).toString();
|
||||
else if (type.equals("hbstring"))
|
||||
return pad(new StringBuffer("String"), padTo).toString();
|
||||
|
||||
else if (type.startsWith("custom:"))
|
||||
{
|
||||
int pos = type.lastIndexOf('.');
|
||||
return pad(new StringBuffer(type.substring(pos+1)), padTo)
|
||||
.toString();
|
||||
}
|
||||
|
||||
return "short"; // if we don't know, default to short
|
||||
}
|
||||
@ -201,5 +238,37 @@ public class RecordUtil
|
||||
}
|
||||
return retval.toString();
|
||||
}
|
||||
|
||||
|
||||
public static String getToString(String fieldName, String type, String size) {
|
||||
StringBuffer result = new StringBuffer();
|
||||
result.append(" buffer.append(\" .");
|
||||
result.append(getFieldName(fieldName, 20));
|
||||
result.append(" = \")" + CR);
|
||||
if (type.equals("string") == false
|
||||
&& type.equals("hbstring") == false
|
||||
&& type.equals("float") == false
|
||||
// && type.equals("varword") == false
|
||||
&& size.equals("varword") == false
|
||||
&& type.startsWith("custom:") == false)
|
||||
{
|
||||
result.append(" .append(\"0x\")");
|
||||
result.append(".append(HexDump.toHex( ");
|
||||
// result.append(getType(size, type, 0));
|
||||
result.append(" get");
|
||||
result.append(getFieldName1stCap(fieldName, 0));
|
||||
result.append(" ()))" + CR);
|
||||
}
|
||||
result.append(" .append(\" (\").append( get");
|
||||
result.append(getFieldName1stCap(fieldName,0));
|
||||
result.append("() ).append(\" )\");");
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
public static String getRecordId(String recordName, String excelName)
|
||||
{
|
||||
if (excelName == null || excelName.equals(""))
|
||||
return recordName;
|
||||
else
|
||||
return excelName;
|
||||
}
|
||||
}
|
||||
|
@ -64,16 +64,92 @@ import junit.framework.TestCase;
|
||||
* class works correctly. Test data taken directly from a real
|
||||
* Excel file.
|
||||
*
|
||||
|
||||
* @author Glen Stampoultzis (glens at apache.org)
|
||||
*/
|
||||
public class TestLinkedDataRecord
|
||||
extends TestCase
|
||||
{
|
||||
byte[] data = new byte[] {
|
||||
(byte)0x00,
|
||||
(byte)0x01,
|
||||
(byte)0x00,(byte)0x00,
|
||||
|
||||
/*
|
||||
Records that would appear in a simple bar chart
|
||||
|
||||
The first record links to the series title (linkType = 0). It's
|
||||
reference type is 1 which means that it links directly to data entered
|
||||
into the forumula bar. There seems to be no reference to any data
|
||||
however. The formulaOfLink field contains two 0 bytes.
|
||||
|
||||
============================================
|
||||
Offset 0xf9c (3996)
|
||||
rectype = 0x1051, recsize = 0x8
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 01 00 00 00 00 00 00 ........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1051, size =8
|
||||
[AI]
|
||||
.linkType = 0x00 (0 )
|
||||
.referenceType = 0x01 (1 )
|
||||
.options = 0x0000 (0 )
|
||||
.customNumberFormat = false
|
||||
.indexNumberFmtRecord = 0x0000 (0 )
|
||||
.formulaOfLink = (org.apache.poi.hssf.record.LinkedDataFormulaField@95fd19 )
|
||||
[/AI]
|
||||
|
||||
============================================
|
||||
Offset 0xfa8 (4008)
|
||||
rectype = 0x1051, recsize = 0x13
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 01 02 00 00 00 00 0B 00 3B 00 00 00 00 1E 00 01 ........;.......
|
||||
00000010 00 01 00 ...
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1051, size =19
|
||||
[AI]
|
||||
.linkType = 0x01 (1 )
|
||||
.referenceType = 0x02 (2 )
|
||||
.options = 0x0000 (0 )
|
||||
.customNumberFormat = false
|
||||
.indexNumberFmtRecord = 0x0000 (0 )
|
||||
.formulaOfLink = (org.apache.poi.hssf.record.LinkedDataFormulaField@11b9fb1 )
|
||||
[/AI]
|
||||
|
||||
============================================
|
||||
Offset 0xfbf (4031)
|
||||
rectype = 0x1051, recsize = 0x13
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 02 02 00 00 69 01 0B 00 3B 00 00 00 00 1F 00 00 ....i...;.......
|
||||
00000010 00 00 00 ...
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1051, size =19
|
||||
[AI]
|
||||
.linkType = 0x02 (2 )
|
||||
.referenceType = 0x02 (2 )
|
||||
.options = 0x0000 (0 )
|
||||
.customNumberFormat = false
|
||||
.indexNumberFmtRecord = 0x0169 (361 )
|
||||
.formulaOfLink = (org.apache.poi.hssf.record.LinkedDataFormulaField@913fe2 )
|
||||
[/AI]
|
||||
|
||||
============================================
|
||||
Offset 0xfd6 (4054)
|
||||
rectype = 0x1051, recsize = 0x8
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 03 01 00 00 00 00 00 00 ........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1051, size =8
|
||||
[AI]
|
||||
.linkType = 0x03 (3 )
|
||||
.referenceType = 0x01 (1 )
|
||||
.options = 0x0000 (0 )
|
||||
.customNumberFormat = false
|
||||
.indexNumberFmtRecord = 0x0000 (0 )
|
||||
.formulaOfLink = (org.apache.poi.hssf.record.LinkedDataFormulaField@1f934ad )
|
||||
[/AI]
|
||||
|
||||
*/
|
||||
|
||||
byte[] data = new byte[]{
|
||||
(byte) 0x00,
|
||||
(byte) 0x01,
|
||||
(byte) 0x00, (byte) 0x00,
|
||||
(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00 // not supported
|
||||
};
|
||||
|
@ -62,8 +62,6 @@ public class TestNamedRange
|
||||
POIFSFileSystem fs = null;
|
||||
HSSFWorkbook wb = null;
|
||||
|
||||
System.out.println("testTestCase");
|
||||
|
||||
String filename = System.getProperty("HSSF.testdata.path");
|
||||
|
||||
filename = filename + "/Simple.xls";
|
||||
|
Loading…
Reference in New Issue
Block a user