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

チケット #199 (new タスク) — at 初期バージョン

登録: 15 年

最終更新: 15 年

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

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

説明

(内部設計の改善)
現状、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は徐々に変更。

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