Home   Single Page

closableプロパティ

closableプロパティにTrueを指定することで、閉じるボタンがウィンドウに表示され、ユーザーはボタンをクリックすると、ウィンドウが閉じます。閉じるボタンをクリックすると、直ちにonCloseイベントがウィンドウに送られます。WindowのonCloseメソッドによって処理されます。処理が終わったら、デフォルトでonCloseは自身をウィンドウから切り離します。

オーバーライドしたりすることもできます。又は、リスナを登録して、デフォルト動作を変更することができます。例えば、閉じるのではなく、隠すようにすることができます。

<window closable="true" title="Detach on Close" border="normal" width="200px"
onClose="self.visible = false; event.stopPropagation();">
    In this example, this window hides itself when the close button is clicked.    
</window>

event.stopPropagation()はWindow.onClose()の呼び出しを防ぐために呼び出されます。

【ヒント】:ウィンドウがポップアップなら、ユーザーがウィンドウの外をクリックするか、またはESCを押したときに、ポップアップが閉じられ、open=falseと一緒にonOpenイベントはウィンドウに送信されます。

少し複雑ですが、onCloseはサーバーに送信され、ウィンドウを外すか、隠すかをサーバーに確認します。
デフォルトではウィンドウは外れます。また、アプリケーションはそれをオーバーライドでき、上に説明しているように、何でもしたいようにできます。

一方で、onOpenは通知です。クライアントがウィンドウを隠したことをアプリケーションに通知するために送信されます。
アプリケーションは隠されることを回避することはできません。 また、外れることを変更することはできません。