Netbeans平台中有一个概念: System FileSystem,
系统文件系统, 又叫配置文件系统.
系统文件系统其实就是Netbeans的配置数据的中心仓库,也就是用来存储配置数据信息的.系统文件系统由Netbeans系统在运行时根据所有模块的XML层文件(XML Layer, layer.xml)文件组装配置形成. 各个模块使用系统文件系统的目录去定义
扩展点(Extension Point).
扩展点: 每个模块可以定义一个目录或者文档来指定
其他模块可以放置到此的文件或者对象(通常是
实例文件, instance file),Netbeans系统在运行时扫描并且装载这些内容.
系统文件系统的
顶层是
用户目录(在Windows下,通常是登陆用户,在Document and Setting目录下,当然你可以指派用户目录)底下的
config子目录.系统文件系统在这个目录下进行读写和比较操作,例如在Netbeans系统上去掉帮助文件,不是真正的删除物理文件,而是在这个目录下生成一个空文件, 例如HelpFile.instance_hidden,这样Netbeans系统就不显示帮助文件了. 任何类型的文件都能放入系统文件系统中, 这取决于Netbeans中的模块以及模块定义的目录或者文档.
系统文件系统识别文件的机制和一般的机制一样,所以你可以将java文件放到系统文件系统中去,你可以使用编辑器打开,编辑,和存储.就像其他地方的java文件一样,当然它将被保存到用户目录下面. 这也是Netbeans中你可以编辑文件模版的机制和原因.
系统文件系统中一些特定的目录包含特定的信息, 他们其实就是组成Netbeans平台的部分模块定义的:
- Actions动作 存储系统中所有的全局动作,可以拥有分类的子目录,通过.instance文件安装动作
- Menu菜单 主窗口中菜单条的内容,每个菜单都有一个目录,还有子菜单具有子目录, 下面的.instance文件用来指定哪些动作可以在菜单上显示.
- Loaders加载器 - 包含定义MIME类型的子目录,例如 Loaders/text/x-java , MIME类型用来定义不同的属性, 例如弹出菜单(右键)就可以根据节点文件的MIME类型来显示不同的动作. 例如html文件可以激活浏览器, java文件可以激活编译动作.
还有其他一些事情可以被模块API指定, 从而影响对象的使用:
- 文件的位置: 一个模块可以指定一个目录,直接将对象放入这个目录,或者要求其他客户模块在这个目录中创建子目录,从而使得整个文件路径具有语义(看下面)
- 文件的类型 : 你会经常安装各中代表Java对象的.instance文件, 通常模块指定目录下的那些类或者接口能够被使用
- 文件的属性: 需要额外信息来描述如何对待文件时需要指定文件属性键值对.