2011-09-01 5 views
2

いくつかのウィジェットを含み、いくつかのイベントをリッスンする(つまり、それ自体を別の要素に登録する) "複合"コンポジットを作成しました。また、コンポジット内のdisposeメソッドを実装しました。コンポジットでは、通知から自身を登録解除し、コンポジット(super.dispose())でdisposeメソッドを呼び出します。ウィザードページを破棄する方法は?

このウィジェットは、ウィザードのページを含むいくつかの場所で使用します。しかし、ウィザードが終了すると(「終了」または「キャンセル」のいずれかで)、私のウィジェットは破棄されないようです。確かに、WizardPageのdisposeメソッドは非常に簡単で、イメージを消去するだけです。

何か不足していますか、私は複合材を明示的に処分する必要がありますか?

答えて

0

"複雑な"コンポジットクラスのdispose()実装を呼び出して、ウィザードページdispose()メソッドの実装内で明示的にこのウィジェットに割り当てられたリソースをクリーンアップすることができますが、これはウィザードページでのみ機能します。

DisposeListenerのwidgetDisposed(DisposeEvent e)メソッドで、コンポジット/ウィジェットにdisposeリスナーを追加し、クリーンアップの手順を実行する方がよいでしょう。

関連する問題