⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawingdata.java

📁 实现JAVA界面的代码GWT
💻 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 + -