GWT MenuBar.Resources ... игнорируется? - PullRequest
1 голос
/ 03 апреля 2011

Я создаю MenuBar, и я хочу, чтобы он отображал маленький значок, когда есть подчиненные элементы для отображения. Я думал, что смогу добиться этого примерно так:

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 () из того же ресурса, и мое изображение отображается так, как вы ожидаете. В HTML, сгенерированном GWT, нет абсолютно никакого различия между элементами с MenuBars в качестве дочерних элементов и элементами с командами. Мой CSS работает нормально.

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Попробуйте переопределить стиль CSS для .gwt-MenuBar-vertical .subMenuIcon-selected, например так:

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

Я использую это для своих собственных выбранных элементов, и он прекрасно работает:

.gwt-MenuBar-vertical .subMenuIcon-selected {
    background: url(images/hand_pointer.png) no-repeat 0px 0px;
}
0 голосов
/ 30 апреля 2013

Вы можете просто установить правило 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;
}
0 голосов
/ 08 декабря 2011

В конечном итоге проблема заключалась в том, что всплывающие панели, которые формируют подменю, берут свое стилевое имя от родительского, но добавляют зависимое стилевое имя. Я не знаю способа предсказать, каким будет это зависимое имя стилена, поскольку оригинальное имя стилена скрыто. Я обошел эту проблему, используя более общее стилевое имя .gwt-MenuBar. Это работает только потому, что в моей программе есть только один стиль всплывающего меню - я не уверен, что бы я делал, если бы я хотел, чтобы два всплывающих окна выглядели по-разному!

Надеемся, что в более поздних выпусках gwt стили MenuBar будут более тесно связаны с ресурсами, передаваемыми в меню, и будут меньше использовать имена зависимых стилей.

...