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");
|
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
JTabbedPane tabbedPane = new JTabbedPane();
|
|
|
|
|
|
|
|
JPanel mainPanel = new JPanel(new GridLayout(2, 1));
|
|
|
|
|
|
|
|
JPanel settingsPanel = new JPanel(new GridLayout(4, 2));
|
|
|
|
settingsPanel.setBorder(BorderFactory.createTitledBorder("Gateway settings"));
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2006-12-14 10:14:18 -05:00
|
|
|
final JTextField urlField = new JTextField(Settings.getProperty("davmail.url"), 15);
|
2007-02-23 08:31:09 -05:00
|
|
|
urlField.setToolTipText("Base outlook web access URL");
|
2006-12-14 10:14:18 -05:00
|
|
|
final JTextField popPortField = new JTextField(Settings.getProperty("davmail.popPort"), 4);
|
|
|
|
final JTextField smtpPortField = new JTextField(Settings.getProperty("davmail.smtpPort"), 4);
|
2007-02-07 06:51:08 -05:00
|
|
|
final JTextField keepDelayField = new JTextField(Settings.getProperty("davmail.keepDelay"), 4);
|
|
|
|
keepDelayField.setToolTipText("Number of days to keep messages in trash");
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2007-09-25 18:30:11 -04:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
addSettingComponent(settingsPanel, "OWA url: ", urlField);
|
|
|
|
addSettingComponent(settingsPanel, "Local POP port: ", popPortField);
|
|
|
|
addSettingComponent(settingsPanel, "Local SMTP port: ", smtpPortField);
|
|
|
|
addSettingComponent(settingsPanel, "Keep Delay: ", keepDelayField);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
mainPanel.add(settingsPanel);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
JPanel proxyPanel = new JPanel(new GridLayout(5, 2));
|
|
|
|
proxyPanel.setBorder(BorderFactory.createTitledBorder("Proxy settings"));
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-02-01 08:57:32 -05:00
|
|
|
boolean enableProxy = Settings.getBooleanProperty("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);
|
2007-09-25 18:30:11 -04:00
|
|
|
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
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
addSettingComponent(proxyPanel, "Enable proxy: ", enableProxyField);
|
|
|
|
addSettingComponent(proxyPanel, "Proxy server: ", httpProxyField);
|
|
|
|
addSettingComponent(proxyPanel, "Proxy port: ", httpProxyPortField);
|
|
|
|
addSettingComponent(proxyPanel, "Proxy user: ", httpProxyUserField);
|
|
|
|
addSettingComponent(proxyPanel, "Proxy password: ", httpProxyPasswordField);
|
|
|
|
|
|
|
|
mainPanel.add(proxyPanel);
|
|
|
|
|
|
|
|
tabbedPane.add("Main", mainPanel);
|
|
|
|
|
|
|
|
JPanel advancedPanel = new JPanel();
|
|
|
|
|
|
|
|
JPanel networkSettingsPanel = new JPanel(new GridLayout(2, 2));
|
|
|
|
networkSettingsPanel.setBorder(BorderFactory.createTitledBorder("Network settings"));
|
|
|
|
|
|
|
|
final JCheckBox allowRemoteField = new JCheckBox();
|
|
|
|
allowRemoteField.setSelected(Settings.getBooleanProperty("davmail.allowRemote"));
|
|
|
|
allowRemoteField.setToolTipText("Allow remote connections to the gateway (server mode)");
|
|
|
|
|
|
|
|
final JTextField bindAddressField = new JTextField(Settings.getProperty("davmail.bindAddress"), 15);
|
|
|
|
bindAddressField.setToolTipText("Bind only to the specified network address");
|
|
|
|
|
|
|
|
addSettingComponent(networkSettingsPanel, "Bind address: ", bindAddressField);
|
|
|
|
addSettingComponent(networkSettingsPanel, "Allow Remote Connections: ", allowRemoteField);
|
|
|
|
|
|
|
|
advancedPanel.add(networkSettingsPanel);
|
|
|
|
|
|
|
|
tabbedPane.add("Advanced", advancedPanel);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
add("Center", tabbedPane);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
JPanel buttonPanel = 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
|
2007-09-25 18:30:11 -04:00
|
|
|
Settings.setProperty("davmail.url", urlField.getText());
|
2006-12-14 10:14:18 -05:00
|
|
|
Settings.setProperty("davmail.popPort", popPortField.getText());
|
|
|
|
Settings.setProperty("davmail.smtpPort", smtpPortField.getText());
|
2007-02-07 06:51:08 -05:00
|
|
|
Settings.setProperty("davmail.keepDelay", keepDelayField.getText());
|
2007-09-25 18:30:11 -04:00
|
|
|
Settings.setProperty("davmail.allowRemote", String.valueOf(allowRemoteField.isSelected()));
|
2008-10-09 19:29:45 -04:00
|
|
|
Settings.setProperty("davmail.bindAddress", bindAddressField.getText());
|
2006-12-14 10:14:18 -05:00
|
|
|
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) {
|
2007-10-02 11:38:33 -04:00
|
|
|
// reload settings in form
|
|
|
|
urlField.setText(Settings.getProperty("davmail.url"));
|
|
|
|
popPortField.setText(Settings.getProperty("davmail.popPort"));
|
|
|
|
smtpPortField.setText(Settings.getProperty("davmail.smtpPort"));
|
|
|
|
keepDelayField.setText(Settings.getProperty("davmail.keepDelay"));
|
|
|
|
allowRemoteField.setSelected(Settings.getBooleanProperty(("davmail.allowRemote")));
|
2008-10-09 19:29:45 -04:00
|
|
|
bindAddressField.setText(Settings.getProperty("davmail.bindAddress"));
|
2007-10-02 11:38:33 -04:00
|
|
|
boolean enableProxy = Settings.getBooleanProperty("davmail.allowRemote");
|
|
|
|
enableProxyField.setSelected(enableProxy);
|
|
|
|
httpProxyField.setEnabled(enableProxy);
|
|
|
|
httpProxyPortField.setEnabled(enableProxy);
|
|
|
|
httpProxyUserField.setEnabled(enableProxy);
|
|
|
|
httpProxyPasswordField.setEnabled(enableProxy);
|
|
|
|
httpProxyField.setText(Settings.getProperty("davmail.proxyHost"));
|
|
|
|
httpProxyPortField.setText(Settings.getProperty("davmail.proxyPort"));
|
|
|
|
httpProxyUserField.setText(Settings.getProperty("davmail.proxyUser"));
|
|
|
|
httpProxyPasswordField.setText(Settings.getProperty("davmail.proxyPassword"));
|
2006-12-13 19:03:46 -05:00
|
|
|
setVisible(false);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
buttonPanel.add(ok);
|
|
|
|
buttonPanel.add(cancel);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
2008-10-09 19:29:45 -04:00
|
|
|
add("South", buttonPanel);
|
2006-12-13 19:03:46 -05:00
|
|
|
|
|
|
|
pack();
|
|
|
|
setResizable(false);
|
|
|
|
// center frame
|
|
|
|
setLocation(getToolkit().getScreenSize().width / 2 -
|
|
|
|
getSize().width / 2,
|
|
|
|
getToolkit().getScreenSize().height / 2 -
|
|
|
|
getSize().height / 2);
|
|
|
|
urlField.requestFocus();
|
|
|
|
}
|
|
|
|
}
|