探秘Eclipse 4的CSS切换主题功能

html-css022

探秘Eclipse 4的CSS切换主题功能,第1张

Eclipse 计划刚出现的时候从事Eclipse各个项目的团队和开发者就Eclipse未来下一步该怎么走进行了激烈讨论 而随着Eclipse SDK中的CSS主题功能得到明显改善 Eclipse RCP技术越来越成熟 特别是我们进行动态主题转换时更为简单方便 这些讨论渐渐地平息了 本文载自一个外国专家Kai的blog 全文如下

如果你想要实现一个CSS主题转换 只需扩展你的Eclipse 路径如下 eclipse e ui css swt theme

这里有一个在Eclispe 下进行双模板声明的示例可以参考

<extension

point= eclipse e ui css swt theme >

<theme

    basestylesheeturi= css/dark gradient css

    id= ntacts themes darkgradient

    label= Dark Gradient Theme >

</<span>theme>

<theme

    basestylesheeturi= css/bright gradient css

    id= ntacts themes brightgradient

    label= Bright Gradient Theme >

</<span>theme>

</<span>extension>

然后需要做的就是指定一个程序来切换实际的主题 这里是选择dark gradient主题的全部代码

public class DarkThemeHandler {

   @Execute

   public void execute(IThemeEngine engine) {

      engine setTheme( ntacts themes darkgradient )

   }

}

使用工作台模型来将我们的转换程序绑定到目录或工具栏 下面的两幅效果图就展示了黑色主题和明朗主题之间的动态转换

黑色主题

明亮主题

lishixinzhi/Article/program/Java/hx/201311/26905

总结

在切换主题时,修改html的theme属性值,那么由于style里面设置的属性选择器,变量值会根据html的theme进行设置。理解成每种主题都是一个模块,利用theme设置了命名空间一样。

document.documentElement.setAttribute('theme', 'dark')

您好,初步判断可能是因为刷新浏览器导致JS重新执行,从而把bool置为false。

可以考虑把bool这个变量存入localStorage或者其他记录其状态的方法。

望采纳。