MVC の Adobe Flex プロジェクトで MATE を使用しています。ページの 1 つに、RPC からの情報を表示するダイアログ ウィンドウがあります。このダイアログがポップアップするページは、表示されているデータとは無関係であるため、これは別のモデルです。ダイアログ ウィンドウを作成し、それをユーザーに表示して、モデルからデータを挿入する MATE マッピング ファイルを作成するにはどうすればよいですか?
読んでくれてありがとう。
MVC の Adobe Flex プロジェクトで MATE を使用しています。ページの 1 つに、RPC からの情報を表示するダイアログ ウィンドウがあります。このダイアログがポップアップするページは、表示されているデータとは無関係であるため、これは別のモデルです。ダイアログ ウィンドウを作成し、それをユーザーに表示して、モデルからデータを挿入する MATE マッピング ファイルを作成するにはどうすればよいですか?
読んでくれてありがとう。
アプローチを見つけたようですが、別のアイデアに興味がある場合は、Mate のポップアップにアプローチする方法について、Mate フォーラムに非常に良いスレッドがあります。いくつかのサンプル コードが含まれており、関連するベスト プラクティスと特定の選択が行われている理由について説明しています。
ポップアップのあるアプリを Mate << Mate Forums に変換する
私があなたを正しく理解していれば、必要なことを行うためのコードがいくつかあります(そのスレッドから適応されています)。RPC 呼び出しの結果をビューに挿入し (ビューがそのデータをどのように表示するかにマップを依存させない)、ビューはデータがあるときはいつでもポップアップを作成し、データがないときはいつでもポップアップを削除します。スレッドには、このコードのほとんどの詳細な説明があります。
イベントマップ:
<Injectors target="{PopupParentView}">
<PropertyInjector destinationKey="rpcData"
source="{FooManager}" sourceKey="rpcData" />
</Injectors>
PopupParentView: ...
private var popup : UIComponent;
private var rpcData : Object;
private function onPreinitialize( event : Event ) : void {
BindingUtils.bindSetter(rpcDataChanged, this, "rpcData");
}
private function rpcDataChanged( value : Object ) : void {
invalidateProperties();
}
override protected function commitProperties( ) : void {
// two mutually exclusive branches: either the property can be interpreted as "show the popup"
// and the popup doesn't exist, or we shouldn't show the popup, but it does exist. all other
if ( rpcData != null && popup == null ) {
popup = PopUpManager.createPopUp(...);
} else if ( rpcData == null && popup != null ) {
// make sure to set the popup property to null
PopUpManager.removePopUp(popup);
popup = null;
}
}
</Script>
...