使用文件模板和向导创建一个类型文件

通过工具创建类型文件时通常会使用到各式各样的模板,例如IDE在创建java文件时会自动在文件头添加作者和创建日期的注释、XML文件会自动添加根元素的标签等。在NetBeans里通过使用文件模板可以很方便的按照既定的模式创建你的类型文件。

我在《创建新的文件类型 》里介绍了怎样创建一个自定义的文件类型,创建后的文件类型里就包含了一个名为MapTemplate.xmap的空文件模板。现在我们将它变成一个真正有用的地图文件模板,并且使用向导收集初始参数创建地图文件。

 

创建模块项目

现在创建一个模块套件项目Florence 和一个模块项目MapCoreUI ,将前文中创建的MapCore 模块项目和MapCoreUI 一起加入Florence 。从命名就可以看出,我们的新建文件向导会在MapCoreUI 中实现。

 

创建文件模板

打开我们之前创建的MapCore 项目,在包org.jqueen.nb.map.core 下可以找到一个名为MapTemplate.xmap 的空文件模板,双击打开后我们给它添加内容使其变成一个真正有用的地图文件模板:

添加完成后把这个文件复制到MapCoreUI 项目的org/jqueen/nb/map/core/ui 目录下。

 

创建新建文件向导

1、打开项目MapCoreUI ,点击新建文件菜单,在类别列表中选择“模块开发”,文件类型列表中选择“向导”,点击“下一步”操作。


2、注册类型选择“新建文件”,再在向导面板数输入框输入“2”,点击“下一步”操作。


3、类名前缀输入框输入“CreateMap”,
显示名称输入“Map File”,
类别选择“其他”,
包输入框输入“org.jqueen.nb.map.core.ui.wizard”,最后点击“完成”结束操作。



这时,我们可以看到,IDE自动为我们在项目文件夹里新建了许多文件,我们打开2个组件面板文件设计向导的界面:

CreateMapVisualPanel1.java

CreateMapVisualPanel2.java


下面分别是两个类的全部源码:

 


Ok,现在我们可以给组件关联的另外2个类添加获取输入参数的代码了。
打开文件CreateMapWizardPanel1.java ,新增一个方法:


然后在storeSettings() 方法里添加代码:

打开文件CreateMapWizardPanel2.java ,新增一组方法:


然后在storeSettings() 方法里添加代码:


现在再重写CreateMapWizardIterator.javainstantiate() 方法:

我们再为这个类添加2个补充模板脚本的方法:

当java类文件全部编写完成后,我们还需要来做一些配置的工作。

 

修改配置文件
打开项目的layer.xml 文件,我们可以看到已经自动生成了一些配置,我们对其做一些修改,将file 节点的name 属性更改为“MapTemplate.xmap ”,同时添加一个属性url="MapTemplate.xmap" ,用于和MapCore 模块中定义的文件类型同步以及指定文件模板。另外在file 节点下新增一条属性:“<attr name="javax.script.ScriptEngine" stringvalue="freemarker"/> ”。


打开同级目录下的Bundle.properties 文件,将Templates/Other/createMap=Map File 改为Templates/Other/MapTemplate.xmap=地图文件

最后,在项目的“重要文件”文件夹里双击“模块清单”文件,在最后一行添加代码:

OpenIDE-Module-Needs: javax.script.ScriptEngine.freemarker

 

现在,我们终于完成了所有的工作,编译安装我们的模块套件项目后就可以使用向导的方式创建xmap格式文件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值