View Javadoc

1   package org.weda.model;
2   
3   import org.weda.property.PropertyDescriptor;
4   import org.weda.property.SetValue;
5   import org.weda.store.impl.ObjectSet;
6   import org.weda.store.impl.ObjectSetException;
7   
8   /**
9    *
10   * @author tim
11   */
12  public interface EditorModel<T extends EditorModelGroup> {
13      /**Имя модели уникальное внутри группы.
14       */
15      public String getName();    
16      /**Вернет <code>true</code> если значение модели можно изменять 
17       * с пользовательского интерфейса.
18       */
19      public boolean isEditable() throws EditorModelException;
20      /**Метод должен вернуть <code>TRUE</code> если значение модели необходимо
21       * преобразовывать для того чтобы привести к строке. Если метод вернет
22       * <code>true</code> тогда значение будет приведено при помощи метода
23       * <code>toString()</code>.
24       * @see #setValue(Object)
25       * @see #getValue()
26       */
27      public boolean isNeedConversion();
28      /**Метод возвращает описание свойства
29       */
30      public PropertyDescriptor getPropertyDescriptor()
31          throws EditorModelException;
32      /**Метод устанавливает путь до свойства. ???
33       */
34      public void setPropertyPath(String propertyPath);
35      /**Метод возвращает значение свойства.
36       */
37      public Object getValue() throws EditorModelException;
38      /**Метод устанавливает значение свойства.
39       */
40      public void setValue(Object value) throws Exception;
41      /**Метод вернет <code>TRUE</code> если хотя бы один раз вызывался
42       * метод {@link #setValuePretindent(Object)}, иначе <code>FALSE</code>
43       */
44      public boolean isValuePretenderSetted();
45      /**Метод устанавливает претиндента на значение.
46       */
47      public void setValuePretender(Object value);
48      /**Метод возвращает претиндента на значение.
49       */
50      public Object getValuePretender();
51      /**Метод устанавливает группу к которой принадлежит модель.
52       */
53      public void setModelGroup(T modelGroup);
54      /**Метод возвращает список значений в одно из которых может быть установлено
55       * значение модели. Если перед вызовом метода был вызван метод 
56       * {@link #resetValuesList()} тогда
57       * @see #hasValuesList()
58       * @see #refreshValuesList()
59       * @see #resetValuesList()
60       */
61      public SetValue[] getValuesList() throws EditorModelException;
62      /**Метод вернет <code>true</code> если значение модели ограничено списком
63       * возвращаемым методом {@link #getValuesList()}
64       * @see #refreshValuesList()
65       * @see #resetValuesList()
66       */
67      public boolean hasValuesList() throws EditorModelException;
68      /**Метод обновляет список возвращаемый методом {@link #getValuesList()}
69       * @see #hasValuesList()
70       * @see #resetValuesList()
71       */
72      public void refreshValuesList() throws EditorModelException;
73      /**Метод "сбрасывает" список допустимых значений для значения модели.
74       * Список будет доступен после вызова метода {@link #refreshValuesList()}
75       * @see #getValuesList()
76       * @see #hasValuesList()
77       * @see #resetValuesList()
78       */
79      public void resetValuesList();
80      /**Метод вернет <code>true</code> если допустимые значения проименованы.
81       * @see org.weda.property.SetValue#getAlias()
82       * @see #getValuesList()
83       * @see #hasValuesList()
84       * @see #resetValuesList()
85       * @see #refreshValuesList()
86       */
87      public boolean isValuesListAliased() throws EditorModelException;
88      /**Метод освобождает ресурсы.
89       */
90      public void resetModel() throws EditorModelException;
91      /**Метод вернет <code>true</code> если значения всех слоев одинаковы.
92       * Имеет смысл использовать только в том случае если метод
93       * {@link EditorModelGroup#isMultiLeveledModelValues()} возвращает 
94       * <code>TRUE</code>.
95       */
96      public boolean isLevelsValuesUniq() throws EditorModelException;
97  }