我有一个奇怪的问题:里面有一个带有部分的表格。还有一些小部件值我根据某些规则验证,如果规则未满足,我在表单头中显示错误,使用MessageManager#addMessage,我从ManagedForm获取。添加错误时,表单头部如下所示:
当我使我的窗口小部件通过验证并因此删除错误消息时,由于某种原因使用MessageManager#removeMessage(仅在某些情况下)不仅错误而且整个表头消失:
在那之后,无论我做什么它都不会再出现,所以如果我再次添加消息,使用MessageManager只显示控件装饰而不是错误。
我调试了它,发现在某些时候我的getForm()。getHead()。getBounds()。height返回0.
让某人遇到类似的东西或有任何线索,它可能是什么?任何帮助将不胜感激。
我正在使用org.eclipse.ui.forms_3.5.2.r36_v20100702.jar
答案 0 :(得分:0)
我已经找到了解决这个问题的方法:当MessageManager删除(或隐藏)最后一个错误消息时。我不知道为什么,但它是如何工作的。因此,总是让Header在表单初始化期间添加一些空消息。这样的事情:
managedForm.getMessageManager().addMessage(
"empty_message_key",
"",
null,
IMessageProvider.NONE);