View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans-Common.
5    *
6    * CosyBeans-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans-Common 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 CosyBeans-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.components.table;
21  
22  /**
23   * <code>ObjectTableEngine</code> is intermediator betwean arbitrary objects
24   * and <code>ObjectTableModel</code> structure. It converts objects to
25   * <code>TableRow</code>s and executes operations on rows.
26   *
27   * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a>
28   */
29  public interface ObjectTableEngine
30  {
31  	/**
32  	 * Creates new row for key object.
33  	 *
34  	 * @param key key for which row is created
35  	 *
36  	 * @return new or recycled table row
37  	 */
38  	public TableRow getTableRow(Object key);
39  
40  	/**
41  	 * Signals to factory that row with associated key is no longer in use.
42  	 *
43  	 * @param key kay object for row
44  	 * @param row row to be released
45  	 */
46  	public void releaseTableRow(Object key, TableRow row);
47  
48  	/**
49  	 * Sets new value which resulted from user interaction with table to the
50  	 * context underlayng kay object.
51  	 *
52  	 * @param value new value as user has set with table editors
53  	 * @param key the key object
54  	 * @param row row associated with kay object
55  	 * @param columnIndex DOCUMENT ME!
56  	 */
57  	public void setValue(Object value, Object key, TableRow row, int columnIndex);
58  
59  	/**
60  	 * Returns name of column. Same order  of columns must be used
61  	 * when construction rows.
62  	 *
63  	 * @return name of column, or <code>null</code>
64  	 */
65  	public String getColumnName(int index);
66  }
67  
68  /* __oOo__ */