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 }