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

📄 cachetablepanel.java

📁 自行开发的高缓存table
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    }

    public void deleteIDFromAll(IDType idtype)
    {
        int i = searchIDFromIDList(idtype, idList);
        if(i != -1)
            deleteIDFromAll(i);
    }

    public void deleteIDFromAll(int i)
    {
        if(i >= 0 && i < idList.size())
        {
            idList.removeElementAt(i);
            cacheTable.currentItemIndex = current;
            setIDList(idList);
        }
    }

    public void deleteItem(IDType idtype)
    {
        int i = searchIDFromIDList(idtype, idList);
        if(i != -1)
            deleteItem(i);
    }

    public void deleteItem(int i)
    {
        if(i >= 0 && i < idList.size())
        {
            idList.removeElementAt(i);
            cacheTable.currentItemIndex = current;
            setIDList(idList);
        }
    }

    public void deleteItems(IDList idlist)
    {
        if(idlist == null || idlist.size() == 0)
            return;
        Object obj = null;
        for(int i = 0; i < idlist.size(); i++)
        {
            IDType idtype = (IDType)idlist.elementAt(i);
            int j = searchIDFromIDList(idtype, idList);
            if(j >= 0 && j < idList.size())
                idList.removeElementAt(j);
        }

        setIDList(idList);
    }

    public void addItem(IDType idtype)
    {
        if(idtype != null)
        {
            idList.addElement(idtype);
            cacheTable.currentItemIndex = current;
            setIDList(idList);
        }
    }

    public void insertItem(IDType idtype, int i)
    {
        if(idtype != null && i >= 0 && i < idList.size())
        {
            idList.insertElementAt(idtype, i);
            cacheTable.currentItemIndex = current;
            setIDList(idList);
        }
    }

    public int getCacheTableRowCount()
    {
        return cacheTable.getRowCount();
    }

    public boolean isCacheTableCellEditable(int i, int j)
    {
        return cacheTable.isCellEditable(0, i);
    }

    public int getSelectedIndex()
    {
        return selectedIndex;
    }

    public int[] getSelectedIndices()
    {
        return convertVctToArray(selectedRows);
    }

    private int[] convertVctToArray(Vector vector)
    {
        if(vector != null)
        {
            int ai[] = new int[vector.size()];
            for(int i = 0; i < ai.length; i++)
                ai[i] = ((Integer)vector.elementAt(i)).intValue();

            return ai;
        } else
        {
            int ai1[] = new int[1];
            ai1[0] = -1;
            return ai1;
        }
    }

    public IDType getSelectedItem()
    {
        return (IDType)idList.elementAt(selectedIndex);
    }

    public IDList getSelectedItems()
    {
        if(selectedIndex != -1)
        {
            int ai[] = convertVctToArray(selectedRows);
            IDList idlist = new IDList();
            for(int i = 0; i < ai.length; i++)
                idlist.add(idList.elementAt(ai[i]));

            return idlist;
        } else
        {
            return null;
        }
    }

    public int isItemInCurrentShownTable(IDType idtype)
    {
        int i = searchIDFromIDList(idtype, idList);
        if(i >= upEdge && i < lowEdge)
            return i - upEdge;
        else
            return -1;
    }

    public int getCurrentItemIndexInShowTable()
    {
        if(cacheTable == null || cacheTable.getRowCount() == 0)
            return -1;
        else
            return current / rowHeight - upEdge;
    }

    public void insertItemInCurrentShownTable(IDType idtype)
    {
        idList.insertElementAt(idtype, current / rowHeight);
        cachedIDList.insertElementAt(idtype, current / rowHeight - upEdge);
        lowEdge++;
        max = max + rowHeight;
        cacheScrlPane.getViewport().remove(cacheTable);
        cacheScrlPane.getViewport().add(cacheTable);
        setViewportPoint();
        if(selectedRows != null)
        {
            for(int i = 0; i < selectedRows.size(); i++)
            {
                Integer integer = (Integer)selectedRows.elementAt(i);
                if(integer.intValue() >= current / rowHeight)
                {
                    integer = new Integer(integer.intValue() + 1);
                    selectedRows.setElementAt(integer, i);
                }
            }

        }
        revalidate();
        repaint();
    }

    private void cacheTable_valueChanged(ListSelectionEvent listselectionevent)
    {
        if(selectedRows == null)
            return;
        if(!listselectionevent.getValueIsAdjusting() && !isSelectAll)
        {
            for(int i = 0; i < selectedRows.size(); i++)
            {
                int j = ((Integer)selectedRows.elementAt(i)).intValue();
                if(j >= idList.size())
                    selectedRows.removeElementAt(i);
            }

            if(selectedRows.size() <= 0)
                selectedIndex = -1;
            if(!ctrlPressed || !shiftPressed)
                if(ctrlPressed || shiftPressed)
                {
                    if(!iSetSelection)
                    {
                        int k = selectedRows.size();
                        for(int l = k; l > 0; l--)
                        {
                            int k1 = ((Integer)selectedRows.elementAt(l - 1)).intValue();
                            if(k1 >= upEdge && k1 < lowEdge)
                                selectedRows.removeElementAt(l - 1);
                        }

                    }
                    int ai[] = cacheTable.getSelectedRows();
                    for(int i1 = ai.length; i1 > 0; i1--)
                        if(!selectedRows.contains(new Integer(upEdge + ai[i1 - 1])))
                            selectedRows.add(new Integer(upEdge + ai[i1 - 1]));

                    if(selectedRows.size() > 0)
                    {
                        selectedRows.sort();
                        selectedIndex = ((Integer)selectedRows.elementAt(0)).intValue();
                    } else
                    {
                        selectedIndex = -1;
                    }
                } else
                if(!shiftPressed)
                {
                    selectedIndex = upEdge + cacheTable.getSelectedRow();
                    selectedRows.removeAllElements();
                    int ai1[] = cacheTable.getSelectedRows();
                    for(int j1 = 0; j1 < ai1.length; j1++)
                        selectedRows.add(new Integer(upEdge + ai1[j1]));

                }
        }
    }

    public boolean lessThan(Object obj, Object obj1)
    {
        return ((Integer)obj).intValue() < ((Integer)obj1).intValue();
    }

    public boolean lessThanOrEqual(Object obj, Object obj1)
    {
        return ((Integer)obj).intValue() <= ((Integer)obj1).intValue();
    }

    public void setSelectAll(boolean flag)
    {
        isSelectAll = flag;
        if(isSelectAll)
        {
            if(selectedRows == null)
                selectedRows = new SortVector(this);
            selectedRows.removeAllElements();
            addAllItems();
            if(cacheTable == null)
                return;
            cacheTable.selectAll();
        }
    }

    protected void addAllItems()
    {
        if(idList != null && idList.size() > 0)
        {
            int i = idList.size();
            for(int j = 0; j < i; j++)
                selectedRows.add(new Integer(j));

        }
    }

    public void dispose()
    {
        MemoryMgr.disposeMemory(this);
        disposeFields();
    }

    private void disposeFields()
    {
        long l = System.currentTimeMillis();
        try
        {
            Class class1 = getClass();
            Field afield[] = class1.getDeclaredFields();
            for(int i = 0; i < afield.length; i++)
                try
                {
                    int j = afield[i].getModifiers();
                    if(!Modifier.isFinal(j) && !Modifier.isStatic(j))
                        afield[i].set(this, null);
                }
                catch(IllegalAccessException illegalaccessexception) { }
                catch(Exception exception1) { }

        }
        catch(Exception exception) { }
        long l1 = System.currentTimeMillis();
        Trace.print(getClass().getName(), "disposeFields()", "  Time taken=" + (l1 - l) + " ms");
    }

    private RequestDataListener _listener;
    private int min;
    private int max;
    private int current;
    private int blockIncrement;
    private int unitIncrement;
    private int visibleAmount;
    private int rowHeight;
    public IDList idList;
    private IDList cachedIDList;
    private int cacheSize;
    private int upEdge;
    private int lowEdge;
    private int oldUp;
    private int oldLow;
    private int compPos;
    private int selectedIndex;
    private SortVector selectedRows;
    private int requestDataEvent;
    private boolean isInit;
    private boolean isProgramSetValue;
    private boolean needToReadData;
    private boolean ctrlPressed;
    private boolean shiftPressed;
    private boolean iSetSelection;
    private IDListTable cacheTable;
    private DefaultTableModel model;
    private int hValue;
    private JScrollPane cacheScrlPane;
    private JScrollBar cacheScrlBar;
    boolean isSelectAll;
    private boolean APressed;






}

⌨️ 快捷键说明

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