一部の変更後にすべてのデータを更新する最もスムーズな (簡単でデザインの良い)方法は何ですか? 同じデータを表示する複数のウィンドウを開くことができるアプリケーションがあります。ユーザーはいずれかのウィンドウで 1 つのノードを編集できますが、すべてのビューでそのノード (またはその子) を更新する必要があります。
例: TopComponentで OutlineViewを使用するExplorerView があり、すべての章がツリー構造で表示されます。しかし、このウィンドウは何度も開くことができます (MS Word の「新しいウィンドウ」は、同じデータの別の「ビュー」です)。1 つのチャプターのタイトルを変更するときは、表示されているすべての場所 (すべての展開されたノード) で更新する必要があります。
解決策が 1 つありますが、いくつかの長所と短所があります。独自のルックアップを作成し、開いているすべての ExplorerView の開いているすべてのルート ノードをそこに格納します。次に、編集するたびに、開いているすべてのルート ノードを循環し、それらのメソッドを呼び出して、表示されている構造を再作成します (初めて表示するときのように setChildren を呼び出します)。しかし、ツリー ビューは折りたたまれます。そして、展開されたすべてのノードを記憶する OutlineView の実装である何らかのメカニズムを作成すると、展開されたツリーが再作成されます (ただし、ツリー全体ではなく、以前のようにのみです)。データが多すぎますよね?