0

一部の変更後にすべてのデータを更新する最もスムーズな (簡単でデザインの良い)方法は何ですか? 同じデータを表示する複数のウィンドウを開くことができるアプリケーションがあります。ユーザーはいずれかのウィンドウで 1 つのノードを編集できますが、すべてのビューでそのノード (またはその子) を更新する必要があります

例: TopComponentで OutlineViewを使用するExplorerView があり、すべての章がツリー構造で表示されます。しかし、このウィンドウは何度も開くことができます (MS Word の「新しいウィンドウ」は、同じデータの別の「ビュー」です)。1 つのチャプターのタイトルを変更するときは、表示されているすべての場所 (すべての展開されたノード) で更新する必要があります。

解決策が 1 つありますが、いくつかの長所と短所があります。独自のルックアップを作成し、開いているすべての ExplorerView の開いているすべてのルート ノードをそこに格納します。次に、編集するたびに、開いているすべてのルート ノードを循環し、それらのメソッドを呼び出して、表示されている構造を再作成します (初めて表示するときのように setChildren を呼び出します)。しかし、ツリー ビューは折りたたまれます。そして、展開されたすべてのノードを記憶する OutlineView の実装である何らかのメカニズムを作成すると、展開されたツリーが再作成されます (ただし、ツリー全体ではなく、以前のようにのみです)。データが多すぎますよね?

4

1 に答える 1

1

各ビューは一連のノードで構築されます。1 つのノードでデータを変更すると、変更はそのノードを含むビューに反映されますが、他のビュー (他のノードではない) には反映されません:-(.

NB RCP ベースのアプリケーションを設計するとき、「エンティティ」を使用してモデルを構築します。これらのエンティティには、NetBeans Lookup でモデル化した「能力」があります。これらは通常、単純な POJO です。

次に、エンティティを「見たい」場合は、エンティティの「ノード」を作成します。必要な数のノード(必要な数の "MS Word" ビュー) を持つことができますが、モデルには 1 つの "ツリー" を保持したいと考えています。

「エンティティ」のプロパティを変更すると、この変更はそれをリッスンしているすべてのノードに伝播されます。「アビリティ」を「アクション」に関連付ける方法を確認したい場合があります。

于 2012-04-04T19:53:09.460 に答える