アプリケーション開発者向けの Web UI フレームワークの Extensibility Workbench

Web UI フレームワークには、画面のユーザー・インターフェース構成にオーバーレイを含めるために既存のアプリケーションで WYSIWYG ツールを使用することができる Extensibility Workbench が含まれます。 アプリケーション開発者は多くの場合 Designer Workbench を使用しますが、Extensibility Workbench は、実際のユーザー・インターフェースの Web UI フレームワーク・ツールの動作をテストおよびシミュレートするのに役立ちます。

Web UI フレームワークには、以下のコンポーネントが含まれます。
  • Extensibility Workbench

    出荷時の状態の画面を拡張するために使用されます。 オーバーレイを含む JavaScript ソース・ファイルが生成され、すぐに使用可能な画面のソース・ファイルとともに組み込まれます。 これは、 JavaScript ライブラリーのロードによって実現されます。

  • Designer Workbench

    新規画面を設計するために使用されます。

Extensibility Workbench は、アプリケーションの既存のインストールでのみ実行および使用することができます。 Designer Workbench は、スタンドアロン・アプリケーションとして実行することも、Extensibility Workbench からアクセスすることもできます。 Extensibility Workbench から Designer Workbench にアクセスする場合は、「戻る」 ボタンを使用してアプリケーションに戻ることができます。 しかし、Extensibility Workbench を再起動する必要があります。

Designer Workbench で設計された画面は、機能動作を確認するためにアプリケーションの既存のインストールに配置し実行しなければなりません。 Extensibility Workbench で、拡張は稼働中のアプリケーションで画面に追加することができます。 画面を変更した場合、変更内容はすぐに表示することができます。

Extensibility Workbench を使用して画面を拡張するには、対応する画面にナビゲートし、拡張を開始します。

機能の概要

Extensibility Workbench のユーザー・インターフェース・レイアウトは、複数のタブのあるエディターおよびビューを備えた Designer Workbench と類似します。 Designer Workbench では、コンポーネントはキャンバス上で編集されます。 Extensibility Workbench では、画面は既存の画面上の出荷時の状態のコンポーネントを編集することができるキャンバスとして動作します。 拡張を適用するか、適用せずに、画面を表示することができます。

モデル・バリデーターおよび画面ローカライズのツールは、拡張の開発を支援するために使用することができます。

技術概要

Extensibility Workbench は、Ext JS JavaScript フレームワークを使用して構築されます。 画面の差分拡張機能は JSON メタデータ・フォーマットでファイルに格納されます。 このフォーマットは基本画面に適用される拡張のプロパティー・オーバーレイを格納します。 テンプレートが適用される拡張コード・ブロックを生成するためにも使用されます。

差分拡張性のためのメタデータの例を以下に示します。 オーバーレイ項目は Extensibility Workbench を使用して変更された内容を示します。

{
   type: "SCREEN_EXTENSION",
   version: "",
   extension: {
       className: "com.zzz.AnExtension",
       superclassName: "sc.plat.ui.Extension",'
       overlays: [
            {
               op: 'change',  //operation type
               sciId: 'view',   //reference of the component being change'd
               config: <a_config_object_metadata>
            },
            { ... }, { ... }
       ]
    }
}

このメタデータは構成オブジェクト・メタデータ a_config_object_metadata を参照します。

プロパティーは異なるタイプの値を持つことができるため、構成オブジェクト・メタデータはプロパティー・タイプをキャプチャーする必要があります。 さらに、すべての構成オブジェクトはオブジェクトのためのプロパティーおよび検証ルールを提供する定義を必要とします。

構成オブジェクト・メタデータの例を以下に示します。

a_config_object_metadata = {
   property1: {
       type: <type_of_property>,
       value: <property_value>
    },
   property_string: {
       type: 'string',
       value: 'aString'
    },
   property_expr: {
       type: 'expr',
       value: '(x+y)'
    },
   property_object: {
       type: 'object',
       value: <another_config_object_metadata: { ... }>
   },
    defid: <id_of_config_object_definition>
}

上記のメタデータから、結果の構成オブジェクトは以下のとおりです。

a_config_object = {
    property1: <aValue>,
    property_string: 'aString',
    property_expr: (x+y),
    property_object: <another_config_object>
}