Apex を使用した Lightning ページコンポーネントの動的選択リストの作成

Lightning アプリケーションビルダーでコンポーネントが設定されるときに、コンポーネントのプロパティを選択リストとして公開できるようになりました。選択リストの値は、作成する Apex クラスによって提供されます。

たとえば、カスタムお知らせレコードを表示するホームページのコンポーネントを作成するとします。Apex クラスを使用して、Lightning アプリケーションビルダーのコンポーネントプロパティの選択リストにすべてのお知らせレコードのタイトルを表示できます。これで、システム管理者がホームページにコンポーネントを追加するときに、ページに配置する適切なお知らせを簡単に選択できます。

  1. 選択リストのデータソースとして使用するカスタム Apex クラスを作成します。Apex クラスは、VisualEditor.DynamicPickList 抽象クラスを拡張する必要があります。
    global class MyCustomPickList extends VisualEditor.DynamicPickList{
        
        global override VisualEditor.DataRow getDefaultValue(){
            VisualEditor.DataRow defaultValue = new VisualEditor.DataRow('red', 'RED');
            return defaultValue;
        }
        global override VisualEditor.DynamicPickListRows getValues() {
            VisualEditor.DataRow value1 = new VisualEditor.DataRow('red', 'RED');
            VisualEditor.DataRow value2 = new VisualEditor.DataRow('yellow', 'YELLOW');
            VisualEditor.DynamicPickListRows  myValues = new VisualEditor.DynamicPickListRows();
            myValues.addRow(value1);
            myValues.addRow(value2);
            return myValues;
        }
    }
  2. カスタム Apex クラスをデータソースとして指定するデザインファイルに属性を追加します。
    <design:component>
            <design:attribute name="property1" datasource="apex://MyCustomPickList"/>
    </design:component>