DIALS image viewer の周辺

DIALS image viewer は dials/command_line/image_viewer.py がエントリポイントであるが、直ちに dials/util/spotfinder_wrap.py に移譲される。GUI の本体は dials/util/spotfinder_frame.py であるが、これは cctbx 側の rstbx に含まれている slip_viewer を継承している。slip_viewer は、さらに http://sourceforge.net/p/cctbx/code/HEAD/tree/trunk/rstbx/viewer:rstbx/viewer の拡張版である。

画像を選択する GUI を image_chooser と呼ぶ。実体は wxChoice だ。ここに画像を追加するのが XrayFrame.add_file_name_or_data() だ。DIALS 側から来る場合の引数は chooser_wrapper である。XrayFrame.get_key() は、画像の「表示名」を取得する。chooser_wrapper の場合は __str__ が実装されているので、str() を呼ぶことで filename.cbf [0] のような文字列を作れる。単一の画像の場合はファイル名だ。

image_chooser の選択イベントは、rstbx/viewer/frame.py にある OnChooseImage() で処理される。これは image_chooser に含まれているデータ(ファイル名と index) を取り出して load_image() に与える。DIALS 版の場合は、 dials/util/spotfinder_frame.py で iotbx ではなくて dxtbx を使うように修正されている。