前回でMaster
プラグインプロジェクトのダウンロード
今回はポイントを絞って解説するために,
画面とクラスの関係
今回の実装でフォームデザイナーの画面が完成しました。画面とそれを実装しているクラスの関係を示します。なお,
Details
以下のソースコードはFieldDetailsPageクラスのselectionChanged()メソッドです。この実装ではフィールドが選択された場合に,
FieldDetailsPageクラスのselectionChanged()メソッド
public class FieldDetailsPage implements IDetailsPage {
...
public void selectionChanged(IFormPart part,
ISelection selection) {
boolean fieldChange = true;
if (fSections != null) {
for (AbstractFieldDetailsSection section : fSections) {
if (section.getSectionPart() == part) {
fieldChange = false;
}
}
}
if (fieldChange) {
if (fSections != null) {
for (AbstractFieldDetailsSection section : fSections) {
section.getSectionPart().getSection().dispose();
}
fSections.removeAll(
new ArrayList<AbstractFieldDetailsSection>());
}
fSections = new ArrayList<AbstractFieldDetailsSection>();
fSections.add(new FieldDetailsGeneralSection());
fSections.add(new FieldDetailsValidatorSection());
for (AbstractFieldDetailsSection section : fSections) {
section.createContents(
fManagedForm.getToolkit().createSection(
fParent, Section.TITLE_BAR),
fManagedForm);
}
fParent.pack();
}
for (AbstractFieldDetailsSection section : fSections) {
section.selectionChanged(part, selection);
}
}
}
定義されたバリデータを表すDefinedValidatorクラス
フォームデザイナーはPHPのバリデーションフレームワークPiece_
ひとつのバリデータ定義にはひとつ以上のルールを設定する必要があります。例えば,
Emailバリデータの定義
List<DefinedRule> emailRules = new ArrayList<DefinedRule>();
emailRules.add(new DefinedRule(
"allowDotBeforeAtmark",
DefinedRule.WidgetType.YesNo,
"false"));
DefinedValidator emailValidator = new DefinedValidator(
"Email",
"メールアドレス",
emailRules));
DefinedValidatorクラスはコンストラクタをプライベートとして定義し,
Piece_