最近学习和研究Eclipse RCP应用,顺便写了个资源管理器程序练练手,通过一段时间的摸索,总算是有了个初步的模样。原本打算起名叫JExplore的,毕竟是用Java来写的,但是网上如今JExplore这个名字简直已经臭大街了,考虑到这个资源管理器程序是基于SWT的,就叫作SExplore吧,嗯,名字就是个代号,姑且这么叫吧。
本程序重点在于研究和演示相关技术,功能嘛,根据须要慢慢添加就是了。好了,贴张图先:
本程序技术点以下:
一、读取文件系统目录,构成目录树;
参见FileSystemTree.java, FileSystemTreeContentProvider.java, FileSystemTreeLabelProvider.java
二、目录树节点上显示图标,从Swing的Image转换到SWT的Image;
参见ImageConverter.getSWTImageFromSwing()
三、真正实现树节点SelectChanged事件;
参见BaseTreeViewer.fireSelectionChanged()
四、双击树节点,打开或关闭目录;
参见DoubleClickTreeNode.mouseDoubleClick()和FileSystemTree.FileSystemTree()添加鼠标双击事件侦听器的代码;
五、单击不一样的树节点,右边显示目录的详细列表,TreeViewer与Table控件的联动;
参见SExploreView.createPartControl()中相应代码和FileListTable.selectionChanged()
六、TreeViewer和Table控件之间有分隔条,能够拖动改变大小;
参见 SExploreView.createPartControl()中相应代码,主要是使用了Sash来实现的
七、缺省展开到TreeViewer的指定节点
参见 FileSystemTree.FileSystemTree()中展开节点部分的代码
八、缺省设定选择TreeViewer上的指定节点
参见 FileSystemTree.FileSystemTree()中选择C盘节点的代码
九、文件列表部分排序,先显示文件夹,再显示文件
参见FileListContentProvider.getElements()代码
十、基于XML文件,配置Table的属性
参见BaseTableViewer.java和TableParaser.java
十一、时间、数字的格式化输出;
参见FileListLabelProvider.getColumnText()
注意事项:
一、须要拷贝datawindowDef.xml到D盘根目录下,由于代码为了省事,直接把文件列表Table的属性定义文件放到D盘根目录下了;
待添加功能:
一、文件列表,单击表头排序;
二、文件列表,双击文件夹能够进入下层目录,同时目录树也跟着变化;
三、文件列表,双击文件,使用系统缺省程序打开文件;
四、文件、文件夹的增删改功能;
五、单击右键,显示系统菜单;
六、文件、文件夹的查找功能;
七、增长菜单、工具条等;
八、其它,想到再说
已知问题: 一、对于Windows7,目录树显示库图标的时候,不是实际的图标样式;