java rcp中lable设置透明_关于java:Eclipse RCP CSS样式在导出后不起作用

我按照该论坛中建议的步骤操作,通过从org.eclipse.platform复制css和images文件夹来获取不同操作系统的CSS主题。

当我从Eclipse启动它时,它工作正常,但是当我导出产品文件(无论是从Eclipse还是通过Maven)时,根本没有CSS样式。

我已经检查了build.properties,并将css和images文件夹标记为要导出,所以我不明白为什么找不到它们。

我正在将3.x RCP软迁移到4.x

id="liteproduct"

point="org.eclipse.core.runtime.products">

application="com.xyzide.rcp.application"

name="XYZ IDE">

name="applicationXMI"

value="com.xyzide.rcp/LegacyIDE.e4xmi">

name="cssTheme"

value="com.xyzide.ui.css.theme.e4_default">

name="applicationCSSResources"

value="platform:/plugin/com.xyzide.rcp/images/">

point="org.eclipse.e4.ui.css.swt.theme">

basestylesheeturi="css/e4_default.css"

id="com.xyzide.ui.css.theme.e4_default.noos"

label="Default Theme">

basestylesheeturi="css/e4_classic_winxp.css"

id="com.xyzide.ui.css.theme.e4_classic"

label="Classic">

basestylesheeturi="css/e4_default_gtk.css"

id="com.xyzide.ui.css.theme.e4_default"

label="GTK"

os="linux">

basestylesheeturi="css/e4_default_mac.css"

id="com.xyzide.ui.css.theme.e4_default"

label="Mac"

os="macosx">

basestylesheeturi="css/e4_default_win7.css"

id="com.xyzide.ui.css.theme.e4_default"

label="Windows 7"

os="win32"

os_version="6.1">

basestylesheeturi="css/e4_default_winxp_blu.css"

id="com.xyzide.ui.css.theme.e4_default"

label="Windows XP Blue"

os="win32">

basestylesheeturi="css/e4_default_winxp_olv.css"

id="com.xyzide.ui.css.theme.e4_default.xpolive"

label="Windows XP Olive"

os="win32">

basestylesheeturi="css/e4_classic_win7.css"

id="com.xyzide.ui.css.theme.e4_classic"

label="Windows 7 Classic"

os="win32"

os_version="6.1">

basestylesheeturi="css/e4_default_gtk.css"

id="com.xyzide.ui.css.theme.e4_default"

label="Solaris"

os="solaris">

basestylesheeturi="css/e4_default_gtk.css"

id="com.xyzide.ui.css.theme.e4_default"

label="AIX"

os="aix">

basestylesheeturi="css/e4_classic_winxp.css"

id="com.xyzide.ui.css.theme.e4_default"

label="HPUX"

os="hpux">

我从产品扩展中省略了一些不相关的属性。

您在定义产品的plugin.xml中拥有什么?

我已经用代码更新了问题。

plugin.xml看起来不错。 检查导出的产品插件是否确实包含css目录。

我的产品由两个插件组成:com.xyzide.plugin和com.xyzide.rcp。 后者是包含css文件的文件,而在我的导出产品中是jar文件,那么如何检查css文件夹? 在我的build.properties中,检查导出。 另外,在此之前,我已经固定了样式,并且效果很好(ApplicationCSS属性)

啊哈...我想我已经找到了...出于某种原因,我不得不将其导出为目录而不是jar文件,并且它似乎可以正常工作。 我不知道为什么它与ApplicationCSS一起使用,因为它也有一个css和images文件夹!

我认为,如果您在basestylesheeturi值的开头包含platform:/plugin/com.xyzide.rcp/,这将在jar中起作用。

使用jar会占用较少的空间,但是我注意到Eclipse安装确实使用了目录(可能只是为了简化访问文件的过程)。 Eclipse有时确实将jar扩展到其缓存中,但是我认为CSS和图像文件无法做到这一点。

因此,不幸的是,这似乎没有用,我不得不恢复到目录设置。 可能与此有关-eclipse.org/forums/index.php/t/457837

可能。 我不在样式表中使用CSS导入。

我已在所有操作系统上对其进行了测试,并且仅在捆绑包为目录的情况下才可以使用。...对不起,我不得不拒绝您的回答,但我一定会投票赞成!

因此,在greg-449的帮助下,我能够确定导出RCP时,需要将包含css和images文件夹的插件打包为一个目录。

我在Manifest.MF中添加了以下内容

Eclipse-BundleShape: dir

当我导出时,样式效果很好。 我至少在Windows上测试过它,看起来还可以。 还将需要检查其他操作系统。

我认为,如果您在basestylesheeturi值的开头包含platform:plugincom.xyzide.rcp(至少这是我所拥有的并且可以正常工作),则可以使它在jar中工作。

抱歉,这可能是一个愚蠢的问题,但是有什么原因为什么我想要将其保留为jar而不是目录?

你是对的! 我怎么会这么愚蠢……我回过头来看看ApplicationCSS的旧代码,这就是我的理解方式。 我想我只是在论坛上直接使用了这段代码,却没有意识到。 您能否发表评论作为答案,我会接受。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值