📄 chart.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: Chart.java
package jxl.biff.drawing;
import common.Assert;
import common.Logger;
import jxl.WorkbookSettings;
import jxl.biff.*;
import jxl.read.biff.File;
import jxl.read.biff.Record;
// Referenced classes of package jxl.biff.drawing:
// EscherStream, MsoDrawingRecord, DrawingData, ObjRecord,
// EscherContainer
public class Chart
implements ByteData, EscherStream
{
private static final Logger logger;
private MsoDrawingRecord msoDrawingRecord;
private ObjRecord objRecord;
private int startpos;
private int endpos;
private File file;
private DrawingData drawingData;
private int drawingNumber;
private byte data[];
private boolean initialized;
private WorkbookSettings workbookSettings;
static Class class$jxl$biff$drawing$Chart; /* synthetic field */
public Chart(MsoDrawingRecord mso, ObjRecord obj, DrawingData dd, int sp, int ep, File f, WorkbookSettings ws)
{
msoDrawingRecord = mso;
objRecord = obj;
startpos = sp;
endpos = ep;
file = f;
workbookSettings = ws;
if(msoDrawingRecord != null)
{
drawingData = dd;
drawingData.addData(msoDrawingRecord.getRecord().getData());
drawingNumber = drawingData.getNumDrawings() - 1;
}
initialized = false;
Assert.verify(mso != null && obj != null || mso == null && obj == null);
}
public byte[] getBytes()
{
if(!initialized)
initialize();
return data;
}
public byte[] getData()
{
return msoDrawingRecord.getRecord().getData();
}
private void initialize()
{
data = file.read(startpos, endpos - startpos);
initialized = true;
}
public void rationalize(IndexMapping xfMapping, IndexMapping fontMapping, IndexMapping formatMapping)
{
if(!initialized)
initialize();
int pos = 0;
int code = 0;
int length = 0;
Type type = null;
for(; pos < data.length; pos += length + 4)
{
code = IntegerHelper.getInt(data[pos], data[pos + 1]);
length = IntegerHelper.getInt(data[pos + 2], data[pos + 3]);
type = Type.getType(code);
if(type == Type.FONTX)
{
int fontind = IntegerHelper.getInt(data[pos + 4], data[pos + 5]);
IntegerHelper.getTwoBytes(fontMapping.getNewIndex(fontind), data, pos + 4);
continue;
}
if(type == Type.FBI)
{
int fontind = IntegerHelper.getInt(data[pos + 12], data[pos + 13]);
IntegerHelper.getTwoBytes(fontMapping.getNewIndex(fontind), data, pos + 12);
continue;
}
if(type == Type.IFMT)
{
int formind = IntegerHelper.getInt(data[pos + 4], data[pos + 5]);
IntegerHelper.getTwoBytes(formatMapping.getNewIndex(formind), data, pos + 4);
continue;
}
if(type != Type.ALRUNS)
continue;
int numRuns = IntegerHelper.getInt(data[pos + 4], data[pos + 5]);
int fontPos = pos + 6;
for(int i = 0; i < numRuns; i++)
{
int fontind = IntegerHelper.getInt(data[fontPos + 2], data[fontPos + 3]);
IntegerHelper.getTwoBytes(fontMapping.getNewIndex(fontind), data, fontPos + 2);
fontPos += 4;
}
}
}
EscherContainer getSpContainer()
{
EscherContainer spContainer = drawingData.getSpContainer(drawingNumber);
return spContainer;
}
MsoDrawingRecord getMsoDrawingRecord()
{
return msoDrawingRecord;
}
ObjRecord getObjRecord()
{
return objRecord;
}
static Class class$(String x0)
{
return Class.forName(x0);
ClassNotFoundException x1;
x1;
throw new NoClassDefFoundError(x1.getMessage());
}
static
{
logger = Logger.getLogger(class$jxl$biff$drawing$Chart != null ? class$jxl$biff$drawing$Chart : (class$jxl$biff$drawing$Chart = class$("jxl.biff.drawing.Chart")));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -