如何根据我的申请状态修改GWT菜单 - 灰显一些条目,在其他条目旁边加上复选标记?
我的应用程序顶部有一个菜单栏 - 文件,编辑,查看,插入,格式等。我有许多段落,每个段落可以有不同的格式。当用户点击格式时,我希望格式菜单在menuItem旁边显示一个复选标记,该复选标记对应于当前所选段落的格式。如果某些格式不适合当前选定的段落,我想将这些menuItem格式化。
主要问题是何时进行更新:(a)单击格式菜单按钮,或(b)每次我的用户选择新段落?
我发现选项(a)更具吸引力。但我怎么能发现这个呢? MenuItem没有任何用于添加事件侦听器的工具。它可能是我需要的mouseClick,但它可能是mouseOver:如果用户单击Insert menuItem,将出现Insert菜单,但如果鼠标移过Format,则会出现Format菜单。
选项(b)听起来更简单,但浪费了更多的处理器时间。
对于我的contextMenu(右键单击段落),它更容易,因为菜单仅在右键单击时构建。
我已经使用平方根符号(&#8730)作为勾选。有谁知道更好的方式?我是否需要使用HTML并对菜单项使用“Plain-Format”?
最后,有没有办法禁用(灰显)一个菜单项,以便无法选择它?
答案 0 :(得分:1)
从节约资源的角度来看,选项(a)听起来更好。
不使用平方根符号,为什么不使用图像(使用com.google.gwt.user.client.ui.Image
类)?
我认为更优雅/简单的解决方案可能是使用菜单项的复选框类。这样你就可以进行自动刻度/检查,而不必使用图像或平方根符号。此外,您还可以使用setEnabled(false)
“灰显”项目。否则,您必须编写自己的小部件或将自己的功能添加到菜单标签中,以便“灰显”项目。