トップ | バージョン2 最新版 | バージョン3 β版

チケット #199 (closed タスク: 対応済)

登録: 16 年

最終更新: 16 年

(内部設計の改善)View管理方法の改善(所有者をAppにして、Windowとの結びつきを弱める)

報告者: daisuke 担当者: daisuke
優先度: 普通 マイルストーン: 2.1.9b4
コンポーネント: アプリケーション バージョン:
キーワード: 関係者:

説明 (最終更新者: daisuke) (diff)

(内部設計の改善)
現状、WindowがViewを所有しており、ViewとDocument等とのインターフェイスはWindowが介在していることが多い。
しかし、Viewの表示方法をいろいろにする(段組表示とか、複数ウインドウへ同じViewを表示するとか、マルチファイル検索結果をメインウインドウにひょうじするとか)場合には、扱いづらい。
以下のように改善する。

  1. Viewオブジェクトの所有者はAppに変更。Viewはアプリ内でユニークなObjectIDを持つ。
  2. Windowオブジェクトは内包するViewオブジェクトのObjectIDを保持。
    Windowオブジェクト削除時に、内包Viewを削除するので、動作的には今までと同じ。
    ただし、Viewを切り離し可能。
  3. Documentオブジェクトは、ViewオブジェクトのObjectIDリストを持つ。
    Document変更時の更新等、Windowを介さずに、直接Viewのメソッドをコールする。
  4. Viewから別のViewに情報を渡すときも、Windowを介さずに、直接Viewのメソッドをコールする。
  5. Windowは基本的に「枠」としての機能しか持たない。
    (基本的な設計思想としてはそうなっているが、WindowがViewを所有していたので、矛盾が生じていた。)

これにより、Windowの種類に関係なく、いろいろなWindow上で、Viewの機能を実現できるようになる。
1, 2を一度に変更。3, 4は徐々に変更。

追加

  1. Windowオブジェクトの所有者も必ずAAppにする。
  2. Viewは、そのViewが含まれるウインドウへのWindowIDを保持する。

チケットの履歴

更新者: daisuke (16 年 前)

  • ステータスnew から assigned に変更されました。

更新者: daisuke (16 年 前)

1, 2の変更完了。
2.1.9b4では、この変更が盛り込まれます。(動作上の変更は無し。)

更新者: daisuke (16 年 前)

  • 説明 が変更されました (diff)

更新者: daisuke (16 年 前)

  • ステータスassigned から closed に変更されました。
  • 解決方法対応済 に設定されました。
  • マイルストーン2.1.10 から 2.1.9b4 に変更されました。

3, 4, 5以外は修正完了。
3, 4, 5は今後、徐々に変更していくので、
とりあえず本チケットはクローズ。

Note: チケットについてのヘルプは TracTickets を参照 して下さい。