2011-04-03 122 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; 
}