複数辞書対応

皆様、ご無沙汰してます。いろいろな試行錯誤を経て、ようやく複数辞書が形になりつつあるので、そのご報告です。


http://aquaskk.sourceforge.jp/images/multi-dictionary.png


今のところ、以下の辞書を複数登録できるように考えています。

    1. SKK 辞書
      ~/.skk-jisyo や、SKK-JISYO.L など、普通の SKK 辞書です。
    2. SKK 自動更新辞書(未実装)
      SKK OpenLab からダウンロードして、常に最新を保つ辞書です。
    3. ことえり辞書
      ことえり用のユーザー辞書です。
    4. 外部 skkserv 辞書(未実装)
      skkserv プロトコルで通信する辞書です。今の設計だと、AquaSKK の skkserv を指定した場合に無限ループしちゃいます。ちょっと考えないといけませんね。
    5. *** グループ ***
      検索ストッパーです。もし既に候補が見つかっていれば、これ以上先(下)の辞書を検索しません。うまい名前が見つからなくって、とりあえず「グループ」にしてます。

辞書の検索順は上から下ですが、ユーザー辞書は必ず一番最初に検索されます。これは固定です。それ以外の辞書については、ドラッグ & ドロップで入れ替え可能になっています。また、有効・無効も切り替えられるようになっています。


なお、今回は Cocoa Bindings で NSTableView と NSArrayController と NSUserDefaultsController を繋いでいます。なので、ユーザーデフォルト部分の仕事が随分楽チンでした。初めて使ってみたのですが、良く考えられたうまい仕組みですね。プログラミングをしていても楽しいし、なかなかお勧めです。


まだ説明が足りませんけど、とりあえず今日はここまで。今月中に BETA を出せればいいなと思ってます。