0

奇妙な問題があります。内部にセクションがあるフォームがあります。いくつかのルールに対して値を検証するウィジェットもいくつかあります。ルールが満たされない場合は、ManagedFormから取得したMessageManager#addMessageを使用して、フォームヘッドにエラーを表示します。エラーが追加されると、フォームヘッドは次のようになります。

エラーメッセージ付きのフォームヘッド

ウィジェットを検証に合格させてエラーメッセージを削除すると、何らかの理由で(場合によっては)MessageManager#removeMessageを使用して、エラーだけでなくフォームヘッド全体が消えます。

頭がない

その後、何をしても二度と表示されないので、再度メッセージを追加すると、MessageManagerを使用するとコントロールデコレーションのみが表示され、エラーは表示されません。

デバッグしたところ、ある時点でgetForm()。getHead()。getBounds()。heightが0を返すことがわかりました。

誰かが似たようなことに直面したり、何か手がかりを持ったりしましたか?それは何でしょうか?どんな助けでも大歓迎です。

org.eclipse.ui.forms_3.5.2.r36_v20100702.jarを使用しています

4

1 に答える 1

0

これを修正する方法を見つけました。MessageManagerによって最後のエラーが削除されると、フォームヘッダーが削除(または非表示)されます。理由はわかりませんが、それがどのように機能するかです。したがって、常にヘッダーを使用するには、フォームの初期化中に空のメッセージを追加するだけです。そんな感じ:

managedForm.getMessageManager().addMessage(
              "empty_message_key",
              "",
              null,
              IMessageProvider.NONE);
于 2012-09-18T12:44:24.713 に答える