Die Schnittstelle IAction
liefert die
Methoden, welche jowidgets benötigt, um Aktionen anzuzeigen, zu
binden und auszuführen. Sie stellt somit in gewisser Weise die
SPI[14] für Aktionen dar. Wenn man
Command Actions
verwendet, muss man diese Schnittstelle nicht selbst
implementieren. Dennoch sollen die Methoden zum besseren
Verständnis kurz beschrieben werden:
Die folgenden Methoden liefern die beschreibenden Attribute der Action für die Anzeige und das Key Binding:
String getText(); String getToolTipText(); IImageConstant getIcon(); Character getMnemonic(); Accelerator getAccelerator();
Die folgende Methode liefert den enabled
State. Ein Action, welche nicht enabled
ist, kann nicht ausgeführt werden und wird
ausgegraut dargestellt.
boolean isEnabled();
Die folgende Methode wird aufgerufen, wenn die Action ausgeführt werden soll:
void execute(IExecutionContext executionContext) throws Exception;
Eine IAction
Implementierung kann einen
IExceptionHandler
liefern:
IExceptionHandler getExceptionHandler();
Dieser wird verwendet, wenn bei der
execute()
Methode eine Exception auftritt.
Wird null
zurückgegeben, wird der
UncaughtExceptionHandler
des aktuellen
Threads aufgerufen.
Wird eine Action mutable entworfen, was
bedeutet, dass sich die Attribute text
,
tooltipText
, icon
oder
enabled
State zur Laufzeit ändern können,
dann liefert die folgenden Methode ein
IActionObservable
zurück, auf dem man sich
als Listener über Änderungen informieren kann:
IActionChangeObservable getActionChangeObservable();
Ist die Action immutable entworfen, kann
die Implementierung null
zurückliefern. Die
Schnittstelle IActionObservable
hat die
folgenden Methoden:
void addActionChangeListener(IActionChangeListener listener); void removeActionChangeListener(IActionChangeListener listener);
Ein IActionChangeListener
hat die folgenden
Methoden:
void textChanged(); void toolTipTextChanged(); void iconChanged(); void enabledChanged();
Der Accelerator Key und Mnemonic Key sind somit immer immutable zu entwerfen. Nur die oben angegebenen Attribute können sich zur Laufzeit ändern.