001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Fayçal SOUGRATI, Vincent Pautret, Marche Mikael
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023:
024: package org.objectweb.salome_tmf.ihm.admin;
025:
026: import java.awt.BorderLayout;
027: import java.awt.Container;
028: import java.awt.Dimension;
029: import java.awt.Frame;
030: import java.awt.event.ActionEvent;
031: import java.awt.event.ActionListener;
032: import java.util.ArrayList;
033: import java.util.Iterator;
034:
035: import javax.swing.BorderFactory;
036: import javax.swing.Box;
037: import javax.swing.BoxLayout;
038: import javax.swing.DefaultListModel;
039: import javax.swing.JButton;
040: import javax.swing.JDialog;
041: import javax.swing.JList;
042: import javax.swing.JPanel;
043: import javax.swing.JScrollPane;
044: import javax.swing.ListSelectionModel;
045:
046: import org.objectweb.salome_tmf.data.AdminProjectData;
047: import org.objectweb.salome_tmf.ihm.admin.models.UserListRenderer;
048: import org.objectweb.salome_tmf.ihm.languages.Language;
049:
050: /**
051: * Classe qui représentant la fenêtre de dialogue permettant d'ajouter un
052: * nouvel utilisateur à un groupe
053: * @author teaml039
054: * @version : 0.1
055: */
056: public class AddUser extends JDialog {
057:
058: /**
059: * Liste des utilisateurs à ajouter
060: */
061: private ArrayList userListResult;
062:
063: /**
064: * Modèle de données pour la liste d'utilisateurs
065: */
066: private DefaultListModel listModel;
067:
068: /**
069: * Liste des utilisateurs
070: */
071: private JList userList;
072: /******************************************************************************/
073: /** CONSTRUCTEUR ***/
074: /******************************************************************************/
075: AdminProjectData pAdminProjectData;
076:
077: /**
078: * Constructeur de la fenêtre
079: */
080: public AddUser(AdminProjectData adminProjectData) {
081:
082: // Pour maintenir le focus sur la fenêtre
083: super (new Frame(), true);
084: pAdminProjectData = adminProjectData;
085: listModel = new DefaultListModel();
086: userList = new JList(listModel);
087: JButton addButton = new JButton(Language.getInstance().getText(
088: "Ajouter"));
089: addButton.setToolTipText(Language.getInstance().getText(
090: "Ajouter_un_utilisateur"));
091: addButton.addActionListener(new ActionListener() {
092: public void actionPerformed(ActionEvent e) {
093: userListResult = new ArrayList();
094: for (int i = 0; i < userList.getSelectedValues().length; i++) {
095: userListResult.add(userList.getSelectedValues()[i]);
096: }
097: AddUser.this .dispose();
098: }
099: });
100:
101: JButton cancelButton = new JButton(Language.getInstance()
102: .getText("Annuler"));
103: cancelButton.setToolTipText(Language.getInstance().getText(
104: "Annuler"));
105: cancelButton.addActionListener(new ActionListener() {
106: public void actionPerformed(ActionEvent e) {
107: AddUser.this .dispose();
108: }
109: });
110:
111: JPanel buttonGroup = new JPanel();
112: buttonGroup.setLayout(new BoxLayout(buttonGroup,
113: BoxLayout.X_AXIS));
114: buttonGroup.setBorder(BorderFactory.createEmptyBorder(0, 10,
115: 10, 10));
116: buttonGroup.add(Box.createHorizontalGlue());
117: buttonGroup.add(addButton);
118: buttonGroup.add(Box.createRigidArea(new Dimension(10, 0)));
119: buttonGroup.add(cancelButton);
120:
121: for (Iterator iter = pAdminProjectData
122: .getNotInProjectUserSetFromModel().iterator(); iter
123: .hasNext();) {
124: listModel.addElement(iter.next());
125: }
126:
127: userList
128: .setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
129: userList.setSelectedIndex(0);
130: userList.setCellRenderer(new UserListRenderer());
131: userList.setVisibleRowCount(5);
132: JScrollPane userListScrollPane = new JScrollPane(userList);
133:
134: userListScrollPane.setBorder(BorderFactory
135: .createTitledBorder(Language.getInstance().getText(
136: "Utilisateurs_possibles")));
137:
138: Container contentPaneFrame = this .getContentPane();
139: contentPaneFrame.setLayout(new BoxLayout(contentPaneFrame,
140: BoxLayout.Y_AXIS));
141: contentPaneFrame.add(userListScrollPane, BorderLayout.CENTER);
142: contentPaneFrame.add(buttonGroup);
143:
144: this .pack();
145: this .setLocationRelativeTo(this .getParent());
146: this .setVisible(true);
147: this .setTitle(Language.getInstance().getText(
148: "Ajouter_un_nouvel_utilisateur"));
149: this .setFocusableWindowState(true);
150:
151: } // Fin du constructeur AddUser/0
152:
153: /******************************************************************************/
154: /** METHODES PUBLIQUES ***/
155: /******************************************************************************/
156:
157: /**
158: * Retourne la liste des utilisateurs à ajouter
159: * @return la liste des utilisateurs à ajouter
160: */
161: public ArrayList getUserList() {
162: return userListResult;
163: } // Fin de la méthode getUserList/0
164:
165: } // Fin de la class AddUser
|