リファクタリングが止まりません・・・
というのも、自分の設計力の無さに毎回自身でダメ出しをしてしまいます。
でも、そうした事も、より良いソースに作り直していると考えると、良しとしましょう。
今回の進捗機能追加は、「windowの整列機能」です。
デモ
※デモは最新版が表示されています。該当のデモを見たい場合は、ソースをCloneしてコミットを戻してブラウザで表示して確認してください。
ソースコード
https://github.com/yugeta/web_desktop/
今回のCommitは"#13"です。
解説
リファクタリングは、storage保存の箇所が、前回icon用の記述をしていたんですが、今回からwindowも加わるので、できるだけ同一処理で行えるように、送り込むデータなどの形式も揃えるようにしました。
でも、どうしても、iconは、idで管理しているのに対して、windowは、フォルダアイコンのname値で判断しているので、この処理差は少し初期の設計で気にするべきでした・・・でも、このまま進めて何とかしたいと思います。
大きなリファクタポイントとしては、これまでevent.jsで汚らしく書いていた処理を、desktop/***.jsという処理分けしたモジュールに移行したことで、かなりソースがスッキリしました。
event.jsは、かなりのスッキリ具合に満足度は高いですね。(個人的に)
windowの整列機能に関して、
icon/alignment.jsと同じように、window/alignment.jsというのを作成しましたが、中身はまるで違う処理構造になっています。
そして、右クリックメニューの中に「ウィンドウ整列」という項目を追加して、それに対する処理を、desktop/click.jsの中に書き込みました。
ついでに、windowもデータ保存するようにして、開いたウィンドウは、リロード後も、開いた状態にするようにしています。
この処理は、windowの移動や閉じる処理にも対応していますが、操作しているうちに、閉じたはずのウィンドウがリロードすると開いたりしているので、何かバグがありそうです・・・
次回以降にこっそりと修正しておきたいと思います。
あとがき
今回もさほど見た目が大きく変わる機能追加ではないですが、デスクトップの役割としては大きな一歩と言っても過言ではないでしょう。
そもそも、Webデスクトップで難易度の高い機能って何なんだろう?
・・・と、フと考え込んでしまいました。
本来ならば、OSとしての役割であれば、アプリケーションがインストールできたり、ネットに繋いでいろいろな事ができるようにすることが目的になるんですが、ブラウザ自体がすでにOS上にあるものなので、ここでの優位性は低いんですよね。
でも、そんなお悩みには、あまり気を止めず、引き続きWebデスクトップを仕上げるように作業を進めていきたいと思います。
0 件のコメント:
コメントを投稿