アウトライナー機能を作る水曜日

7:00

おはようございます。今日は、気になっているアウトライナー機能を実装してみます。

Textbox:

アウトライナーの「横移動」を実装してみます。

* * *

いきなり全体はしんどいので、まずは項目を移動させるところから。保存などは後から考えます。

* * *

移動は簡単にできました。続いて保存処理ですが、そのまえに、最後の一つを移動させるとUL/liがなくなってしまう問題に対処する必要があります。

publish:Textboxの編集領域で隣の領域にジャンプするショートカットキー - 倉下忠憲の発想工房

OKでしょう。

あとは、移動先で保存するだけ。これは別の処理になりますね。

* * *

左の領域はこのページのdivですが、右の領域は「考事ノート」ファイルの引き込みです。なので、その保存は考事ノートに書いた方がいいでしょう。その領域で、何かが起きたら内容を保存する、というもの。保存は箇条書き形式ならば、このページで使っているものと同じ処理で行けそうです。

* * *

どういうタイミングのときに保存すればいいか。1秒ごととかでもいいが、別のやり方をやりたい。

普通の編集画面ならば、フォーカスがオフになったとき、というのは一つの手だが、これは「移動されてくる側」なので、そもそもフォーカスがない。右に移動させたときに、フォーカスも移動させたらよいわけだが、フォーカスを戻す一手が増えるのであまり望ましくないだろう。

内容が書き変わったら? 

そうか。普通の保存とは別に、「項目を移動させた後に保存する」という動作をショートカットキーの方につけておけばいいのか。

両方の操作で使えるように関数化しておけばいいだろう。

* * *

実装できました。

9:00

Textbox:

今度は右から左の領域への移動ですが、よく考えたらやることはまったく同じで、押すキーだけが違うだけです。

ということは、そもそもショートカットキーの書き方が最適ではないですね。

関数にキーの判定を入れるのではなく、関数の呼び出しにキーの判定を使う方が良さそうです。

12:00

Textbox:

続いて、一日の終わりの保存機能を考えます。

まず、その日に書いたものはすべて保存しておく、というのが前提。その上で、次の日に移動させるものがあるのか無いのか、という話。