2006年05月24日

FieldEditorを自作する

SWT/JFaceには、設定ダイアログを簡単に作れる仕組みがある。
PreferenceDialogを使う方法だ。
↓こんなんがさくっと作れる。
preference1.PNG

FieldEditorPreferencePageにFieldEditorをaddしたら、設定オブジェクトのPreferenceStoreから勝手にロードしてデフォルト表示、OKボタン押したら自動でセーブしてくれる。すんごい楽だ。


FieldEditorを継承しているクラスはいろいろあるけど、コンボボックスのFieldEditorが無かった。
無かったら作ってしまえと言うことで作ってみる。
他にどんな種類のFieldEditorがあるかは、EclipseにてFieldEditorの階層を表示すれば継承してるクラス全部見れるのでそこから探すことができる。


FieldEditorを継承することになるけど、その辺を自作するときのポイントなど。
詳しいことはFieldEditorのJavadocを参照。
まずコンストラクタで、親のコンストラクタを使わずに
init(name, labelText);
createControl(fieldEditorParent);
を呼ぶ。
initで設定ファイルのキー項目と設定のタイトルラベルの文字列を設定。

doFillIntoGrid()をOverrideし、実際のコンポーネント部分を作成する
このときgetLabelControl(parentComposite)を呼ぶことで、設定項目のラベルテキストを作成することができるので先に呼んでおく。
その後作りたいGUIコンポーネントを作成。

設定の読み込み、保存のためにdoLoad()とdoStore()を実装する。
この辺はStringFieldEditorとか適当なのを参考にする。

getNumberOfControls()は適当に横幅のカラム返すようにしとく。
adjustForNumColumns()も必要であればStringFieldEditorとか参考にして実装しとく。


と言うことで、基本的にはdoFillIntoGrid()で乗せたいコンポーネントつくって、後は定型のコードをマネすればOKな感じ。楽。

Trackback on "FieldEditorを自作する"

このエントリーのトラックバックURL: 

"FieldEditorを自作する"へのトラックバックはまだありません。

Comment on "FieldEditorを自作する"

"FieldEditorを自作する"へのコメントはまだありません。

Post a Comment

コメントする

コメント登録機能が設定されていますが、TypeKey トークンが設定されていません。