📄 portmodel.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 + -