📄 configdialog.java
字号:
modeManual = true;
}
manual = new Checkbox("Manual ", null, modeManual);
Panel autoPanel = new Panel(new FlowLayout(FlowLayout.RIGHT));
autoPanel.add(ips);
alwaysManual = new Checkbox("Always manual", null,
prefAlwaysManual);
Panel manPanel = new PanelGBL();
manPanel.add(alwaysManual, leftLineConstr);
manPanel.add(interfaceAddr, midLineEastConstr);
addrLayout = new CardLayout();
addrPanel = new Panel(addrLayout);
addrPanel.add(manPanel, "man");
addrPanel.add(autoPanel, "auto");
add(manual);
add(addrPanel);
setManual(modeManual);
manual.addItemListener(this);
}
}
class HttpPanel extends BorderPanelGBL implements ItemListener {
public Checkbox useMe;
private IfAddrPanel ifAddr;
private TextField localPort;
ItemListener listener;
public String getLocalPort() {
return localPort.getText();
}
public void setState(boolean state) {
useMe.setState(state);
ifAddr.setEnabled(state);
}
public boolean getState() {
return useMe.getState();
}
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == useMe) {
setState(useMe.getState());
listener.itemStateChanged(e);
return;
}
}
public String getInterfaceAddress() {
return ifAddr.getAddress();
}
public String getConfigMode() {
return ifAddr.getMode();
}
public HttpPanel(ItemListener listener,
String defaultInterfaceAddress,
String defaultPort,
boolean defaultState,
boolean prefAlwaysManual) {
super("HTTP settings",
"Must enable if behind a firewall/NAT");
this.listener = listener;
useMe = new Checkbox("Enabled", null, defaultState);
ifAddr = new IfAddrPanel(defaultInterfaceAddress, prefAlwaysManual);
localPort = new TextField(defaultPort, 8);
add(useMe, stdConstr);
add(ifAddr, midLineEastConstr);
add(localPort, midLineConstr);
setState(defaultState);
useMe.addItemListener(this);
}
}
class TcpPanel extends BorderPanelGBL implements ItemListener {
public Checkbox useMe;
private IfAddrPanel ifAddr;
private TextField localPort;
private HostPortPanel publicAddr;
public ItemListener listener;
public String getLocalPort() {
return localPort.getText();
}
public String getPublicPort() {
return publicAddr.getPort();
}
public void setState(boolean state) {
useMe.setState(state);
localPort.setEnabled(state);
ifAddr.setEnabled(state);
publicAddr.setEnabled(state);
}
public boolean getState() {
return useMe.getState();
}
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == useMe) {
setState(useMe.getState());
listener.itemStateChanged(e);
}
}
public String getInterfaceAddress() {
return ifAddr.getAddress();
}
public String getPublicAddress() {
return publicAddr.getHost();
}
public String getConfigMode() {
return ifAddr.getMode();
}
public TcpPanel(ItemListener listener,
String defaultInterfaceAddr,
String defaultPort,
String defaultPublicAddr,
String defaultPublicPort,
boolean defaultState,
boolean prefAlwaysManual) {
super("TCP settings", "Enable if direct LAN connection.");
this.listener = listener;
ifAddr = new IfAddrPanel(defaultInterfaceAddr, prefAlwaysManual);
useMe = new Checkbox("Enabled", null, defaultState);
localPort = new TextField(defaultPort, 8);
publicAddr =
new HostPortPanel(this,
null,
"(Optional) Public NAT address",
defaultPublicAddr,
defaultPublicPort,
true);
add(useMe, stdConstr);
add(ifAddr, midLineEastConstr);
add(localPort, midLineConstr);
add(publicAddr, stdConstr);
setState(defaultState);
useMe.addItemListener(this);
}
}
class IdPanel extends PanelGBL implements ItemListener {
private TextField peerName;
public HostPortPanel proxyPanel;
public String getName() {
return peerName.getText();
}
public void setState(boolean state) {
httpPanel.useMe.setState(state);
proxyPanel.setEnabled(state);
}
public boolean getState() {
return httpPanel.useMe.getState();
}
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == httpPanel.useMe) {
setState(httpPanel.useMe.getState());
httpPanel.listener.itemStateChanged(e);
return;
}
}
public IdPanel(String defaultPeer,
String defaultProxyName,
String defaultProxyPort, boolean proxyOn) {
super();
peerName = new TextField(defaultPeer, 20);
add(new Label("Peer Name"), leftLineConstr);
add(peerName, midLineConstr);
add(new Label("(Mandatory)"), rightLineConstr);
add(new Label(""), leftLineConstr);
proxyPanel =
new HostPortPanel(this,
"Use a proxy server if behind "
+ "firewall)",
"Proxy address",
defaultProxyName,
defaultProxyPort,
proxyOn);
add(proxyPanel, fillConstr);
}
}
/**
* Security Panel
*/
class SecPanel extends PanelGBL implements ItemListener {
private TextField principal; // Secure user name:
private TextField passwd;
private TextField vpasswd;
private Label principalLabel = new Label("Secure Username");
private Label secLabel = new Label("Password");
private Label vsecLabel = new Label("Verify Password");
private Label init1 = new Label("Security parameters already initialized");
private Label init2 = new Label("No further input is required");
private Label please1 = new Label("Please note your secure username and password");
private Label please2 = new Label("They will be required for all future access");
private boolean passwordEntered = false;
private boolean securityInitialized = false;
public String getPrincipal() {
return principal.getText();
}
public String getPasswd() {
return passwd.getText();
}
public String getVerifyPasswd() {
return vpasswd.getText();
}
public boolean getAlreadyInitialized() {
return securityInitialized;
}
public void setState(boolean state) {
principalLabel.setEnabled(state);
passwd.setEnabled(state);
vpasswd.setEnabled(state);
secLabel.setEnabled(state);
vsecLabel.setEnabled(state);
}
// Nothing to do on state changes
public void itemStateChanged(ItemEvent e) {
return;
}
public SecPanel( boolean initSecurity) {
super();
// We require security initialization
securityInitialized = !initSecurity;
if (initSecurity) {
principal = new TextField("", 20);
passwd = new TextField("", 20);
vpasswd = new TextField("", 20);
passwd.setEchoChar('*');
vpasswd.setEchoChar('*');
add(principalLabel,leftPanelConstr);
add(principal, rightPanelConstr);
add(secLabel, leftPanelConstr);
add(passwd, rightPanelConstr);
add(vsecLabel, leftPanelConstr);
add(vpasswd, rightPanelConstr);
// Courtesy warning
add(please1, leftPanelConstr);
add(please2, leftPanelConstr);
setState(true);
} else {
// just put up a message that security is already
// initialized
add(init1, leftPanelConstr);
add(init2, leftPanelConstr);
}
}
public void clearPasswds() {
passwd.setText("");
vpasswd.setText("");
}
public void clearPrincipal() {
principal.setText("");
}
}
class DebugPanel extends PanelGBL {
private Choice debugLevel;
public String getDebugLevel() {
return debugLevel.getSelectedItem();
}
public DebugPanel(String dftDebugLevel) {
super();
debugLevel = new Choice();
debugLevel.addItem("error");
debugLevel.addItem("warn");
debugLevel.addItem("info");
debugLevel.addItem("debug");
debugLevel.addItem("user default");
// PDA requirement 21.02.2002
//check for the null element of the Vector
if (dftDebugLevel != null)
debugLevel.select(dftDebugLevel);
// PDA requirement 21.02.2002
add(new Label("Trace Level"), leftLineConstr);
add(debugLevel, rightLineConstr);
}
}
class RdvPanel extends BorderPanelGBL {
public Checkbox isRdv;
public HostListPanel http;
public HostListPanel tcp;
RdvPanel(String title, boolean isRendezVous) {
super(title);
isRdv = new Checkbox("Act as a Rendezvous", null,
isRendezVous);
http = new HostListPanel("Available HTTP rendez-vous");
tcp = new HostListPanel("Available TCP rendez-vous");
add(isRdv, stdConstr);
add(tcp, leftPanelConstr);
add(http, rightPanelConstr);
}
}
class RouterPanel extends BorderPanelGBL implements ItemListener {
public HostPortPanel publicAddr;
public HostListPanel remote;
private ItemListener listener;
public void itemStateChanged(ItemEvent e) {
// Cannot be a router and need one in the same time.
// We handle that one more or less as a checkbox group. If you try
// to turn one on, the other goes off. The difference is: both
// may be off.
if ( routerPanel.publicAddr.getState()
&& routerPanel.remote.getState()) {
// Figure out what the user is clicking to decide what to
// to turn off.
if (e.getSource() == routerPanel.remote.useMe) {
routerPanel.publicAddr.setState(false);
} else {
routerPanel.remote.setState(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -