摘要
在对Java应用程序进行国际化的时候,需要写对应的国际化资源properties文件,在使用像resourcebundle这样的第三方插件可以很方便的实现我们的要求。但是有时候,想要编辑的并不是properties文件,只是用于查看/查找某些内容。在使用第三方的插件的时候就显得有些繁琐。在这里通过开发一个插件来实现一个即时的native2ascii功能。
历史
2010-04-07:完成摘要、功能与部分设计
2010-04-09:完成设计
功能
1,将所选内容进行native2ascii输出(unicode)
2,查看unicode内容对应的本地编码给出
3,将某个文件进行native2ascii后输出到另一个文件
4,将某个文件进行native2ascii reverse后输出到另一个文件
使用
1,选择一段文本,右键,在弹出菜单中选择unicode tool -> native2ascii,可打开unicode视图
2,选择一个文件,右键,在弹出菜单中选择unicode tool -> native2ascii,按f5刷新当前目录,可看到转换后的文件
设计
1,添加一个视图,主要由左,右两个文本框组成,分别显示转码前的输出及转码后的输出
视图中给workbenchwindow添加一个selectionlister,当变化时,更新左,右文本框内的内容
视图中添加一个工具项,以决定是native2ascii还是native2ascii reverse
2,注册一个右键级联菜单,当选择的是一段文本(ITextSelection)时可见,包含native2ascii和ascii2native两个子菜单分别实现功能1和功能2
3,注册一个右键菜单,当选择的是一个文件(IFile)时可见,包含native2ascii和ascii2native两个子菜单分别实现功能3和功能4
实现
1,新建一个插件工程。
2,使用扩展添加一个View,推荐使用向导生成
3,使用popupMenu添加一个menu和action,推荐使用向导生成
4,使用ui.commands扩展添加两个command,使用ui.menus扩展将command添加到popupMenu中
完整的配置如下:
<plugin> <extension point="org.eclipse.ui.popupMenus"> <objectContribution objectClass="org.eclipse.core.resources.IFile" id="org.melord.pde.unicodetool.popup.unicode"> <menu label="Unicode Tool" path="additions" id="org.melord.pde.unicodetool.menu.popup.unicode"> <separator name="group1"> </separator> </menu> <action label="Native to Ascii" class="org.melord.pde.unicodetool.popup.actions.Native2AsciiAction" menubarPath="org.melord.pde.unicodetool.menu.popup.unicode/group1" id="org.melord.pde.unicodetool.action.native2ascii"> </action> <action class="org.melord.pde.unicodetool.popup.actions.Ascii2NativeAction" id="org.melord.pde.unicodetool.action.ascii2native" label="Ascii to Native" menubarPath="org.melord.pde.unicodetool.menu.popup.unicode/group1"> </action> </objectContribution> </extension> <extension point="org.eclipse.ui.views"> <view class="org.melord.pde.unicodetool.views.UnicodeView" icon="icons/sample.gif" id="org.melord.pde.unicodetool.views.UnicodeView" name="Unicode View"> </view> </extension> <extension point="org.eclipse.ui.commands"> <command defaultHandler="org.melord.pde.unicodetool.handlers.Native2AsciiHandler" id="org.melord.pde.unicodetool.commands.native2ascii" name="Native to Ascii"> </command> <command defaultHandler="org.melord.pde.unicodetool.handlers.Ascii2NativeHandler" id="org.melord.pde.unicodetool.commands.ascii2native" name="Ascii to Native"> </command> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:org.eclipse.ui.popup.any?after=additions"> <menu id="org.melord.pde.unicodetool.menus.sampleMenu" label="Unicode Tool" mnemonic="M"> <command commandId="org.melord.pde.unicodetool.commands.native2ascii" id="org.melord.pde.unicodetool.menus.command.native2ascii" mnemonic="N"> </command> <command commandId="org.melord.pde.unicodetool.commands.ascii2native" id="org.melord.pde.unicodetool.menus.command.ascii2native" mnemonic="A"> </command> <visibleWhen> <iterate ifEmpty="false"> <instanceof value="org.eclipse.jface.text.ITextSelection"> </instanceof> </iterate> </visibleWhen> </menu> </menuContribution> </extension>
5,实现command对应的Handler类与popupAction对应的Action类(请参考附件中的源代码)
6,附录
1,插件源文件工程
2,插件运行效果截图
3,插件如有bug,欢迎指出
- 大小: 50.3 KB
分享到:
相关推荐
由于在Tomcat发布后可能出现乱码问题,作者创建了一个批处理文件`properties2GBK.bat`,可能用到了`native2ascii`工具来将非ASCII字符转换为适合Java的字节表示,以解决中文乱码问题。 总结来说,这个开发实例展示...
对于中文乱码问题,可以使用`native2ascii`工具将资源文件转换为GBK编码。创建一个批处理文件,执行这个转换过程,确保在IDE中设置正确的编码格式。 完成上述步骤后,SSH框架的基本结构就搭建好了。接下来,我们...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
* 熟悉 JDK 带的一些常用命令及其常用选项,例如 appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver 等。 工具 * 熟悉使用至少一种 IDE 的开发工具,例如 Eclipse...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...