001 /* 002 Copyright (C) 2002 Laurent Martelli <laurent@aopsys.com> 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, but 010 WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public 015 License along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 017 USA */ 018 019 package org.objectweb.jac.aspects.gui; 020 021 import javax.swing.table.TableModel; 022 import org.objectweb.jac.core.rtti.FieldItem; 023 import org.objectweb.jac.core.rtti.MemberItem; 024 025 /** 026 * Data model for tables. 027 */ 028 public interface ExtendedTableModel extends TableModel, CollectionModel { 029 030 /** 031 * Returns the members that are displayed in the table. 032 * 033 * @return one member per column */ 034 MemberItem[] getMembers(); 035 036 /** 037 * Gets the headers' titles. 038 * 039 * @return one title per column */ 040 String[] getHeaders(); 041 042 int getColumnIndex(FieldItem field); 043 044 /** 045 * Gets the value at a given row, column couple. */ 046 Object getObject(int row, int column); 047 048 /** 049 * Build a cell render for a given column. 050 * 051 * @param tableView the actual table view 052 * @param column the column for which to build the viewer 053 * @param factory the factory to use 054 * @param context the display context 055 */ 056 Object getCellRenderer(View tableView, int column, 057 ViewFactory factory, DisplayContext context); 058 059 TableFilter getFilter(); 060 TableSorter getSorter(); 061 } 062