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.table;
21  
22  import javax.swing.DefaultCellEditor;
23  import javax.swing.JComboBox;
24  import javax.swing.JTable;
25  import javax.swing.ListSelectionModel;
26  import javax.swing.table.TableColumn;
27  
28  import ui.table.model.ServiceTableModel;
29  import ui.util.IntegerEditor;
30  import base.service.ServiceRateType;
31  
32  @SuppressWarnings("serial") //$NON-NLS-1$
33  public class ServiceTable extends JTable {
34  	/***
35  	 * @param serviceTableSorter
36  	 */
37  	public ServiceTable(TableSorter serviceTableSorter) {
38  		super(serviceTableSorter);
39  		initialize();
40  	}
41  
42  	protected void initialize() {
43  		this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
44  		TableColumn idColumn = this.getColumnModel().getColumn(
45  				ServiceTableModel.SERVICE_ID_COLUMN);
46  		idColumn.setPreferredWidth(30);
47  		idColumn.setMaxWidth(60);
48  		TableColumn rateTypeColumn = this.getColumnModel().getColumn(
49  				ServiceTableModel.SERVICE_RATE_TYPE_COLUMN);
50  		DefaultCellEditor rateTypeCellEditor = new DefaultCellEditor(
51  				getServiceRateTypeComboBox());
52  		rateTypeCellEditor.setClickCountToStart(2);
53  		rateTypeColumn.setCellEditor(rateTypeCellEditor);
54  		rateTypeColumn.setPreferredWidth(30);
55  
56  		TableColumn baseRateColumn = this.getColumnModel().getColumn(
57  				ServiceTableModel.SERVICE_BASE_RATE_COLUMN);
58  		baseRateColumn.setPreferredWidth(20);
59  
60  		TableColumn minDurationColumn = this.getColumnModel().getColumn(
61  				ServiceTableModel.SERVICE_MIN_DURATION_IN_MINUTE_COLUMN);
62  		minDurationColumn.setPreferredWidth(20);
63  
64  		IntegerEditor minDurationCellEditor = new IntegerEditor(0,
65  				Integer.MAX_VALUE);
66  		minDurationCellEditor.setClickCountToStart(2);
67  		minDurationColumn.setCellEditor(minDurationCellEditor);
68  
69  		TableColumn maxDurationColumn = this.getColumnModel().getColumn(
70  				ServiceTableModel.SERVICE_MAX_DURATION_IN_MINUTE_COLUMN);
71  		maxDurationColumn.setPreferredWidth(20);
72  		IntegerEditor maxDurationCellEditor = new IntegerEditor(0,
73  				Integer.MAX_VALUE);
74  		maxDurationCellEditor.setClickCountToStart(2);
75  		maxDurationColumn.setCellEditor(maxDurationCellEditor);
76  	}
77  
78  	private JComboBox getServiceRateTypeComboBox() {
79  		JComboBox comboBox = new JComboBox();
80  		for (int i = 0; i < ServiceRateType.RATE_TYPE.length; i++)
81  			comboBox.addItem(ServiceRateType.RATE_TYPE[i]);
82  		return comboBox;
83  	}
84  
85  }