1 /********************************************************************************
2 * InternetCafe is a software solution that helps the management of Cybercafes
3 * according with the ITALIAN DECREE LAW ON ANTI-TERROR MEASURES, 27 JULY 2005.
4 * Copyright (C) 2006 Guido Angelo Ingenito
5
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 *******************************************************************************/
20 package ui.command.IO;
21
22 import ui.Messages;
23 import ui.command.Command;
24 import ui.panel.EAddressPanel;
25 import base.Control;
26 import base.InternetCafe;
27 import base.user.EAddress;
28 import base.user.User;
29
30 public class SaveEAddressCommand extends Command {
31
32 private final User user;
33
34 private final EAddressPanel eAddressPanel;
35
36 /***
37 * @param user
38 * The user owner of the eAddress.
39 * @param eAddressPanel
40 * The EAddressPanel from which must be retrieved the eAddress
41 * data.
42 */
43 public SaveEAddressCommand(User user, EAddressPanel eAddressPanel) {
44 this.user = user;
45 this.eAddressPanel = eAddressPanel;
46 }
47
48
49
50
51
52
53 @Override
54 protected void prologo() {
55 InternetCafe.setStatusBarMessage(Messages.getString("command.saveeaddresscommand.savingemail"));
56 String email = this.eAddressPanel.getEAddress();
57 if (Control.isValidEMailAddress(email)) {
58 eAddressPanel.setAddressError(false);
59 setStatus(EXECUTE_STATUS);
60 } else {
61 eAddressPanel.setAddressError(true);
62 setStatus(ERROR_STATUS);
63 }
64 }
65
66
67
68
69
70
71 @Override
72 protected void execution() throws Exception {
73 switch (getStatus()) {
74 case ERROR_STATUS:
75 break;
76 case VETOED_STATUS:
77 break;
78 case EXECUTE_STATUS:
79 EAddress address = user.newEAddress(this.eAddressPanel
80 .getEAddress());
81 address.setDescription(this.eAddressPanel.getEAddressDescription());
82 user.addEAddress(address);
83 setStatus(SUCCESS_STATUS);
84 break;
85 }
86 }
87 }