無効な入力があった場合にエラーメッセージを表示するには、MessageManager
というEclipseを使用しています。例:メッセージマネージャはメッセージをフィールドデコレータとしてのみ表示し、ヘッダには表示しません
mmng.addMessage("textLength", "blah", null, IMessageProvider.ERROR, field);
私はこれを2回行います。いったんModifyListener
のインスタンス内に入り、Text
フィールドの作成直後に1回、ロード時の入力を検証します。
MessageManager
ディスプレイページのヘッダならびにテキストフィールドの横(デコレータ)におけるエラーModifyListener
の子インスタンスのmodifyEvent
方法内側addMessage
メソッドを呼び出します。ただし、テキストフィールドの作成直後にメッセージを追加すると、デコレータのみが表示されます(ヘッダーに「n errors detected」というエラーはありません)。
私はこれがなぜ起こるのだろうかと思います。私はこれをEclipseのProductEditor
でテストしましたが、実際には同様の動作があります。 .product
ファイルを開いて最初のページにエラーが表示されると(デコレータのみが表示されます)、エラーはヘッダーに表示されません。ただし、他のページに切り替えた後、この特定のページに戻ると、ヘッダーのエラーが表示されます。残念ながら、これは私の側には当てはまりません。最良のケースは、両方の場所、ヘッダー、およびフィールドの隣にデコレータとしてエラーを自動的に表示する場合でも、同じ動作を実装できれば満足できます。
私はMessageManager
インスタンスのupdate()
メソッドを呼び出すことでこの問題を解決しようとしましたが、残念ながらそれは謎を解決しませんでした。ところで