/*
* NewServerInfoDialog.java
*
* Created on den 25 september 2001, 23:05
*/
package ip1.u9;
import ip1.u7.b.ServerInfo;
import javax.swing.*;
/** Dialog som ger användaren möjlighet att skapa ett nytt eller ändra ett redan
* existerande Konto (ServerInfo). Följande villkor måste uppfyllas:
* 1. Kontonamnet skall vara unikt.
* 2. Mailserver skall anges.
* 3. Vidareförmedla inline och/eller vidareförmedla som bifogad fil skall anges.
* Övriga fält är frivilliga.
*
* @author Henrik Johansson, DS80
* @version ht2001
*/
public class ServerInfoDialog extends javax.swing.JDialog {
static final int CANCEL = 0;
static final int NEW = 1;
static final int UPDATE = 2;
static final int SERVER_UPDATE = 3;
private ServerInfo serverInfo = null;
private DefaultComboBoxModel model;
private boolean update = false;
private int result;
/** Skapar en ny NewServerInfoDialog. För att skapa ett nytt konto.
*
*@param parent
*@param dcbm Modellen som det nya kontot skall vara en del av
*/
public ServerInfoDialog(java.awt.Frame parent, DefaultComboBoxModel dcbm) {
this(parent, null, dcbm);
}
/** Skapar en ny NewServerInfoDialog. För att ändra ett redan existerande konto.
*
*@param parent
*@param si Kontot som skall uppdateras.
*@param dcbm Modellen kontot är en del av.
*/
public ServerInfoDialog(java.awt.Frame parent, ServerInfo si, DefaultComboBoxModel dcbm) {
super(parent, true);
model = dcbm;
initComponents();
if(si != null) {
update = true;
result = UPDATE;
initServerInfo(si);
} else
result = NEW;
setSize(600, 300);
}
//Sätter fälten i denna dialog till de som finns i si
private void initServerInfo(ServerInfo si) {
serverField.setText(si.getServer());
emailField.setText(si.getEmailAddress());
nameField.setText(si.getName());
accountField.setText(si.getAccountName());
usernameField.setText(si.getUsername());
passwordField.setText(si.getPassword());
signature.setText(si.getSignature());
forwardInline.setSelected(si.isForwardInline());
forwardAttachment.setSelected(si.isForwardAttachment());
}
// Kontrollerar om det av användaren angivna kontonamnet är ok (inte existerar tidigare)
private boolean badAccountName() {
boolean ret = false;
for(int i = 0; i < model.getSize(); i++)
if(((ServerInfo) model.getElementAt(i)).getAccountName().equals(accountField.getText())) {
ret = true;
break;
}
return ret;
}
/* Kontrollerar om villkoren är uppfyllda, om så är fallet skapas
* ett nytt ServerInfo-objekt med de värden användaren angett i de
* olika fälten som grund*/
private boolean setServerInfo() {
if(!update && badAccountName())
JOptionPane.showMessageDialog(this, "Namnet på ditt nya\nkonto måste vata unikt", "Felaktighet", JOptionPane.ERROR_MESSAGE);
else if(serverField.getText().equals("") || accountField.getText().equals(""))
JOptionPane.showMessageDialog(this, "Kontonamn och mailserver måste anges", "Felaktighet", JOptionPane.ERROR_MESSAGE);
else if(! forwardInline.isSelected() && !forwardAttachment.isSelected())
JOptionPane.showMessageDialog(this, "Åtminstone ett av alternativen\n" +
"vidarebefodra mail inline eller\n" +
"vidarebefodra mail som bifogad fil\n" +
"måste väljas", "Felaktighet", JOptionPane.ERROR_MESSAGE);
else {
serverInfo = new ServerInfo(serverField.getText(), usernameField.getText(),
passwordField.getText(), nameField.getText(),
emailField.getText(), accountField.getText(),
forwardInline.isSelected(), forwardAttachment.isSelected(),
signature.getText());
return true;
}
return false;
}
public ServerInfo getServerInfo() {
return serverInfo;
}
public boolean hasServerInfo() {
return serverInfo != null;
}
/** Returnerar resultatet av kontoförändringen.
*
*@return Resultatkod
*/
public int getResult() {
return result;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
serverField = new javax.swing.JTextField();
emailField = new javax.swing.JTextField();
nameField = new javax.swing.JTextField();
accountField = new javax.swing.JTextField();
usernameField = new javax.swing.JTextField();
passwordField = new javax.swing.JPasswordField();
jPanel1 = new javax.swing.JPanel();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
forwardInline = new javax.swing.JCheckBox();
forwardAttachment = new javax.swing.JCheckBox();
signature = new javax.swing.JTextArea();
jLabel4 = new javax.swing.JLabel();
getContentPane().setLayout(new java.awt.GridBagLayout());
java.awt.GridBagConstraints gridBagConstraints1;
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
jLabel1.setText("Ditt Namn:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 3, 3);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel1, gridBagConstraints1);
jLabel2.setText("E-postadress:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 2;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 3, 0);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel2, gridBagConstraints1);
jLabel3.setText("Mailserver:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 2;
gridBagConstraints1.gridy = 0;
gridBagConstraints1.insets = new java.awt.Insets(5, 5, 3, 0);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel3, gridBagConstraints1);
jLabel5.setText("Kontonamn:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 0;
gridBagConstraints1.insets = new java.awt.Insets(5, 5, 3, 3);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel5, gridBagConstraints1);
jLabel6.setText("Anv\u00e4ndarnamn:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 3, 3);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel6, gridBagConstraints1);
jLabel7.setText("L\u00f6senord");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 2;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 3, 0);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel7, gridBagConstraints1);
serverField.addInputMethodListener(new java.awt.event.InputMethodListener() {
public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
serverFieldInputMethodTextChanged(evt);
}
public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
}
});
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 3;
gridBagConstraints1.gridy = 0;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(5, 3, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(serverField, gridBagConstraints1);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 3;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(3, 3, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(emailField, gridBagConstraints1);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(3, 0, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(nameField, gridBagConstraints1);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.gridy = 0;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(5, 0, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(accountField, gridBagConstraints1);
usernameField.addInputMethodListener(new java.awt.event.InputMethodListener() {
public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
usernameFieldInputMethodTextChanged(evt);
}
public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
}
});
usernameField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
usernameFieldKeyPressed(evt);
}
});
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(3, 0, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(usernameField, gridBagConstraints1);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 3;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(3, 3, 3, 5);
gridBagConstraints1.weightx = 1.0;
getContentPane().add(passwordField, gridBagConstraints1);
okButton.setText("OK");
okButton.setPreferredSize(new java.awt.Dimension(71, 27));
okButton.setMaximumSize(new java.awt.Dimension(71, 27));
okButton.setMinimumSize(new java.awt.Dimension(71, 27));
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
jPanel1.add(okButton);
cancelButton.setText("Avbryt");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
jPanel1.add(cancelButton);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 6;
gridBagConstraints1.gridwidth = 4;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jPanel1, gridBagConstraints1);
forwardInline.setForeground(new java.awt.Color(102, 102, 153));
forwardInline.setText("Vidarebefodra mail inline:");
forwardInline.setPreferredSize(new java.awt.Dimension(225, 25));
forwardInline.setMaximumSize(new java.awt.Dimension(225, 25));
forwardInline.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
forwardInline.setMinimumSize(new java.awt.Dimension(225, 25));
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 3;
gridBagConstraints1.gridwidth = 2;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 3, 3);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(forwardInline, gridBagConstraints1);
forwardAttachment.setSelected(true);
forwardAttachment.setForeground(new java.awt.Color(102, 102, 153));
forwardAttachment.setText("Vidarebefodra mail som bifogad fil: ");
forwardAttachment.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 2;
gridBagConstraints1.gridy = 3;
gridBagConstraints1.gridwidth = 2;
gridBagConstraints1.insets = new java.awt.Insets(3, 3, 3, 5);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(forwardAttachment, gridBagConstraints1);
signature.setBorder(new javax.swing.border.EtchedBorder());
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 5;
gridBagConstraints1.gridwidth = 4;
gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints1.insets = new java.awt.Insets(3, 10, 10, 10);
gridBagConstraints1.weightx = 1.0;
gridBagConstraints1.weighty = 1.0;
getContentPane().add(signature, gridBagConstraints1);
jLabel4.setText("Signatur:");
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 4;
gridBagConstraints1.insets = new java.awt.Insets(3, 5, 0, 3);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(jLabel4, gridBagConstraints1);
pack();
}//GEN-END:initComponents
private void usernameFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_usernameFieldKeyPressed
if(update)
result = SERVER_UPDATE;
}//GEN-LAST:event_usernameFieldKeyPressed
private void usernameFieldInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_usernameFieldInputMethodTextChanged
if(update)
result = SERVER_UPDATE;
}//GEN-LAST:event_usernameFieldInputMethodTextChanged
private void serverFieldInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_serverFieldInputMethodTextChanged
if(update)
result = SERVER_UPDATE;
}//GEN-LAST:event_serverFieldInputMethodTextChanged
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
result = CANCEL;
setVisible(false);
}//GEN-LAST:event_cancelButtonActionPerformed
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
if(setServerInfo())
setVisible(false);
}//GEN-LAST:event_okButtonActionPerformed
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
setVisible(false);
}//GEN-LAST:event_closeDialog
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JTextField serverField;
private javax.swing.JTextField emailField;
private javax.swing.JTextField nameField;
private javax.swing.JTextField accountField;
private javax.swing.JTextField usernameField;
private javax.swing.JPasswordField passwordField;
private javax.swing.JPanel jPanel1;
private javax.swing.JButton okButton;
private javax.swing.JButton cancelButton;
private javax.swing.JCheckBox forwardInline;
private javax.swing.JCheckBox forwardAttachment;
private javax.swing.JTextArea signature;
private javax.swing.JLabel jLabel4;
// End of variables declaration//GEN-END:variables
}