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

📄 configdialog.java

📁 jxta_src_2.41b jxta 2.41b 最新版源码 from www.jxta.org
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                        if (defaultServerNameH != null && (index = defaultServerNameH.lastIndexOf(":")) != -1) {                if ((0 == index) || (index == defaultServerNameH.length())) {                    throw new IllegalArgumentException("Bad HTTP server name. Cannot proceed.");                }                defaultServerPortH = defaultServerNameH.substring(index + 1);                defaultServerNameH = defaultServerNameH.substring(0, index);            } else {                defaultServerNameH = "";                defaultServerPortH = "9700";            }                        noPublicAddressesH = httpAdv.getPublicAddressOnly();        } catch (Exception failure) {            throw new ConfiguratorException("Broken Platform Config. Cannot proceed.", failure);        }                // Rendezvous Settings        boolean isRendezvous = false;        boolean onlySeeds = false;        List seedRdvs = new ArrayList();        List seedingRdvs = new ArrayList();                try {            RdvConfigAdv rdvConfigAdv = null;                        param = (XMLElement) configAdv.getServiceParam(PeerGroup.rendezvousClassID);                        // XXX 20041027 backwards compatibility            param.addAttribute("type", RdvConfigAdv.getAdvertisementType());                        rdvConfigAdv = (RdvConfigAdv) AdvertisementFactory.newAdvertisement(param);                        isRendezvous = (RendezVousConfiguration.RENDEZVOUS == rdvConfigAdv.getConfiguration());                        onlySeeds = rdvConfigAdv.getUseOnlySeeds();                        Iterator eachRdv = Arrays.asList(rdvConfigAdv.getSeedRendezvous()).iterator();                        while (eachRdv.hasNext()) {                seedRdvs.add(eachRdv.next().toString());            }                        eachRdv = Arrays.asList(rdvConfigAdv.getSeedingURIs()).iterator();                        while (eachRdv.hasNext()) {                seedingRdvs.add(eachRdv.next().toString());            }        } catch (Exception failure) {            throw new ConfiguratorException("Broken Platform Config. Cannot proceed.", failure);        }                // Relay Settings        boolean isRelay = false;        boolean useRelay = false;        boolean useOnlySeedRelays = false;        List seedRelays = new ArrayList();        List seedingRelays = new ArrayList();                try {            param = (XMLElement) configAdv.getServiceParam(PeerGroup.relayProtoClassID);                        // XXX bondolo 20041027 for backwards compatibility.            param.addAttribute("type", RelayConfigAdv.getAdvertisementType());                        RelayConfigAdv relayConfig = (RelayConfigAdv) AdvertisementFactory.newAdvertisement(param);                        isRelay = relayConfig.isServerEnabled();                        useRelay = relayConfig.isClientEnabled();                        useOnlySeedRelays = relayConfig.getUseOnlySeeds();                        Iterator eachRelay = Arrays.asList(relayConfig.getSeedRelays()).iterator();                        while (eachRelay.hasNext()) {                seedRelays.add(eachRelay.next().toString());            }                        eachRelay = Arrays.asList(relayConfig.getSeedingURIs()).iterator();                        while (eachRelay.hasNext()) {                seedingRelays.add(eachRelay.next().toString());            }        } catch (Exception failure) {            throw new ConfiguratorException("Broken Platform Config. Cannot proceed.", failure);        }                // BEGIN BUILDING UI                GridBagLayout layout = new GridBagLayout();                setLayout(layout);                addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                beCanceled();            }        });                helpLabel = new Label("See \"http://platform.jxta.org/java/confighelp.html\" for config help", Label.CENTER);        helpLabel.setBackground(new Color(220, 220, 220));        helpLabel.setForeground(Color.black);                helpLabel.addMouseListener(new MouseAdapter() {            public void mouseClicked(MouseEvent e) {                helpLabel.setForeground(Color.black);                helpLabel.setText("See \"http://platform.jxta.org/java/confighelp.html\" for config help");            }        });                idPanel = new IdPanel(peerName, needSecurityConfig);                debugPanel = new DebugPanel(dftDebugLevel);                enablingPanel = new EnablingPanel(isRelay, isRendezvous, isJxmeProxy);                tcpPanel = new IPTptPanel(IPTptPanel.TYPE_TCP, tcpEnabled, "TCP Settings", defaultInterfaceAddressT,        defaultPortT, clientDefaultT, serverDefaultT, defaultServerNameT, defaultServerPortT, noPublicAddressesT, multicastEnabledT);                httpPanel = new IPTptPanel(IPTptPanel.TYPE_HTTP, httpEnabled, "HTTP Settings", defaultInterfaceAddressH,        defaultPortH, clientDefaultH, serverDefaultH, defaultServerNameH, defaultServerPortH, noPublicAddressesH);                rdvPanel = new RdvPanel(onlySeeds);                // add the relays        Iterator rdvs = seedRdvs.iterator();                while (rdvs.hasNext()) {            rdvPanel.seeds.addItem((String) rdvs.next());        }                rdvs = seedingRdvs.iterator();                while (rdvs.hasNext()) {            rdvPanel.seeding.addItem((String) rdvs.next());        }                relayPanel = new RelayPanel(useRelay, useOnlySeedRelays);                // add the relays        Iterator relays = seedRelays.iterator();                while (relays.hasNext()) {            relayPanel.seeds.addItem((String) relays.next());        }                relays = seedingRelays.iterator();                while (relays.hasNext()) {            relayPanel.seeding.addItem((String) relays.next());        }                ok = new Button("  OK  ");                ok.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                if (verifyInput()) {                    if (saveValues()) {                        beDone();                    } else {                        beCanceled();                    }                }            }        });                cancel = new Button("Cancel");        cancel.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                beCanceled();            }        });                Panel okPanel = new Panel();                okPanel.add(ok);        okPanel.add(cancel);                // build basic panel        Panel basicsPanel = pages.addPage("Basic", "Basic settings");                GridBagConstraints centerWConstr = (GridBagConstraints) centerConstr.clone();                centerWConstr.weighty = 1;                basicsPanel.add(idPanel, centerWConstr);                // build Advanced panel        Panel advancedPanel = pages.addPage("Advanced", "Experienced Users Only");                advancedPanel.add(debugPanel, fillInsetConstr);        advancedPanel.add(enablingPanel, fillInsetConstr);        advancedPanel.add(tcpPanel, fillInsetConstr);        advancedPanel.add(httpPanel, fillInsetConstr);                Panel proxyRdvRelayPanel = pages.addPage("Rendezvous/Relays", "Experienced Users Only");                proxyRdvRelayPanel.add(rdvPanel, fillInsetConstr);        proxyRdvRelayPanel.add(relayPanel, fillInsetConstr);                add(helpLabel, fillConstr);        add(pages, fillInsetConstr);        add(okPanel, centerLastConstr);                pack();        setVisible(true);    }        public synchronized boolean untilDone() {        try {            while (!done) {                wait();            }        } catch (InterruptedException e) {            Thread.interrupted();        }                if (canceled) {            throw new JxtaError("Canceled during configuration");        }        return (done);    }        private synchronized boolean beDone() {        done = true;        notify();        dispose();                return canceled;    }        private synchronized boolean beCanceled() {        canceled = true;        done = true;        notify();        dispose();                return canceled;    }        private boolean verifyPort(String portName, String ports, boolean dynamicok) {        int p1;                if ((null == ports) || (0 == ports.trim().length())) {            ports = "0";        }                try {            p1 = Integer.parseInt(ports);        } catch (Exception ex) {            helpLabel.setForeground(Color.red.darker());            helpLabel.setText(portName + " port number must be an integer: " + ports);            return false;        }        if ((p1 > 65535) || (p1 < (dynamicok ? 0 : 1))) {            helpLabel.setForeground(Color.red.darker());            helpLabel.setText(portName + " port number must be an integer between " + (dynamicok ? "0" : "1") + " and 65535, found " + p1);            return false;        }        return true;    }        private boolean verifyAddr(String proto, boolean serverOn,    String localAddress, String localPort,    String publicAddress, String publicPort) {                // if a public name is specified, check its port.        if (serverOn && (publicAddress.length() > 0)) {            if (!verifyPort(proto + " local", localPort, false)) {                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Dynamic tcp port selection not supported when server public address is specified.");                pages.showPage("Advanced");                return false;            }                        if (!verifyPort(proto + " public", publicPort, false)) {                pages.showPage("Advanced");                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Dynamic tcp port selection not supported for server public address.");                return false;            }        } else if (!verifyPort(proto + " local", localPort, true)) {            pages.showPage("Advanced");            return false;        }                return true;    }        private boolean verifyInput() {                if (0 == idPanel.getName().trim().length()) {            helpLabel.setForeground(Color.red.darker());            helpLabel.setText("A peer name is required.");            pages.showPage("Basic");            return false;        }                // Verify security parameters if we are not initialized        // Password and principal        if (null != idPanel.passwd) {            String passwd = idPanel.getPassword();            String vpasswd = idPanel.getVerifyPassword();                        // Verify password            // must be at least 8 chars a la unix            if (passwd.length() < 8) {                // Clear password text boxes                idPanel.clearPasswords();                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Passwords must be at least 8 characters");                pages.showPage("Basic");                return false;            }                        // must be identical            if (!passwd.equals(vpasswd)) {                // Clear password text boxes                idPanel.clearPasswords();                                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Password does not match Verify Password");                pages.showPage("Basic");                return false;            }                        File certFile = idPanel.getCertFile();                        if (null != certFile) {                if (!certFile.exists() || !certFile.isFile()) {                    // Clear password text boxes                    idPanel.clearPasswords();                                        helpLabel.setForeground(Color.red.darker());                    helpLabel.setText("Invalid Root Certificate File");                    pages.showPage("Basic");                    return false;                }            }        }                // make sure *some* transport is enabled.        if ((httpPanel.getState() == false) && (tcpPanel.getState() == false)) {            helpLabel.setForeground(Color.red.darker());            helpLabel.setText("At least one of TCP or HTTP must be enabled.");            pages.showPage("Advanced");            return false;        }                // http settings        if (httpPanel.useMe.getState()) {            // make sure at least incoming or outgoing enabled.            if (!httpPanel.clientEnabled.getState() && !httpPanel.publicAddr.getState()) {                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Must enable incoming and/or outcoming to enable HTTP");                pages.showPage("Advanced");                return false;            }                        // Check the http port fields.            boolean valid = verifyAddr("HTTP", httpPanel.publicAddr.getState(), httpPanel.getInterfaceAddress(), httpPanel.ifAddr.getPort(),            httpPanel.publicAddr.getHost(), httpPanel.publicAddr.getPort());                        if( !valid ) {                return false;            }        }                // tcp settings        if (tcpPanel.useMe.getState()) {            // make sure at least incoming or outgoing enabled.            if (!tcpPanel.clientEnabled.getState() && !tcpPanel.publicAddr.getState()) {                helpLabel.setForeground(Color.red.darker());                helpLabel.setText("Must enable incoming and/or outcoming to enable TCP");                pages.showPage("Advanced");                return false;            }                        // Check the tcp port fields.            boolean valid = verifyAddr("TCP", tcpPanel.publicAddr.getState(), tcpPanel.getInterfaceAddr

⌨️ 快捷键说明

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