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

📄 ftpfiletablemodel.java

📁 Ftp服务1.0
💻 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 + -