2010-04-07 16:23:48 -04:00
|
|
|
/*
|
|
|
|
* DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway
|
|
|
|
* Copyright (C) 2009 Mickael Guessant
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
package davmail.ui;
|
|
|
|
|
|
|
|
import davmail.BundleMessage;
|
|
|
|
import davmail.DavGateway;
|
|
|
|
import davmail.Settings;
|
|
|
|
import davmail.ui.browser.DesktopBrowser;
|
2010-08-29 16:19:35 -04:00
|
|
|
import davmail.ui.tray.DavGatewayTray;
|
2010-04-07 16:23:48 -04:00
|
|
|
import org.apache.log4j.Level;
|
|
|
|
|
|
|
|
import javax.swing.*;
|
2010-08-29 16:19:35 -04:00
|
|
|
import javax.swing.event.ChangeEvent;
|
|
|
|
import javax.swing.event.ChangeListener;
|
2010-04-07 16:23:48 -04:00
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
import java.awt.event.ItemEvent;
|
|
|
|
import java.awt.event.ItemListener;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* DavMail settings frame
|
|
|
|
*/
|
|
|
|
public class SettingsFrame extends JFrame {
|
|
|
|
static final Level[] LOG_LEVELS = {Level.OFF, Level.FATAL, Level.ERROR, Level.WARN, Level.INFO, Level.DEBUG, Level.ALL};
|
|
|
|
|
|
|
|
protected JTextField urlField;
|
|
|
|
protected JTextField popPortField;
|
|
|
|
protected JCheckBox popPortCheckBox;
|
2010-08-29 16:19:35 -04:00
|
|
|
protected JCheckBox popNoSSLCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JTextField imapPortField;
|
|
|
|
protected JCheckBox imapPortCheckBox;
|
2010-08-29 16:19:35 -04:00
|
|
|
protected JCheckBox imapNoSSLCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JTextField smtpPortField;
|
|
|
|
protected JCheckBox smtpPortCheckBox;
|
2010-08-29 16:19:35 -04:00
|
|
|
protected JCheckBox smtpNoSSLCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JTextField caldavPortField;
|
|
|
|
protected JCheckBox caldavPortCheckBox;
|
2010-08-29 16:19:35 -04:00
|
|
|
protected JCheckBox caldavNoSSLCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JTextField ldapPortField;
|
|
|
|
protected JCheckBox ldapPortCheckBox;
|
2010-08-29 16:19:35 -04:00
|
|
|
protected JCheckBox ldapNoSSLCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JTextField keepDelayField;
|
|
|
|
protected JTextField sentKeepDelayField;
|
|
|
|
protected JTextField caldavPastDelayField;
|
2010-04-23 10:43:04 -04:00
|
|
|
protected JTextField imapIdleDelayField;
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JCheckBox useSystemProxiesField;
|
|
|
|
protected JCheckBox enableProxyField;
|
|
|
|
protected JTextField httpProxyField;
|
|
|
|
protected JTextField httpProxyPortField;
|
|
|
|
protected JTextField httpProxyUserField;
|
|
|
|
protected JTextField httpProxyPasswordField;
|
|
|
|
protected JTextField noProxyForField;
|
|
|
|
|
|
|
|
protected JCheckBox allowRemoteField;
|
|
|
|
protected JTextField bindAddressField;
|
|
|
|
protected JTextField clientSoTimeoutField;
|
|
|
|
protected JTextField certHashField;
|
|
|
|
protected JCheckBox disableUpdateCheck;
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
protected JComboBox keystoreTypeCombo;
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JTextField keystoreFileField;
|
|
|
|
protected JPasswordField keystorePassField;
|
|
|
|
protected JPasswordField keyPassField;
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
protected JComboBox clientKeystoreTypeCombo;
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JTextField clientKeystoreFileField;
|
|
|
|
protected JPasswordField clientKeystorePassField;
|
|
|
|
protected JTextField pkcs11LibraryField;
|
|
|
|
protected JTextArea pkcs11ConfigField;
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
protected JComboBox rootLoggingLevelField;
|
|
|
|
protected JComboBox davmailLoggingLevelField;
|
|
|
|
protected JComboBox httpclientLoggingLevelField;
|
|
|
|
protected JComboBox wireLoggingLevelField;
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JTextField logFilePathField;
|
|
|
|
protected JTextField logFileSizeField;
|
|
|
|
|
|
|
|
protected JCheckBox caldavEditNotificationsField;
|
|
|
|
protected JTextField caldavAlarmSoundField;
|
|
|
|
protected JCheckBox forceActiveSyncUpdateCheckBox;
|
|
|
|
protected JTextField defaultDomainField;
|
|
|
|
protected JCheckBox showStartupBannerCheckBox;
|
|
|
|
protected JCheckBox disableGuiNotificationsCheckBox;
|
|
|
|
protected JCheckBox imapAutoExpungeCheckBox;
|
|
|
|
protected JCheckBox enableKeepAliveCheckBox;
|
|
|
|
protected JCheckBox popMarkReadOnRetrCheckBox;
|
2014-03-17 20:04:00 -04:00
|
|
|
protected JComboBox enableEwsComboBox;
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JCheckBox enableKerberosCheckBox;
|
2013-11-09 10:08:49 -05:00
|
|
|
protected JTextField folderSizeLimitField;
|
2013-06-13 09:51:39 -04:00
|
|
|
protected JCheckBox smtpSaveInSentCheckBox;
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2012-05-10 18:49:46 -04:00
|
|
|
JCheckBox osxHideFromDockCheckBox;
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
protected void addSettingComponent(JPanel panel, String label, JComponent component) {
|
|
|
|
addSettingComponent(panel, label, component, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void addSettingComponent(JPanel panel, String label, JComponent component, String toolTipText) {
|
|
|
|
JLabel fieldLabel = new JLabel(label);
|
|
|
|
fieldLabel.setHorizontalAlignment(SwingConstants.RIGHT);
|
|
|
|
fieldLabel.setVerticalAlignment(SwingConstants.CENTER);
|
|
|
|
panel.add(fieldLabel);
|
|
|
|
component.setMaximumSize(component.getPreferredSize());
|
|
|
|
JPanel innerPanel = new JPanel();
|
|
|
|
innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.X_AXIS));
|
|
|
|
innerPanel.add(component);
|
|
|
|
panel.add(innerPanel);
|
|
|
|
if (toolTipText != null) {
|
|
|
|
fieldLabel.setToolTipText(toolTipText);
|
|
|
|
component.setToolTipText(toolTipText);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-08-29 16:19:35 -04:00
|
|
|
protected void addPortSettingComponent(JPanel panel, String label, JComponent component, JComponent checkboxComponent, JComponent checkboxSSLComponent, String toolTipText) {
|
2010-04-07 16:23:48 -04:00
|
|
|
JLabel fieldLabel = new JLabel(label);
|
|
|
|
fieldLabel.setHorizontalAlignment(SwingConstants.RIGHT);
|
|
|
|
fieldLabel.setVerticalAlignment(SwingConstants.CENTER);
|
|
|
|
panel.add(fieldLabel);
|
|
|
|
component.setMaximumSize(component.getPreferredSize());
|
|
|
|
JPanel innerPanel = new JPanel();
|
|
|
|
innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.X_AXIS));
|
|
|
|
innerPanel.add(checkboxComponent);
|
|
|
|
innerPanel.add(component);
|
2010-08-29 16:19:35 -04:00
|
|
|
innerPanel.add(checkboxSSLComponent);
|
2010-04-07 16:23:48 -04:00
|
|
|
panel.add(innerPanel);
|
|
|
|
if (toolTipText != null) {
|
|
|
|
fieldLabel.setToolTipText(toolTipText);
|
|
|
|
component.setToolTipText(toolTipText);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getSettingsPanel() {
|
2013-04-07 17:38:54 -04:00
|
|
|
JPanel settingsPanel = new JPanel(new GridLayout(7, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
settingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_GATEWAY")));
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
enableEwsComboBox = new JComboBox(new String[]{WEBDAV, EWS, AUTO});
|
2013-04-07 17:38:54 -04:00
|
|
|
setEwsModeSelectedItem(Settings.getProperty("davmail.enableEws", "auto"));
|
|
|
|
urlField = new JTextField(Settings.getProperty("davmail.url"), 20);
|
2010-04-07 16:23:48 -04:00
|
|
|
popPortField = new JTextField(Settings.getProperty("davmail.popPort"), 4);
|
|
|
|
popPortCheckBox = new JCheckBox();
|
2010-08-29 16:19:35 -04:00
|
|
|
popNoSSLCheckBox = new JCheckBox(BundleMessage.format("UI_NO_SSL"), Settings.getBooleanProperty("davmail.ssl.nosecurepop"));
|
2010-04-07 16:23:48 -04:00
|
|
|
popPortCheckBox.setSelected(Settings.getProperty("davmail.popPort") != null && Settings.getProperty("davmail.popPort").length() > 0);
|
|
|
|
popPortField.setEnabled(popPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
popNoSSLCheckBox.setEnabled(popPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
popPortCheckBox.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
popPortField.setEnabled(popPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
popNoSSLCheckBox.setEnabled(popPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
imapPortField = new JTextField(Settings.getProperty("davmail.imapPort"), 4);
|
|
|
|
imapPortCheckBox = new JCheckBox();
|
2010-08-29 16:19:35 -04:00
|
|
|
imapNoSSLCheckBox = new JCheckBox(BundleMessage.format("UI_NO_SSL"), Settings.getBooleanProperty("davmail.ssl.nosecureimap"));
|
2010-04-07 16:23:48 -04:00
|
|
|
imapPortCheckBox.setSelected(Settings.getProperty("davmail.imapPort") != null && Settings.getProperty("davmail.imapPort").length() > 0);
|
|
|
|
imapPortField.setEnabled(imapPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
imapNoSSLCheckBox.setEnabled(imapPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
imapPortCheckBox.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
imapPortField.setEnabled(imapPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
imapNoSSLCheckBox.setEnabled(imapPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
smtpPortField = new JTextField(Settings.getProperty("davmail.smtpPort"), 4);
|
|
|
|
smtpPortCheckBox = new JCheckBox();
|
2010-08-29 16:19:35 -04:00
|
|
|
smtpNoSSLCheckBox = new JCheckBox(BundleMessage.format("UI_NO_SSL"), Settings.getBooleanProperty("davmail.ssl.nosecuresmtp"));
|
2010-04-07 16:23:48 -04:00
|
|
|
smtpPortCheckBox.setSelected(Settings.getProperty("davmail.smtpPort") != null && Settings.getProperty("davmail.smtpPort").length() > 0);
|
|
|
|
smtpPortField.setEnabled(smtpPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
smtpNoSSLCheckBox.setEnabled(smtpPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
smtpPortCheckBox.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
smtpPortField.setEnabled(smtpPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
smtpNoSSLCheckBox.setEnabled(smtpPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
caldavPortField = new JTextField(Settings.getProperty("davmail.caldavPort"), 4);
|
|
|
|
caldavPortCheckBox = new JCheckBox();
|
2010-08-29 16:19:35 -04:00
|
|
|
caldavNoSSLCheckBox = new JCheckBox(BundleMessage.format("UI_NO_SSL"), Settings.getBooleanProperty("davmail.ssl.nosecurecaldav"));
|
2010-04-07 16:23:48 -04:00
|
|
|
caldavPortCheckBox.setSelected(Settings.getProperty("davmail.caldavPort") != null && Settings.getProperty("davmail.caldavPort").length() > 0);
|
|
|
|
caldavPortField.setEnabled(caldavPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
caldavNoSSLCheckBox.setEnabled(caldavPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
caldavPortCheckBox.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
caldavPortField.setEnabled(caldavPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
caldavNoSSLCheckBox.setEnabled(caldavPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
ldapPortField = new JTextField(Settings.getProperty("davmail.ldapPort"), 4);
|
|
|
|
ldapPortCheckBox = new JCheckBox();
|
2010-08-29 16:19:35 -04:00
|
|
|
ldapNoSSLCheckBox = new JCheckBox(BundleMessage.format("UI_NO_SSL"), Settings.getBooleanProperty("davmail.ssl.nosecureldap"));
|
2010-04-07 16:23:48 -04:00
|
|
|
ldapPortCheckBox.setSelected(Settings.getProperty("davmail.ldapPort") != null && Settings.getProperty("davmail.ldapPort").length() > 0);
|
|
|
|
ldapPortField.setEnabled(ldapPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
ldapNoSSLCheckBox.setEnabled(ldapPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
ldapPortCheckBox.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
ldapPortField.setEnabled(ldapPortCheckBox.isSelected());
|
2010-08-29 16:19:35 -04:00
|
|
|
ldapNoSSLCheckBox.setEnabled(ldapPortCheckBox.isSelected() && isSslEnabled());
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-04-07 17:38:54 -04:00
|
|
|
addSettingComponent(settingsPanel, BundleMessage.format("UI_ENABLE_EWS"), enableEwsComboBox,
|
|
|
|
BundleMessage.format("UI_ENABLE_EWS_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addSettingComponent(settingsPanel, BundleMessage.format("UI_OWA_URL"), urlField, BundleMessage.format("UI_OWA_URL_HELP"));
|
|
|
|
addPortSettingComponent(settingsPanel, BundleMessage.format("UI_POP_PORT"), popPortField, popPortCheckBox,
|
2010-08-29 16:19:35 -04:00
|
|
|
popNoSSLCheckBox, BundleMessage.format("UI_POP_PORT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addPortSettingComponent(settingsPanel, BundleMessage.format("UI_IMAP_PORT"), imapPortField, imapPortCheckBox,
|
2010-08-29 16:19:35 -04:00
|
|
|
imapNoSSLCheckBox, BundleMessage.format("UI_IMAP_PORT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addPortSettingComponent(settingsPanel, BundleMessage.format("UI_SMTP_PORT"), smtpPortField, smtpPortCheckBox,
|
2010-08-29 16:19:35 -04:00
|
|
|
smtpNoSSLCheckBox, BundleMessage.format("UI_SMTP_PORT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addPortSettingComponent(settingsPanel, BundleMessage.format("UI_CALDAV_PORT"), caldavPortField, caldavPortCheckBox,
|
2010-08-29 16:19:35 -04:00
|
|
|
caldavNoSSLCheckBox, BundleMessage.format("UI_CALDAV_PORT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addPortSettingComponent(settingsPanel, BundleMessage.format("UI_LDAP_PORT"), ldapPortField, ldapPortCheckBox,
|
2010-08-29 16:19:35 -04:00
|
|
|
ldapNoSSLCheckBox, BundleMessage.format("UI_LDAP_PORT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
return settingsPanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getDelaysPanel() {
|
2010-04-23 10:43:04 -04:00
|
|
|
JPanel delaysPanel = new JPanel(new GridLayout(4, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
delaysPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_DELAYS")));
|
|
|
|
|
|
|
|
keepDelayField = new JTextField(Settings.getProperty("davmail.keepDelay"), 4);
|
|
|
|
sentKeepDelayField = new JTextField(Settings.getProperty("davmail.sentKeepDelay"), 4);
|
|
|
|
caldavPastDelayField = new JTextField(Settings.getProperty("davmail.caldavPastDelay"), 4);
|
2010-04-23 10:43:04 -04:00
|
|
|
imapIdleDelayField = new JTextField(Settings.getProperty("davmail.imapIdleDelay"), 4);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
addSettingComponent(delaysPanel, BundleMessage.format("UI_KEEP_DELAY"), keepDelayField,
|
|
|
|
BundleMessage.format("UI_KEEP_DELAY_HELP"));
|
|
|
|
addSettingComponent(delaysPanel, BundleMessage.format("UI_SENT_KEEP_DELAY"), sentKeepDelayField,
|
|
|
|
BundleMessage.format("UI_SENT_KEEP_DELAY_HELP"));
|
|
|
|
addSettingComponent(delaysPanel, BundleMessage.format("UI_CALENDAR_PAST_EVENTS"), caldavPastDelayField,
|
|
|
|
BundleMessage.format("UI_CALENDAR_PAST_EVENTS_HELP"));
|
2010-04-23 10:43:04 -04:00
|
|
|
addSettingComponent(delaysPanel, BundleMessage.format("UI_IMAP_IDLE_DELAY"), imapIdleDelayField,
|
|
|
|
BundleMessage.format("UI_IMAP_IDLE_DELAY_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
return delaysPanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getProxyPanel() {
|
2012-08-27 16:35:47 -04:00
|
|
|
JPanel proxyPanel = new JPanel(new GridLayout(7, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
proxyPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_PROXY")));
|
|
|
|
|
2011-11-23 16:13:04 -05:00
|
|
|
boolean useSystemProxies = Settings.getBooleanProperty("davmail.useSystemProxies", Boolean.FALSE);
|
2010-04-07 16:23:48 -04:00
|
|
|
boolean enableProxy = Settings.getBooleanProperty("davmail.enableProxy");
|
|
|
|
useSystemProxiesField = new JCheckBox();
|
|
|
|
useSystemProxiesField.setSelected(useSystemProxies);
|
|
|
|
enableProxyField = new JCheckBox();
|
|
|
|
enableProxyField.setSelected(enableProxy);
|
|
|
|
httpProxyField = new JTextField(Settings.getProperty("davmail.proxyHost"), 15);
|
|
|
|
httpProxyPortField = new JTextField(Settings.getProperty("davmail.proxyPort"), 4);
|
|
|
|
httpProxyUserField = new JTextField(Settings.getProperty("davmail.proxyUser"), 10);
|
|
|
|
httpProxyPasswordField = new JPasswordField(Settings.getProperty("davmail.proxyPassword"), 10);
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField = new JTextField(Settings.getProperty("davmail.noProxyFor"), 15);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
enableProxyField.setEnabled(!useSystemProxies);
|
|
|
|
httpProxyField.setEnabled(enableProxy);
|
|
|
|
httpProxyPortField.setEnabled(enableProxy);
|
|
|
|
httpProxyUserField.setEnabled(enableProxy || useSystemProxies);
|
|
|
|
httpProxyPasswordField.setEnabled(enableProxy || useSystemProxies);
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField.setEnabled(enableProxy || useSystemProxies);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
useSystemProxiesField.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
boolean newUseSystemProxies = useSystemProxiesField.isSelected();
|
|
|
|
boolean newEnableProxy = enableProxyField.isSelected();
|
|
|
|
enableProxyField.setEnabled(!newUseSystemProxies);
|
|
|
|
httpProxyField.setEnabled(!newUseSystemProxies && newEnableProxy);
|
|
|
|
httpProxyPortField.setEnabled(!newUseSystemProxies && newEnableProxy);
|
|
|
|
httpProxyUserField.setEnabled(newUseSystemProxies || newEnableProxy);
|
|
|
|
httpProxyPasswordField.setEnabled(newUseSystemProxies || newEnableProxy);
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField.setEnabled(newUseSystemProxies || newEnableProxy);
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
enableProxyField.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
boolean newEnableProxy = enableProxyField.isSelected();
|
|
|
|
httpProxyField.setEnabled(newEnableProxy);
|
|
|
|
httpProxyPortField.setEnabled(newEnableProxy);
|
|
|
|
httpProxyUserField.setEnabled(newEnableProxy);
|
|
|
|
httpProxyPasswordField.setEnabled(newEnableProxy);
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField.setEnabled(newEnableProxy);
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_USE_SYSTEM_PROXIES"), useSystemProxiesField);
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_ENABLE_PROXY"), enableProxyField);
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_PROXY_SERVER"), httpProxyField);
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_PROXY_PORT"), httpProxyPortField);
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_PROXY_USER"), httpProxyUserField);
|
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_PROXY_PASSWORD"), httpProxyPasswordField);
|
2012-08-27 16:35:47 -04:00
|
|
|
addSettingComponent(proxyPanel, BundleMessage.format("UI_NO_PROXY"), noProxyForField);
|
2010-04-07 16:23:48 -04:00
|
|
|
updateMaximumSize(proxyPanel);
|
|
|
|
return proxyPanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getKeystorePanel() {
|
|
|
|
JPanel keyStorePanel = new JPanel(new GridLayout(4, 2));
|
2011-06-24 04:48:08 -04:00
|
|
|
keyStorePanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_DAVMAIL_SERVER_CERTIFICATE")));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
keystoreTypeCombo = new JComboBox(new String[]{"JKS", "PKCS12"});
|
2010-04-07 16:23:48 -04:00
|
|
|
keystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.keystoreType"));
|
|
|
|
keystoreFileField = new JTextField(Settings.getProperty("davmail.ssl.keystoreFile"), 17);
|
|
|
|
keystorePassField = new JPasswordField(Settings.getProperty("davmail.ssl.keystorePass"), 15);
|
|
|
|
keyPassField = new JPasswordField(Settings.getProperty("davmail.ssl.keyPass"), 15);
|
|
|
|
|
|
|
|
addSettingComponent(keyStorePanel, BundleMessage.format("UI_KEY_STORE_TYPE"), keystoreTypeCombo,
|
|
|
|
BundleMessage.format("UI_KEY_STORE_TYPE_HELP"));
|
|
|
|
addSettingComponent(keyStorePanel, BundleMessage.format("UI_KEY_STORE"), keystoreFileField,
|
|
|
|
BundleMessage.format("UI_KEY_STORE_HELP"));
|
|
|
|
addSettingComponent(keyStorePanel, BundleMessage.format("UI_KEY_STORE_PASSWORD"), keystorePassField,
|
|
|
|
BundleMessage.format("UI_KEY_STORE_PASSWORD_HELP"));
|
|
|
|
addSettingComponent(keyStorePanel, BundleMessage.format("UI_KEY_PASSWORD"), keyPassField,
|
|
|
|
BundleMessage.format("UI_KEY_PASSWORD_HELP"));
|
|
|
|
updateMaximumSize(keyStorePanel);
|
|
|
|
return keyStorePanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getSmartCardPanel() {
|
|
|
|
JPanel clientKeystorePanel = new JPanel(new GridLayout(2, 1));
|
|
|
|
clientKeystorePanel.setLayout(new BoxLayout(clientKeystorePanel, BoxLayout.Y_AXIS));
|
|
|
|
clientKeystorePanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_CLIENT_CERTIFICATE")));
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
clientKeystoreTypeCombo = new JComboBox(new String[]{"PKCS11", "JKS", "PKCS12"});
|
2010-04-07 16:23:48 -04:00
|
|
|
clientKeystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.clientKeystoreType"));
|
|
|
|
clientKeystoreFileField = new JTextField(Settings.getProperty("davmail.ssl.clientKeystoreFile"), 17);
|
|
|
|
clientKeystorePassField = new JPasswordField(Settings.getProperty("davmail.ssl.clientKeystorePass"), 15);
|
|
|
|
|
|
|
|
pkcs11LibraryField = new JTextField(Settings.getProperty("davmail.ssl.pkcs11Library"), 17);
|
|
|
|
pkcs11ConfigField = new JTextArea(2, 17);
|
|
|
|
pkcs11ConfigField.setText(Settings.getProperty("davmail.ssl.pkcs11Config"));
|
|
|
|
pkcs11ConfigField.setBorder(pkcs11LibraryField.getBorder());
|
|
|
|
pkcs11ConfigField.setFont(pkcs11LibraryField.getFont());
|
|
|
|
|
|
|
|
JPanel clientKeystoreTypePanel = new JPanel(new GridLayout(1, 2));
|
|
|
|
addSettingComponent(clientKeystoreTypePanel, BundleMessage.format("UI_CLIENT_KEY_STORE_TYPE"), clientKeystoreTypeCombo,
|
|
|
|
BundleMessage.format("UI_CLIENT_KEY_STORE_TYPE_HELP"));
|
|
|
|
clientKeystorePanel.add(clientKeystoreTypePanel);
|
|
|
|
|
|
|
|
final JPanel cardPanel = new JPanel(new CardLayout());
|
|
|
|
clientKeystorePanel.add(cardPanel);
|
|
|
|
|
|
|
|
JPanel clientKeystoreFilePanel = new JPanel(new GridLayout(2, 2));
|
|
|
|
addSettingComponent(clientKeystoreFilePanel, BundleMessage.format("UI_CLIENT_KEY_STORE"), clientKeystoreFileField,
|
|
|
|
BundleMessage.format("UI_CLIENT_KEY_STORE_HELP"));
|
|
|
|
addSettingComponent(clientKeystoreFilePanel, BundleMessage.format("UI_CLIENT_KEY_STORE_PASSWORD"), clientKeystorePassField,
|
|
|
|
BundleMessage.format("UI_CLIENT_KEY_STORE_PASSWORD_HELP"));
|
|
|
|
cardPanel.add(clientKeystoreFilePanel, "FILE");
|
|
|
|
|
|
|
|
JPanel pkcs11Panel = new JPanel(new GridLayout(2, 2));
|
|
|
|
addSettingComponent(pkcs11Panel, BundleMessage.format("UI_PKCS11_LIBRARY"), pkcs11LibraryField,
|
|
|
|
BundleMessage.format("UI_PKCS11_LIBRARY_HELP"));
|
|
|
|
addSettingComponent(pkcs11Panel, BundleMessage.format("UI_PKCS11_CONFIG"), pkcs11ConfigField,
|
|
|
|
BundleMessage.format("UI_PKCS11_CONFIG_HELP"));
|
|
|
|
cardPanel.add(pkcs11Panel, "PKCS11");
|
|
|
|
|
|
|
|
((CardLayout) cardPanel.getLayout()).show(cardPanel, (String) clientKeystoreTypeCombo.getSelectedItem());
|
|
|
|
|
|
|
|
clientKeystoreTypeCombo.addItemListener(new ItemListener() {
|
|
|
|
public void itemStateChanged(ItemEvent event) {
|
|
|
|
CardLayout cardLayout = (CardLayout) (cardPanel.getLayout());
|
|
|
|
if ("PKCS11".equals(event.getItem())) {
|
|
|
|
cardLayout.show(cardPanel, "PKCS11");
|
|
|
|
} else {
|
|
|
|
cardLayout.show(cardPanel, "FILE");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
updateMaximumSize(clientKeystorePanel);
|
|
|
|
return clientKeystorePanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected JPanel getNetworkSettingsPanel() {
|
2012-02-07 18:15:31 -05:00
|
|
|
JPanel networkSettingsPanel = new JPanel(new GridLayout(4, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
networkSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_NETWORK")));
|
|
|
|
|
|
|
|
allowRemoteField = new JCheckBox();
|
|
|
|
allowRemoteField.setSelected(Settings.getBooleanProperty("davmail.allowRemote"));
|
|
|
|
|
|
|
|
bindAddressField = new JTextField(Settings.getProperty("davmail.bindAddress"), 15);
|
2012-03-15 09:41:16 -04:00
|
|
|
clientSoTimeoutField = new JTextField(Settings.getProperty("davmail.clientSoTimeout"), 15);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
certHashField = new JTextField(Settings.getProperty("davmail.server.certificate.hash"), 15);
|
|
|
|
|
|
|
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_BIND_ADDRESS"), bindAddressField,
|
|
|
|
BundleMessage.format("UI_BIND_ADDRESS_HELP"));
|
2012-02-07 18:15:31 -05:00
|
|
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_CLIENT_SO_TIMEOUT"), clientSoTimeoutField,
|
|
|
|
BundleMessage.format("UI_CLIENT_SO_TIMEOUT_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION"), allowRemoteField,
|
|
|
|
BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION_HELP"));
|
|
|
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_SERVER_CERTIFICATE_HASH"), certHashField,
|
|
|
|
BundleMessage.format("UI_SERVER_CERTIFICATE_HASH_HELP"));
|
|
|
|
updateMaximumSize(networkSettingsPanel);
|
|
|
|
return networkSettingsPanel;
|
|
|
|
}
|
|
|
|
|
2011-10-27 03:45:41 -04:00
|
|
|
protected static final String WEBDAV = "WebDav";
|
|
|
|
protected static final String EWS = "EWS";
|
|
|
|
protected static final String AUTO = "Auto";
|
|
|
|
|
|
|
|
protected void setEwsModeSelectedItem(String ewsMode) {
|
|
|
|
if ("true".equals(ewsMode)) {
|
|
|
|
enableEwsComboBox.setSelectedItem(EWS);
|
|
|
|
} else if ("false".equals(ewsMode)) {
|
|
|
|
enableEwsComboBox.setSelectedItem(WEBDAV);
|
|
|
|
} else {
|
|
|
|
enableEwsComboBox.setSelectedItem(AUTO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JPanel getOtherSettingsPanel() {
|
2013-11-09 10:08:49 -05:00
|
|
|
JPanel otherSettingsPanel = new JPanel(new GridLayout(13, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
otherSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_OTHER")));
|
|
|
|
|
2013-11-09 10:08:49 -05:00
|
|
|
folderSizeLimitField = new JTextField(Settings.getProperty("davmail.folderSizeLimit"), 6);
|
2013-04-07 17:38:54 -04:00
|
|
|
enableKerberosCheckBox = new JCheckBox();
|
|
|
|
enableKerberosCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableKerberos"));
|
2010-11-08 04:23:33 -05:00
|
|
|
caldavEditNotificationsField = new JCheckBox();
|
|
|
|
caldavEditNotificationsField.setSelected(Settings.getBooleanProperty("davmail.caldavEditNotifications"));
|
2010-04-07 16:23:48 -04:00
|
|
|
caldavAlarmSoundField = new JTextField(Settings.getProperty("davmail.caldavAlarmSound"), 15);
|
|
|
|
forceActiveSyncUpdateCheckBox = new JCheckBox();
|
|
|
|
forceActiveSyncUpdateCheckBox.setSelected(Settings.getBooleanProperty("davmail.forceActiveSyncUpdate"));
|
|
|
|
defaultDomainField = new JTextField(Settings.getProperty("davmail.defaultDomain"), 15);
|
|
|
|
showStartupBannerCheckBox = new JCheckBox();
|
|
|
|
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
2011-10-12 16:35:51 -04:00
|
|
|
disableGuiNotificationsCheckBox = new JCheckBox();
|
|
|
|
disableGuiNotificationsCheckBox.setSelected(Settings.getBooleanProperty("davmail.disableGuiNotifications", false));
|
2010-05-10 05:19:25 -04:00
|
|
|
imapAutoExpungeCheckBox = new JCheckBox();
|
|
|
|
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
2013-06-13 09:51:39 -04:00
|
|
|
enableKeepAliveCheckBox = new JCheckBox();
|
|
|
|
enableKeepAliveCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableKeepAlive", false));
|
2012-02-15 16:41:03 -05:00
|
|
|
popMarkReadOnRetrCheckBox = new JCheckBox();
|
|
|
|
popMarkReadOnRetrCheckBox.setSelected(Settings.getBooleanProperty("davmail.popMarkReadOnRetr", false));
|
2011-06-17 06:26:06 -04:00
|
|
|
smtpSaveInSentCheckBox = new JCheckBox();
|
|
|
|
smtpSaveInSentCheckBox.setSelected(Settings.getBooleanProperty("davmail.smtpSaveInSent", true));
|
|
|
|
disableUpdateCheck = new JCheckBox();
|
|
|
|
disableUpdateCheck.setSelected(Settings.getBooleanProperty("davmail.disableUpdateCheck"));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2013-11-09 10:08:49 -05:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_FOLDER_SIZE_LIMIT"), folderSizeLimitField,
|
|
|
|
BundleMessage.format("UI_FOLDER_SIZE_LIMIT_HELP"));
|
2013-04-07 17:38:54 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_ENABLE_KERBEROS"), enableKerberosCheckBox,
|
|
|
|
BundleMessage.format("UI_ENABLE_KERBEROS_HELP"));
|
2010-11-08 04:23:33 -05:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS"), caldavEditNotificationsField,
|
|
|
|
BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_ALARM_SOUND"), caldavAlarmSoundField,
|
|
|
|
BundleMessage.format("UI_CALDAV_ALARM_SOUND_HELP"));
|
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_FORCE_ACTIVESYNC_UPDATE"), forceActiveSyncUpdateCheckBox,
|
|
|
|
BundleMessage.format("UI_FORCE_ACTIVESYNC_UPDATE_HELP"));
|
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_DEFAULT_DOMAIN"), defaultDomainField,
|
|
|
|
BundleMessage.format("UI_DEFAULT_DOMAIN_HELP"));
|
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_SHOW_STARTUP_BANNER"), showStartupBannerCheckBox,
|
|
|
|
BundleMessage.format("UI_SHOW_STARTUP_BANNER_HELP"));
|
2011-10-12 16:35:51 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_DISABLE_GUI_NOTIFICATIONS"), disableGuiNotificationsCheckBox,
|
|
|
|
BundleMessage.format("UI_DISABLE_GUI_NOTIFICATIONS_HELP"));
|
2010-05-10 05:19:25 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_IMAP_AUTO_EXPUNGE"), imapAutoExpungeCheckBox,
|
|
|
|
BundleMessage.format("UI_IMAP_AUTO_EXPUNGE_HELP"));
|
2013-06-13 09:51:39 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_ENABLE_KEEPALIVE"), enableKeepAliveCheckBox,
|
|
|
|
BundleMessage.format("UI_ENABLE_KEEPALIVE_HELP"));
|
2012-02-15 16:41:03 -05:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_POP_MARK_READ"), popMarkReadOnRetrCheckBox,
|
|
|
|
BundleMessage.format("UI_POP_MARK_READ_HELP"));
|
2011-06-17 06:26:06 -04:00
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_SAVE_IN_SENT"), smtpSaveInSentCheckBox,
|
|
|
|
BundleMessage.format("UI_SAVE_IN_SENT_HELP"));
|
|
|
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_DISABLE_UPDATE_CHECK"), disableUpdateCheck,
|
|
|
|
BundleMessage.format("UI_DISABLE_UPDATE_CHECK_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
updateMaximumSize(otherSettingsPanel);
|
|
|
|
return otherSettingsPanel;
|
|
|
|
}
|
|
|
|
|
2012-05-10 18:49:46 -04:00
|
|
|
protected JPanel getOSXPanel() {
|
|
|
|
JPanel osxSettingsPanel = new JPanel(new GridLayout(1, 2));
|
|
|
|
osxSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_OSX")));
|
|
|
|
|
|
|
|
osxHideFromDockCheckBox = new JCheckBox();
|
|
|
|
osxHideFromDockCheckBox.setSelected(OSXInfoPlist.isHideFromDock());
|
|
|
|
|
|
|
|
addSettingComponent(osxSettingsPanel, BundleMessage.format("UI_OSX_HIDE_FROM_DOCK"), osxHideFromDockCheckBox,
|
|
|
|
BundleMessage.format("UI_OSX_HIDE_FROM_DOCK_HELP"));
|
|
|
|
|
|
|
|
updateMaximumSize(osxSettingsPanel);
|
|
|
|
return osxSettingsPanel;
|
|
|
|
}
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
protected JPanel getLoggingSettingsPanel() {
|
|
|
|
JPanel loggingLevelPanel = new JPanel();
|
|
|
|
JPanel leftLoggingPanel = new JPanel(new GridLayout(2, 2));
|
|
|
|
JPanel rightLoggingPanel = new JPanel(new GridLayout(2, 2));
|
|
|
|
loggingLevelPanel.add(leftLoggingPanel);
|
|
|
|
loggingLevelPanel.add(rightLoggingPanel);
|
|
|
|
|
2014-03-17 20:04:00 -04:00
|
|
|
rootLoggingLevelField = new JComboBox(LOG_LEVELS);
|
|
|
|
davmailLoggingLevelField = new JComboBox(LOG_LEVELS);
|
|
|
|
httpclientLoggingLevelField = new JComboBox(LOG_LEVELS);
|
|
|
|
wireLoggingLevelField = new JComboBox(LOG_LEVELS);
|
2010-04-07 16:23:48 -04:00
|
|
|
logFilePathField = new JTextField(Settings.getProperty("davmail.logFilePath"), 15);
|
2011-05-05 16:20:08 -04:00
|
|
|
logFileSizeField = new JTextField(Settings.getProperty("davmail.logFileSize"), 15);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
rootLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("rootLogger"));
|
|
|
|
davmailLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("davmail"));
|
|
|
|
httpclientLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("org.apache.commons.httpclient"));
|
|
|
|
wireLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("httpclient.wire"));
|
|
|
|
|
|
|
|
addSettingComponent(leftLoggingPanel, BundleMessage.format("UI_LOG_DEFAULT"), rootLoggingLevelField);
|
|
|
|
addSettingComponent(leftLoggingPanel, BundleMessage.format("UI_LOG_DAVMAIL"), davmailLoggingLevelField);
|
|
|
|
addSettingComponent(rightLoggingPanel, BundleMessage.format("UI_LOG_HTTPCLIENT"), httpclientLoggingLevelField);
|
|
|
|
addSettingComponent(rightLoggingPanel, BundleMessage.format("UI_LOG_WIRE"), wireLoggingLevelField);
|
|
|
|
|
2011-05-05 16:20:08 -04:00
|
|
|
JPanel logFilePathPanel = new JPanel(new GridLayout(2, 2));
|
2010-04-07 16:23:48 -04:00
|
|
|
addSettingComponent(logFilePathPanel, BundleMessage.format("UI_LOG_FILE_PATH"), logFilePathField);
|
2013-05-11 11:47:47 -04:00
|
|
|
addSettingComponent(logFilePathPanel, BundleMessage.format("UI_LOG_FILE_SIZE"), logFileSizeField, BundleMessage.format("UI_LOG_FILE_SIZE_HELP"));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2011-10-18 16:36:23 -04:00
|
|
|
JButton defaultButton = new JButton(BundleMessage.format("UI_BUTTON_DEFAULT"));
|
|
|
|
defaultButton.setToolTipText(BundleMessage.format("UI_BUTTON_DEFAULT_HELP"));
|
|
|
|
defaultButton.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
rootLoggingLevelField.setSelectedItem(Level.WARN);
|
|
|
|
davmailLoggingLevelField.setSelectedItem(Level.DEBUG);
|
|
|
|
httpclientLoggingLevelField.setSelectedItem(Level.WARN);
|
|
|
|
wireLoggingLevelField.setSelectedItem(Level.WARN);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
JPanel loggingPanel = new JPanel();
|
|
|
|
loggingPanel.setLayout(new BoxLayout(loggingPanel, BoxLayout.Y_AXIS));
|
|
|
|
loggingPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_LOGGING_LEVELS")));
|
|
|
|
loggingPanel.add(logFilePathPanel);
|
|
|
|
loggingPanel.add(loggingLevelPanel);
|
2011-10-18 16:36:23 -04:00
|
|
|
loggingPanel.add(defaultButton);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
updateMaximumSize(loggingPanel);
|
|
|
|
return loggingPanel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void updateMaximumSize(JPanel panel) {
|
|
|
|
Dimension preferredSize = panel.getPreferredSize();
|
|
|
|
preferredSize.width = Integer.MAX_VALUE;
|
|
|
|
panel.setMaximumSize(preferredSize);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reload settings from properties.
|
|
|
|
*/
|
|
|
|
public void reload() {
|
|
|
|
// reload settings in form
|
|
|
|
urlField.setText(Settings.getProperty("davmail.url"));
|
|
|
|
popPortField.setText(Settings.getProperty("davmail.popPort"));
|
|
|
|
popPortCheckBox.setSelected(Settings.getProperty("davmail.popPort") != null && Settings.getProperty("davmail.popPort").length() > 0);
|
2010-08-29 16:19:35 -04:00
|
|
|
popNoSSLCheckBox.setSelected(Settings.getBooleanProperty("davmail.ssl.nosecurepop"));
|
2010-04-07 16:23:48 -04:00
|
|
|
imapPortField.setText(Settings.getProperty("davmail.imapPort"));
|
|
|
|
imapPortCheckBox.setSelected(Settings.getProperty("davmail.imapPort") != null && Settings.getProperty("davmail.imapPort").length() > 0);
|
2010-08-29 16:19:35 -04:00
|
|
|
imapNoSSLCheckBox.setSelected(Settings.getBooleanProperty("davmail.ssl.nosecureimap"));
|
2010-04-07 16:23:48 -04:00
|
|
|
smtpPortField.setText(Settings.getProperty("davmail.smtpPort"));
|
|
|
|
smtpPortCheckBox.setSelected(Settings.getProperty("davmail.smtpPort") != null && Settings.getProperty("davmail.smtpPort").length() > 0);
|
2010-08-29 16:19:35 -04:00
|
|
|
smtpNoSSLCheckBox.setSelected(Settings.getBooleanProperty("davmail.ssl.nosecuresmtp"));
|
2010-04-07 16:23:48 -04:00
|
|
|
caldavPortField.setText(Settings.getProperty("davmail.caldavPort"));
|
|
|
|
caldavPortCheckBox.setSelected(Settings.getProperty("davmail.caldavPort") != null && Settings.getProperty("davmail.caldavPort").length() > 0);
|
2010-08-29 16:19:35 -04:00
|
|
|
caldavNoSSLCheckBox.setSelected(Settings.getBooleanProperty("davmail.ssl.nosecurecaldav"));
|
2010-04-07 16:23:48 -04:00
|
|
|
ldapPortField.setText(Settings.getProperty("davmail.ldapPort"));
|
|
|
|
ldapPortCheckBox.setSelected(Settings.getProperty("davmail.ldapPort") != null && Settings.getProperty("davmail.ldapPort").length() > 0);
|
2010-08-29 16:19:35 -04:00
|
|
|
ldapNoSSLCheckBox.setSelected(Settings.getBooleanProperty("davmail.ssl.nosecureldap"));
|
2010-04-07 16:23:48 -04:00
|
|
|
keepDelayField.setText(Settings.getProperty("davmail.keepDelay"));
|
|
|
|
sentKeepDelayField.setText(Settings.getProperty("davmail.sentKeepDelay"));
|
|
|
|
caldavPastDelayField.setText(Settings.getProperty("davmail.caldavPastDelay"));
|
2010-08-29 16:19:35 -04:00
|
|
|
imapIdleDelayField.setText(Settings.getProperty("davmail.imapIdleDelay"));
|
2011-11-23 16:13:04 -05:00
|
|
|
boolean useSystemProxies = Settings.getBooleanProperty("davmail.useSystemProxies", Boolean.FALSE);
|
2010-04-07 16:23:48 -04:00
|
|
|
useSystemProxiesField.setSelected(useSystemProxies);
|
|
|
|
boolean enableProxy = Settings.getBooleanProperty("davmail.enableProxy");
|
|
|
|
enableProxyField.setSelected(enableProxy);
|
|
|
|
enableProxyField.setEnabled(!useSystemProxies);
|
|
|
|
httpProxyField.setEnabled(!useSystemProxies && enableProxy);
|
|
|
|
httpProxyPortField.setEnabled(!useSystemProxies && enableProxy);
|
2010-08-29 16:19:35 -04:00
|
|
|
httpProxyUserField.setEnabled(useSystemProxies || enableProxy);
|
2010-04-07 16:23:48 -04:00
|
|
|
httpProxyPasswordField.setEnabled(useSystemProxies || enableProxy);
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField.setEnabled(useSystemProxies || enableProxy);
|
2010-04-07 16:23:48 -04:00
|
|
|
httpProxyField.setText(Settings.getProperty("davmail.proxyHost"));
|
|
|
|
httpProxyPortField.setText(Settings.getProperty("davmail.proxyPort"));
|
|
|
|
httpProxyUserField.setText(Settings.getProperty("davmail.proxyUser"));
|
|
|
|
httpProxyPasswordField.setText(Settings.getProperty("davmail.proxyPassword"));
|
2012-08-27 16:35:47 -04:00
|
|
|
noProxyForField.setText(Settings.getProperty("davmail.noProxyFor"));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
bindAddressField.setText(Settings.getProperty("davmail.bindAddress"));
|
|
|
|
allowRemoteField.setSelected(Settings.getBooleanProperty(("davmail.allowRemote")));
|
|
|
|
certHashField.setText(Settings.getProperty("davmail.server.certificate.hash"));
|
|
|
|
disableUpdateCheck.setSelected(Settings.getBooleanProperty(("davmail.disableUpdateCheck")));
|
|
|
|
|
2010-11-08 04:23:33 -05:00
|
|
|
caldavEditNotificationsField.setSelected(Settings.getBooleanProperty("davmail.caldavEditNotifications"));
|
2012-02-07 18:15:31 -05:00
|
|
|
clientSoTimeoutField.setText(Settings.getProperty("davmail.clientSoTimeout"));
|
2010-04-07 16:23:48 -04:00
|
|
|
caldavAlarmSoundField.setText(Settings.getProperty("davmail.caldavAlarmSound"));
|
|
|
|
forceActiveSyncUpdateCheckBox.setSelected(Settings.getBooleanProperty("davmail.forceActiveSyncUpdate"));
|
|
|
|
defaultDomainField.setText(Settings.getProperty("davmail.defaultDomain"));
|
|
|
|
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
2011-10-12 16:35:51 -04:00
|
|
|
disableGuiNotificationsCheckBox.setSelected(Settings.getBooleanProperty("davmail.disableGuiNotifications", false));
|
2010-05-10 05:19:25 -04:00
|
|
|
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
2013-06-13 09:51:39 -04:00
|
|
|
enableKeepAliveCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableKeepAlive", false));
|
2012-02-15 16:41:03 -05:00
|
|
|
popMarkReadOnRetrCheckBox.setSelected(Settings.getBooleanProperty("davmail.popMarkReadOnRetrCheckBox", false));
|
2011-10-27 03:45:41 -04:00
|
|
|
setEwsModeSelectedItem(Settings.getProperty("davmail.enableEws", "auto"));
|
2011-06-17 06:26:06 -04:00
|
|
|
smtpSaveInSentCheckBox.setSelected(Settings.getBooleanProperty("davmail.smtpSaveInSent", true));
|
2013-04-07 17:38:54 -04:00
|
|
|
enableKerberosCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableKerberos", false));
|
2013-11-09 10:08:49 -05:00
|
|
|
folderSizeLimitField.setText(Settings.getProperty("davmail.folderSizeLimit"));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
keystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.keystoreType"));
|
|
|
|
keystoreFileField.setText(Settings.getProperty("davmail.ssl.keystoreFile"));
|
|
|
|
keystorePassField.setText(Settings.getProperty("davmail.ssl.keystorePass"));
|
|
|
|
keyPassField.setText(Settings.getProperty("davmail.ssl.keyPass"));
|
|
|
|
|
|
|
|
clientKeystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.clientKeystoreType"));
|
|
|
|
pkcs11LibraryField.setText(Settings.getProperty("davmail.ssl.pkcs11Library"));
|
|
|
|
pkcs11ConfigField.setText(Settings.getProperty("davmail.ssl.pkcs11Config"));
|
|
|
|
|
|
|
|
rootLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("rootLogger"));
|
|
|
|
davmailLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("davmail"));
|
|
|
|
httpclientLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("org.apache.commons.httpclient"));
|
|
|
|
wireLoggingLevelField.setSelectedItem(Settings.getLoggingLevel("httpclient.wire"));
|
|
|
|
logFilePathField.setText(Settings.getProperty("davmail.logFilePath"));
|
2011-05-05 16:20:08 -04:00
|
|
|
logFileSizeField.setText(Settings.getProperty("davmail.logFileSize"));
|
2012-05-10 18:49:46 -04:00
|
|
|
|
|
|
|
if (osxHideFromDockCheckBox != null) {
|
|
|
|
osxHideFromDockCheckBox.setSelected(OSXInfoPlist.isHideFromDock());
|
|
|
|
}
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
|
2010-08-29 16:19:35 -04:00
|
|
|
protected boolean isSslEnabled() {
|
|
|
|
if (keystoreFileField != null) {
|
|
|
|
return keystoreFileField.getText().length() > 0;
|
|
|
|
} else {
|
|
|
|
return Settings.getProperty("davmail.ssl.keystoreFile") != null &&
|
|
|
|
(Settings.getProperty("davmail.ssl.keystoreFile").length() > 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
/**
|
|
|
|
* DavMail settings frame.
|
|
|
|
*/
|
|
|
|
public SettingsFrame() {
|
2010-08-06 19:07:21 -04:00
|
|
|
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
2010-04-07 16:23:48 -04:00
|
|
|
setTitle(BundleMessage.format("UI_DAVMAIL_SETTINGS"));
|
2011-06-23 18:05:27 -04:00
|
|
|
try {
|
|
|
|
setIconImage(DavGatewayTray.getFrameIcon());
|
|
|
|
} catch (NoSuchMethodError error) {
|
|
|
|
DavGatewayTray.debug(new BundleMessage("LOG_UNABLE_TO_SET_ICON_IMAGE"));
|
|
|
|
}
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
JTabbedPane tabbedPane = new JTabbedPane();
|
|
|
|
// add help (F1 handler)
|
|
|
|
tabbedPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke("F1"),
|
|
|
|
"help");
|
|
|
|
tabbedPane.getActionMap().put("help", new AbstractAction() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
DesktopBrowser.browse("http://davmail.sourceforge.net");
|
|
|
|
}
|
2011-06-08 15:58:29 -04:00
|
|
|
});
|
2010-08-29 16:19:35 -04:00
|
|
|
tabbedPane.addChangeListener(new ChangeListener() {
|
|
|
|
public void stateChanged(ChangeEvent e) {
|
|
|
|
boolean isSslEnabled = isSslEnabled();
|
|
|
|
popNoSSLCheckBox.setEnabled(Settings.getProperty("davmail.popPort") != null && isSslEnabled);
|
|
|
|
imapNoSSLCheckBox.setEnabled(imapPortCheckBox.isSelected() && isSslEnabled);
|
|
|
|
smtpNoSSLCheckBox.setEnabled(smtpPortCheckBox.isSelected() && isSslEnabled);
|
|
|
|
caldavNoSSLCheckBox.setEnabled(caldavPortCheckBox.isSelected() && isSslEnabled);
|
|
|
|
ldapNoSSLCheckBox.setEnabled(ldapPortCheckBox.isSelected() && isSslEnabled);
|
|
|
|
}
|
|
|
|
});
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
JPanel mainPanel = new JPanel();
|
|
|
|
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
|
|
|
|
mainPanel.add(getSettingsPanel());
|
|
|
|
mainPanel.add(getDelaysPanel());
|
|
|
|
mainPanel.add(Box.createVerticalGlue());
|
|
|
|
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_MAIN"), mainPanel);
|
|
|
|
|
|
|
|
JPanel proxyPanel = new JPanel();
|
|
|
|
proxyPanel.setLayout(new BoxLayout(proxyPanel, BoxLayout.Y_AXIS));
|
|
|
|
proxyPanel.add(getProxyPanel());
|
2011-06-17 06:26:06 -04:00
|
|
|
proxyPanel.add(getNetworkSettingsPanel());
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_NETWORK"), proxyPanel);
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
JPanel encryptionPanel = new JPanel();
|
|
|
|
encryptionPanel.setLayout(new BoxLayout(encryptionPanel, BoxLayout.Y_AXIS));
|
|
|
|
encryptionPanel.add(getKeystorePanel());
|
|
|
|
encryptionPanel.add(getSmartCardPanel());
|
|
|
|
// empty panel
|
|
|
|
encryptionPanel.add(new JPanel());
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_ENCRYPTION"), encryptionPanel);
|
|
|
|
|
|
|
|
JPanel loggingPanel = new JPanel();
|
|
|
|
loggingPanel.setLayout(new BoxLayout(loggingPanel, BoxLayout.Y_AXIS));
|
|
|
|
loggingPanel.add(getLoggingSettingsPanel());
|
|
|
|
// empty panel
|
|
|
|
loggingPanel.add(new JPanel());
|
|
|
|
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_LOGGING"), loggingPanel);
|
|
|
|
|
|
|
|
JPanel advancedPanel = new JPanel();
|
|
|
|
advancedPanel.setLayout(new BoxLayout(advancedPanel, BoxLayout.Y_AXIS));
|
|
|
|
|
|
|
|
advancedPanel.add(getOtherSettingsPanel());
|
|
|
|
// empty panel
|
|
|
|
advancedPanel.add(new JPanel());
|
|
|
|
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_ADVANCED"), advancedPanel);
|
|
|
|
|
2012-05-10 18:49:46 -04:00
|
|
|
if (OSXInfoPlist.isOSX()) {
|
|
|
|
JPanel osxPanel = new JPanel();
|
|
|
|
osxPanel.setLayout(new BoxLayout(osxPanel, BoxLayout.Y_AXIS));
|
|
|
|
osxPanel.add(getOSXPanel());
|
|
|
|
// empty panel
|
|
|
|
osxPanel.add(new JPanel());
|
|
|
|
|
|
|
|
tabbedPane.add(BundleMessage.format("UI_TAB_OSX"), osxPanel);
|
|
|
|
}
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
add(BorderLayout.CENTER, tabbedPane);
|
|
|
|
|
|
|
|
JPanel buttonPanel = new JPanel();
|
|
|
|
JButton cancel = new JButton(BundleMessage.format("UI_BUTTON_CANCEL"));
|
|
|
|
JButton ok = new JButton(BundleMessage.format("UI_BUTTON_SAVE"));
|
|
|
|
JButton help = new JButton(BundleMessage.format("UI_BUTTON_HELP"));
|
|
|
|
ActionListener save = new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
// save options
|
|
|
|
Settings.setProperty("davmail.url", urlField.getText());
|
|
|
|
Settings.setProperty("davmail.popPort", popPortCheckBox.isSelected() ? popPortField.getText() : "");
|
2010-08-29 16:19:35 -04:00
|
|
|
Settings.setProperty("davmail.ssl.nosecurepop", String.valueOf(popNoSSLCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.imapPort", imapPortCheckBox.isSelected() ? imapPortField.getText() : "");
|
2010-08-29 16:19:35 -04:00
|
|
|
Settings.setProperty("davmail.ssl.nosecureimap", String.valueOf(imapNoSSLCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.smtpPort", smtpPortCheckBox.isSelected() ? smtpPortField.getText() : "");
|
2010-08-29 16:19:35 -04:00
|
|
|
Settings.setProperty("davmail.ssl.nosecuresmtp", String.valueOf(smtpNoSSLCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.caldavPort", caldavPortCheckBox.isSelected() ? caldavPortField.getText() : "");
|
2010-08-29 16:19:35 -04:00
|
|
|
Settings.setProperty("davmail.ssl.nosecurecaldav", String.valueOf(caldavNoSSLCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.ldapPort", ldapPortCheckBox.isSelected() ? ldapPortField.getText() : "");
|
2010-08-29 16:19:35 -04:00
|
|
|
Settings.setProperty("davmail.ssl.nosecureldap", String.valueOf(ldapNoSSLCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.keepDelay", keepDelayField.getText());
|
|
|
|
Settings.setProperty("davmail.sentKeepDelay", sentKeepDelayField.getText());
|
|
|
|
Settings.setProperty("davmail.caldavPastDelay", caldavPastDelayField.getText());
|
2010-04-23 10:43:04 -04:00
|
|
|
Settings.setProperty("davmail.imapIdleDelay", imapIdleDelayField.getText());
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.useSystemProxies", String.valueOf(useSystemProxiesField.isSelected()));
|
|
|
|
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());
|
2012-08-27 16:35:47 -04:00
|
|
|
Settings.setProperty("davmail.noProxyFor", noProxyForField.getText());
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
Settings.setProperty("davmail.bindAddress", bindAddressField.getText());
|
2012-02-07 18:15:31 -05:00
|
|
|
Settings.setProperty("davmail.clientSoTimeout", String.valueOf(clientSoTimeoutField.getText()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.allowRemote", String.valueOf(allowRemoteField.isSelected()));
|
|
|
|
Settings.setProperty("davmail.server.certificate.hash", certHashField.getText());
|
|
|
|
Settings.setProperty("davmail.disableUpdateCheck", String.valueOf(disableUpdateCheck.isSelected()));
|
|
|
|
|
2010-11-08 04:23:33 -05:00
|
|
|
Settings.setProperty("davmail.caldavEditNotifications", String.valueOf(caldavEditNotificationsField.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.setProperty("davmail.caldavAlarmSound", String.valueOf(caldavAlarmSoundField.getText()));
|
|
|
|
Settings.setProperty("davmail.forceActiveSyncUpdate", String.valueOf(forceActiveSyncUpdateCheckBox.isSelected()));
|
|
|
|
Settings.setProperty("davmail.defaultDomain", String.valueOf(defaultDomainField.getText()));
|
|
|
|
Settings.setProperty("davmail.showStartupBanner", String.valueOf(showStartupBannerCheckBox.isSelected()));
|
2011-10-12 16:35:51 -04:00
|
|
|
Settings.setProperty("davmail.disableGuiNotifications", String.valueOf(disableGuiNotificationsCheckBox.isSelected()));
|
2010-05-10 05:19:25 -04:00
|
|
|
Settings.setProperty("davmail.imapAutoExpunge", String.valueOf(imapAutoExpungeCheckBox.isSelected()));
|
2013-06-13 09:51:39 -04:00
|
|
|
Settings.setProperty("davmail.enableKeepAlive", String.valueOf(enableKeepAliveCheckBox.isSelected()));
|
2012-02-15 16:41:03 -05:00
|
|
|
Settings.setProperty("davmail.popMarkReadOnRetr", String.valueOf(popMarkReadOnRetrCheckBox.isSelected()));
|
2011-10-27 03:45:41 -04:00
|
|
|
String selectedEwsMode = (String) enableEwsComboBox.getSelectedItem();
|
|
|
|
String enableEws;
|
|
|
|
if (EWS.equals(selectedEwsMode)) {
|
|
|
|
enableEws = "true";
|
|
|
|
} else if (WEBDAV.equals(selectedEwsMode)) {
|
|
|
|
enableEws = "false";
|
|
|
|
} else {
|
|
|
|
enableEws = "auto";
|
|
|
|
}
|
|
|
|
Settings.setProperty("davmail.enableEws", enableEws);
|
2013-04-07 17:38:54 -04:00
|
|
|
Settings.setProperty("davmail.enableKerberos", String.valueOf(enableKerberosCheckBox.isSelected()));
|
2013-11-09 10:08:49 -05:00
|
|
|
Settings.setProperty("davmail.folderSizeLimit", folderSizeLimitField.getText());
|
2011-06-17 06:26:06 -04:00
|
|
|
Settings.setProperty("davmail.smtpSaveInSent", String.valueOf(smtpSaveInSentCheckBox.isSelected()));
|
2010-04-07 16:23:48 -04:00
|
|
|
|
|
|
|
Settings.setProperty("davmail.ssl.keystoreType", (String) keystoreTypeCombo.getSelectedItem());
|
|
|
|
Settings.setProperty("davmail.ssl.keystoreFile", keystoreFileField.getText());
|
|
|
|
Settings.setProperty("davmail.ssl.keystorePass", String.valueOf(keystorePassField.getPassword()));
|
|
|
|
Settings.setProperty("davmail.ssl.keyPass", String.valueOf(keyPassField.getPassword()));
|
|
|
|
|
|
|
|
Settings.setProperty("davmail.ssl.clientKeystoreType", (String) clientKeystoreTypeCombo.getSelectedItem());
|
|
|
|
Settings.setProperty("davmail.ssl.clientKeystoreFile", clientKeystoreFileField.getText());
|
|
|
|
Settings.setProperty("davmail.ssl.clientKeystorePass", String.valueOf(clientKeystorePassField.getPassword()));
|
|
|
|
Settings.setProperty("davmail.ssl.pkcs11Library", pkcs11LibraryField.getText());
|
|
|
|
Settings.setProperty("davmail.ssl.pkcs11Config", pkcs11ConfigField.getText());
|
|
|
|
|
|
|
|
Settings.setLoggingLevel("rootLogger", (Level) rootLoggingLevelField.getSelectedItem());
|
|
|
|
Settings.setLoggingLevel("davmail", (Level) davmailLoggingLevelField.getSelectedItem());
|
|
|
|
Settings.setLoggingLevel("org.apache.commons.httpclient", (Level) httpclientLoggingLevelField.getSelectedItem());
|
|
|
|
Settings.setLoggingLevel("httpclient.wire", (Level) wireLoggingLevelField.getSelectedItem());
|
|
|
|
Settings.setProperty("davmail.logFilePath", logFilePathField.getText());
|
2011-05-05 16:20:08 -04:00
|
|
|
Settings.setProperty("davmail.logFileSize", logFileSizeField.getText());
|
2010-04-07 16:23:48 -04:00
|
|
|
|
2010-08-06 19:07:21 -04:00
|
|
|
setVisible(false);
|
2010-04-07 16:23:48 -04:00
|
|
|
Settings.save();
|
2012-05-10 18:49:46 -04:00
|
|
|
|
|
|
|
if (osxHideFromDockCheckBox != null) {
|
|
|
|
OSXInfoPlist.setOSXHideFromDock(osxHideFromDockCheckBox.isSelected());
|
|
|
|
}
|
|
|
|
|
2010-04-07 16:23:48 -04:00
|
|
|
// restart listeners with new config
|
2010-04-23 10:58:44 -04:00
|
|
|
DavGateway.restart();
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
};
|
|
|
|
ok.addActionListener(save);
|
|
|
|
|
|
|
|
cancel.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
reload();
|
2010-08-06 19:07:21 -04:00
|
|
|
setVisible(false);
|
2010-04-07 16:23:48 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
help.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
DesktopBrowser.browse("http://davmail.sourceforge.net");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
buttonPanel.add(ok);
|
|
|
|
buttonPanel.add(cancel);
|
|
|
|
buttonPanel.add(help);
|
|
|
|
|
|
|
|
add(BorderLayout.SOUTH, buttonPanel);
|
|
|
|
|
|
|
|
pack();
|
|
|
|
//setResizable(false);
|
|
|
|
// center frame
|
|
|
|
setLocation(getToolkit().getScreenSize().width / 2 -
|
|
|
|
getSize().width / 2,
|
|
|
|
getToolkit().getScreenSize().height / 2 -
|
|
|
|
getSize().height / 2);
|
|
|
|
urlField.requestFocus();
|
|
|
|
}
|
|
|
|
}
|