Smart CODE
生成済みコードに関するオンラインガイド

名前
Groups - グループデータオブジェクト

概要
グループデータオブジェクトは、プログラマによって生成されたソフトウェアと X-Designer によって生成されたソフトウェアの両方に使用できます。プログラマは、グループを構成する個々のコントロールに対応するメンバー要素を使用します。代替 (専用) API は、トランスポート層でグループを自動的に処理するためのもので、すべてのグループを同じ方法で (名前付きメンバーコントロールにアクセスせずに) 処理する必要があり、メンバーコントロールの配列、グループ内のコントロールの数、および公開もしくは非公開要素の認識、要素のエミュレート、インタフェースの更新などのためのメソッドが組み込まれています。

グループ処理を自動化するためのコードは、Java および C++ の基底クラスグループにあります。C では、グループデータ構造の最初のいくつかのフィールドがベースの AnyGroup_t と個々の特定のグループインスタンス間で共用されます。これは、X イベントを使用してきたプログラマにはなじみのある手法です。

自動化された API は、プログラマが使用するためのものではなく、現時点では非公開です。 ここでは、コード例でスマートコードデータ構造内のグループオブジェクトが適切な型に頻繁にキャストされる理由を説明するために、この API に言及しています。

グループオブジェクトは、グループ内の要素のコンテナとしてだけ提供されます。グループオブジェクトの作成を処理するコードは、groups_<c|cpp|java> ディレクトリにあり、X-Designer コードファイルと同じステータスを持っています。ほかのすべてのスマートコードファイルは、必要になった時点で存在していない場合にだけ再生成されますが、このコードファイルは、毎回再生成されます。

形式
C
Base structure AnyGroup_t;

各インスタンス GROUPNAME`_t は AnyGroup_t 非公開データ要素を構造内の最初のデータとして所有しています


C++
Base class sc_group_c

各インスタンス GROUPCLASS は sc_group_c をサブクラスに入れます

Java
Base class SCGroup

各インスタンス GROUPCLASS は SCGroup をサブクラスに入れます

説明
使用法
グループデータ構造およびクラスは、コールバックを設定するために生成されるコード内に X-Designer によって作成されます。これらは、グループ内の個々のコントロールにコールアウトがアクセスできるようにしたり、ソフトウェアがグループ要素を自動的に処理できるようにするためにコンテナとして使用されます。

グループデータ構造を使用してプログラミングを行うには、グループを構成するコントロールとその他のデータ要素の名前を知っている必要があります。クライアント側では、個々の要素には、ユーザーがコントロールに入力または選択したデータを表すリソースに対応する getter および setter があります。このようなリソースの 1 つが、コントロールの「デフォルト」または特徴的なリソースとして取得され、サーバーに送られます。

サーバー側でもグループデータ構造は同じですが、サーバー側のコントロールは、ブール型、文字列、整数などの単純なデータオブジェクトで、複雑なユーザーインタフェースコントロールではないことが唯一の相違点です。これらも 1 組の get() と set() を使用してアクセスされます。サーバー側のグループメンバーはクライアント側のコントロールのデフォルト値に対応する単一の値を持っています。

getter および setter の例は、「取得/設定スマートコードスタブ」のセクションで参照してください。
関連項目
データ構造とファイルグループメンバーとしてのユーザーインタフェースコントロール