
Das Web-Dynpro-Framework unterstützt die Funktion von Aktionstasten.
Aktionstasten sind Tastenkombinationen, mit denen ein Benutzer eine bestimmte Aktion (z.B. Browser-Fenster öffnen oder einen Event feuern) an bestimmten UI-Elementen auslösen kann.
Zuordnung zu UI-Elementen
Die Eigenschaft hotkey wird für die folgenden UI-Elemente angeboten:
|
UI-Element |
Aktion |
|---|---|
|
Button und ToolBarButton |
|
|
Ein Browser-Fenster wird geöffnet |
|
|
Ein Browser-Fenster wird geöffnet |
Beachten Sie, dass Zusatzprogramme des Browsers wie beispielsweise HTTPWatch im Microsoft Internet Explorer ebenfalls Aktionstasten verwenden und eventuell auch blockieren können. Dies liegt außerhalb der Kontrolle des Web-Dynpro-ABAP-Frameworks.
Visualisierung
Die jeweilige Tastenkombination für die entsprechende Aktionstaste wird immer automatisch in den Tooltip des betreffenden UI-Elements hinzugefügt. Ist bereits ein Text für den Tooltip vorhanden, dann wird der Text für die Aktionstaste an das Ende angehängt. Entsprechend wird bei einem MenuActionItem der Text für die Aktionstaste an den Text angehängt.
Es kann vorkommen, dass eine Aktionstaste von mehreren UI-Elementen benutzt wird. In solchen Fällen werden sie gelöscht, da keine klare Zuordnung möglich ist und der Benutzer sonst verwirrt würde. Eine Ausnahme ist, wenn die selbe Aktionstaste in verschiedenen Aktionstasten-Containern definiert ist.
Eigenschaft handleHotkeys
Für die folgenden UI-Elemente steht für Aktionstasten zusätzlich die Eigenschaft handleHotkeys zur Verfügung:
Diese Eigenschaft bestimmt, ob Aktionstasten, die innerhalb des UI-Elements ( TransparentContainer, Table, etc.) definiert werden, global oder lokal (d.h. wenn der Fokus im UI-Element ist) ausgelöst werden können.
Ist handleHotKeys gesetzt, so wird das UI-Element zu einem "HotKey-Behandler". Alle Aktionstasten, die innerhalb dieses UI-Elements definiert sind, können nur ausgelöst werden, wenn der Fokus in diesem UI-Element ist. Ist der Fokus außerhalb, so wird beim Drücken der gleichen Aktionstastenkombination keine Aktion ausgeführt oder aber eine Aktion, die zu einem anderen UI-Element gehört. Standardmäßig ist der gesamte sichtbare Fensterbereich immer ein Hotkey-Behandler.
Innerhalb eines HotKey-Behandlers kann eine Aktionstaste immer nur einmal vergeben werden. Wird sie mehrfach definiert, wird der hotkey komplett gelöscht, um Verwechslungen zu vermeiden.
Angenommen, es gibt eine View mit genau zwei TransparentContainer n T1 und T2, für die beide handleHotkeys gesetzt ist. In jedem TransparentContainer ist ein Button B1 und B2, und auch außerhalb der beiden TransparentContainer ist ein dritter Button B3. Alle drei Button s haben die gleiche Tastenkombination CTRL+0 als Aktionstaste. Ist der Fokus in T1 gesetzt, so löst CTRL+0 die Action des Button B1 aus. Falls der Fokus in T2 liegt, so wird B2 ausgelöst. Falls der Fokus außerhalb der beiden TransparentContainer liegt, so wird durch Ctrl+0 der Button B3 "gedrückt".
Ist handleHotKey nicht gesetzt, so kann die Aktionstaste in der ganzen Seite ausgelöst werden.
Allerdings muss auch hier beachtet werden, dass der Fokus in der Browserseite liegt, damit globale Aktionstasten ausgelöst werden können.
Sonderfall TabStrip:
Bei einem TabStrip ist immer jeder Tab ein Hotkey-Behandler, d.h. dort definierte Aktionstasten sind nur aktiv, wenn der jeweilige Tab sichtbar und fokussiert ist.
Setzen Sie Aktionstasten und handleHotkeys nur sparsam und äußerst vorsichtig ein, um den Benutzer nicht zu verwirren.
Achten Sie insbesondere darauf, keine Verschachtelungen zu verwenden.
Enumerationen
Die Eigenschaft hotkey kann die folgenden Ausprägungen haben:
|
CTRL_0 CTRL_1 CTRL_2 CTRL_3 CTRL_4 CTRL_5 CTRL_6 CTRL_7 CTRL_8 CTRL_9 |
|
CTRL_F2 CTRL_F3 CTRL_F4 CTRL_F5 CTRL_F6 CTRL_F7 CTRL_F8 CTRL_F9 CTRL_F10 CTRL_F11 CTRL_F12 |
|
CTRL_A CTRL_B CTRL_C CTRL_D CTRL_E CTRL_F CTRL_G CTRL_H CTRL_I CTRL_J CTRL_K CTRL_L CTRL_M CTRL_N CTRL_O CTRL_P CTRL_Q CTRL_R CTRL_S CTRL_T CTRL_U CTRL_V CTRL_W CTRL_X CTRL_Y CTRL_Z CTRL_NONE |
|
CTRL_SHIFT_F1 CTRL_SHIFT_F2 CTRL_SHIFT_F3 CTRL_SHIFT_F4 CTRL_SHIFT_F5 CTRL_SHIFT_F6 CTRL_SHIFT_F7 CTRL_SHIFT_F8 CTRL_SHIFT_F9 CTRL_SHIFT_F10 CTRL_SHIFT_F11 CTRL_SHIFT_F12 |