代码之家  ›  专栏  ›  技术社区  ›  John

动态GWT菜单

gwt
  •  3
  • John  · 技术社区  · 16 年前

    如何修改GWT菜单?根据我的应用程序状态,灰显一些条目,在其他条目旁边打勾?

    我的应用程序在顶部有一个菜单栏——文件、编辑、查看、插入、格式等等。我有很多段落,每个段落都有不同的格式。当用户单击“格式”时,我希望“格式”菜单在菜单项旁边显示一个复选标记,该菜单项对应于当前选定段落的格式。如果某些格式不适合当前选定的段落,我想将这些菜单项灰显。

    我觉得方案(a)更有吸引力。但是我怎么能检测到呢?MenuItem没有任何用于添加事件侦听器的功能。这可能是我需要的鼠标点击,但也可能是鼠标覆盖:如果用户单击“插入”菜单项,则会出现“插入”菜单项,但如果将鼠标移到“格式”上,则会出现“格式”菜单项。

    选项(b)听起来更简单,但会浪费更多的处理器时间。

    对于我的contextMenu(右键单击段落),这要容易得多,因为菜单只有在右键单击时才构建。

    我已经求助于使用平方根符号(&#一滴水。有人知道更好的方法吗?我的菜单项是否需要使用HTML和“普通格式”?

    最后,有没有办法禁用(灰显)菜单项,使其无法被选中?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Michael Balint    16 年前

    从节约资源的角度来看,方案(a)听起来更好。

    与其使用平方根符号,不如使用图像(使用 com.google.gwt.user.client.ui.Image

    我认为一个更优雅/简单的解决方案可能是对菜单项使用checkbox类。这样,您就可以进行自动勾号/检查,而不必使用图像或平方根符号。此外,您还可以使用 setEnabled(false) . 否则,您将不得不编写自己的小部件或将自己的功能添加到菜单标签中,以便“灰显”项目。

    推荐文章