package org.docear.plugin.services.features.io.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import org.docear.plugin.core.DocearController;
import org.docear.plugin.services.features.io.DocearProxyAuthenticator;
import org.freeplane.core.util.TextUtils;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
public class ProxyAuthenticationPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField hostField;
private JTextField portField;
private JTextField usernameField;
private JPasswordField passwordField;
private JCheckBox chckbxUseProxy;
/**
* Create the panel.
*/
public ProxyAuthenticationPanel() {
setLayout(new FormLayout(new ColumnSpec[] {
FormFactory.RELATED_GAP_COLSPEC,
FormFactory.DEFAULT_COLSPEC,
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,},
new RowSpec[] {
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
RowSpec.decode("10dlu"),
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,}));
JLabel lblTheProxyNeeds = new JLabel(TextUtils.getText("docear.proxy.connect.infotext.label"));
add(lblTheProxyNeeds, "4, 2");
chckbxUseProxy = new JCheckBox(TextUtils.getText("docear.proxy.connect.proxy.checkbox"));
add(chckbxUseProxy, "4, 4");
JLabel lblHost = new JLabel(TextUtils.getText("docear.proxy.connect.host.label") + ":");
add(lblHost, "2, 6, right, default");
hostField = new JTextField(DocearController.getPropertiesController().getProperty(DocearProxyAuthenticator.DOCEAR_PROXY_HOST, ""));
add(hostField, "4, 6, fill, default");
hostField.setColumns(10);
JLabel lblPort = new JLabel(TextUtils.getText("docear.proxy.connect.port.label") + ":");
add(lblPort, "2, 8, right, default");
portField = new JTextField(DocearController.getPropertiesController().getProperty(DocearProxyAuthenticator.DOCEAR_PROXY_PORT, ""));
add(portField, "4, 8, fill, default");
portField.setColumns(10);
JLabel lblUsername = new JLabel(TextUtils.getText("docear.proxy.connect.username.label") + ":");
add(lblUsername, "2, 10, right, default");
usernameField = new JTextField(DocearController.getPropertiesController().getProperty(DocearProxyAuthenticator.DOCEAR_PROXY_USERNAME, ""));
add(usernameField, "4, 10, fill, default");
usernameField.setColumns(10);
JLabel lblPassword = new JLabel(TextUtils.getText("docear.proxy.connect.password.label") + ":");
add(lblPassword, "2, 12, right, default");
passwordField = new JPasswordField();
add(passwordField, "4, 12, fill, default");
chckbxUseProxy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
hostField.setEnabled(chckbxUseProxy.isSelected());
portField.setEnabled(chckbxUseProxy.isSelected());
usernameField.setEnabled(chckbxUseProxy.isSelected());
passwordField.setEnabled(chckbxUseProxy.isSelected());
}
});
chckbxUseProxy.setSelected(DocearController.getPropertiesController().getBooleanProperty(DocearProxyAuthenticator.DOCEAR_USE_PROXY));
portField.addKeyListener(new KeyListener( ) {
public void keyTyped(KeyEvent e) {
if(!Character.isDigit(e.getKeyChar())){
e.consume();
}
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent e) {
}
});
}
public JTextField getHostField() {
return hostField;
}
public JTextField getPortField() {
return portField;
}
public JTextField getUsernameField() {
return usernameField;
}
public JPasswordField getPasswordField() {
return passwordField;
}
public JCheckBox getChckbxUseProxy() {
return chckbxUseProxy;
}
}