コンテキストメニュ、tooltip又はポップアップが表示される直前(又は隠れる直前)onOpenイベントがコンテキストtooltip又はポップアップメニューに通知するため送信されます。
イベントはorg.zkoss.zk.ui.event.OpenEventクラスのインスタンスです。また、getReferenceメソッドを呼び出すことで、コンテキストメニュー、tooltip、ポップアップを呼び出すコンポーネントを取得することができます。
パフォーマンスを改善するために、コンテキストが参照可能になるまでコンテキストの作成を遅らせることができます。
コンテキストの作成を遅らせる最も簡単な方法は以下のようにfulfill属性を使用することです。
<popup id="any" width="300px" fulfill="onOpen"> <button label="Hi"/><!-- whatever content --> </popup>
こうして、コンテキスト(Hiボタン)はページが読み込まれたとき作成されません。その代わり、onOpenイベントが初めて受信したときにコンテキストは作成されます。
Javaでコンテキストを動的にうまく処理するなら、以下のようにonOpenイベントを監視することができます。
<popup id="any" width="300px">
<attribute name="onOpen">
if (event.isOpen()) {
if (self.getChildren().isEmpty()) {
new Button("Hi").seParent(self);
...
}
if (event.getReference() instanceof Textbox) {
//you can do component-dependent manipulation here
...
}
}
</attribute></popup>