2006年の2月ぐらいにひっそりと公開していたものですが、JavaScriptによるWindowマネージャを作ってみました。script.aculo.usを見ていて、こういうの簡単にできそうだなぁと思ったら案の定簡単でした。
このサンプルではファイルの拡張子に応じて最適なHTMLテンプレートを選択して描画しています。
外枠のWindowはJavaScriptを使ってレイヤー管理されています。Windowsマネージャというとおりウインドウ間の重なりも管理しています。(重なり制御は、ちょっと怪しい)
ウインドウ重なりの制御は、Flash MX 2004 Professionalに添付されていたWindowコンポーネントでやっていることを参考にしています。
なお外枠のウインドウは、Jemplateを使ってテンプレート化しているのでデザイン変更があっても簡単に反映することができますし、document.writeでダラダラとHTMLを書くような作業は不要です。
なおこのサンプルで考えたのは画像やFlash、動画を動的に読み込むことでマルチメディアビューワーみたいなことができるんじゃないかなぁと思っています。
カラメルでは、このソースを流用しヘルプウインドウなどに使っています。
カラメルの画面上に丸い「?」のアイコンがあるのですが、それをクリックすることで表示されます。
カラメルの方はウインドウをドラッグできないように変更し、代わりに画面上のどこをクリックしても開いているヘルプウインドウが閉じるようにしていますが、こういうのが簡単に変更できるのもシンプルなレイヤーコンポーネントが故のポイントだと思います。