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

📄 portmodel.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 *  SSL-Explorer
 *
 *  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
			
package com.sslexplorer.vpn.client;

import java.util.Vector;

import com.maverick.multiplex.MultiplexedConnection;
import com.sshtools.ui.awt.grid.TableModel;
import com.sshtools.ui.awt.grid.TableModelListener;
import com.sslexplorer.vpn.base.VPNConnectionListener;

public class PortModel implements TableModel {

    private Vector portItems, listeners;
    private String[] columns;
    private Class[] columnClasses;
    
    public PortModel() {
        portItems = new Vector();
        listeners = new Vector();
        columns = new String[] { 
                        "Type", "Name", "Local Port", "Active", "Total"
        };
        columnClasses = new Class[] {
                        String.class, String.class, Integer.class, Integer.class, Integer.class
        };
    }
    
    public void addPortItem(PortItem tunnel) {
        portItems.addElement(tunnel);
        for(int i = listeners.size() - 1 ; i >= 0 ; i--) {
            ((TableModelListener)listeners.elementAt(i)).rowInserted(portItems.size() - 1);
        }
    }

    public int getRowCount() {
        return portItems.size();
    }

    public int getColumnCount() {
        return columns.length;
    }

    public String getColumnName(int c) {
        return columns[c];
    }

    public Class getColumnClass(int r) {
        return columnClasses[r];
    }

    public Object getValue(int r, int c) {
        PortItem t = getItemAt(r);
        switch(c) {
            case 0:
                return t.getType();
            case 1:
                return t.getName();
            case 2:
                return new Integer(t.getLocalPort());
            case 3:
                return new Integer(t.getActiveTunnelCount());
            default:
                return new Integer(t.getTotalTunnelCount());                    
        }
    }

    public void addTableModelListener(TableModelListener l) {
        listeners.addElement(l);            
    }

    public void removeTableModelListener(TableModelListener l) {
        listeners.removeElement(l);
    }

    public PortItem getItemAt(int r) {
        return (PortItem)portItems.elementAt(r);
    }

    public void removeItemAt(int idx) {
        portItems.removeElementAt(idx);
        for(int i = listeners.size() - 1 ; i >= 0 ; i--) {
            ((TableModelListener)listeners.elementAt(i)).rowDeleted(idx);
        }
    }

    public void updateItemAt(int idx) {
        for(int i = listeners.size() - 1 ; i >= 0 ; i--) {
            ((TableModelListener)listeners.elementAt(i)).rowChanged(idx);
        }
    }

    public int getIndexForVPNConnectionListener(VPNConnectionListener connectionListener) {        
        for(int i = portItems.size() - 1 ; i >= 0 ; i--) {
            PortItem pi = (PortItem)portItems.elementAt(i);
            if(pi.getLocalListener() != null && pi.getLocalListener() == connectionListener) {
                return i;
            }
        }
        return -1;
    }

    public int getIndexForMultiplexedConnection(MultiplexedConnection mc) {    
        for(int i = portItems.size() - 1 ; i >= 0 ; i--) {
            PortItem pi = (PortItem)portItems.elementAt(i);
            if(pi.getRemoteConnection() != null && pi.getRemoteConnection() == mc) {
                return i;
            }
        }
        return -1;
    }

    public void refresh() {
        for(int i = listeners.size() - 1 ; i >= 0 ; i--) {
            ((TableModelListener)listeners.elementAt(i)).changed();
        }        
    }
    
}

⌨️ 快捷键说明

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