Eclipse插件开发总结(第二天)
怎么感觉周末比上班还忙呢。昨天寝室哥们公司看看,然后到浙大两个校区逛了一圈。吃了两顿川菜。味道还是相当的不错。然后一天就结束了。今天早上起床已经快11点了。本来想约个朋友去好好吃一顿,结果没约到,很失望。索性就叫了外卖,等外卖的时间玩了把dota,然后杀的相当的爽。下午打了4个小时球,回来吃了饭洗澡洗完衣服然后差不多就到现在了。。。。。。好啰嗦哦。
总算有时间来继续总结这几天的学习了。把我现在做的分两部分来总结一下吧:
一 :开发了一个向导自动生成模板文件。当然是在<extensionpoint="org.eclipse.ui.newWizards">这个扩展点开始了。
实现两个类:Wizard和WizardPage类。从名字上就很好理解类的作用了。一个负责功能,一个负责界面。这里WizardPage可以有两种实现方式:
a,继承org.eclipse.jface.wizard.WizardPage这样得到的是:b,继承org.eclipse.ui.dialogs.WizardNewFileCreationPage得到的是:
今天没有写作心情呀。。。下次补上
需求:
实现一个符合ServiceConfigSchema.xsd的Service-Config.xml文件的可视化编辑器。
Service-Config.xml的内容大概如下:
<?xml version="1.0" encoding="UTF-8" ?>
<tns:service-config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://iservice.hundsun.com/schema ServiceConfigSchema.xsd"
xmlns:tns="http://iservice.hundsun.com/schema">
<service-mappings>
<service service="fetchAllRecords"
type="com.hs.se.dummy.services.DummyService"
path="/dummy/fetchAllRecords">
<description>
Fetch all records from sample table
</description>
<param name=”” type=”” />
<result name="resultBOList" type="java.util.List"></result>
</service>
</service-mapping>
<include file=”” />
</tns:service-config>
说明:
1. 根节点tns:service-config下有一个Service-mapping节点、0或多个include节点。
2. Service-mapping节点下有0个或多个service节点。
3. 每个Service节点有三个属性:Service、type、path和一个Description子节点、0或多个param子节点、一个result子节点。
4. 每个param节点有两个属性:name 和 type。
5. Result节点有两个属性:name和type。
6. Include的节点有一个属性:file。
功能:
1. 可视化的显示Service-config.xml的信息。
2. Include、Service和param实现列表显示。
3. 其他信息实现表单可视化编辑。
概要设计:
1. 为了在没有可用service-config.xml文件的情况下用户能够很容易的创建符合标准的配置文件。需要实现一个创建新文件的向导。而eclipse插件新文件向导扩展点可以实现这个功能。
2. 为了能同时满足喜欢直接编写xml文件的用户和喜欢可视化编辑xml的用户。应该创建一个两页的编辑器。用户可以在两种编辑器之间切换。两个编辑器的内容要实现同步。
详细设计:
1. 根据service-config.xml的内容创建相应的javaBean。
2. FileHandler类实现javaBean和xml文件之间的相互转换。
3. 向导创建文件首先从FileHandler得到文件的初始化内容。将文件写入磁盘既完成了向导的创建过程。
4. 编辑器打开文件首先从父类EditorPart里通过getEditorInput方法得到输入文件的内容。
5. 检查输入文件的namespace是否是符合要求的xml文档。如果不是则弹出对话框其实用户编辑的文件类型不正确。
6. 将得到的xml内容通过FileHandler的xmlToBean方法装载到相应的JavaBean里。
7. 将JavaBean的内容填入可视化界面相应的地方。
8. 当界面有修改的时候。调用Filehandler的modelToXml方法将JavaBean转化为xml并通过父类Document的set方法将内容写入文本编辑器。
9. 当用户切换编辑器的时候确保两个编辑器的内容同步。
10. 当用户修改完毕保存文件的时候将文件保存。
代码说明:
(详见代码注释说明)
优质内容筛选与推荐>>