小编jas*_*ram的帖子

具有可变行高的SWT表:适用于Linux,但不适用于Mac/Windows

问题:我需要一个具有可变行高的SWT表(JFace TableViewer).事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题.不幸的是,这在Windows和Mac上都不起作用.

最初,我以为我没有正确使用这些库.但到现在为止,我担心我想要做的事情在Windows上根本不可能.我希望有人能说服我.

重现:我没有在这里提供我的代码,而是构建了一个简单的程序来重现问题.我从以下Snipplet开始:

http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/examples/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/ Snippet049StyledCellLabelProvider.java

我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境):

...
if (file.isDirectory()) {
    cell.setText(styledString.toString() + "\n"
        + styledString.toString());
    cell.setImage(IMAGE1);
} else {
    cell.setImage(IMAGE2);
}
...

这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度.具体来说,只能看到一行.

接下来,我试图通过使measure()更加智能来帮助SWT.所以我重写了measure(),如下所示:

protected void measure(Event event, Object element) {
    if (((File) element).isDirectory()) {
        event.height = 32;
    } else {
        event.height = 16;
    }
    super.measure(event, element);
}

结果:所有行都具有高度32.再次,这在Linux上按预期工作.

我担心,在Windows上,所有行都必须是相同的高度.这对我来说是一个显而易见的事.任何人都可以证实这一点,甚至更好,提供一种解决方法吗?

谢谢!

java swt jface

6
推荐指数
1
解决办法
4746
查看次数

Chrome 扩展清单 v3:仅在单击扩展图标时加载内容脚本(最小化权限)

我正在将功能正常的浏览器扩展迁移到清单 v3。问题:我希望仅在单击浏览器扩展图标时加载内容脚本。但是,脚本始终会加载。当我尝试上传到 chrome 商店时,我收到以下消息,这是我想避免的:

由于主机权限的原因,您的扩展程序可能需要深入审查,这将延迟发布。

我怀疑这与“行动”有关,但我不知道如何解决这个问题。这是清单:

{
    "manifest_version": 3,
    "name": "__MSG_extName__",
    "description": "__MSG_extDescription__",
    "key": "...",
    "version": "1.0.0",
    "icons": { ... },
    "background": {
        "service_worker": "/background.js"
    },
    "permissions": [
        "storage"
    ],
    "content_scripts": [
        {
            "matches": [
                "<all_urls>"
            ],
            "js": [
                "/content.js"
            ]
        }
    ],
    "web_accessible_resources": [
        {
            "resources": [
                "/assets/*",
                "/options.html"
            ],
            "matches": [
                "<all_urls>"
            ]
        }
    ],
    "options_page": "options.html",
    "action": {}
}
Run Code Online (Sandbox Code Playgroud)

最后一点:我认为我需要activeTab许可。但同样,我的问题是我想最小化所需的权限。

提前致谢!

google-chrome-extension chrome-extension-manifest-v3

3
推荐指数
1
解决办法
9794
查看次数