如何在GWT中禁用MenuBar

时间:2013-02-28 11:12:56

标签: gwt gwt2

我的应用中有一个MenuBar,需要根据某些条件禁用它。 GWT MenuBar上没有setEnabled(boolean)方法,因此没有直接的方法可以满足这一要求。

对于Ex:如果您查看NestedAnchor.setEnabled(boolean enabled),它会禁用该窗口小部件上的事件并添加样式。 我想在MenuBar上执行相同的操作,其中未触发单击事件以显示弹出窗口。

还尝试使用jquery添加disabled attr,仍然没有成功

4 个答案:

答案 0 :(得分:2)

菜单栏是菜单项的容器。容器不支持禁用属性。因此,yohu必须手动迭代菜单项列表以禁用它们中的每一个。下面的代码片段通过将setEnable方法添加到菜单栏 -

来实现
MenuBar menuBar = new MenuBar()
{
         public void setEnable(boolean enableFl)
         {
              for( MenuItem item : getItems() )
              {
                    item.setEnable( enableFl );
              }
         }
};

答案 1 :(得分:1)

你可以让你的菜单栏看不见

menuBar.setVisible(false);

当你想要启用菜单栏然后menuBar.setVisible(true);

如果你想要禁用样式,那么在.css文件中添加styleDisable并将样式设置为

menuBar.setStyleName(styleDisable); 

then check style

if(menuBar.getStyleName().equals("styleDisable")){

// write code here
}

答案 2 :(得分:1)

这将达到目的:menuBar.unsinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.FOCUSEVENTS | Event.KEYEVENTS);

答案 3 :(得分:0)

您可以使用以下Api

DOM.setElementPropertyBoolean(menubar.getElement(), "disabled", !enabled);
相关问题