View Javadoc

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.dialog;
21  
22  import java.awt.BorderLayout;
23  import java.awt.Dimension;
24  import java.awt.GridLayout;
25  import java.awt.Toolkit;
26  import java.awt.event.ActionEvent;
27  import java.awt.event.ActionListener;
28  
29  import javax.swing.ImageIcon;
30  import javax.swing.JButton;
31  import javax.swing.JDialog;
32  import javax.swing.JLabel;
33  import javax.swing.JPanel;
34  import javax.swing.border.TitledBorder;
35  
36  import org.apache.log4j.Logger;
37  
38  import ui.Messages;
39  import ui.command.CommandExecutor;
40  import ui.command.IO.SaveServiceCommand;
41  import ui.panel.ServicePanel;
42  import base.service.Service;
43  
44  @SuppressWarnings("serial") //$NON-NLS-1$
45  public class ServiceDialog extends JDialog {
46  
47  	private static final transient Logger logger = Logger
48  			.getLogger(ServiceDialog.class.getName());
49  
50  	private JPanel contentPanel;
51  
52  	private JPanel buttonPanel;
53  
54  	private JButton saveServiceButton;
55  
56  	private JButton clearServiceDataButton;
57  
58  	private ServicePanel servicePanel;
59  
60  	private Service service;
61  
62  	private boolean createService = false;
63  
64  	public ServiceDialog() {
65  		createService = true;
66  		initialize();
67  	}
68  
69  	public ServiceDialog(Service service) {
70  		this.service = service;
71  		if (service == null)
72  			createService = true;
73  		initialize();
74  	}
75  
76  	protected void initialize() {
77  		this.setResizable(false);
78  		this.setSize(550, 600);
79  		// Center the dialog
80  		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
81  		Dimension frameSize = this.getSize();
82  		if (frameSize.height > screenSize.height) {
83  			frameSize.height = screenSize.height;
84  		}
85  		if (frameSize.width > screenSize.width) {
86  			frameSize.width = screenSize.width;
87  		}
88  		this.setLocation((screenSize.width - frameSize.width) / 2,
89  				(screenSize.height - frameSize.height) / 2);
90  
91  		this.setContentPane(getContentPanel());
92  		this.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
93  	}
94  
95  	/***
96  	 * @return Returns the contentPanel.
97  	 */
98  	protected JPanel getContentPanel() {
99  		if (contentPanel == null) {
100 			contentPanel = new JPanel();
101 			contentPanel.setLayout(new BorderLayout());
102 			contentPanel.add(getServicePanel(), BorderLayout.CENTER);
103 			contentPanel.add(getButtonPanel(), BorderLayout.SOUTH);
104 		}
105 		return contentPanel;
106 	}
107 
108 	/***
109 	 * @return Returns the servicePanel.
110 	 */
111 	protected ServicePanel getServicePanel() {
112 		if (servicePanel == null) {
113 			servicePanel = new ServicePanel(service);
114 		}
115 		return servicePanel;
116 	}
117 
118 	/***
119 	 * @return Returns the buttonPanel.
120 	 */
121 	protected JPanel getButtonPanel() {
122 		if (buttonPanel == null) {
123 			buttonPanel = new JPanel();
124 			TitledBorder titledBorder = new TitledBorder(Messages.getString("dialog.availableactions")); //$NON-NLS-1$
125 			buttonPanel.setBorder(titledBorder);
126 			buttonPanel.setLayout(new GridLayout(1, 4));
127 			buttonPanel.add(new JLabel("")); //$NON-NLS-1$
128 			buttonPanel.add(getSaveServiceButton());
129 			buttonPanel.add(getClearServiceDataButton());
130 			buttonPanel.add(new JLabel("")); //$NON-NLS-1$
131 		}
132 		return buttonPanel;
133 	}
134 
135 	/***
136 	 * @return Returns the clearServiceDataButton.
137 	 */
138 	protected JButton getClearServiceDataButton() {
139 		if (clearServiceDataButton == null) {
140 			clearServiceDataButton = new JButton(Messages.getString("button.clear")); //$NON-NLS-1$
141 			clearServiceDataButton.setIcon(new ImageIcon(this.getClass()
142 					.getResource("/icon/16x16/actions/view-refresh.png"))); //$NON-NLS-1$
143 
144 			clearServiceDataButton.addActionListener(new ActionListener() {
145 				public void actionPerformed(ActionEvent arg0) {
146 					logger.debug("actionPerformed clearServiceDataButton"); //$NON-NLS-1$
147 					getServicePanel().clearServiceData();
148 				}
149 			});
150 		}
151 		return clearServiceDataButton;
152 	}
153 
154 	/***
155 	 * @return Returns the saveServiceButton.
156 	 */
157 	protected JButton getSaveServiceButton() {
158 		if (saveServiceButton == null) {
159 			saveServiceButton = new JButton(Messages.getString("button.save")); //$NON-NLS-1$
160 			saveServiceButton.setIcon(new ImageIcon(this.getClass()
161 					.getResource("/icon/16x16/actions/document-save.png"))); //$NON-NLS-1$
162 
163 			saveServiceButton.addActionListener(new ActionListener() {
164 				public void actionPerformed(ActionEvent arg0) {
165 					logger.debug("actionPerformed saveServiceButton"); //$NON-NLS-1$
166 					SaveServiceCommand saveServiceCommand = new SaveServiceCommand(
167 							getServicePanel(), service, createService);
168 					CommandExecutor.getInstance().executeCommand(
169 							saveServiceCommand, true);
170 					if (saveServiceCommand.getStatus() == SaveServiceCommand.SUCCESS_STATUS)
171 						setVisible(false);
172 				}
173 			});
174 		}
175 		return saveServiceButton;
176 	}
177 
178 }