📄 ftpfiletablemodel.java
字号:
package ranab.server.ftp.gui;
import java.util.Date;
import java.util.Vector;
import java.text.SimpleDateFormat;
import javax.swing.table.AbstractTableModel;
import ranab.server.ftp.FtpUser;
/**
* This table model tracks user file related activities.
*
* @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>.
*/
public
class FtpFileTableModel extends AbstractTableModel {
private final static int MAX_SIZE = 1000;
private final static SimpleDateFormat DATE_FMT = new SimpleDateFormat("MM/dd HH:mm:ss");
private final static String[] COL_NAMES = {"File",
"User",
"Time"};
private Vector mEntryList = new Vector();
/**
* Reload the model.
*/
public void reset() {
mEntryList.clear();
fireTableDataChanged();
}
/**
* Get column class - always string
*/
public Class getColumnClass(int index) {
return String.class;
}
/**
* Get column count.
*/
public int getColumnCount() {
return COL_NAMES.length;
}
/**
* Get column name.
*/
public String getColumnName(int index) {
return COL_NAMES[index];
}
/**
* Get row count.
*/
public int getRowCount() {
return mEntryList.size();
}
/**
* Is cell editable - currently false.
*/
public boolean isCellEditable(int row, int col) {
return true;
}
/**
* Set value at - dummy method
*/
public void setValueAt(Object val, int row, int col) {
}
/**
* Get value at.
*/
public Object getValueAt(int row, int col) {
String retVal = "";
TableEntry entry = null;
try {
entry = (TableEntry)mEntryList.get(row);
}
catch(Exception ex) {
}
if (entry == null) {
return retVal;
}
switch(col) {
case 0:
retVal = entry.fileName;
break;
case 1:
retVal = entry.userName;
break;
case 2:
retVal = entry.date;
break;
}
return retVal;
}
/**
* Find column index.
*/
public int findColumn(String columnName) {
int index = -1;
for(int i=COL_NAMES.length; --i>=0; ) {
if (COL_NAMES[i].equals(columnName)) {
index = i;
break;
}
}
return index;
}
/**
* Add a new user
*/
public void newEntry(String file, FtpUser user) {
TableEntry entry = new TableEntry();
entry.fileName = file;
entry.userName = user.getName();
entry.date = DATE_FMT.format(new Date());
int sz = mEntryList.size();
if ( (MAX_SIZE > 0) && (sz >= MAX_SIZE) ) {
reset();
sz = 0;
}
synchronized(mEntryList) {
mEntryList.add(entry);
++sz;
}
fireTableRowsInserted(sz, sz);
}
/**
* Remove all entries
*/
public void close() {
mEntryList.clear();
}
//////////////////////////////////////////////////////////
///////////////////////list entry ///////////////////////
public class TableEntry {
String fileName;
String userName;
String date;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -