6.3. ツールバーの追加項目を実装する¶
6.3.1. イベントリスナを実装する¶
ツールバーに項目を追加する場合は、同じ機能を操作メニューの項目に追加する必要があります。
「自身のエレメントを操作するメニューを実装する」を参考に、イベントリスナを実装してください。
6.3.2. 操作メニューをツールバーに表示する¶
6.3.2.1. ツールバーに項目を追加する¶
ツールバーに項目を追加する場合は、操作メニューに対して、ツールバーに表示するための情報を追加します。
ツールバーでは、アイコンの他に選択中を示すフラグ(active)を指定します。 このフラグを切り替えることで、ツールバーのアイコンをハイライト表示させることができます。
以下のように実装します。
export class MyZipCodeFieldLayouter implements IUIElementLayouterExpandCaller {
public isSupported(element: IUIElement): boolean {
return element.instance.elementTypeName === MyZipCodeField.name;
}
public initialize(element: IUIElement, container: IUIContainer): void {
const eventListener = container.eventListener;
// 操作メニュー・ツールバーが表示されたとき
eventListener.addEventListener(element, 'designer-toolbar-show', () => {
// メニューに表示する内容を返却する
return {
items: {
// 「部品操作」グループ
operations: [{
id: 'placeholder',
icon: placeholder
? [{type: 'font-awesome', value: 'fas fa-check'}]
: [{type: 'font-awesome', value: 'fas im-empty'}],
label: 'プレースホルダを表示',
// ツールバーに表示する内容を追加で返却する
toolbar: {
// プレースホルダが有効な場合、背景色をアクティブ色(灰色)に指定する
active: placeholder,
// ツールバー上のアイコンを指定する
icon: [{type: 'font-awesome', value: 'fas fa-comment-dots'}],
// ツールバー上のラベルに表示する文字列を指定する
label: 'プレースホルダ'
}
}]
}
};
});
}
}
注意
操作メニューを表示せずに、ツールバーのみに項目を表示することはできません。
6.3.2.2. 項目が選択されたときの処理を実装する¶
「固有プロパティを変更する「部品操作」メニューを実装する」で実装した「項目が選択されたときの処理を実装する」と同じです。
すでに実装済みの場合は、そのまま流用できます。
6.3.2.3. 動作を確認する¶
デベロップモードで郵便番号入力エレメントを配置したコンテンツ定義を作成し、レイアウトモードに切り替えます。
郵便番号入力エレメントをクリックし、ツールバーに「プレースホルダ」が表示されることを確認します。(表示エリア幅の関係上、ラベルは「プレース...」と表示されます)
「プレースホルダ」をクリックすると、プレースホルダの表示が切り替わることを確認します。
また、再度「プレースホルダ」をクリックした際に、「プレースホルダ」の背景色が変わることを確認します。