19.2.1 プラグインの理解

プラグインおよび例の検索方法について学習します。

19.2.1.1 プラグインについて

プラグインは、APEXで使用可能な組込みタイプの拡張機能です。

アプリケーションで新しいアイテム、リージョン、プロセスおよび動的アクション・タイプを宣言的に使用するためのプラグインを作成します。

APEXでは、認証スキーム、認可スキーム、アイテム、リージョン、動的アクションおよびプロセス・タイプのグループ・セットがサポートされます。プラグインによってアプリケーション内で新しいタイプを宣言的に作成および使用することによって、これらの組込みタイプを拡張する手段が提供されます。プラグインは再利用を目的として設計されているため、開発者はプラグインを別のワークスペースにエクスポートおよびインポートしたり、プラグイン・リポジトリを使用してプラグインをOracle APEXプラグイン・コミュニティと共有できます。

プラグインを実装するプロセスには、次のステップがあります。

  1. アプリケーション・ワークスペースでプラグインを作成するか、またはインポートします。
  2. プラグインを使用するための認可スキーム、アイテム、リージョン、プロセスまたは動的アクション・タイプを編集または作成します。
  3. プラグインをテストするためにアプリケーションを実行します。

19.2.1.2 テンプレート・コンポーネント・タイプ・プラグインについて

テンプレート・コンポーネントは、他のプラグインと同様にページ・デザイナで動作する再利用可能なUIコンポーネントです。

テンプレート・コンポーネントについて

テンプレート コンポーネントを使用すると、開発者は、アクション ポジションやアクション テンプレートなどのプレースホルダを使用してテンプレートを作成できます。APEXは、テンプレート内のプレースホルダをカスタム・プラグイン属性として公開します。

テンプレート・コンポーネントを使用して、PL/SQLに基づいていない新しいリージョン・タイプをAPEXに追加します。テンプレート・コンポーネントでは、テンプレート・ディレクティブ、行レベルの条件を含む「アクション」および「メニュー」ボタン、CSSおよびJSファイルの両方がサポートされています。

テンプレート・コンポーネントの作成について

テンプレート・コンポーネントを作成するには、新しいプラグインを作成し、「タイプ」に「テンプレート・コンポーネント」を指定します。「テンプレート」に、テンプレートのマークアップを入力します。「使用可能」属性を構成して、プラグインの表示方法とその使用場所を指定します。

  • 複数(レポート) - 1つのリージョンのテンプレート・コンポーネントを使用して、ページ区切りオプションで複数の行を表示します。

  • 単一(一部) - 対話モード・レポート列またはリージョンのテンプレート・コンポーネントを使用して、単一行を表示します。

  • リージョンのみ - 選択すると、静的値を表示するリージョンとしてテンプレート・コンポーネントを使用できます。提供されたHTMLテンプレートは、HTML要素をラップせずに表示されます。ページ・デザイナでは、リージョンの属性の数に制限があります(リージョン・テンプレート、ヘッダー・テキスト、フッター・テキストを除く)。既存のAPEX機能がこのコンポーネントで動作するように、テンプレート内の要素のID属性としてAPEX$DOM_ID置換を含めることをお薦めします。

    テンプレート・コンポーネントは、いずれのチェックボックスも選択せずに、{with/}および{apply/}構文を使用して、サーバー側のテンプレート・ディレクティブでいつでも使用できます。たとえば:

    {with/}
    PLACEHOLDER1:=Some value
    PLACEHOLDER2:=Some value
    {apply INTERNAL_NAME/}

ヒント:

Template Component Type plug-in include support for template directives.詳細は、「テンプレート・ディレクティブの使用」を参照してください。

行選択

特定のテンプレート・コンポーネント・プラグインについて選択のサポートを有効にするには、プラグインの「作成」ページまたは「編集」ページの「標準属性」で、「行選択のサポートあり」を選択します。行または部分htmlテンプレート内でプレースホルダAPEX$SELECTORを使用することもできます。このプレースホルダは、行ごとのラジオ入力(単一選択)または行ごとのチェックボックス入力(複数選択)としてレンダリングされます。

カスタム属性

静的IDを参照するには、プラグインを編集し、「コンポーネント」のスコープを持つカスタム属性を追加して、#STATIC_ID#プレースホルダ構文を使用します。プラグインの編集ページで「テンプレートから同期」ボタンをクリックすると、すべてのプレースホルダをカスタム属性としてすばやく同期できます。これらのカスタム属性は、プレースホルダに値を割り当てるためにページ・デザイナで使用されます。

アクション・ポジションおよびアクション・テンプレート

プラグインを編集してアクションを追加すると、エンド ユーザーはテンプレート コンポーネントとやり取りできます。「アクション・テンプレート」では、テンプレートが単純なボタンであるか、「メニュー」ボタンを表示するかを定義します。「アクション・ポジション」は、テンプレート内のボタンの位置を定義します。ページ・デザイナで、ボタンのクリック時に実行するアクションを指定します。

スロット

ヒント:

以前のリリースでは、スロット表示ポイントと呼ばれており、その後、位置に名前が変更されました。

スロットはテンプレート・コンポーネント・マークアップのプレースホルダであり、リージョン、アイテム、ボタンなどのページ・コンポーネントを配置できます。サポートされるページ・コンポーネントを構成することにより、スロットを使用して、テンプレート・コンポーネントへのリージョン、アイテムおよびボタンの配置を制限できます。

テンプレート・コンポーネント・スロットは:

  • 階層化されたUI設計を使用してより高度なテンプレート・コンポーネントを作成するために必要となる、複数のコンポーネントのネストをサポートします。
  • テンプレート・コンポーネント・スロットで許可されるコンポーネントのタイプを開発者が制限できるようにすることで、一貫性のある外観を実現するための強力なテンプレート・ガードレールを提供します。

スロット使用時のページ・デザイナにおける影響:

  • アイテム・コントロール - 「チェックボックス」または「ラジオ」アイテム・タイプのみを許可するなど、スロットにアイテム・コントロールがある場合:

    • スロット内に作成されたアイテムは、デフォルトでチェックボックス(最初に使用可能)に設定されます。

    • 「レンダリング」ツリーおよび「レイアウト」タブで、開発者はサポートされていないアイテム・タイプをドロップできません。

    • プロパティ・エディタでは、サポートされていないアイテム・タイプが「非サポート」フラグで非表示になります。開発者は、「タイプ」選択リストをクリックして「非サポートの表示」を選択することで、使用可能なすべてのアイテム・タイプの完全なリストを表示できます。

    • 開発者は、サポートされていないアイテム・タイプをプロパティ・エディタからスロットに移動できます(ソフト制限)。

  • リージョン・コントロール - 「アバター」または「静的コンテンツ」リージョン・タイプのみを許可するなど、スロットにリージョン・コントロールがある場合。

    • スロット内に作成されたリージョンは、デフォルトでアバター(最初に使用可能)に設定されます。

    • 「レンダリング」ツリーおよび「レイアウト」タブで、開発者はサポートされていないリージョンを移動できません。

    • プロパティ・エディタでは、サポートされていないリージョンが「非サポート」フラグで非表示になります。開発者は、「タイプ」選択リストをクリックして「非サポートの表示」を選択することで、使用可能なすべてのリージョンの完全なリストを表示できます。

    • 開発者は、サポートされていないリージョンをプロパティ・エディタからスロットに移動できます(ソフト制限)。

ネストされたテンプレート

Oracle APEXでは、現在のテンプレート・コンポーネント内に別のテンプレート・コンポーネントを埋め込むことができます。テンプレート・コンポーネントをネストすると、テンプレートをより小さい再利用可能なコンポーネントに分割できます。テンプレート・コンポーネントをネストするには、テンプレート・ディレクティブの{with/}および{apply/}構文を使用します。

テンプレート・コンポーネントの例の表示

ユニバーサル・テーマには、複数のテンプレート・コンポーネント・タイプ・プラグインが含まれています。

  • コメント - クラシック・レポートのコメント・テンプレートに基づきます。カスタム・リージョン属性を使用して、ユーザー・コメントおよびステータス更新を宣言的に表示します。アバターをサポートします。
  • コンテンツ行 - クラシック・レポートのコンテンツ行テンプレートに基づきます。カスタム・リージョン属性を使用して、リージョンのコンテンツおよびレイアウトをコンテンツ行として表示します。アバターとバッジをサポートします。
  • メディア・リスト - クラシック・レポート・メディア・リスト・テンプレートに基づいています。カスタム・リージョン属性を使用して、リージョンのコンテンツおよびレイアウトをメディア・リストとして表示します。アバターとバッジをサポートします。
  • タイムライン - クラシック・レポートのタイムライン・テンプレートに基づいています。カスタム・リージョン属性を宣言的に設定して、一連のイベントを表示します。

使用可能なテンプレート・コンポーネント・タイプ・プラグインを表示するには、「共有コンポーネント」「テンプレート」の順に進み、「タイプ」「テンプレート・コンポーネント」でソートします。

19.2.1.3 プラグインの例

プラグインの例は、apex.worldおよびOracle APEX GitHubリポジトリで確認します。

次の場所で、プラグインの実装例を表示できます。

  • APEX WorldのPlug-insを見て回ります。

  • サンプル・プラグインは、Oracle APEX GitHubリポジトリで確認します。

    • https://github.com/oracle/apexにアクセスします。

    • 「ブランチ」で、リリースを選択し、「プラグイン」を選択します。