cachetablemodelex.java
来自「自行开发的高缓存table」· Java 代码 · 共 536 行 · 第 1/2 页
JAVA
536 行
{
Trace.print("CacheTableModelEx", "getValueAt", "Out the data area-----rowIndex = " + i);
Trace.print("CacheTableModelEx", "getValueAt", "Out the data area-----low = " + low);
Trace.print("CacheTableModelEx", "getValueAt", "Out the data area-----columnIndex = " + j);
Trace.print("CacheTableModelEx", "getValueAt", "Out the data area-----colCount = " + colCount);
Trace.print("CacheTableModelEx", "getValueAt", "Out the data area-----cachedataSize = " + cachedData.size());
return null;
}
}
public Object getValueAtEx(int i, int j)
{
Vector vector = new Vector();
if(i >= low && i - low <= getDataCount() - 1 && j < colCount && j >= 0)
{
vector = (Vector)cachedData.elementAt(i - low);
return vector.elementAt(j);
}
Trace.print("CacheTableModelEx", "getValueAtEx", "Out the data area2-----");
if(i < endLow || i > endUp)
{
endData = new Vector();
endLow = i;
endUp = i + 300 <= getRowCount() - 1 ? i + 300 : getRowCount() - 1;
Vector vector1 = constructIds(endLow, endUp);
if(vector1 == null || vector1.size() == 0)
{
Trace.print("CacheTableModelEx", "getValueAtEx", "Error");
return null;
}
Vector vector2 = null;
Vector vector3 = null;
vector2 = (Vector)vector1.clone();
vector3 = _listener.requestData(vector1, endData);
if(vector3 != null && vector3.size() > 0)
{
int k = vector3.size();
for(int l = 0; l < k; l++)
{
int i1 = vector2.indexOf(vector3.elementAt(l));
if(i1 != -1)
endData.insertElementAt(new Vector(1), i1);
}
}
}
vector = (Vector)endData.elementAt(i - endLow);
if(vector != null && vector.size() != 0)
return vector.elementAt(j);
else
return null;
}
public int getColumnCount()
{
if(tableHead != null)
{
Trace.print("", "", "Head Size is " + tableHead.size());
return tableHead.size();
} else
{
Trace.print("", "", "Head Size is 0");
return 0;
}
}
public int getRowCount()
{
if(idList != null)
return idList.size();
else
return 0;
}
public Class getColumnClass(int i)
{
return java.lang.String.class;
}
public String getColumnName(int i)
{
if(tableHead != null && i < tableHead.size())
{
Trace.print("", (String)tableHead.elementAt(i), "get name OK");
return (String)tableHead.elementAt(i);
} else
{
Trace.print("", "", "get name ERROR");
return null;
}
}
public void removeRows(int ai[])
{
if(ai == null || ai.length == 0)
return;
Arrays.sort(ai);
int i = low;
int j = up;
for(int k = ai.length - 1; k >= 0; k--)
{
Object obj = idList.elementAt(ai[k]);
idList.removeElementAt(ai[k]);
if(ai[k] < i)
{
low--;
up--;
} else
if(ai[k] >= i && ai[k] <= j)
{
cachedData.removeElementAt(ai[k] - i);
up--;
}
}
rowCount = idList.size();
fireTableChanged();
}
public void insertRow(int i, Object obj, Vector vector)
{
if(obj == null)
return;
if(i < 0)
return;
idList.insertElementAt(obj, i);
if(i >= low && i <= up)
{
cachedData.insertElementAt(vector, i - low);
up++;
}
rowCount = idList.size();
fireTableChanged();
}
public void addRows(Vector vector)
{
Object obj = null;
int i = 0;
if(vector == null || vector.size() == 0)
return;
i = vector.size();
for(int j = 0; j < i; j++)
{
Object obj1 = vector.elementAt(j);
if(obj1 != null)
idList.addElement(obj1);
}
rowCount = idList.size();
fireTableChanged();
}
public void addRow(Object obj, Vector vector)
{
if(obj == null)
return;
if(vector == null || vector.size() < 0)
return;
if(getRowCount() - super.lowestLine < 100)
{
cachedData.addElement(vector);
up++;
}
idList.addElement(obj);
fireTableChanged();
}
private int getDataCount()
{
if(cachedData == null)
return 0;
else
return cachedData.size();
}
public Vector getSelectedId(int ai[])
{
Vector vector = new Vector();
if(ai == null || ai.length < 0)
return vector;
for(int i = 0; i < ai.length; i++)
if(ai[i] >= 0)
vector.addElement(idList.elementAt(ai[i]));
return vector;
}
public void setIDList(Vector vector)
{
idList = vector;
low = up = -1;
fireTableChanged();
Trace.print("CacheTableModelEx", "setIDList", "setIDList-----Ok");
}
public void setInitIDList(Vector vector)
{
idList = vector;
up = -1;
Trace.print("CacheTableModelEx", "setInitIDList", "setInitIDList-----Ok");
}
public Vector getAllId()
{
return idList;
}
public void destroy()
{
idList = null;
cachedData = null;
_listener = null;
tableHead = null;
endData = null;
}
public Vector getCachedData()
{
if(cachedData != null)
return (Vector)cachedData.clone();
else
return null;
}
private int getItemIndexById(Object obj)
{
if(idList == null)
return -1;
boolean flag = false;
int i = 0;
Object obj1;
for(int j = idList.size(); !flag && i < j; flag = obj.equals(obj1))
obj1 = idList.elementAt(i++);
if(flag)
return i - 1;
else
return -1;
}
public int isItemInCurrentShownTable(Object obj)
{
int i = getItemIndexById(obj);
if(i != -1 && i >= low && i - low <= cachedData.size() - 1)
return i;
else
return -1;
}
int rowCount;
int colCount;
Vector idList;
Vector cachedData;
int low;
int up;
int pageSize;
int currentIndex;
private RequestDataListener _listener;
private boolean error;
private int errorCount;
Vector tableHead;
int endLow;
int endUp;
Vector endData;
private boolean bInit;
public CacheTableScrollPane js;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?