/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.plugin.sipaccregwizz;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import net.java.sip.communicator.service.certificate.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.sip.*;
import org.jitsi.util.*;
/**
* The panel containing information about the connection.
*
* @author Yana Stamcheva
* @author Pawel Domas
*/
public class ConnectionPanel
extends TransparentPanel
implements ItemListener,
DocumentListener,
ValidatingPanel
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
private final JTextField serverField = new JTextField();
private final JTextField proxyField = new JTextField();
private final JTextField authNameField = new JTextField();
private final JTextField serverPortField = new JTextField(4);
private final JTextField proxyPortField = new JTextField(4);
private final JTextField voicemailAliasField = new JTextField(4);
private final JTextField voicemailCheckField = new JTextField(4);
private final JCheckBox proxyAutoCheckBox;
private final JCheckBox proxyForceBypassCheckBox;
private final JComboBox certificate = new JComboBox();
private JComboBox transportCombo
= new JComboBox(new String[] { "UDP", "TCP", "TLS" });
private JComboBox keepAliveMethodBox
= new JComboBox(new String[] { "NONE", "REGISTER", "OPTIONS", "CRLF" });
private JTextField keepAliveIntervalValue
= new JTextField(SipAccountID.getDefaultStr(
ProtocolProviderFactory.KEEP_ALIVE_INTERVAL));
private JComboBox dtmfMethodBox
= new JComboBox(
new String[]
{
Resources.getString(
"plugin.sipaccregwizz.DTMF_AUTO"),
Resources.getString(
"plugin.sipaccregwizz.DTMF_RTP"),
Resources.getString(
"plugin.sipaccregwizz.DTMF_SIP_INFO"),
Resources.getString(
"plugin.sipaccregwizz.DTMF_INBAND")
});
/**
* The text field used to change the DTMF minimal tone duration.
*/
private JTextField dtmfMinimalToneDurationValue = new JTextField();
private final JCheckBox mwiCheckBox;
private boolean isServerOverridden = false;
private SIPAccountRegistrationForm regform;
/**
* Creates an instance of the <tt>ConnectionPanel</tt>.
* @param regform the parent registration form
*/
public ConnectionPanel(SIPAccountRegistrationForm regform)
{
super(new BorderLayout(10, 10));
this.regform = regform;
this.regform.addValidatingPanel(this);
proxyAutoCheckBox = new SIPCommCheckBox(
Resources.getString("plugin.sipaccregwizz.PROXY_AUTO"),
regform.getRegistration().isProxyAutoConfigure());
enablesProxyAutoConfigure(proxyAutoCheckBox.isSelected());
proxyAutoCheckBox.addActionListener(new ActionListener()
{
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e)
{
enablesProxyAutoConfigure(proxyAutoCheckBox.isSelected());
ConnectionPanel.this.regform.reValidateInput();
}
});
proxyForceBypassCheckBox = new SIPCommCheckBox(
Resources.getString("plugin.sipaccregwizz.PROXY_FORCE_BYPASS"),
regform.getRegistration().isProxyForceBypassConfigure());
enablesProxyForceBypassConfigure(
proxyForceBypassCheckBox.isSelected());
proxyForceBypassCheckBox.addActionListener(new ActionListener()
{
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e)
{
enablesProxyForceBypassConfigure(
proxyForceBypassCheckBox.isSelected());
ConnectionPanel.this.regform.reValidateInput();
}
});
this.transportCombo.addItemListener(this);
transportCombo.setSelectedItem(
regform.getRegistration().getPreferredTransport());
JPanel mainPanel = new TransparentPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel registrarMainPanel =
new TransparentPanel(new BorderLayout(10, 10));
JPanel labelsPanel
= new TransparentPanel(new GridLayout(0, 1, 10, 10));
JPanel valuesPanel
= new TransparentPanel(new GridLayout(0, 1, 10, 10));
JLabel serverLabel
= new JLabel(Resources.getString("plugin.sipaccregwizz.REGISTRAR"));
JLabel authNameLabel
= new JLabel(Resources.getString(
"plugin.sipaccregwizz.AUTH_NAME"));
JLabel serverPortLabel
= new JLabel(Resources.getString("service.gui.PORT"));
JLabel certLabel = new JLabel(
Resources.getString("plugin.sipaccregwizz.CLIENT_CERTIFICATE"));
labelsPanel.add(serverLabel);
labelsPanel.add(authNameLabel);
labelsPanel.add(certLabel);
serverField.setText(regform.getRegistration().getServerAddress());
serverPortField.setText(regform.getRegistration().getServerPort());
JPanel serverPanel = new TransparentPanel(new BorderLayout(5, 5));
serverPanel.add(serverField, BorderLayout.CENTER);
JPanel serverPortPanel = new TransparentPanel(
new BorderLayout(5, 5));
serverPortPanel.add(serverPortLabel, BorderLayout.WEST);
serverPortPanel.add(serverPortField, BorderLayout.EAST);
serverPanel.add(serverPortPanel, BorderLayout.EAST);
valuesPanel.add(serverPanel);
valuesPanel.add(authNameField);
valuesPanel.add(certificate);
initCertificateAliases(null);
registrarMainPanel.add(labelsPanel, BorderLayout.WEST);
registrarMainPanel.add(valuesPanel, BorderLayout.CENTER);
registrarMainPanel.setBorder(
BorderFactory.createEmptyBorder(10, 5, 10, 5));
mainPanel.add(registrarMainPanel);
proxyAutoCheckBox.setSelected(
regform.getRegistration().isProxyAutoConfigure());
proxyForceBypassCheckBox.setSelected(regform.getRegistration()
.isProxyForceBypassConfigure());
if (!StringUtils.isNullOrEmpty(
regform.getRegistration().getProxy()))
proxyField.setText(regform.getRegistration().getProxy());
if(!StringUtils.isNullOrEmpty(
regform.getRegistration().getProxyPort()))
proxyPortField.setText(regform.getRegistration().getProxyPort());
JLabel proxyLabel
= new JLabel(Resources.getString("plugin.sipaccregwizz.PROXY"));
JLabel proxyPortLabel
= new JLabel(Resources.getString("service.gui.PORT"));
JLabel transportLabel
= new JLabel(Resources.getString(
"plugin.sipaccregwizz.PREFERRED_TRANSPORT"));
JPanel proxyMainPanel
= new TransparentPanel(new BorderLayout(10, 10));
proxyField.getDocument().addDocumentListener(this);
proxyPortField.getDocument().addDocumentListener(this);
JPanel proxyPanel = new TransparentPanel(new BorderLayout(5, 5));
proxyPanel.add(proxyField, BorderLayout.CENTER);
JPanel proxyPortPanel = new TransparentPanel(
new BorderLayout(5, 5));
proxyPortPanel.add(proxyPortLabel, BorderLayout.WEST);
proxyPortPanel.add(proxyPortField, BorderLayout.EAST);
proxyPanel.add(proxyPortPanel, BorderLayout.EAST);
JPanel proxyNorthPanel =
new TransparentPanel(new GridLayout(2, 1, 10, 1));
labelsPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
valuesPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
labelsPanel.add(proxyLabel);
labelsPanel.add(transportLabel);
valuesPanel.add(proxyPanel);
valuesPanel.add(transportCombo);
proxyNorthPanel.add(proxyForceBypassCheckBox);
proxyNorthPanel.add(proxyAutoCheckBox);
proxyMainPanel.add(proxyNorthPanel, BorderLayout.NORTH);
proxyMainPanel.add(labelsPanel, BorderLayout.WEST);
proxyMainPanel.add(valuesPanel, BorderLayout.CENTER);
proxyMainPanel.setBorder(BorderFactory.createTitledBorder(
Resources.getString("plugin.sipaccregwizz.PROXY_OPTIONS")));
mainPanel.add(proxyMainPanel);
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(createKeepAlivePanel());
JPanel encryptionPanel
= new TransparentPanel(new GridLayout(1, 2, 2, 2));
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(encryptionPanel);
JPanel voicemailPanel = new TransparentPanel(new BorderLayout(10, 10));
JPanel voicemailUriPanelLabels
= new TransparentPanel(new GridLayout(0, 1, 10, 10));
JPanel voicemailUriPanelValues
= new TransparentPanel(new GridLayout(0, 1, 10, 10));
mwiCheckBox = new SIPCommCheckBox(
Resources.getString("plugin.sipaccregwizz.MWI"),
regform.getRegistration().isMessageWaitingIndicationsEnabled());
voicemailUriPanelLabels.add(new JLabel(
Resources.getString("plugin.sipaccregwizz.VOICEMAIL_URI")));
voicemailUriPanelLabels.add(new JLabel(
Resources.getString("plugin.sipaccregwizz.VOICEMAIL_CHECK_URI")));
voicemailUriPanelValues.add(voicemailAliasField);
voicemailUriPanelValues.add(voicemailCheckField);
voicemailPanel.setBorder(BorderFactory.createTitledBorder(
Resources.getString("plugin.sipaccregwizz.VOICEMAIL")));
voicemailAliasField.setText(regform.getRegistration().getVoicemailURI());
voicemailCheckField.setText(regform.getRegistration().getVoicemailCheckURI());
voicemailPanel.add(mwiCheckBox, BorderLayout.NORTH);
voicemailPanel.add(voicemailUriPanelLabels, BorderLayout.WEST);
voicemailPanel.add(voicemailUriPanelValues, BorderLayout.CENTER);
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(voicemailPanel);
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(createDTMFPanel());
this.add(mainPanel, BorderLayout.NORTH);
}
private void initCertificateAliases(String id)
{
certificate.removeAllItems();
certificate.insertItemAt(
Resources.getString("plugin.sipaccregwizz.NO_CERTIFICATE"),
0);
certificate.setSelectedIndex(0);
for(CertificateConfigEntry e
: SIPAccRegWizzActivator.getCertificateService()
.getClientAuthCertificateConfigs())
{
certificate.addItem(e);
if(e.getId().equals(id))
certificate.setSelectedItem(e);
}
}
/**
* Parse the server part from the sip id and set it to server as default
* value. If Advanced option is enabled Do nothing.
* @param serverAddress the address of the server
*/
public void setServerFieldAccordingToUIN(String serverAddress)
{
if (!regform.isModification() || !isServerOverridden)
{
serverField.setText(serverAddress);
//proxyField.setText(serverAddress);
}
}
/**
* Indicates that the state of the item has changed.
* @param e the <tt>ItemEvent</tt> that notified us
*/
public void itemStateChanged(ItemEvent e)
{
// do not set default values cause they are counted
// as overrrided ones
// if (e.getStateChange() == ItemEvent.SELECTED
// && e.getItem().equals("TLS"))
// {
// serverPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
// proxyPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
// }
// else
// {
// serverPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
// proxyPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
// }
}
/**
* Creates the keep alive panel.
* @return the created keep alive panel
*/
private Component createKeepAlivePanel()
{
JPanel emptyLabelPanel = new TransparentPanel();
emptyLabelPanel.setMaximumSize(new Dimension(40, 35));
JPanel keepAlivePanel
= new TransparentPanel(new BorderLayout(10, 10));
JPanel keepAliveLabels
= new TransparentPanel(new GridLayout(0, 1, 5, 5));
JPanel keepAliveValues
= new TransparentPanel(new GridLayout(0, 1, 5, 5));
JLabel keepAliveMethodLabel = new JLabel(
Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_METHOD"));
JLabel keepAliveIntervalLabel = new JLabel(
Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL"));
JLabel keepAliveIntervalExampleLabel = new JLabel(
Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL_INFO"));
keepAliveLabels.add(keepAliveMethodLabel);
keepAliveLabels.add(keepAliveIntervalLabel);
keepAliveLabels.add(emptyLabelPanel);
keepAliveIntervalExampleLabel.setForeground(Color.GRAY);
keepAliveIntervalExampleLabel
.setFont(keepAliveIntervalExampleLabel.getFont().deriveFont(8));
keepAliveIntervalExampleLabel
.setMaximumSize(new Dimension(40, 35));
keepAliveIntervalExampleLabel
.setBorder(BorderFactory.createEmptyBorder(0, 0, 8, 0));
keepAliveMethodBox.setSelectedItem(
SipAccountID.getDefaultStr(
ProtocolProviderFactory.KEEP_ALIVE_METHOD));
keepAliveValues.add(keepAliveMethodBox);
keepAliveValues.add(keepAliveIntervalValue);
keepAliveValues.add(keepAliveIntervalExampleLabel);
keepAlivePanel.add(keepAliveLabels, BorderLayout.WEST);
keepAlivePanel.add(keepAliveValues, BorderLayout.CENTER);
keepAlivePanel.setBorder(BorderFactory.createTitledBorder(
Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE")));
return keepAlivePanel;
}
/**
* Creates the DTMF panel.
* @return the created DTMF panel
*/
private Component createDTMFPanel()
{
JPanel emptyLabelPanel = new TransparentPanel();
// Labels.
JPanel dtmfLabels = new TransparentPanel(new GridLayout(0, 1, 5, 5));
JLabel dtmfMethodLabel = new JLabel(
Resources.getString("plugin.sipaccregwizz.DTMF_METHOD"));
JLabel minimalDTMFToneDurationLabel = new JLabel(
Resources.getString(
"plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION"));
dtmfLabels.add(dtmfMethodLabel);
dtmfLabels.add(minimalDTMFToneDurationLabel);
dtmfLabels.add(emptyLabelPanel);
// Values
JPanel dtmfValues = new TransparentPanel(new GridLayout(0, 1, 5, 5));
dtmfMethodBox.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
boolean isEnabled = false;
String selectedItem
= (String) dtmfMethodBox.getSelectedItem();
if(selectedItem != null
&& (selectedItem.equals(Resources.getString(
"plugin.sipaccregwizz.DTMF_AUTO"))
|| selectedItem.equals(Resources.getString(
"plugin.sipaccregwizz.DTMF_RTP")))
)
{
isEnabled = true;
}
dtmfMinimalToneDurationValue.setEnabled(isEnabled);
}
});
dtmfMethodBox.setSelectedItem(
regform.getRegistration().getDTMFMethod());
dtmfMinimalToneDurationValue
.setText(regform.getRegistration().getDtmfMinimalToneDuration());
JLabel dtmfMinimalToneDurationExampleLabel = new JLabel(
Resources.getString(
"plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION_INFO"));
dtmfMinimalToneDurationExampleLabel.setForeground(Color.GRAY);
dtmfMinimalToneDurationExampleLabel.setFont(
dtmfMinimalToneDurationExampleLabel.getFont().deriveFont(8));
dtmfMinimalToneDurationExampleLabel.setMaximumSize(
new Dimension(40, 35));
dtmfMinimalToneDurationExampleLabel.setBorder(
BorderFactory.createEmptyBorder(0, 0, 8, 0));
dtmfValues.add(dtmfMethodBox);
dtmfValues.add(dtmfMinimalToneDurationValue);
dtmfValues.add(dtmfMinimalToneDurationExampleLabel);
// DTMF panel
JPanel dtmfPanel = new TransparentPanel(new BorderLayout(10, 10));
dtmfPanel.setBorder(BorderFactory.createTitledBorder(
Resources.getString("plugin.sipaccregwizz.DTMF")));
dtmfPanel.add(dtmfLabels, BorderLayout.WEST);
dtmfPanel.add(dtmfValues, BorderLayout.CENTER);
return dtmfPanel;
}
/**
* Returns the server address.
* @return the server address
*/
String getServerAddress()
{
return serverField.getText();
}
/**
* Sets the server address.
* @param serverAddress the server address
*/
void setServerAddress(String serverAddress)
{
serverField.setText(serverAddress);
}
/**
* Enables/disables the server text field.
* @param isEnabled <tt>true</tt> to enable the server text field,
* <tt>false</tt> - otherwise
*/
void setServerEnabled(boolean isEnabled)
{
serverField.setEnabled(isEnabled);
}
/**
* Returns the authentication name.
* @return the authentication name
*/
String getAuthenticationName()
{
return authNameField.getText();
}
/**
* Sets the authentication name.
* @param authName the authentication name
*/
void setAuthenticationName(String authName)
{
authNameField.setText(authName);
}
/**
* Returns the server port.
* @return the server port
*/
String getServerPort()
{
return serverPortField.getText();
}
/**
* Sets the server port.
* @param serverPort the server port
*/
void setServerPort(String serverPort)
{
serverPortField.setText(serverPort);
}
/**
* Returns the proxy.
* @return the proxy
*/
String getProxy()
{
return proxyField.getText();
}
/**
* Sets the proxy address.
* @param proxyAddress the proxy address
*/
void setProxy(String proxyAddress)
{
proxyField.setText(proxyAddress);
}
/**
* Return the proxy port.
* @return the proxy port
*/
String getProxyPort()
{
return proxyPortField.getText();
}
/**
* Sets the proxy port.
* @param proxyPort the proxy port
*/
void setProxyPort(String proxyPort)
{
proxyPortField.setText(proxyPort);
}
/**
* Returns the selected transport.
* @return the selected transport
*/
String getSelectedTransport()
{
//Emil: it appears that sometimes the selected item may be null even
//though the combo box does not allow a null selection.
Object selectedItem = transportCombo.getSelectedItem();
if(selectedItem == null)
selectedItem = transportCombo.getItemAt(0);
return selectedItem.toString();
}
/**
* Sets the selected transport.
* @param preferredTransport the transport to select
*/
void setSelectedTransport(String preferredTransport)
{
transportCombo.setSelectedItem(preferredTransport);
}
/**
* Gets the ID of the selected client TLS certificate or <tt>null</tt> if no
* certificate is selected.
*
* @return the ID of the selected client TLS certificate or <tt>null</tt> if
* no certificate is selected.
*/
String getCertificateId()
{
Object selectedItem = certificate.getSelectedItem();
if((selectedItem != null)
&& (selectedItem instanceof CertificateConfigEntry))
{
return ((CertificateConfigEntry) selectedItem).getId();
}
return null;
}
/**
* Sets the selected client TLS certificate entry.
* @param id The ID of the entry to select.
*/
void setCertificateId(String id)
{
initCertificateAliases(id);
}
/**
* Returns the keep alive method.
* @return the keep alive method
*/
String getKeepAliveMethod()
{
Object selItem = keepAliveMethodBox.getSelectedItem();
if(selItem != null)
return selItem.toString();
else
return null;
}
/**
* Sets the keep alive method.
* @param keepAliveMethod the keep alive method
*/
void setKeepAliveMethod(String keepAliveMethod)
{
keepAliveMethodBox.setSelectedItem(keepAliveMethod);
}
/**
* Returns the keep alive interval
* @return the keep alive interval
*/
String getKeepAliveInterval()
{
return keepAliveIntervalValue.getText();
}
/**
* Returns the DTMF method.
* @return the DTMF method
*/
String getDTMFMethod()
{
Object selItem = dtmfMethodBox.getSelectedItem();
// By default sets DTMF mezthod to auto.
if(selItem == null)
{
return null;
}
String selString = selItem.toString();
if(selString.equals(
Resources.getString("plugin.sipaccregwizz.DTMF_RTP")))
{
return "RTP_DTMF";
}
else if(selString.equals(
Resources.getString(
"plugin.sipaccregwizz.DTMF_SIP_INFO")))
{
return "SIP_INFO_DTMF";
}
else if(selString.equals(
Resources.getString("plugin.sipaccregwizz.DTMF_INBAND")))
{
return "INBAND_DTMF";
}
else
{
return "AUTO_DTMF";
}
}
/**
* Sets the DTMF method.
* @param dtmfMethod the DTMF method
*/
void setDTMFMethod(String dtmfMethod)
{
if(dtmfMethod == null)
{
dtmfMethodBox.setSelectedItem(0);
}
else
{
String selString;
if(dtmfMethod.equals("RTP_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_RTP");
}
else if(dtmfMethod.equals("SIP_INFO_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_SIP_INFO");
}
else if(dtmfMethod.equals("INBAND_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_INBAND");
}
else
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_AUTO");
}
dtmfMethodBox.setSelectedItem(selString);
}
}
/**
* Returns the minimal DTMF tone duration.
*
* @return The minimal DTMF tone duration.
*/
String getDtmfMinimalToneDuration()
{
return dtmfMinimalToneDurationValue.getText();
}
/**
* Sets the keep alive interval
* @param keepAliveInterval the keep alive interval
*/
void setKeepAliveInterval(String keepAliveInterval)
{
keepAliveIntervalValue.setText(keepAliveInterval);
}
/**
* Returns the voicemail URI.
* @return the voicemail URI.
*/
String getVoicemailURI()
{
return voicemailAliasField.getText();
}
/**
* Sets the voicemail URI.
* @param voicemailURI the voicemail URI.
*/
void setVoicemailURI(String voicemailURI)
{
voicemailAliasField.setText(voicemailURI);
}
/**
* Returns the voicemail check URI.
* @return the voicemail URI.
*/
String getVoicemailCheckURI()
{
return voicemailCheckField.getText();
}
/**
* Sets the voicemail check URI.
* @param voicemailCheckURI the voicemail URI.
*/
void setVoicemailCheckURI(String voicemailCheckURI)
{
voicemailCheckField.setText(voicemailCheckURI);
}
/**
* Returns is message waiting indications is enabled.
* @return is message waiting indications is enabled.
*/
boolean isMessageWaitingEnabled()
{
return mwiCheckBox.isSelected();
}
/**
* Sets is message waiting indications is enabled.
* @param enabled is message waiting indications is enabled.
*/
void setMessageWaitingIndications(boolean enabled)
{
mwiCheckBox.setSelected(enabled);
}
/**
* Sets the minimal DTMF tone duration
*
* @param dtmfMinimalToneDuration
*/
void setDtmfMinimalToneDuration(String dtmfMinimalToneDuration)
{
dtmfMinimalToneDurationValue.setText(dtmfMinimalToneDuration);
}
/**
* Sets the <tt>serverOverridden</tt> property.
* @param isServerOverridden <tt>true</tt> to indicate that the server is
* overridden, <tt>false</tt> - otherwise
*/
void setServerOverridden(boolean isServerOverridden)
{
this.isServerOverridden = isServerOverridden;
}
/**
* Indicates if the proxy auto-configure is enabled.
* @return <tt>true</tt> if the proxy auto-configuration is enabled,
* <tt>false</tt> - otherwise
*/
boolean isProxyAutoConfigureEnabled()
{
return proxyAutoCheckBox.isSelected();
}
/**
* Enables/disables the proxy auto-configuration.
* @param isEnable <tt>true</tt> to enable proxy auto-configuration,
* <tt>false</tt> - otherwise
*/
void enablesProxyAutoConfigure(boolean isEnable)
{
proxyAutoCheckBox.setSelected(isEnable);
proxyField.setEnabled(!isEnable);
proxyPortField.setEnabled(!isEnable);
transportCombo.setEnabled(!isEnable);
regform.reValidateInput();
}
/**
* Indicates if the proxy force bypass-configure is enabled.
* @return <tt>true</tt> if the proxy force bypass-configuration is
* enabled, <tt>false</tt> - otherwise
*/
boolean isProxyForceBypassConfigureEnabled()
{
return proxyForceBypassCheckBox.isSelected();
}
/**
* Enables/disables the proxy force bypass-configuration.
*
* @param isEnable <tt>true</tt> to enable force proxy bypass-
* configuration, <tt>false</tt> - otherwise
*/
void enablesProxyForceBypassConfigure(boolean isEnable)
{
proxyForceBypassCheckBox.setSelected(isEnable);
regform.reValidateInput();
}
/**
* Handles the <tt>DocumentEvent</tt> triggered when user types in the
* proxy or port field. Enables or disables the "Next" wizard button
* according to whether the fields are empty.
* @param e the <tt>DocumentEvent</tt> that notified us */
public void insertUpdate(DocumentEvent e)
{
regform.reValidateInput();
}
/**
* Handles the <tt>DocumentEvent</tt> triggered when user deletes letters
* from the proxy and port fields. Enables or disables the "Next" wizard
* button according to whether the fields are empty.
* @param e the <tt>DocumentEvent</tt> that notified us
*/
public void removeUpdate(DocumentEvent e)
{
regform.reValidateInput();
}
/**
* Not used.
*
* @param e the document event
*/
public void changedUpdate(DocumentEvent e){}
/**
* Whether current inserted values into the panel are valid and enough
* to continue with account creation/modification.
* Checks whether proxy field values are ok to continue with
* account creating.
*
* @return whether the input values are ok to continue with account
* creation/modification.
*/
public boolean isValidated()
{
if(!proxyAutoCheckBox.isSelected())
{
return
proxyField.getText() != null
&& proxyField.getText().length() > 0
&& proxyPortField.getText() != null
&& proxyPortField.getText().length() > 0;
}
return true;
}
}