001    /*
002     * Copyright (c) 2005 Jens Schou, Staffan Gustafsson, Björn Lanneskog, 
003     * Einar Pehrson and Sebastian Kekkonen
004     *
005     * This file is part of
006     * CleanSheets Extension for Test Cases
007     *
008     * CleanSheets Extension for Test Cases is free software; you can
009     * redistribute it and/or modify it under the terms of the GNU General Public
010     * License as published by the Free Software Foundation; either version 2 of
011     * the License, or (at your option) any later version.
012     *
013     * CleanSheets Extension for Test Cases is distributed in the hope that
014     * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
015     * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016     * See the GNU General Public License for more details.
017     *
018     * You should have received a copy of the GNU General Public License
019     * along with CleanSheets Extension for Test Cases; if not, write to the
020     * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
021     * Boston, MA  02111-1307  USA
022     */
023    package csheets.ext.test.ui;
024    
025    import javax.swing.DefaultCellEditor;
026    import javax.swing.JTextField;
027    import javax.swing.table.TableModel;
028    
029    import csheets.ext.test.TestCaseParam;
030    
031    /**
032     * The table used to display and provide editing of test case parameters.
033     * @author Björn Lanneskog
034     * @author Einar Pehrson
035     */
036    @SuppressWarnings("serial")
037    public class TestCaseParamTable extends TestTable {
038    
039            /**
040             * Creates a new test case parameter table.
041             * @param tableModel the table model
042             */
043            public TestCaseParamTable(TableModel tableModel) {
044                    super(tableModel);
045    
046                    // Configures test case parameter editor and renderer
047                    setDefaultRenderer(TestCaseParam.class, new TestCaseParamRenderer());
048                    setDefaultEditor(TestCaseParam.class, new DefaultCellEditor(
049                            new JTextField()));
050            }
051    
052            /**
053             * Overridden to disable editing of precedent addresses.
054             * @param row the row whose value is to be queried
055             * @param column the column whose value is to be queried                 
056             * @return true if the cell at the given row and column is editable
057             */
058            public boolean isCellEditable(int row, int column) {
059                    return column != 0;
060            }
061    
062            /**
063             * Returns the class of the column in the table.
064             * @param column the column whose class is to be queried
065             * @return class the class to be returned
066             */
067            public Class<?> getColumnClass(int column) { 
068                    if (column == 0)
069                            return Object.class; // Cell.class
070                    else
071                            return TestCaseParam.class;
072            }
073    }