2011-04-03 170 views
1

我正在創建MenuBar,我想在顯示子元素時顯示一個小圖標。我以爲我可以像這樣實現:GWT MenuBar.Resources ...被忽略?

interface ActionHeroResources extends ClientBundle, MenuBar.Resources 
{ 
    @Source("actionhero.css") 
    public ActionHeroCSS css(); 

    @Override 
    @Source("agw-dropdown.png") 
    ImageResource menuBarSubMenuIcon(); 
} 

private static final ActionHeroResources RESOURCES = GWT.create(ActionHeroResources.class); 

MenuBar actionMenu = new MenuBar(true, RESOURCES); 

public ActionHero() 
{ 
    actionMenu.addItem("Select", aSelectMenuFullOfOptions); 
} 

但菜單出現字「選擇」一個沒有圖標!我很積極,我的ImageResource工作正常,因爲我稍後使用來自同一資源的menuBarSubMenuIcon()。getURL(),並且我的圖像正如您所期望的那樣顯示。在由GWT生成的HTML中,MenuBars作爲子項的項目與Commands項目之間絕對沒有區別。我的CSS工作正常。

有什麼想法?

回答

0

問題在於,構成子菜單的彈出式面板最終從父級獲取其樣式名,但追加了一個從屬樣式名。我不知道有什麼方法可以預測這個依賴的樣式名是什麼,因爲原始樣式名是混淆的。我通過使用更通用的.gwt-MenuBar彈出式樣式來解決這個問題。這隻適用於我的程序中只有一種類型的彈出式菜單 - 如果我想讓兩個彈出窗口看起來不同,我不知道該怎麼辦!

希望在後來的gwt發佈中,MenuBar樣式將更接近傳遞給菜單欄的資源,並減少對從屬樣式名稱的使用。

2

嘗試重寫CSS樣式.gwt-菜單欄垂直.subMenuIcon選擇的,就像這樣:

.gwt-MenuBar-vertical .subMenuIcon-selected { 
    background: none; 
} 

我用這個我自己選擇的項目和它的偉大工程:

.gwt-MenuBar-vertical .subMenuIcon-selected { 
    background: url(images/hand_pointer.png) no-repeat 0px 0px; 
} 
0

你可以簡單地設置了出現在像這樣子菜單中的CSS規則:

.subMenuIcon > img { 
    /* override gwt sub menu icon */ 
    width: 6px !important; 
    height: 11px !important; 
    background: url('your-image-relative-path.png') no-repeat 0px 0px !important; 
}