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")
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 }