マルチドキュメントアプリケーションがあります。
これらの各ドキュメントからデータを取得し、データのサブセットを別の画面に配置できるグローバルな「管理」HUDウィンドウにミラーリングしたいと思います。
各ドキュメントインスタンスにHudControllerのグローバルオブジェクトが必要ですか、それともさまざまなドキュメントのすべての情報を独自のインスタンスとしてHudControllerに委任する方法はありますか?
助けてくれてありがとう!
マルチドキュメントアプリケーションがあります。
これらの各ドキュメントからデータを取得し、データのサブセットを別の画面に配置できるグローバルな「管理」HUDウィンドウにミラーリングしたいと思います。
各ドキュメントインスタンスにHudControllerのグローバルオブジェクトが必要ですか、それともさまざまなドキュメントのすべての情報を独自のインスタンスとしてHudControllerに委任する方法はありますか?
助けてくれてありがとう!
さまざまなドキュメントのすべての情報を独自のインスタンスとしてHudControllerに委任する方法はありますか?
これは、シングルトンが適切な1つのケースです。同様のパネルの他の例がいくつかあります。フォントパネルとカラーパネルはどちらも同じように機能します。したがって、HudControllerをシングルトンにします(これを行うための最善の方法についての提案があります)。
次に、HudControllerにドキュメントの変更を監視させます。詳細はさまざまですが、モデルにアクセスするためのパブリックプロパティをドキュメントクラスに与えてから、HudControllerにドキュメントウィンドウの開閉を監視させることをお勧めします。これらのいずれかが発生した場合は、HudControllerに、各ウィンドウの一致するドキュメントのプロパティの監視を開始または終了させます。
KVO互換の方法でプロパティの値を変更する限り、変更によりHudControllerに自動的に通知が送信され、HUDウィンドウに表示される内容が更新されて変更に応答します。