1 package org.weda.action;
2
3 import java.util.List;
4 import java.util.Set;
5 import org.weda.message.Messages;
6
7 /**Цель: предосталение инфмации о действии.
8 *
9 * @author tim
10 */
11 public interface ActionDescriptor {
12 public void init() throws ActionDescriptorException;
13 /**Метод возвращает название действия.
14 */
15 public String getName();
16 /**Метод возвращет краткое описание действия.
17 */
18 public String getDescription();
19 /**Метод возвращает класс действия.
20 */
21 public Class getActionClass();
22 /**Метод возвращает символ при нажатии на который вместе с клавишей
23 * Alt (на PC платформе) будет выполнено действие описываемое данным
24 * дескриптором.
25 */
26 public String getAccessKey();
27 /**Метод возвращает описание свойств значения которых нужно установить
28 * или прочитать перед выполнением действия.
29 */
30 public List<ActionParameter> getActionParameters();
31 /**Метод вернет описание параметра по его имени.
32 * @throws ActionDescriptorException если в действии нет указаного параметра.
33 */
34 public ActionParameter getActionParameter(String name)
35 throws ActionDescriptorException;
36 /**Метод возвращает имя фрейма в котором будет отображен результат
37 * действия.
38 */
39 public String getTargetFrame();
40 /**Метод устанавливает описание свойств значения которых нужно установить
41 * перед выполнением действия.
42 */
43 public void addActionParameter(ActionParameter actionParameter);
44 /**Метод возвращает список классов над которыми действие может
45 * быть выполнено.
46 */
47 public Set<ActionTargetClass> getTargetClasses();
48 /**Метод возвращает действия связанные с данным.
49 */
50 public List<LinkedAction> getLinkedActions();
51 /**Метод устанавливает объект дающий доступ к локализированным сообщениям
52 * в разрезе класса действия ({@link #getActionClass()). Т.е.
53 * <code>messages</code> является подмножеством сообщений
54 * <code>actions:action_class</code>
55 */
56 public void setMessages(Messages messages);
57 /**Метод добавляет пару свойство действия, значение. Значения свойств
58 * будут установлены для действия если вызвать метод
59 * {@link #setActionPropertiesValues}
60 */
61 public void addActionParameterValue(ActionParameterValue propertyValue);
62 /**
63 * Метод устанавливает значения свойств объекта действия.
64 *
65 * @see #addActionPropertyValue(ActionParameterValue)
66 */
67 public void setActionParametersValues(Object action)
68 throws ActionDescriptorException;
69 }