1 /*
2 * XMLCV - Gestion de CV sous forme XML
3 *
4 * Copyright (C) 2004-2005, Damien Raude-Morvan
5 *
6 * This file is part of XMLCV.
7 *
8 * XMLCV is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * XMLCV is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with XMLCV; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 * Contacts :
23 * - Sébastien Mathy <smathy@tuxfamily.org>
24 * - Emmanuel Berre <eberre@tuxfamily.org>
25 * - Damien Raude-Morvan <drazzib@drazzib.com>
26 */
27 package org.xmlcv.gui.tabs;
28
29 import java.awt.BorderLayout;
30
31 import javax.swing.JScrollPane;
32 import javax.swing.JTable;
33 import javax.swing.table.AbstractTableModel;
34 import javax.swing.table.TableCellRenderer;
35
36 import org.xmlcv.gui.tables.RowColorRenderer;
37 import org.xmlcv.model.CvDocumentBean.Cv;
38
39 /***
40 *
41 * @version $Revision: 114 $
42 * @author <a href="mailto:drazzib@drazzib.com">Damien Raude-Morvan </a>
43 */
44 public abstract class AbstractTabWithTable extends AbstractTab {
45
46 public AbstractTabWithTable(Cv cv) {
47 this.setLayout(new BorderLayout());
48
49 AbstractTableModel tableModel = this.getTableModel(cv);
50 JTable table = new JTable(tableModel);
51
52 // Create cell renderer and use it for all classes
53 TableCellRenderer renderer = new RowColorRenderer();
54 table.setDefaultRenderer(Object.class, renderer);
55
56 JScrollPane scrollpane = new JScrollPane(table);
57
58 this.add(scrollpane, BorderLayout.CENTER);
59 }
60
61 public abstract AbstractTableModel getTableModel(Cv cv);
62
63 }