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

📄 cachetablemodelex.java

📁 自行开发的高缓存table
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov  Date: 2004-2-20 9:14:29
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   CacheTableModelEx.java

package utility.CacheTableEX;

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Vector;
import javax.swing.event.TableModelEvent;
import sbsnms.asn.IDList;
import sbsnms.asn.IDType;
import utility.Trace;

// Referenced classes of package utility.CacheTableEX:
//            CacheTableModel, RequestDataListener, CacheTableEx, CacheTableScrollPane

public class CacheTableModelEx extends CacheTableModel
{

    public CacheTableModelEx(IDList idlist, Vector vector, int i, int j, int k, int l)
    {
        rowCount = 0;
        colCount = 0;
        idList = null;
        low = -1;
        up = -1;
        pageSize = 100;
        currentIndex = 0;
        error = false;
        errorCount = 0;
        tableHead = null;
        endLow = -1;
        endUp = -1;
        endData = null;
        bInit = true;
        js = null;
        rowCount = idlist.size();
        try
        {
            idList = (IDList)idlist.clone();
        }
        catch(NullPointerException nullpointerexception)
        {
            idList = null;
        }
        cachedData = vector;
        low = i;
        up = j;
        pageSize = k;
        currentIndex = l;
    }

    public CacheTableModelEx(IDList idlist, RequestDataListener requestdatalistener, Object aobj[])
    {
        rowCount = 0;
        colCount = 0;
        idList = null;
        low = -1;
        up = -1;
        pageSize = 100;
        currentIndex = 0;
        error = false;
        errorCount = 0;
        tableHead = null;
        endLow = -1;
        endUp = -1;
        endData = null;
        bInit = true;
        js = null;
        rowCount = idlist.size();
        try
        {
            idList = (IDList)idlist.clone();
        }
        catch(NullPointerException nullpointerexception)
        {
            idList = null;
        }
        _listener = requestdatalistener;
        if(aobj != null && aobj.length != 0)
        {
            tableHead = new Vector();
            for(int i = 0; i < aobj.length; i++)
                tableHead.addElement(aobj[i]);

        }
        colCount = tableHead.size();
    }

    public CacheTableModelEx(RequestDataListener requestdatalistener, Object aobj[])
    {
        rowCount = 0;
        colCount = 0;
        idList = null;
        low = -1;
        up = -1;
        pageSize = 100;
        currentIndex = 0;
        error = false;
        errorCount = 0;
        tableHead = null;
        endLow = -1;
        endUp = -1;
        endData = null;
        bInit = true;
        js = null;
        _listener = requestdatalistener;
        if(aobj != null && aobj.length != 0)
        {
            tableHead = new Vector();
            for(int i = 0; i < aobj.length; i++)
                tableHead.addElement(aobj[i]);

        }
        colCount = tableHead.size();
        initialize();
    }

    public CacheTableModelEx(RequestDataListener requestdatalistener)
    {
        rowCount = 0;
        colCount = 0;
        idList = null;
        low = -1;
        up = -1;
        pageSize = 100;
        currentIndex = 0;
        error = false;
        errorCount = 0;
        tableHead = null;
        endLow = -1;
        endUp = -1;
        endData = null;
        bInit = true;
        js = null;
        _listener = requestdatalistener;
        initialize();
    }

    public void addColumn(Object obj)
    {
        if(tableHead == null)
            tableHead = new Vector();
        tableHead.addElement(obj);
        colCount = tableHead.size();
        fireTableChanged(new TableModelEvent(this, -1));
    }

    private boolean initialize()
    {
        bInit = false;
        if(_listener == null)
        {
            rowCount = 0;
            return false;
        }
        try
        {
            idList = (IDList)_listener.getAllIDs().clone();
        }
        catch(NullPointerException nullpointerexception)
        {
            idList = null;
        }
        if(idList == null || idList.size() == 0)
        {
            rowCount = 0;
            return false;
        } else
        {
            rowCount = idList.size();
            return true;
        }
    }

    public void refreshTableNow()
    {
        TableModelEvent tablemodelevent = new TableModelEvent(this, 0, 0, 0, 0);
        fireTableChanged(tablemodelevent);
    }

    private IDList constructIds(int i, int j)
    {
        if(j > idList.size())
            return null;
        IDList idlist = new IDList();
        for(int k = i; k <= j; k++)
            idlist.addElement(idList.elementAt(k));

        return idlist;
    }

    private int requestDataError(IDList idlist)
    {
        boolean flag = false;
        if(idlist != null)
        {
            Trace.print("CacheTableModelEx", "requestDataError", "requestDataError id size = " + idList.size() + "    rowCount = " + rowCount);
            int i = idlist.size();
            for(int j = 0; j < i; j++)
            {
                for(int k = 0; k < idList.size(); k++)
                {
                    IDType idtype = (IDType)idList.elementAt(k);
                    if(!idtype.value.equals(((IDType)idlist.elementAt(j)).value))
                        continue;
                    idList.removeElementAt(k);
                    break;
                }

            }

            Trace.print("CacheTableModelEx", "requestDataError", "after delete requestDataError id size = " + idList.size());
        }
        low = up = -1;
        fireTableChanged();
        return -1;
    }

    public int updateRows(int i, int j)
    {
        Object obj = null;
        if(_listener == null)
            return -1;
        if(idList == null || idList.size() == 0)
        {
            if(bInit)
            {
                bInit = false;
                boolean flag = initialize();
                if(!flag)
                {
                    fireTableChanged();
                    return -1;
                }
            }
            return -1;
        }
        bInit = false;
        if(low <= i && j <= up)
        {
            Trace.print("CacheTableModelEx", "updateRows", "\u4E0D\u9700\u8981\u53D6\u6570\u636E\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D");
            return i;
        }
        if(super.lowestLine >= low && (super.lowestLine + super.pagedTable.getViewLines()) - 1 <= up)
        {
            Trace.print("CacheTableModelEx", "updateRows", "\u6570\u636E\u8DB3\u591F\u663E\u793A\uFF0C\u4E0D\u53D6\u6570\u636E");
            Trace.print("", "", "\u663E\u793A\u7684\u6700\u4F4E\u884C\uFF1D" + super.lowestLine);
            Trace.print("", "", "\u53EF\u663E\u793A\u884C\uFF1D" + super.pagedTable.getViewLines());
            Trace.print("", "", "\u5DF2\u6709\u6570\u636E:low = " + low + "  up = " + up);
            return i;
        }
        Trace.print("CacheTableModelEx", "updateRows", "\u5168\u90E8\u91CD\u65B0\u53D6\u6570\u636E\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D\uFF0D");
        cachedData = new Vector();
        IDList idlist = constructIds(i, j);
        if(idlist == null || idlist.size() == 0)
            return -1;
        IDList idlist1 = _listener.requestData(idlist, cachedData);
        if(idlist1 != null && idlist1.size() != 0)
        {
            return requestDataError(idlist1);
        } else
        {
            low = i;
            up = j;
            Trace.print("CacheTableModelEx", "updateRows", "updateRows-----low = " + low);
            Trace.print("CacheTableModelEx", "updateRows", "updateRows-----up = " + up);
            Trace.print("CacheTableModelEx", "updateRows", "updateRows-----lowrow = " + i);
            Trace.print("CacheTableModelEx", "updateRows", "updateRows-----uprow = " + j);
            return i;
        }
    }

    public void setValueAt(Object obj, int i, int j)
    {
        if(i >= low && i - low <= cachedData.size() - 1 && j < colCount && j >= 0)
        {
            Vector vector = (Vector)cachedData.elementAt(i - low);
            vector.setElementAt(obj, j);
            if(i <= (super.lowestLine + super.pagedTable.getViewLines()) - 1 && i >= super.lowestLine)
                refreshTableNow();
        }
    }

    public Object getValueAt(int i, int j)
    {
        if(i >= low && i - low <= getDataCount() - 1 && j < colCount && j >= 0)
        {
            Vector vector = (Vector)cachedData.elementAt(i - low);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -