📄 drawingdata.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: DrawingData.java
package jxl.biff.drawing;
import common.Assert;
import common.Logger;
import java.util.ArrayList;
// Referenced classes of package jxl.biff.drawing:
// EscherRecordData, EscherContainer, EscherRecord, EscherStream,
// EscherRecordType
public class DrawingData
implements EscherStream
{
private static Logger logger;
private byte drawingData[];
private int numDrawings;
private boolean initialized;
private EscherRecord spContainers[];
static Class class$jxl$biff$drawing$DrawingData; /* synthetic field */
public DrawingData()
{
numDrawings = 0;
drawingData = null;
initialized = false;
}
private void initialize()
{
EscherRecordData er = new EscherRecordData(this, 0);
Assert.verify(er.isContainer());
EscherContainer dgContainer = new EscherContainer(er);
EscherRecord children[] = dgContainer.getChildren();
children = dgContainer.getChildren();
EscherContainer spgrContainer = null;
for(int i = 0; i < children.length && spgrContainer == null; i++)
{
EscherRecord child = children[i];
if(child.getType() == EscherRecordType.SPGR_CONTAINER)
spgrContainer = (EscherContainer)child;
}
Assert.verify(spgrContainer != null);
EscherRecord spgrChildren[] = spgrContainer.getChildren();
boolean nestedContainers = false;
for(int i = 0; i < spgrChildren.length && !nestedContainers; i++)
if(spgrChildren[i].getType() == EscherRecordType.SPGR_CONTAINER)
nestedContainers = true;
if(!nestedContainers)
{
spContainers = spgrChildren;
} else
{
ArrayList sps = new ArrayList();
getSpContainers(spgrContainer, sps);
spContainers = new EscherRecord[sps.size()];
spContainers = (EscherRecord[])sps.toArray(spContainers);
}
initialized = true;
}
private void getSpContainers(EscherContainer spgrContainer, ArrayList sps)
{
EscherRecord spgrChildren[] = spgrContainer.getChildren();
for(int i = 0; i < spgrChildren.length; i++)
{
if(spgrChildren[i].getType() == EscherRecordType.SP_CONTAINER)
{
sps.add(spgrChildren[i]);
continue;
}
if(spgrChildren[i].getType() == EscherRecordType.SPGR_CONTAINER)
getSpContainers((EscherContainer)spgrChildren[i], sps);
else
logger.warn("Spgr Containers contains a record other than Sp/Spgr containers");
}
}
public void addData(byte data[])
{
addRawData(data);
numDrawings++;
}
public void addRawData(byte data[])
{
if(drawingData == null)
{
drawingData = data;
return;
} else
{
byte newArray[] = new byte[drawingData.length + data.length];
System.arraycopy(drawingData, 0, newArray, 0, drawingData.length);
System.arraycopy(data, 0, newArray, drawingData.length, data.length);
drawingData = newArray;
initialized = false;
return;
}
}
final int getNumDrawings()
{
return numDrawings;
}
EscherContainer getSpContainer(int drawingNum)
{
if(!initialized)
initialize();
EscherContainer spContainer = (EscherContainer)spContainers[drawingNum + 1];
Assert.verify(spContainer != null);
return spContainer;
}
public byte[] getData()
{
return drawingData;
}
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$DrawingData != null ? class$jxl$biff$drawing$DrawingData : (class$jxl$biff$drawing$DrawingData = class$("jxl.biff.drawing.DrawingData")));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -