📄 configuratorlistener.java
字号:
} catch (ConfiguratorException e) { // TODO we might want to add additional information on the nature of the error JOptionPane.showMessageDialog(swix.getRootComponent(), "Wrong configuration data, please check log.", "Input Error", JOptionPane.ERROR_MESSAGE); // only log to LOG when extensive information has been requested. All other // reporting of wrong doing is left to lower layers (ext:config) if (LOG.isEnabledFor(Level.DEBUG)) { LOG.error("User entered invalid information", e); } } catch (URISyntaxException e) { JOptionPane.showMessageDialog(swix.getRootComponent(), "Invalid URI syntax, please check.", "Input Error", JOptionPane.ERROR_MESSAGE); if (LOG.isEnabledFor(Level.DEBUG)) { LOG.error("User entered invalid information", e); } } return saved; } /** * */ private void setHttpProxy() { if (!httpProxyAddr.isEnabled()) { enable(httpProxyAddr); enable(httpProxyPort); } else { disable(httpProxyAddr); disable(httpProxyPort); } } /** * */ private void setPublicHttp() { if (httpPublicEnabled.isSelected()) { enable(httpPublicAddr); enable(httpPublicPort); } else { disable(httpPublicAddr); disable(httpPublicPort); } } /** * */ private void setPublicTcp() { if (tcpPublicEnabled.isSelected()) { enable(tcpPublicAddr); enable(tcpPublicPort); } else { disable(tcpPublicAddr); disable(tcpPublicPort); } } /** * */ private void addTcpTransport() { JTable table = (JTable) swix.find("id_cfgtcptransporttable"); boolean hasPublicAddr = ((JCheckBox)swix.find("id_tcphaspublicaddress")).isSelected(); TcpTransportTableModel model = (TcpTransportTableModel) table.getModel(); model.addRow(new Object[] { tcpManualEnabled.isSelected() ? ((JTextField)swix.find("id_tcpmanualentry")).getText() : ((JComboBox)swix.find("id_tcpautoentry")).getSelectedItem().toString(), ((JTextField)swix.find("id_cfgtcptranspport")).getText(), new Boolean(((JCheckBox)swix.find("id_tcphideprivate")).isSelected()), new Boolean(((JCheckBox)swix.find("id_tcpenableoutgoing")).isSelected()), new Boolean(((JCheckBox)swix.find("id_tcpenableincoming")).isSelected()), hasPublicAddr ? ((JTextField)swix.find("id_tcppublicaddress")).getText() : "./.", hasPublicAddr ? ((JTextField)swix.find("id_tcppublicport")).getText() : "./.", new Boolean(((JCheckBox)swix.find("id_tcpmulticast")).isSelected()) }); model.fireTableDataChanged(); } /** * */ private void addHttpTransport() { JTable table = (JTable) swix.find("id_cfghttptransporttable"); boolean hasPublicAddr = ((JCheckBox)swix.find("id_httphaspublicaddress")).isSelected(); boolean hasProxyAddr = ((JCheckBox)swix.find("id_httpuseproxy")).isSelected(); HttpTransportTableModel model = (HttpTransportTableModel) table.getModel(); model.addRow(new Object[] { httpManualEnabled.isSelected() ? ((JTextField)swix.find("id_httpmanualentry")).getText() : ((JComboBox)swix.find("id_httpautoentry")).getSelectedItem().toString(), ((JTextField)swix.find("id_cfghttptranspport")).getText(), new Boolean(((JCheckBox)swix.find("id_httphideprivate")).isSelected()), new Boolean(((JCheckBox)swix.find("id_httpenableoutgoing")).isSelected()), new Boolean(((JCheckBox)swix.find("id_httpenableincoming")).isSelected()), hasPublicAddr ? ((JTextField)swix.find("id_httppublicaddress")).getText() : "./.", hasPublicAddr ? ((JTextField)swix.find("id_httppublicport")).getText() : "./.", new Boolean(((JCheckBox)swix.find("id_httpuseproxy")).isSelected()), hasProxyAddr ? ((JTextField)swix.find("id_httpproxyaddress")).getText() : "./.", hasProxyAddr ? ((JTextField)swix.find("id_httpproxyport")).getText() : "./." }); model.fireTableDataChanged(); } /** * */ private void deleteTcpTransport() { JTable table = (JTable) swix.find("id_cfgtcptransporttable"); TcpTransportTableModel model = (TcpTransportTableModel) table.getModel(); if (table.getSelectedRow() > -1) { model.deleteRow(table.getSelectedRow()); model.fireTableDataChanged(); if (model.getRowCount() == 0) { // just deleted the last entry in the table may as well set tcp transports to disabled disable(((JPanel)(tcpPanel.getComponents()[0])).getComponents()); // create default state for public address fields; otherwise, // toggling the checkbox may get out of synch with the edit fields ((JCheckBox)swix.find("id_tcphaspublicaddress")).setSelected(false); tcpEnabled.setSelected(false); enable(tcpEnabled); requestFocus(tcpEnabled); } } } /** * */ private void clearTcpTransports() { JTable table = (JTable) swix.find("id_cfgtcptransporttable"); TcpTransportTableModel model = (TcpTransportTableModel) table.getModel(); for (int i = model.getRowCount()-1; i >= 0; i-- ) { model.deleteRow(i); } model.fireTableDataChanged(); disable(((JPanel)(tcpPanel.getComponents()[0])).getComponents()); // make sure we can toggle settings after we disabled all components ;-) enable(tcpEnabled); requestFocus(tcpEnabled); } /** * */ private void clearHttpTransports() { JTable table = (JTable) swix.find("id_cfghttptransporttable"); HttpTransportTableModel model = (HttpTransportTableModel) table.getModel(); for (int i = model.getRowCount()-1; i >= 0; i-- ) { model.deleteRow(i); } model.fireTableDataChanged(); disable(((JPanel)(httpPanel.getComponents()[0])).getComponents()); // make sure we can toggle settings after we disabled all components ;-) enable(httpEnabled); requestFocus(httpEnabled); } /** * * Shows the component * * @param component */ private void show(Component component) { component.setVisible(true); } /** * * Hides the component * * @param component */ private void hide(Component component) { component.setVisible(false); } /** * */ private void removeAdvNodes() { JTree tree = (JTree) swix.find("id_cfgtree"); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); // _TODO Missing node objects to become independent of labels int i = root.getChildCount(); while (i > 0) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) root.getChildAt(--i); if (node.toString().equals("Network")) { model.removeNodeFromParent(node); } else if (node.toString().equals("Transport")) { model.removeNodeFromParent(node); } else if (node.toString().equals("Services")) { model.removeNodeFromParent(node); } } } /** * */ private void insertAdvNodes() { // _TODO Missing localization for tree label here // _TODO Missing node objects to become independent of labels JTree tree = (JTree) swix.find("id_cfgtree"); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); DefaultMutableTreeNode network = new DefaultMutableTreeNode("Network"); network.add(new DefaultMutableTreeNode("Rendezvous")); network.add(new DefaultMutableTreeNode("Relays")); model.insertNodeInto(network, root, root.getChildCount()); DefaultMutableTreeNode transport = new DefaultMutableTreeNode("Transport"); transport.add(new DefaultMutableTreeNode("tcp")); transport.add(new DefaultMutableTreeNode("http")); model.insertNodeInto(transport, root, root.getChildCount()); DefaultMutableTreeNode services = new DefaultMutableTreeNode("Services"); services.add(new DefaultMutableTreeNode("Rendezvous Service")); services.add(new DefaultMutableTreeNode("Relay Service")); services.add(new DefaultMutableTreeNode("Endpoint Service")); services.add(new DefaultMutableTreeNode("Proxy Service")); model.insertNodeInto(services, root, root.getChildCount()); } /** * @param component */ private void requestFocus(Component component) { component.requestFocus(); } /** * @param components */ private void disable(Component[] components) { for (int i = 0; i < components.length; i++) { // recurse into nested panels // TODO there must be a better way to traverse these containers if (components[i] instanceof JPanel) { disable(((JPanel)components[i]).getComponents()); } else if (components[i] instanceof JScrollPane) { disable(((JScrollPane)components[i]).getComponents()); } else if (components[i] instanceof JViewport) { disable(((JViewport)components[i]).getComponents()); } else { disable(components[i]); } } } /** * @param component */ private void disable(Component component) { component.setEnabled(false); } /** * @param components */ private void enable(Component[] components) { for (int i = 0; i < components.length; i++) { // recurse into nested panels // TODO there must be a better way to traverse these containers if (components[i] instanceof JPanel) { enable(((JPanel)components[i]).getComponents()); } else if (components[i] instanceof JScrollPane) { enable(((JScrollPane)components[i]).getComponents()); } else if (components[i] instanceof JViewport) { enable(((JViewport)components[i]).getComponents()); } else { enable(components[i]); } } } /** * @param component */ private void enable(Component component) { component.setEnabled(true); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -