ユーザーインターフェイス記述リファレンス

ユーザーインターフェイス記述ボキャブラリの概要や、要素・属性を解説します。

1. 概要

ユーザーインターフェイス記述ボキャブラリの概要を説明します。

1.1. 用途・役割

キャンバスでXML文書を編集するためのユーザーインターフェイスを記述するボキャブラリです。次のようなユーザーインターフェイス項目を記述できます。

  • メインメニュー
  • コンテキストメニュー
  • ツールバー
  • アクセラレータキー

1.2. 名前空間URI参照

ユーザーインターフェイス記述ボキャブラリの名前空間URI参照は http://xmlns.xfy.com/ui です。 以下の説明で、ユーザーインターフェイス記述ボキャブラリの要素を記述するときは、ui:という名前空間接頭辞を使用します。

このほか、以下の説明中に出現するボキャブラリと、そのボキャブラリに使用している名前空間接頭辞は次のとおりです。

2. ユーザーインターフェイスの結合

ユーザーインターフェイス記述は、以下の場面でほかのユーザーインターフェイス記述と結合され、最終的に1つにまとめられます。

ユーザーインターフェイス記述の各要素が実際に結合されるときの規則は、「結合規則」で説明します。

2.1. ユーザーインターフェイス記述内の項目の結合

ユーザーインターフェイス記述内に結合対象となる項目がある場合は、それらの項目も結合されます。以下に具体的な例を示します。

<ui:ui version="1.0">
	<ui:main-menu>
		<ui:menu label="Menu1"/>
	</ui:main-menu>
	<ui:main-menu>
		<ui:menu label="Menu2"/>
	</ui:main-menu>
</ui:ui>

この場合、2つの ui:main-menu要素は1つに結合されて、次のユーザーインターフェイス記述と同じとみなされます。

<ui:ui version="1.0">
	<ui:main-menu>
		<ui:menu label="Menu1"/>
		<ui:menu label="Menu2"/>
	</ui:main-menu>
</ui:ui>

2.2. インポートによる結合

ユーザーインターフェイス記述では、 ui:import要素を使用することで、外部のユーザーインターフェイス記述を取り込むことができます。取り込まれたユーザーインターフェイス記述は、元のユーザーインターフェイス記述に結合されます。

ui:import要素を記述すると、指定されたユーザーインターフェイス記述の ui:ui要素の内容がその場所に展開されたものとして結合処理が行われます。 以下に"main.ui""imported.ui"を取り込むときの例を示します。

<!-- main.ui -->
<ui:ui version="1.0">
	<ui:main-menu>
		<ui:menu label="Menu1"/>
	</ui:main-menu>
	
	<ui:import href="imported.ui"/>
</ui:ui>

<!-- imported.ui -->
<ui:ui version="1.0">
	<ui:main-menu>
		<ui:menu label="Menu2"/>
	</ui:main-menu>
</ui:ui>

この2つのユーザーインターフェイス記述は結合されて、次のユーザーインターフェイス記述と同じとみなされます。

<ui:ui version="1.0">
	<ui:main-menu>
		<ui:menu label="Menu1"/>
		<ui:menu label="Menu2"/>
	</ui:main-menu>
</ui:ui>

2.3. 結合規則

ユーザーインターフェイス記述の項目は、以下の条件をともに満たすときに結合されます。

結合対象の項目のうち、先に記述した項目をA、あとに記述された項目をBとすると、結合結果は項目Aの子項目の末尾に項目Bの子項目が追加された状態となります。

3. ユーザーインターフェイス記述ボキャブラリに属する要素・属性

ユーザーインターフェイス記述ボキャブラリに属する要素・属性を解説します。

3.1. ルート要素

ユーザーインターフェイス記述ボキャブラリのルート要素は、ui:ui要素です。

ui:ui 要素

ユーザーインターフェイスを記述するときのルート要素です。 xvcd:vocabulary要素内に1つだけ記述できます。省略も可能です。この要素内に、ボキャブラリに対応するメニューやツールボックスの設定を記述します。

属性:
version (必須)

ユーザーインターフェイス記述ボキャブラリのバージョン番号を設定する属性です。必ず1.0を設定します。

内容:

ui:ui要素内には、以下の要素から必ず1つ以上を任意の組み合わせで記述します。

3.2. メニュー

メニューの記述に使用される要素・属性は以下のとおりです。

ui:context-menu 要素

コンテキストメニューの内容を記述するときに使用する要素です。

属性:

属性はありません。

内容:

ui:context-menu要素内には、以下の要素から必ず1つ以上を任意の組み合わせで記述します。

3.3. ツールバー

ツールバーの記述に使用される要素・属性は以下のとおりです。

ui:tool-bar 要素

ツールバーの内容を記述する要素です。

属性:

属性はありません。

内容:

ui:tool-bar要素内には、以下の要素から必ず1つ以上を任意の組み合わせで記述します。

ui:tool-list 要素

1つのボタン領域で複数のボタンを保持し、その中から1つを選択して実行するリストボックス形式のボタンを記述するときに使用する要素です。 このリストボックスで表示されるアイコン及びテキストは保持しているボタンのものを使用します。

属性:
label

リストボックス形式のボタンのラベル文字列を指定する属性です。任意の文字列で記述します。ただし、#ではじまる文字列は内部的に予約されています。そのため、#ではじまる文字列を記述するときは、最初の###と記述します。このラベル文字列は、リストボックス形式のボタンのツールチップなどに利用されます。

label属性とresource-key属性のどちらかは、必ず設定しなければなりません。両方とも設定された場合は、resource-key属性が優先されます。

省略された場合、resource-key属性で指定した文字列リソースが使われます。

resource-key

リストボックス形式のボタンのラベル文字列を文字列リソースから取得する場合、取得する文字列のリソースキーを指定する属性です。任意の文字列で記述します。

label属性とresource-key属性のどちらかは、必ず設定しなければなりません。両方とも設定された場合は、resource-key属性が優先されます。

省略された場合、 label 属性で指定した文字列が使われます。

内容:

ui:tool-list要素内に記述できる要素は、以下のとおりです。

ui:tool-button 要素

ツールバーのボタンを記述するときに使用する要素です。

属性:
label

ツールバーのボタンのラベル文字列を指定する属性です。任意の文字列で記述します。 ただし、#ではじまる文字列は内部的に予約されています。そのため、#ではじまる文字列を記述するときは、最初の###と記述します。

label属性とresource-key属性のどちらかは、必ず設定しなければなりません。両方とも設定された場合は、resource-key属性が優先されます。

省略された場合、resource-key属性で指定した文字列リソースが使われます。

resource-key

ツールバーのボタンのラベル文字列を文字列リソースから取得する場合、取得する文字列のリソースキーを指定する属性です。

label属性とresource-key属性のどちらかは、必ず設定しなければなりません。両方とも設定された場合は、resource-key属性が優先されます。

省略された場合、label属性で指定した文字列が使われます。

command

ボタンをクリックされたときに実行するコマンドを指定する属性です。 xvcd:command要素で定義したコマンド名やプラットフォームが提供するコマンド名をQNameで指定します。

省略された場合、要素内に記述されたコマンドインストラクション列を実行します。 command属性とコマンドインストラクション列が同時に記述された場合は、command属性の指定が優先され、コマンドインストラクション列は無視されます。

icon

ボタンに表示するアイコンを指定する属性です。URL文字列で記述します。

省略された場合、resource-key属性またはlabel属性で指定した文字列が表示されたボタンが作成されます。

内容:

ui:tool-button要素内には内容として、以下のいずれか一方のみが記述できます。

3.4. セパレータ

メニューやツールバーには、区切り線(セパレータ)を挿入できます。

ui:separator 要素

メニューやツールバーに区切り線(セパレータ)を挿入するときに使用する要素です。

属性:

属性はありません。

内容:

ui:separator要素は空要素です。

3.5. キーアクセラレータ

キーアクセラレータの設定を変更します。

ui:accelerators 要素

ui:accelerators要素は、ui:accelerator要素のコンテナとなる要素です。

属性:

属性はありません。

内容:

ui:accelerators要素内に記述できる要素は、以下のとおりです。

  • ui:accelerator要素
    キーアクセラレータの設定を記述できます。必要に応じて、任意の数だけ記述できます。省略可能です。

ui:accelerator 要素

キーアクセラレータの設定を表す要素です。キーの組み合わせと、実行されるコマンドを記述できます。

属性:
key-sequence (必須)

キャンバスでの編集中のキー操作でコマンドを呼び出すときの、アクセラレータキーを指定する属性です。キーの組み合わせを表現する文字列で記述します。 キーの組み合わせは、 ui:menu-item要素accelerator属性と同じ書式で指定します。

command

key-sequence属性で指定したキー操作が行われたときに実行するコマンドを指定する属性です。 xvcd:command要素で定義したコマンド名や、プラットフォームが提供するコマンド名をQNameで指定します。

省略された場合、要素内に記述されたコマンドインストラクション列を実行します。command属性とコマンドインストラクション列が同時に記述された場合は、command属性の指定が優先され、コマンドインストラクション列は無視されます。

内容:

ui:accelerator要素内には内容として、以下のいずれか一方のみが記述できます。

3.6. ユーザーインターフェイス記述の取り込み

ほかのファイルに記述されたユーザーインターフェイスの定義を取り込むことができます。

ui:import 要素

ほかのファイルに記述されたユーザーインターフェイスの定義を取り込むときに使用する要素です。

属性:
href (必須)

取り込みたいユーザーインターフェイスの定義が記述されているファイルを指定する属性です。URL文字列で記述します。

内容:

ui:import要素は空要素です。

3.7. 追加するユーザーインターフェイス項目の指定

ユーザーインターフェイス項目を必要に応じて追加することができます。 ユーザーインターフェイス項目を追加する位置をマウントポイントと呼びます。マウントポイントには、そのマウントポイントを定義したユーザーエージェントによって、名前が付けられています。マウントポイントを指定するときは、その名前を使用します。

ui:mount 要素

ユーザーエージェントで定義されているマウントポイントに、ユーザーインターフェイス項目を追加する要素です。

属性:
name (必須)

ユーザーエージェントのユーザーインターフェイス項目を追加する位置に設定されている名前を記述する属性です。QNameで記述します。

内容:

ui:mount要素内には、以下の要素から必ず1つ以上を任意の組み合わせで記述します。

定義済みマウントポイント一覧

ユーザーインターフェイス記述で定義されているマウントポイントは、以下の表のとおりです。

名前 場所 追加可能なUI項目
ui:main-menu-file メインメニューの[ファイル] ui:menu, ui:menu-item, ui:separator
ui:main-menu-edit メインメニューの[編集] ui:menu, ui:menu-item, ui:separator
ui:main-menu-view メインメニューの[表示] ui:menu, ui:menu-item, ui:separator
ui:main-menu-tools メインメニューの[ツール] ui:menu, ui:menu-item, ui:separator
ui:main-menu-help メインメニューの[ヘルプ] ui:menu, ui:menu-item, ui:separator
ui:main-menu メインメニューの最上位階層 ui:menu, ui:menu-item, ui:separator
ui:tool-bar ツールバー ui:tool-list, ui:popup-button, ui:tool-button, ui:separator
ui:context-menu コンテキストメニュー ui:menu, ui:menu-item, ui:separator

3.8. コマンドパラメータの指定

コマンドパラメータを指定することができます。

ui:with-param 要素

コマンドに渡すパラメータを指定するときに使用する要素です。

属性:
name (必須)

パラメータ名を指定する属性です。QNameで記述します。 指定するパラメータ名は、 xvcd:command要素内に記述されている instruction:param要素name属性に設定された名前を記述します。

内容:

ui:with-param要素内には、コマンドにパラメータとして渡す内容を記述できます。 PCDATA文字列で記述します。