怎么把菜单menu.xml配置的图标显示在tab标签页这里

打开页面的时候,怎么把菜单menu.xml配置的图标也显示在tab标签页这里
image

你好,可以在 XML 中设置 windowicon 属性。界面 XML 描述 :: Jmix 文档
image

这样是可以实现,但是要在menu.xml配置一次图标,在window里面又得配置一次。有没有办法打开界面的时候直接读menu.xml配置的图标

新建一个MyStandardLookup类,继承StandardLookup

public class MyStandardLookup<T> extends StandardLookup<T> {

    @Autowired
    private MenuConfig menuConfig;

    @Subscribe
    public void onBeforeShow(BeforeShowEvent event) {

        Window window = getWindow();

        List<MenuItem> rootItems = menuConfig.getRootItems();

        // 注意:这里只处理了一个层级的菜单
        Map<String, String> menuIcons = rootItems.stream()
                .flatMap(root -> root.getChildren().stream())
                .collect(HashMap::new, (m, v) -> m.put(v.getId(), v.getIcon()), HashMap::putAll);

        window.setIcon(menuIcons.get(window.getId()));

    }
}

然后Browse里替换继承就可以了

public class XXXBrowse extends MyStandardLookup {

2 个赞