1 package org.weda.model;
2
3 import java.util.List;
4 import org.weda.action.ActionContainer;
5 import org.weda.property.PropertyDescriptor;
6
7 /**Модель представления данных в виде таблицы.
8 *
9 * @author tim
10 */
11 public interface TableModel<T extends TableModelData> extends ActionContainer {
12 public enum Mode{
13 VIEW,
14 CLOSED
15 };
16 /**Метод возвращает имя модели данных
17 */
18 public String getName();
19 /**Метод инициплизирует модель данных.
20 */
21 public void init() throws TableModelException;
22 /**Метод возвращает текущее состояние модели.
23 */
24 public Mode getMode() throws TableModelException;;
25 /**Метод переводит модель состояние {@link Mode#VIEW}. Т.е. становятся
26 * доступными данные модели.
27 * @see #close()
28 * @see #getData()
29 */
30 public void open() throws TableModelException;
31 /**Метод переводит модель в состояние {@link Mode#CLOSED}.
32 * Т.е. данные модели становятся недоступными.
33 * @see #open()
34 * @see #getData()
35 */
36 public void close() throws TableModelException;
37 /**Метод возвращает описание колонок модели.
38 */
39 public List<PropertyDescriptor> getColumnDescriptors();
40 /**Метод возвращает количество колонок в таблице.
41 */
42 public int getColumnCount() throws TableModelException;
43 /**Метод добавляет слушателя изменений в модели.
44 */
45 public void addListener(TableModelListener listener);
46 /**Метод возвращает данные модели.
47 * @Throws TableModelException если модель находится в состояние
48 * {@link Mode#CLOSED}
49 */
50 public T getData() throws TableModelException;
51 }