2006-12-13 19:03:46 -05:00
|
|
|
package davmail;
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
import java.awt.event.ActionEvent;
|
2006-12-14 07:32:48 -05:00
|
|
|
import java.awt.*;
|
2006-12-13 19:03:46 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* DavMail settings frame
|
|
|
|
*/
|
|
|
|
public class SettingsFrame extends JFrame {
|
2006-12-14 07:32:48 -05:00
|
|
|
protected void addSettingComponent(JPanel panel, String label, Component component) {
|
|
|
|
JLabel fieldLabel = new JLabel(label);
|
|
|
|
fieldLabel.setHorizontalAlignment(SwingConstants.RIGHT);
|
|
|
|
panel.add(fieldLabel);
|
|
|
|
panel.add(component);
|
|
|
|
}
|
|
|
|
|
2006-12-13 19:03:46 -05:00
|
|
|
public SettingsFrame() {
|
|
|
|
setTitle("DavMail Settings");
|
|
|
|
|
|
|
|
JPanel panel = new JPanel(new GridLayout(3, 2));
|
|
|
|
panel.setBorder(BorderFactory.createTitledBorder("Gateway settings"));
|
|
|
|
|
2006-12-14 10:14:18 -05:00
|
|
|
final JTextField urlField = new JTextField(Settings.getProperty("davmail.url"), 15);
|
|
|
|
final JTextField popPortField = new JTextField(Settings.getProperty("davmail.popPort"), 4);
|
|
|
|
final JTextField smtpPortField = new JTextField(Settings.getProperty("davmail.smtpPort"), 4);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2006-12-14 07:32:48 -05:00
|
|
|
addSettingComponent(panel, "OWA url: ", urlField);
|
|
|
|
addSettingComponent(panel, "Local POP port: ", popPortField);
|
|
|
|
addSettingComponent(panel, "Local SMTP port: ", smtpPortField);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
|
|
|
add("North", panel);
|
|
|
|
|
2006-12-14 07:32:48 -05:00
|
|
|
panel = new JPanel(new GridLayout(5, 2));
|
2006-12-13 19:03:46 -05:00
|
|
|
panel.setBorder(BorderFactory.createTitledBorder("Proxy settings"));
|
|
|
|
|
2006-12-14 10:14:18 -05:00
|
|
|
boolean enableProxy = "true".equals(Settings.getProperty("davmail.enableProxy"));
|
2006-12-14 07:32:48 -05:00
|
|
|
final JCheckBox enableProxyField = new JCheckBox();
|
2006-12-14 10:14:18 -05:00
|
|
|
enableProxyField.setSelected(enableProxy);
|
|
|
|
final JTextField httpProxyField = new JTextField(Settings.getProperty("davmail.proxyHost"), 15);
|
|
|
|
final JTextField httpProxyPortField = new JTextField(Settings.getProperty("davmail.proxyPort"), 4);
|
|
|
|
final JTextField httpProxyUserField = new JTextField(Settings.getProperty("davmail.proxyUser"), 4);
|
|
|
|
final JTextField httpProxyPasswordField = new JPasswordField (Settings.getProperty("davmail.proxyPassword"), 4);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2006-12-14 07:32:48 -05:00
|
|
|
httpProxyField.setEnabled(enableProxy);
|
|
|
|
httpProxyPortField.setEnabled(enableProxy);
|
|
|
|
httpProxyUserField.setEnabled(enableProxy);
|
|
|
|
httpProxyPasswordField.setEnabled(enableProxy);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2006-12-14 07:32:48 -05:00
|
|
|
enableProxyField.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
boolean enableProxy = enableProxyField.isSelected();
|
|
|
|
httpProxyField.setEnabled(enableProxy);
|
|
|
|
httpProxyPortField.setEnabled(enableProxy);
|
|
|
|
httpProxyUserField.setEnabled(enableProxy);
|
|
|
|
httpProxyPasswordField.setEnabled(enableProxy);
|
|
|
|
}
|
|
|
|
});
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2006-12-14 07:32:48 -05:00
|
|
|
addSettingComponent(panel, "Enable proxy: ", enableProxyField);
|
|
|
|
addSettingComponent(panel, "Proxy server: ", httpProxyField);
|
|
|
|
addSettingComponent(panel, "Proxy port: ", httpProxyPortField);
|
|
|
|
addSettingComponent(panel, "Proxy user: ", httpProxyUserField);
|
|
|
|
addSettingComponent(panel, "Proxy password: ", httpProxyPasswordField);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
|
|
|
add("Center", panel);
|
|
|
|
|
|
|
|
panel = new JPanel();
|
2006-12-14 07:32:48 -05:00
|
|
|
JButton cancel = new JButton("Cancel");
|
|
|
|
JButton ok = new JButton("Save");
|
2006-12-13 19:03:46 -05:00
|
|
|
ActionListener save = new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
2006-12-14 10:14:18 -05:00
|
|
|
// save options
|
|
|
|
Settings.setProperty("davmail.url", urlField.getText());
|
|
|
|
Settings.setProperty("davmail.popPort", popPortField.getText());
|
|
|
|
Settings.setProperty("davmail.smtpPort", smtpPortField.getText());
|
|
|
|
Settings.setProperty("davmail.enableProxy", String.valueOf(enableProxyField.isSelected()));
|
|
|
|
Settings.setProperty("davmail.proxyHost", httpProxyField.getText());
|
|
|
|
Settings.setProperty("davmail.proxyPort", httpProxyPortField.getText());
|
|
|
|
Settings.setProperty("davmail.proxyUser", httpProxyUserField.getText());
|
|
|
|
Settings.setProperty("davmail.proxyPassword", httpProxyPasswordField.getText());
|
|
|
|
Settings.save();
|
2006-12-13 19:03:46 -05:00
|
|
|
setVisible(false);
|
2006-12-14 10:14:18 -05:00
|
|
|
// restart listeners with new config
|
|
|
|
DavGateway.start();
|
2006-12-13 19:03:46 -05:00
|
|
|
}
|
|
|
|
};
|
|
|
|
ok.addActionListener(save);
|
|
|
|
|
|
|
|
cancel.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
setVisible(false);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
panel.add(ok);
|
|
|
|
panel.add(cancel);
|
|
|
|
|
|
|
|
add("South", panel);
|
|
|
|
|
|
|
|
pack();
|
|
|
|
setResizable(false);
|
|
|
|
// center frame
|
|
|
|
setLocation(getToolkit().getScreenSize().width / 2 -
|
|
|
|
getSize().width / 2,
|
|
|
|
getToolkit().getScreenSize().height / 2 -
|
|
|
|
getSize().height / 2);
|
|
|
|
urlField.requestFocus();
|
|
|
|
}
|
|
|
|
}
|