/* * Copyright (C) 2008 Universidade Federal de Campina Grande * * This file is part of OurGrid. * * OurGrid is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 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 Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package org.ourgrid.peer.ui.async.gui; import javax.swing.JOptionPane; import org.ourgrid.peer.ui.async.client.PeerAsyncInitializer; import org.ourgrid.peer.ui.async.util.XMPPUtils; /** * AddUserDialog provides a simple mechanism for the user to add an User. */ public class AddUserDialog extends javax.swing.JDialog { private static final String DEFAULT_SECURE_PORT = "5223"; private static final String DEFAULT_SERVER_PORT = "5222"; private static final long serialVersionUID = 1L; /** A return status code - returned if Cancel button has been pressed */ public static final int RET_CANCEL = 0; /** A return status code - returned if OK button has been pressed */ public static final int RET_OK = 1; /** Creates new form AddUserDialog */ public AddUserDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } /** @return the return status of this dialog - one of RET_OK or RET_CANCEL */ public int getReturnStatus() { return returnStatus; } /** 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. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); //addUserCheckBox = new javax.swing.JCheckBox(); userRegistrationPanel = new org.ourgrid.peer.ui.async.gui.UserRegistrationPanel(); setTitle("Add broker"); setModal(true); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); okButton.setText("Add"); okButton.setName("Add"); cancelButton.setText("Cancel"); //addUserCheckBox.setText("Add user to XMPP"); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap(278, Short.MAX_VALUE) .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 67, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(cancelButton) .addContainerGap()) .add(layout.createSequentialGroup() .addContainerGap() //.add(addUserCheckBox) .addContainerGap(281, Short.MAX_VALUE)) .add(userRegistrationPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 430, Short.MAX_VALUE) ); layout.linkSize(new java.awt.Component[] {cancelButton, okButton}, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(userRegistrationPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(8, 8, 8) //.add(addUserCheckBox) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 8, Short.MAX_VALUE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(cancelButton) .add(okButton)) .addContainerGap()) ); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); pack(); }// </editor-fold>//GEN-END:initComponents /** * Confirm the addition of a new User. * @param evt The event the represents the clicking of the ok button. */ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed if (!addPeerUser()) { return; } doClose(RET_OK); }//GEN-LAST:event_okButtonActionPerformed /** * Add a new peer user to the user File. * @return <code>true</code> if the peer user have been added sucesfully. */ private boolean addPeerUser() { String userName = userRegistrationPanel.getUserName(); String userServer = userRegistrationPanel.getServer(); String login = userName + '@' + userServer; if (!addPeerUser(login)) { return false; } return true; } /** * Add the peer user that has the login and password provided. * @param login The login of the peer user that will be added. * @param password The password of the peer user that will be added. * @return <code>true</code> if the peer user have been added successfully. */ private boolean addPeerUser(String login) { PeerAsyncInitializer.getInstance().getComponentClient().addUser(login); return true; } /** * Creates a new XMPP Acount to the XMPP User added. * @param userName The name of the XMPP User added. * @param userServer The server of XMPP User added. * @param password The password of XMPP User added. */ private void addXMPPUser(String userName, String userServer, String password) { try { new XMPPUtils().addUser( userServer, userName, password, DEFAULT_SERVER_PORT, DEFAULT_SECURE_PORT); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error on creating user", JOptionPane.ERROR_MESSAGE); } } /** * Cancel and close this dialog. * @param evt The event the represents the clicking of the cancel button. */ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed doClose(RET_CANCEL); }//GEN-LAST:event_cancelButtonActionPerformed /** Closes this dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog doClose(RET_CANCEL); }//GEN-LAST:event_closeDialog /** * Close this dialog using the status provided. * @param retStatus The status of this dialog. */ private void doClose(int retStatus) { returnStatus = retStatus; setVisible(false); dispose(); } /** * Main method. * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { AddUserDialog dialog = new AddUserDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables //private javax.swing.JCheckBox addUserCheckBox; private javax.swing.JButton cancelButton; private javax.swing.JButton okButton; private org.ourgrid.peer.ui.async.gui.UserRegistrationPanel userRegistrationPanel; // End of variables declaration//GEN-END:variables private int returnStatus = RET_CANCEL; }