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. 動作を確認する¶
デベロップモードで郵便番号入力エレメントを配置したコンテンツ定義を作成し、レイアウトモードに切り替えます。
郵便番号入力エレメントをクリックし、ツールバーに「プレースホルダ」が表示されることを確認します。(表示エリア幅の関係上、ラベルは「プレース...」と表示されます)
「プレースホルダ」をクリックすると、プレースホルダの表示が切り替わることを確認します。
また、再度「プレースホルダ」をクリックした際に、「プレースホルダ」の背景色が変わることを確認します。