我在我的應用程序中有一個MenuBar,需要根據某些條件禁用它。 setEnabled(boolean)方法在GWT MenuBar上不可用,因此沒有直接的方法可以繼續執行此要求。如何禁用GWT中的MenuBar
例如:如果您查看NestedAnchor.setEnabled(boolean enabled)
,它將禁用該小部件上的事件並添加樣式。 我想在MenuBar上執行相同的行爲,其中未觸發點擊事件來顯示彈出窗口。
與jQuery也試圖添加disabled
ATTR,仍然沒有成功
我在我的應用程序中有一個MenuBar,需要根據某些條件禁用它。 setEnabled(boolean)方法在GWT MenuBar上不可用,因此沒有直接的方法可以繼續執行此要求。如何禁用GWT中的MenuBar
例如:如果您查看NestedAnchor.setEnabled(boolean enabled)
,它將禁用該小部件上的事件並添加樣式。 我想在MenuBar上執行相同的行爲,其中未觸發點擊事件來顯示彈出窗口。
與jQuery也試圖添加disabled
ATTR,仍然沒有成功
這將用於此目的:menuBar.unsinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.FOCUSEVENTS | Event.KEYEVENTS);
你可以讓你的菜單欄隱形
menuBar.setVisible(false);
當過要啓用菜單欄,然後menuBar.setVisible(真);
或
,如果你想禁用的風格,那麼在.css文件和設置樣式添加到styleDisable
menuBar.setStyleName(styleDisable);
then check style
if(menuBar.getStyleName().equals("styleDisable")){
// write code here
}
您可以使用下面的API
DOM.setElementPropertyBoolean(menubar.getElement(), "disabled", !enabled);
這只是添加禁用的屬性到menuBar,即使jQuery的應用程序,但不禁用MenuBar的彈出菜單 – Satya 2013-02-28 11:53:35
將菜單欄包裝在一個focusPanel,並在包裝上使用上述語句。它一定會奏效。 – 2013-03-01 04:32:20
菜單欄是菜單項的容器。容器不支持禁用屬性。所以yohu必須手動迭代菜單項列表來禁用它們中的每一個。下面的代碼片段的確,通過增加setEnable方法將菜單欄 -
MenuBar menuBar = new MenuBar()
{
public void setEnable(boolean enableFl)
{
for(MenuItem item : getItems())
{
item.setEnable(enableFl);
}
}
};
這將禁用在菜單欄上觸發的事件。好有趣,但風格怎麼樣?我認爲你可以用更簡單的方式實現你的目標....看看我提供的答案。 – Adarsha 2013-02-28 13:44:19
雅式造型需要單獨處理:) – Satya 2013-02-28 14:28:41