package org.ripple.power.ui; import java.awt.Dialog; import javax.swing.JFrame; import org.ripple.power.config.LSystem; import org.ripple.power.config.ProxySettings; import org.ripple.power.helper.HelperWindow; import org.ripple.power.ui.graphics.LColor; import org.ripple.power.ui.view.ABaseDialog; import org.ripple.power.ui.view.RPLabel; import org.ripple.power.ui.view.RPTextBox; import org.ripple.power.ui.view.log.ErrorLog; import org.ripple.power.utils.StringUtils; import org.ripple.power.utils.SwingUtils; public class RPProxyDialog extends ABaseDialog { /** * */ private static final long serialVersionUID = 1L; private RPTextBox rippledPath; private RPTextBox rippledPort; private RPCButton _oneButton; private RPCButton _twoButton; private RPLabel _aLabel; private RPLabel _bLabel; private RPLabel _cLabel; private RPLabel _dLabel; private RPLabel _eLabel; private RPLabel _fLabel; private RPTextBox proxyPassword; private RPTextBox proxyPort; private RPTextBox proxyServer; private RPTextBox proxyUsername; private javax.swing.JCheckBox useProxy; public RPProxyDialog(String text, JFrame parent) { super(parent, text, Dialog.ModalityType.DOCUMENT_MODAL); addWindowListener(HelperWindow.get()); setIconImage(UIRes.getIcon()); initComponents(); } public static void showDialog(String name, JFrame parent) { try { RPProxyDialog dialog = new RPProxyDialog(name, parent); dialog.pack(); dialog.setLocationRelativeTo(parent); dialog.setVisible(true); } catch (Exception exc) { ErrorLog.get().logException("RPProxyDialog Exception", exc); } } private void loadProxyConfigs() { proxyPort.setText(""); proxyServer.setText(""); proxyUsername.setText(""); proxyPassword.setText(""); } private void initComponents() { _aLabel = new RPLabel(); _bLabel = new RPLabel(); rippledPath = new RPTextBox(); rippledPath.setText("wss://"); rippledPort = new RPTextBox(); _twoButton = new RPCButton(); _oneButton = new RPCButton(); useProxy = new javax.swing.JCheckBox(); useProxy.setForeground(new LColor(255, 255, 255)); useProxy.setBackground(new LColor(36, 36, 36)); _cLabel = new RPLabel(); _dLabel = new RPLabel(); proxyServer = new RPTextBox(); proxyPort = new RPTextBox(); _eLabel = new RPLabel(); proxyUsername = new RPTextBox(); _fLabel = new RPLabel(); proxyPassword = new RPTextBox(); setResizable(false); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); _aLabel.setText("Rippled Path"); _bLabel.setText("Rippled Port"); _twoButton.setText("Save"); _twoButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveConfig(evt); } }); _oneButton.setText("Cancel"); _oneButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); useProxy.setText("Use Proxy"); useProxy.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { useProxyItemStateChanged(evt); } }); _cLabel.setText("Proxy Server"); _dLabel.setText("Proxy Port"); proxyServer.setEnabled(false); proxyPort.setEnabled(false); _eLabel.setText("Proxy Username"); proxyUsername.setEnabled(false); _fLabel.setText("Proxy Password"); proxyPassword.setEnabled(false); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup( layout.createSequentialGroup() .addContainerGap() .addGroup( layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent( useProxy, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rippledPath) .addGroup( javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent( _oneButton) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED, 189, Short.MAX_VALUE) .addComponent( _twoButton)) .addComponent(rippledPort) .addComponent(proxyServer) .addComponent(proxyPort) .addComponent(proxyUsername) .addGroup( layout.createSequentialGroup() .addGroup( layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent( _aLabel) .addComponent( _bLabel) .addComponent( _cLabel) .addComponent( _dLabel) .addComponent( _eLabel) .addComponent( _fLabel)) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(proxyPassword)) .addContainerGap())); layout.setVerticalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup( layout.createSequentialGroup() .addContainerGap() .addComponent(_aLabel) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rippledPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(_bLabel) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rippledPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(useProxy) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(_cLabel) .addGap(4, 4, 4) .addComponent(proxyServer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(_dLabel) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(proxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(_eLabel) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(proxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(_fLabel) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(proxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup( layout.createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( _twoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(_oneButton)) .addContainerGap())); getContentPane().setBackground(UIConfig.dialogbackground); pack(); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } private void saveConfig(java.awt.event.ActionEvent evt) { String ripplePath = rippledPath.getText().toLowerCase().trim(); String ripplePort = rippledPort.getText().toLowerCase().trim(); if (ripplePath.length() > 0) { if (ripplePath.indexOf(":") == -1 && !ripplePath.startsWith("wss://")) { ripplePath = "wss://" + ripplePath; } if (ripplePort.length() > 0) { RPClient.saveRippledNode(String.format("%s:%s", ripplePath, ripplePort)); } else { RPClient.saveRippledNode(ripplePath); } if (useProxy.isSelected()) { String server = proxyServer.getText().trim(); String port = proxyPort.getText().trim(); if (server.length() > 0 && port.length() > 0 && StringUtils.isNumber(port)) { LSystem.applicationProxy = new ProxySettings(server, Integer.parseInt(port)); } } RPClient.reset(); SwingUtils.close(this); } } private void useProxyItemStateChanged(java.awt.event.ItemEvent evt) { boolean enabled = (evt.getStateChange() == 1); proxyPassword.setEnabled(enabled); proxyUsername.setEnabled(enabled); proxyServer.setEnabled(enabled); proxyPort.setEnabled(enabled); if (enabled) { loadProxyConfigs(); } } }