0

我有一个奇怪的问题:有一个里面有部分的表格。还有一些小部件,我根据某些规则验证其值,如果不满足规则,我会使用从 ManagedForm 获得的 MessageManager#addMessage 在表单头中显示错误。添加错误后,Form Head 如下所示:

带有错误消息的表单头

当我让我的小部件通过验证并因此删除错误消息时,出于某种原因(仅在某些情况下)使用 MessageManager#removeMessage 不仅错误而且整个表单头都消失了:

没有头

之后,无论我做什么它都不会再次出现,所以如果我再次添加消息,使用 MessageManager 只会显示控件装饰而不是错误。

我已经对其进行了调试,发现在某些时候我的 getForm().getHead().getBounds().height 返回 0。

有人遇到过类似的事情或有任何线索,可能是什么?任何帮助将不胜感激。

我正在使用 org.eclipse.ui.forms_3.5.2.r36_v20100702.jar

4

1 回答 1

0

我发现了如何解决这个问题:当 MessageManager 删除最后一个错误时,表单标题被删除(或隐藏)。我不知道为什么,但它是如何工作的。因此,要始终让 Header 在表单初始化期间添加一些空消息。像这样的东西:

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