/* * 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 }