targetWidget プロパティーを使用する Rich UI ウィジェットを作成する場合 (または、外部型ウィジェットを作成する場合) に、その他の場合には定義されないイベント・タイプを宣言できます。 この方法により、一連の作業を定義するということについて、業務開発者の考えを 整理させることができます。開発者は、「イベント」ビューでイベント・ハンドラーを割り当てることも できます。
次の例は、カスタマイズされたボタン (MyButton) を使用して います。このボタンは @VEEvent プロパティーを使用しています。この例をご使用のワークスペース で試すときは、EGL デベロッパーが EGL エディターを使用するときに、MyButton 型のボタンの作成と、新しく定義されたイベント (onPreClick および onPostClick) に対するイベント・ハンドラーの割り当てを目的とすることができるようになったことに注目してください。
package pkg;
import com.ibm.egl.rui.widgets.Button;
handler MyHandler type RUIhandler {initialUI = [ someButton ]}
someButton MyButton{text = "fresh",
onPreClick ::= respondToPreClick,
onClick ::= respondToClick,
onPostClick ::= respondToPostClick};
function respondToPreClick(e Event in)
sysLib.writeStdout("in pre");
end
function respondToClick(e Event in)
sysLib.writeStdout("in click");
end
function respondToPostClick(e Event in)
sysLib.writeStdout("in post");
end
end
package pkg;
import com.ibm.egl.rui.widgets.Button;
handler MyButton type RUIWidget {
targetWidget = internalButton,
@VEWidget{
category = "New EGL Widgets",
template = "pkg.myButton{ text=¥"myButton¥" }"}
}
text string {@EGLProperty{setMethod = setText,
getMethod = getText},
@VEProperty{}};
internalButton Button{onClick ::= respondToClick};
onPreClick EventHandler[] {@VEEvent{}};
onClick EventHandler[] {@VEEvent{}};
onPostClick EventHandler[] {@VEEvent{}};
private function setText(text String in)
internalButton.text = text;
end
private function getText() returns (String)
return ( internalButton.text );
end
private function respondToClick(e Event in)
preSize int = onPreClick.getSize();
clickSize int = onClick.getSize();
postSize int = onPostClick.getSize();
for (i int from 1 to preSize by 1)
OnPreClick[i](e);
end
for (i int from 1 to clickSize by 1)
OnClick[i](e);
end
for (i int from 1 to postSize by 1)
OnPostClick[i](e);
end
end
end
@VEEvent に対する変更は、 パレットおよびファイルを更新した場合のみ EGL エディターのファイルで使用可能です。パレットを更新するには、「設計」サーフェスの「パレットの更新」を クリックします。『「設計」サーフェスでのツールの使用』を参照してください。ファイルを更新するには、「プレビュー」タブで「Web ページの更新」ツールをクリックします。『EGL エディターでの Web アプリケーションの実行』を参照してください。