ツリー型挫折しそう

やっぱり調整の要るコード量が半端じゃない。ちょっと整理してみる。新しいタブが追加されるパターンが多すぎるのが原因だ。自らの築いてきた機能が怨めしい。半ば諦めてる。

起動時のブランクタブ
ルートに配置。
起動時のスタートアップ(前回終了時復元)
終了時のツリーを保存して復元。
起動時のスタートアップ(フォルダとか)
全部ルートに配置か、スタートアップという器の下。
お気に入りから単一を開く
ルート末尾に配置。
お気に入りからフォルダを開く
全部ルート末尾に配置か、ルート末尾にお気に入りフォルダ名の器を作ってその下に配置。
履歴
ルート末尾に配置。
最近閉じたページ
位置復元が理想だが正直難しい。
空白タブを新規で開く
ルート末尾に配置。
表示中のタブをコピー
オリジナルと同階層で真下に配置。
クリップボードの内容で開く
ルート末尾に配置。複数でも器は要らないかなあ、つーか名前が付けられない。
選択中の文字列で開く
アクティブタブの下階層の末尾に配置。
選択中のリンクを開く
アクティブタブの下階層の末尾に配置。
ホイールクリック
アクティブタブの下階層の末尾に配置。
Shift+Click、ポップアップ
アクティブタブの下階層の末尾に配置。
ファイルメニューの「開く」
ルート末尾に配置。
最後に閉じたタブを開きなおす
位置復元が理想だが正直難しい。
Web検索
ルート末尾に配置。もしくはキーワードで器を作ってその下か。ページ内の文字列選択した場合はそのアクティブタブの下階層も捨て難い。
ドロップターゲット
アクティブタブの下階層の末尾に配置。
URLリストを開く
保存時のツリーを復元して、ルート末尾に配置?
スナップショットを開く
保存時のツリーを復元して、ルート末尾に配置?
カスタムパネルから新規ウィンドウ
ルート末尾に配置ぐらいしかない。
外部から渡されたURL
ルート末尾に配置。
ポップアップウィンドウのアタッチ
ポップアップ元の下階層の末尾に配置が理想だが正直難しい。

漏れてるものもありそうだが、ざっと上記全部書き換え、ツリーノードのクラス作成、ツリーイメージ描画、タブのドラッグ&ドロップ処理修正(ドラッグ先の下階層にドロップできるようにしたりとか)、スタートアップとかURLリストの階層対応。労力としてはこのぐらいかな。気軽に出来る量じゃないわ。
ツリービューのオーナードローでやれば幾分マシだろうけど、同じアプリに全く違う2つの管理方法を載せるのは嫌。全員これ使うなら作り直すけど、タブが好きな人もいるだろうし。