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.ServerWorkstationTableModel;
29 import ui.util.IntegerEditor;
30 import base.network.WorkstationRoleType;
31 import base.network.WorkstationType;
32
33 @SuppressWarnings("serial")
34 public class ServerWorkstationTable extends JTable {
35 /***
36 * @param workstationTableSorter
37 */
38 public ServerWorkstationTable(TableSorter workstationTableSorter) {
39 super(workstationTableSorter);
40 initialize();
41 }
42
43 protected void initialize() {
44 this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
45 TableColumn idColumn = this.getColumnModel().getColumn(
46 ServerWorkstationTableModel.WORKSTATION_ID_COLUMN);
47 idColumn.setPreferredWidth(30);
48 idColumn.setMaxWidth(60);
49 TableColumn typeColumn = this.getColumnModel().getColumn(
50 ServerWorkstationTableModel.WORKSTATION_TYPE_COLUMN);
51 DefaultCellEditor typeCellEditor = new DefaultCellEditor(
52 getWorkstationTypeComboBox());
53 typeCellEditor.setClickCountToStart(2);
54 typeColumn.setCellEditor(typeCellEditor);
55
56 TableColumn portColumn = this.getColumnModel().getColumn(
57 ServerWorkstationTableModel.WORKSTATION_PORT_COLUMN);
58 portColumn.setPreferredWidth(30);
59 IntegerEditor portCellEditor = new IntegerEditor(1024, 65000);
60 portCellEditor.setClickCountToStart(2);
61 portColumn.setCellEditor(portCellEditor);
62 TableColumn roleColumn = this.getColumnModel().getColumn(
63 ServerWorkstationTableModel.WORKSTATION_ROLE_COLUMN);
64 DefaultCellEditor roleCellEditor = new DefaultCellEditor(
65 getWorkstationRoleTypeComboBox());
66 roleCellEditor.setClickCountToStart(2);
67 roleColumn.setCellEditor(roleCellEditor);
68 }
69
70 private JComboBox getWorkstationTypeComboBox() {
71 JComboBox comboBox = new JComboBox();
72 for (int i = 0; i < WorkstationType.WORKSTATION_TYPE.length; i++)
73 comboBox.addItem(WorkstationType.WORKSTATION_TYPE[i]);
74 return comboBox;
75 }
76
77 private JComboBox getWorkstationRoleTypeComboBox() {
78 JComboBox comboBox = new JComboBox();
79 for (int i = 0; i < WorkstationRoleType.SERVER.length; i++)
80 comboBox.addItem(WorkstationRoleType.SERVER[i]);
81 return comboBox;
82 }
83
84 }