导出后,Eclipse RCP CSS样式不起作用

时间:2013-10-14 10:01:53

标签: java eclipse eclipse-rcp

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

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

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

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

<extension
     id="liteproduct"
     point="org.eclipse.core.runtime.products">
  <product
        application="com.xyzide.rcp.application"
        name="XYZ IDE">
     <property
         name="applicationXMI"
         value="com.xyzide.rcp/LegacyIDE.e4xmi">
   </property>
     <property
           name="cssTheme"
           value="com.xyzide.ui.css.theme.e4_default">
     </property>
  <property
         name="applicationCSSResources"
         value="platform:/plugin/com.xyzide.rcp/images/">
  </property>
  </product>

 <extension
point="org.eclipse.e4.ui.css.swt.theme">
    <theme
        basestylesheeturi="css/e4_default.css"
        id="com.xyzide.ui.css.theme.e4_default.noos"
        label="Default Theme">
        </theme>
    <theme
        basestylesheeturi="css/e4_classic_winxp.css"
        id="com.xyzide.ui.css.theme.e4_classic"
        label="Classic">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_gtk.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="GTK"
        os="linux">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_mac.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="Mac"
        os="macosx">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_win7.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="Windows 7"
        os="win32"
        os_version="6.1">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_winxp_blu.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="Windows XP Blue"
        os="win32">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_winxp_olv.css"
        id="com.xyzide.ui.css.theme.e4_default.xpolive"
        label="Windows XP Olive"
        os="win32">
    </theme>
    <theme
        basestylesheeturi="css/e4_classic_win7.css"
        id="com.xyzide.ui.css.theme.e4_classic"
        label="Windows 7 Classic"
        os="win32"
        os_version="6.1">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_gtk.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="Solaris"
        os="solaris">
    </theme>
    <theme
        basestylesheeturi="css/e4_default_gtk.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="AIX"
        os="aix">
    </theme>
    <theme
        basestylesheeturi="css/e4_classic_winxp.css"
        id="com.xyzide.ui.css.theme.e4_default"
        label="HPUX"
        os="hpux">
    </theme>
</extension>

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

2 个答案:

答案 0 :(得分:2)

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

使用jar会占用更少的空间,但我注意到Eclipse安装确实使用了一个目录(这可能只是为了让它更容易访问这些文件)。 Eclipse确实有时会将jar扩展到其缓存中,但我不认为这是针对CSS和图像文件完成的。

答案 1 :(得分:0)

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

我将以下内容添加到我的Manifest.MF

Eclipse-BundleShape: dir

当我导出时,造型效果很好。我至少在Windows上测试过,看起来还不错。还需要检查其他操作系统。