基于插件技术的GIS应用框架(C# + ArcEngine9.3)(四)
-------------------------插件配置文件
插件的配置、保存是GIS应用框架的一个重要内容,前述章节,我们介绍了本文框架中插件的保存是以XML来实现的,下面,我们就一个XML实例来说明插件是如何保存的。本文框架插件配置文件如下例:
从上面的插件配置文件中,我们可以看到,整个插件配置文件分这么几级:
uielements - 根节点,属性中stylename、skinname保存的是用户当前界面皮肤的选择情况
toolbars - 所有工具条的根节点
toolbar - 工具条和主菜单都可以当做toolbar来处理,利用属性type = mainmenu 和 type = toolbar来进行区分,caption 则为toolbar的标题,dockstyle展示了在用户退出框架前的当前工具条的停靠状态,dockcol,dockrow则是具体停靠的位置,offset是其停靠的偏移量,visible 当然就是这个工具条是否可见了。
注意toolbar="mainmenu"的第一个子项,item type = "subitem",表明了这个子项是一个具有更多下拉列表项的菜单组,这是个递归的定义,当然在加载这个插件时,它的子菜单项同样也可以以递归的形式进行加载。
item type = "command" 表明这个子项是个命令,但也可能是个tool,这会在框架容器里进行自动判别。
其他各子项类型如:item type = "combobox" 表明其是个下拉列表框,大家可以从下图看到,编辑任务、编辑图层插件的XML配置信息:
其中,红线框出的部分即为编辑任务列表和编辑图层列表的插件配置情况。
dockwins 节点和 contentsviews节点即分别为所有停靠窗体和视图插件的根节点,就不再一一赘叙了。
通过对插件配置文件的解析,由框架的插件引擎负责加载当中所有插件到插件池,并完成框架界面的初始化工作。前文提及插件保存在XML配置文件中一个好处就是方便调试,在这里,我们可以通过删减我们不需要调试的插件,从而框架只加载配置文件中你保存的插件信息,这样一来,调试速度就加快了;更为重要的一点,我们可以为不同使用权限的用户发布不同内容的插件配置文件,您所要做的就是开发一个管理模块,来接管插件配置文件的管理工作就可以轻松做到不同权限的用户使用不同功能配置的框架了。