Eclipse Studio Logo、图片以及文本显示的自动化定制

7年前

Eclipse Studio Logo、图片以及文本显示的自动化定制

访问普元产品知识库(doc.primeton.com),查看本文原文,获得更多普元产品知识,点击此处


很久没有写知识点了,鉴于最近公司很多定制产品需要针对Eclipse Studio的Label和图片进行定制,现将为华为SEE项目组编写的一个半自动化工具分享给大家,之所以说是半自动化,是因为现在的这个工具考虑的还不够全面:
1.很多地方还需要手动完成
2.手动的配置文件比较麻烦
暂时把这个小工具称作为FAB1.0(Fragment Auto Buildor)吧,不久的将来会出1.1插件版,那时候将会将现在大多数手动过程完全自动化实现,敬请关注

背景

进入2010以后,咱们公司的定制化项目如雨后春笋一般,而且很多项目都有一个共同的需求,需要对Studio当中的Label和图片进行替换,而且要求不修改任何已有的EOS产品或者BPS产品的插件代码为前提

解决方案

  1. 首先需要Studio当中的所有Label进行国际化
    这要感谢我们的EOS6.1团队,由于他们先前的不懈努力,这个过程已然完成,虽然仍有部分应为Label没有国际化,但是这已微不足道了。
  2. Studio对于属性或者类文件优先使用段插件
    Eclipse标准发布的产品都是优先加载插件当中的类和资源的,如果我们希望Fragment(段插件)当中的资源被优先使用的话,就必须修改这个加载顺序,这个王磊大哥在JIRA问题EOSP-205当中有完备的解决方案,稍后我会将大哥的设计思路和问题思考在另一个知识点当中详细阐述,然后再把链接放到这里,这里就不再赘述了
  3. 为每一个需要定制的插件建立段插件
    因为有了第二步,第三步就是要为所有的需要定制Label和图片的插件生成段插件,并且在生成过程中将需要替换的文本以及图片替换进去。后面会详细说明该工具的使用方法。
  4. 定制platform插件
    platform插件是相对比较独立的插件,这是对我们Studio产品的概述的插件,里面的图片和属性需要手动替换,主要是启动时的logo图片等。
  5. 定制exe文件图标
    在定制产品时有时需要替换exe文件当中的ico文件,这个在网上有许多相关工具,这里就不赘述了。仅提供一个exe编辑器,方便大家替换ico文件

Fragment插件自动生成工具的使用方法

  1. 下载附件中的fragment.build,解压到任意目录下;
  2. 打开fragment.build目录,如下图,有许多配置文件需要手动配置

    第一个需要配置的是input.properties文件,属性有:
     #所有文件需要使用"UTF-8"编码,这样可以支持各种字符作为property的key #该配置文件作为main的方法参数传入 #源插件路径,需要替换的插件源(必须配置) plugin_home_path=D:\\primeton\\EOS_6.1_GA\\ide\\eostools #目标插件路径,指生成的段插件放置的位置(必须配置) nls_home_path=D:\\eostools.nls #用于替换properties的模板,属性当中需要替换的文字的映射关系 #例如有一个属性ATEST=普元软件,现在需要将"普元"替换为"SCE" #则在property.properties文件中用Unicode编码编写\u666e\u5143=SCE ;(必须配置) temp_properties=D:\\fragment.build\\property.properties #不需要替换的插件的列表,插件ID之间用","(英文逗号隔开,这里提供了一些默认不需要创建fragment的插件以供参考,不是必须的) with_out_plugins=D:\\fragment.build\\withoutPlugin.properties #图片存放路径(必须配置) icons_path=D:\\fragment.build\\icons #图片替换对性关系(必须配置) icons_properties=D:\\fragment.build\\icons\\icons.properties #部分classpath超过1个插件需要指定fragment的classpath,没有指定则设置为插件原有的classpath(不是必须的) class_path_properties=D:\\fragment.build\\classpath.properties 
    第二个需要配置的文件为property.properties文件,上面也简单介绍了这个替换过程,
     #属性请用UTF-8编码,这样可以支持一些特定字符 #下面是示例代码 #替换时将所有property当中等号左边的值替换成等号右边的值 EOS=yujl \u666e\u5143=SCE \uff01@#\uffe5%\u2026\u2026&*\uff08\uff09\uff08*&\u2026\u2026%\uffe5#=@#\uffe5%\u2026\u2026&*\uff08*&\u2026\u2026%\uffe5#@#%\u2026\u2026& 
    这里需要详细说明一下:
    • 这里是对所有插件的所有"*.properties"文件中的值的部分匹配内容进行的替换,分词操作相对简单,只要找到与上述文件中key值相同的就替换,这样是有风险的,比如"光普元素",如果使用上述配置当中的替换方式,则替换后会显示"光SCE素",这就违背了原有文字的意思,好在目前使用过程中没有这种问题出现,未来1.1版本中会改进此问题。
      第三个需要配置的文件为".\icons\icons.properties",这个文件是用来配置插件中的图片与将要替换的图片之间的映射关系。这个文件的配置需要谨慎,稍有配置错误,就会替换不成功,具体配置示例如下:
       #左边是插件当中的图片,右边是用来替换的图片,右边图片路径是相对于input.properties中设置的iconspath路径 com.primeton.studio.navigator_6.0.0.jar\\icons\\eview16\\explorer.png=explorer.gif 
  3. 执行fragmentbuild.bat自动生成段插件组
  4. 到eclipse home的links目录下配置"eostools_nls.link"文件
    文件内容为path=D:\eostools.nls(路径为段插件组所在的位置)

完成上述操作后就完成了段插件的生成,启动Eclipse检查一下图片文字是否替换成功

总结与思考

上述功能基本实现了Studio的Label和图片以及logo等定制,但是仍有不少不理想的地方:

  1. 操作过于繁琐,尤其是属性文件的配置,稍有不慎就会配置错误。
  2. 没有可视化界面,体验比较差
  3. fragment优先加载存在风险
  4. 自动化过程缺少必要的日志,不易监控
  5. 简单的过滤不需要的插件是有风险的

将来在1.1会根据上述不足进行修改

COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。