最近學習和研究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,目錄樹顯示庫圖標的時候,不是實際的圖標樣式;