UserConfig に連想配列を格納して、設定画面から変更できるようにしたかったので挑戦してみた。
実現方針は下記。
- 設定画面の設定値を連想配列に紐付ける
- 連想配列に変更があったら UserConfig を更新する
設定画面の設定値を連想配列に紐付ける
Settings の各関数にリスナを渡せるので、リスナ内で連想配列に出し入れするよう頑張ってもらう。
select は、 3.0.5 の時点ではリスナを渡せない。 3.0.6 くらいでフィックスされるのではないだろうか。
連想配列に変更があったら UserConfig を更新する
UserConfig[key] で取得できる値はコピーなので、 格納した連想配列に変更があった場合には連想配列自体を入れ替える。
上述のリスナの set 処理の最後に、連想配列をごっそり入れ替える処理を入れる感じ。
コードと、その結果の設定は下記の通り。
設定項目がゴチャッとしてきたらそれなりにわかりよくなるのではないでしょうか。
書きながら思ったけど、何かやるたびに連想配列全体のコピーが走るんだな、これ。 性能が気になる場合は、更新・取得にさらなる工夫が必要ですね。
0 件のコメント:
コメントを投稿