概要

キーバインド定義XMLはキーイベントに対する処理を定義するXML文書です。特定のレイアウトや、そのレイアウトに配置された特定の部品がフォーカスされている状況に対して、キーイベント処理を定義します。

キーバインド処理の指定方法

キーイベント処理はキー操作、実行タイミング、処理内容の組み合わせで指定します。

キー操作

キー操作を表す文字列です。"CTRL+C" のように複数のキーの組み合わせを指定可能です。

実行タイミング

"onkeydown", "onkeypress", "onkeyup" のいずれかのタイミングを指定します。デフォルトは "onkeydown" です。

処理内容

以下のいずれかの処理を実行します。また、複数の処理を指定して順番に実行することも可能です。

  1. フォーカスの移動 (前/後, 先頭/末尾)
  2. フォーカスの設定
  3. 部品の状態変更 (有効/無効, 表示/非表示)
  4. 部品のイベント実行
  5. JavaScript 関数の実行

導入手順

以下の手順で、キーバインド定義XMLを導入できます。

  1. 画面遷移定義XMLの設定
  2. キーバインド定義XMLの作成

1. 画面遷移定義XMLの設定

  • 画面遷移定義XMLにて、loadLayoutより後にキーバインド定義XMLの読み込みを記述します。

    キーバインド定義XMLの読み込みには、loadKeyBindingタグを使用します。

定義例

  1
  2
  3
  4
  5
  6
  7
  8
<?xml version="1.0" encoding="UTF-8"?>
<transitionDef>
  <init>
    <loadLayout xmlFile="login.xml" target="divMaskat" show="true" />
    <loadJS fileName="test.js" />
    <loadKeyBinding url="login_k.xml" />
  </init>
</transitionDef>

2. キーバインド定義XMLの作成

  • キーバインド定義XMLは、キーバインド処理の設定ファイルです。
  • マスカットのレイアウト単位に、キーバインド定義XMLを作成してください。

    以下の例では、ログインフォームのレイアウトで [Enter] キーをフォーカス遷移に使用します。ただし、フォーカスが送信ボタンにある場合は例外としてボタンの onclick イベントを実行します。

定義例

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
<?xml version="1.0" encoding="UTF-8"?>
<keybinding layout="loginLayout">
  <default>
    <bind key="Enter">
      <move-focus type="next" />
    </bind>
  </default>
  <component id="submitButton">
    <bind key="Enter">
      <maskat-event type="onclick" target="submitButton" />
    </bind>
  </component>
</keybinding>
  • マスカットフレームワーク 2.0 までと同様に、部品クラスで handleKeyEventメソッドをオーバーライドし、部品の種類ごとのキーイベント処理を定義することも可能です。

記述可能なタグ

キーバインド定義XML における注意事項

IEでの制限事項

IEでは、Altキーを押した場合、メニューバーにフォーカスが移ってしまいます。そのため、Altキーは利用しないことを推奨します。

例:
Alt+Aにアラートをキーバインドした場合、実際にAlt+Aで開いたアラートを閉じると、
メニューバーの「お気に入り」が開いてしまう。

テンキーでのキーバインド

テンキーでの入力ではキーバインド処理は実行されません。