0

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

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

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

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

<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>

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

4

2 回答 2

2

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

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

于 2013-10-14T12:59:00.173 回答
0

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

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

Eclipse-BundleShape: dir

当我导出时,样式效果很好。我至少在 Windows 上对其进行了测试,看起来还不错。还需要检查其他操作系统。

于 2013-10-14T11:51:57.887 回答