📄 configdialog.java
字号:
private final CardLayout addrLayout; private final Panel addrPanel; private final TextField interfaceAddr; private final TextField localPort; private final Choice ips; public IfAddrPanel(String defaultInterfaceAddr, String defaultPort) { super(new FlowLayout(FlowLayout.LEADING, 0, 0)); ips = new Choice(); boolean modeManual = false; ips.add("Any/All Local Addresses"); try { Iterator allIntf = IPUtils.getAllLocalAddresses(); boolean sawValid = false; while (allIntf.hasNext()) { InetAddress anAddr = (InetAddress) allIntf.next(); if (IPUtils.LOOPBACK.equals(anAddr)) { continue; } ips.add( IPUtils.getHostAddress(anAddr) ); sawValid = true; } if (!sawValid) { modeManual = true; } // if an address was previously configured, switch to manual // if we do not find any interface, switch to manual too. if (defaultInterfaceAddr != null) { InetAddress defaultIntf = InetAddress.getByName(defaultInterfaceAddr); if (!IPUtils.ANYADDRESS.equals(defaultIntf)) { modeManual = true; // However, if this address is in the automatic list, // switch back to automatic and select it. allIntf = IPUtils.getAllLocalAddresses(); while (allIntf.hasNext()) { InetAddress anAddr = (InetAddress) allIntf.next(); if (defaultIntf.equals(anAddr)) { modeManual = false; ips.select(defaultInterfaceAddr); } } } } } catch (Exception e) { modeManual = true; } manual = new Checkbox("Manual", null, modeManual); add(manual); manual.addItemListener(this); addrLayout = new CardLayout(); addrPanel = new Panel(addrLayout); Panel autoPanel = new Panel(new FlowLayout(FlowLayout.LEADING)); autoPanel.add(ips); Panel manPanel = new Panel(new FlowLayout(FlowLayout.LEADING)); interfaceAddr = new TextField(defaultInterfaceAddr, 20); manPanel.add(interfaceAddr); addrPanel.add(manPanel, "man"); addrPanel.add(autoPanel, "auto"); add(addrPanel); localPort = new TextField(defaultPort, 6); add(localPort); setManual(modeManual); } /** * {@inheritDoc} **/ private void setManual(boolean manMode) { addrLayout.show(addrPanel, manMode ? "man" : "auto"); this.validate(); } /** * {@inheritDoc} **/ public void setEnabled(boolean enabled) { super.setEnabled(enabled); manual.setEnabled(enabled); ips.setEnabled(enabled); interfaceAddr.setEnabled(enabled); localPort.setEnabled(enabled); } /** * {@inheritDoc} **/ public void itemStateChanged(ItemEvent e) { if (e.getSource() == manual) { setManual(manual.getState()); } } public String getAddress() { if (manual.getState()) { return interfaceAddr.getText().trim(); } else { return ips.getSelectedItem().trim(); } } public String getPort() { return localPort.getText().trim(); } public String getMode() { return manual.getState() ? "manual" : "auto"; } } static final class IPTptPanel extends BorderPanelGBL implements ItemListener { private static final int TYPE_HTTP = 0; private static final int TYPE_TCP = 1; private final Checkbox useMe; private final Checkbox pubAddrOnly; private final Checkbox multicast; private final Checkbox clientEnabled; private final IfAddrPanel ifAddr; private final HostPortPanel publicAddr; public IPTptPanel(int type, boolean defaultState, String name, String defaultInterfaceAddr, String defaultPort, boolean clientState, boolean serverState, String defaultPublicAddr, String defaultPublicPort, boolean pubAddrOnlyState ) { this(type, defaultState, name, defaultInterfaceAddr, defaultPort, clientState, serverState, defaultPublicAddr, defaultPublicPort, pubAddrOnlyState, false); } public IPTptPanel(int type, boolean defaultState, String name, String defaultInterfaceAddr, String defaultPort, boolean clientState, boolean serverState, String defaultPublicAddr, String defaultPublicPort, boolean pubAddrOnlyState, boolean multicastState) { super(name); ifAddr = new IfAddrPanel(defaultInterfaceAddr, defaultPort); useMe = new Checkbox("Enabled", null, defaultState); if (type == TYPE_TCP) { multicast = new Checkbox("Multicast", null, multicastState); } else { multicast = null; } clientEnabled = new Checkbox("Enable Outgoing connections", null, clientState); pubAddrOnly = new Checkbox("Hide private addresses", null, pubAddrOnlyState); publicAddr = new HostPortPanel("Enable Incoming Connections", "(Optional) Public address", defaultPublicAddr, defaultPublicPort, serverState); GridBagConstraints constraints = new GridBagConstraints(); constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.gridx = 0; constraints.gridy = 1; constraints.anchor = GridBagConstraints.FIRST_LINE_START; add(useMe, constraints); if (type == TYPE_TCP) { constraints.anchor = GridBagConstraints.FIRST_LINE_END; add(multicast, constraints); } constraints.gridx = 0; constraints.gridy++; constraints.anchor = GridBagConstraints.LINE_START; add(ifAddr, constraints); constraints.gridx = 0; constraints.gridy++; constraints.anchor = GridBagConstraints.LINE_START; add(clientEnabled, constraints); constraints.anchor = GridBagConstraints.EAST; add(pubAddrOnly, constraints); constraints.gridx = 0; constraints.gridy++; constraints.anchor = GridBagConstraints.LINE_START; add(publicAddr, constraints); publicAddr.setState(serverState); setState(defaultState); useMe.addItemListener(this); } /** * {@inheritDoc} **/ public void setState(boolean state) { useMe.setState(state); ifAddr.setEnabled(state); publicAddr.setEnabled(state); if (multicast != null) { multicast.setEnabled(state); } clientEnabled.setEnabled(state); pubAddrOnly.setEnabled(state); } /** * {@inheritDoc} **/ public boolean getState() { return useMe.getState(); } /** * {@inheritDoc} **/ public void itemStateChanged(ItemEvent e) { setState(useMe.getState()); } public String getInterfaceAddress() { return ifAddr.getAddress().trim(); } public String getConfigMode() { return ifAddr.getMode(); } public boolean getPubAddrOnly() { return pubAddrOnly.getState(); } public void setPubAddrOnly(boolean state) { pubAddrOnly.setState(state); } } /** * Manages Peer Identity configuration **/ final class IdPanel extends Panel implements ActionListener { private final TextField peerName; private final TextField passwd; private final TextField vpasswd; private final Button file; private final TextField certFile; public IdPanel(String defaultPeerName, boolean needSecurityConfig) { super(new GridBagLayout()); peerName = new TextField(defaultPeerName, 20); GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = 0; constraints.gridy = 0; constraints.anchor = GridBagConstraints.FIRST_LINE_END; add(new Label("Peer Name", Label.RIGHT), constraints); constraints.gridx++; constraints.anchor = GridBagConstraints.FIRST_LINE_START; add(peerName, constraints); if (needSecurityConfig) { // FIXME 20031005 bondolo@jxta.org see <http://platform.jxta.org/issues/show_bug.cgi?id=838> passwd = new TextField(System.getProperty("net.jxta.tls.password", ""), 20); vpasswd = new TextField(System.getProperty("net.jxta.tls.password", ""), 20); passwd.setEchoChar('*'); vpasswd.setEchoChar('*'); file = new Button("Import Root Certificate File..."); certFile = new TextField("", 40); certFile.setEditable(false); constraints.gridx = 0; constraints.gridy++; constraints.anchor = GridBagConstraints.LINE_END; add(new Label("Password", Label.RIGHT), constraints); constraints.gridx++; constraints.anchor = GridBagConstraints.LINE_START; add(passwd, constraints); constraints.gridx = 0; constraints.gridy++; constraints.anchor = GridBagConstraints.LINE_END; add(new Label("Verify Password", Label.RIGHT), constraints); constraints.gridx++; constraints.anchor = GridBagConstraints.LINE_START; add(vpasswd, constraints); constraints.gridx = 0; constraints.gridy += 2; constraints.anchor = GridBagConstraints.LINE_START; add(file, constraints); constraints.gridx++; constraints.anchor = GridBagConstraints.CENTER; add(certFile, constraints); file.addActionListener(this); } else { passwd = null; vpasswd = null; file = null; certFile = null; } } /** * {@inheritDoc} **/ public String getName() { return peerName.getText().trim(); } public String getPassword() { return passwd.getText(); } public String getVerifyPassword() { return vpasswd.getText(); } public File getCertFile() { String filepath = certFile.getText(); if (0 == filepath.length()) { return null; } return new File(filepath); } public void clearPasswords() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -