第一部分

通过开发一个文件管理助手软件学习Eclipse RCP技术。

文件管理助手软件的由来

今天,随着计算机和网络的应用越来越广泛,我们已经处于一个信息时代,而我们很多人的计算机里储存的文件也像这飞速发展的信息时代一样急剧膨胀,一方面是现在的信息时代需要我们获取大量的文件,另一方面计算机硬件的不断发展为我们提供了便利,现在的硬盘动辄几十G、上百G,使得储存大量的文件成为可能;但是,与硬件的飞速发展相反,操作系统中的文件管理的表现却无法尽如人意,虽然储存上百G的文件没有问题,但是却无法提供比较方便的管理和检索机制,主要体现在:

1、无法按照人性化的方式检索,如:最常听的10首MP3、最近修改的5个文档等;

2、按文件夹方式管理文件使得拷贝、移动大的文件比较困难,如将C:/Download目录下的文件拷贝到D:/bak下可能需要花费很长的时间;

3、很难扩展文档的属性以用于检索,如为文档增加一些关键字以方便用关键字检索。

文件管理助手的目的就是基于操作系统中的文件系统,提供一些比较方便的管理与检索功能,使得我们能够更方便的管理和利用这些大量的文件。

基本设计思想

文件管理助手是基于Eclipse RCP的文件管理程序,借鉴了Eclipse中的轻量级资源的设计思路,我们将操作系统中的文件映射到软件中的文件描述对象,平常中的管理和检索只针对于文件描述对象,这种对轻量级文件的操作效率很高,只有当用户要求访问文件时我们才加载真正的文件。

下面是域模型:

开发环境

l  操作系统:Windows 2000

l  开发工具:Eclipse3.1

l  JAVA编译器:JDK5.0

创建一个RCP程序

在Eclipse3.1中,开发一个RCP程序非常容易,我们这里不做过多的介绍,只将操作流程中的界面列举出来:

1、  选择File>New>Project,弹出向导界面,选择Plug-in Project;

图1:创建工程向导

2、  点击Next,出现定义工程基本信息界面,在Project name中输入File Assistant;

图2:定义工程基本信息

3、  点击Next,出现定义插件信息界面;

图3:定义插件信息

在界面中输入相应的信息,注意,在最下面的Rich Client Application中选择Yes,创建一个RCP程序。

4、  点击Next,出现选择模板界面,选择Hello RCP模板创建一个空的RCP程序框架;

图4:选择模板

在这里也可以根据自己要开发的程序类型选择其它几个模板。

5、  点击Next,出现定义RCP程序的基本信息界面;

图5:定义RCP信息

在这里,可以定义应用程序的标题、ID、包名、对应的类以及透视图的名称,这些信息也可以在代码和plugin.xml中修改。

6、  检查生成的代码框架,应该像下面这样:

图6:生成的代码框架

7、  在RCP程序的Overview中,点击Launch an Eclipse application运行RCP程序,如果出现如下界面,证明创建成功。

开发领域模型

文件管理助手软件的领域模型非常简单,主要应用了Composite模式,将文件夹(Folder)和文件(File)都作为一种资源(Resource)统一对待,另外,整个领域模型提供了一个服务门面(FileFaçade),简化了客户代码的调用,下图是领域的设计模型:

值得说明的是,这些设计和代码并不是一开始就产生的,而是随着不断增加新功能逐渐演进而来,事实上,在整个开发过程中,我们对域模型就一直没有停止过重构,而采用测试驱动的方法(TDD)很好的保障了我们对模型的修改不会偏离正确的轨道。

不过,为了描述文档的方便,我们还是先在这里简单介绍了领域模型,完整的代码可以从本文档附带的源代码中得到,当然读者也可以自己一步步实现这些代码。

 

参考资料:

l        《Contributing to Eclipse》中文版,[美]Erich Gamma, Kent Beck著,熊节译,中国电力出版社

l        Eclipse Rich Client Platform: Designing, Coding, and Packaging Java Applications

l        About Face

l        在 Eclipse Workbench 之外使用 Eclipse GUI系列文档

l        DND in SWT;

应用EclipseRCP开发文件管理助手软件(一)相关推荐

  1. 自媒体助手软件开发需具备哪些功能?

    自媒体助手软件开发需具备哪些功能?        1.多平台多账号管理.        用户可以在单独的平台上管理其他平台的账号,不需要登录多个平台,为用户减少了大量的时间,与此同时可以记忆账号和密码 ...

  2. android 布局中绘制语音曲线,基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文.docx...

    基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文 Classified Index: TP319 U.D.C: 004.45 Dissertation for the Degre ...

  3. 安利一个适合调试rt thread的串口助手软件

    本文由RT-Thread论坛用户@fhqmcu 原创发布:https://club.rt-thread.org/ask/article/3142.html 串口助手是单片机开发,ARM开发的必用工具, ...

  4. 基于android的校园服务平台,基于android平台的校园助手软件的设计

    近些年来,随着互联网及其相关技术的不断发展,学校信息化建设已逐渐成为人们关注的焦点.教务管理是整个学校管理工作的核心,学校管理者需要科学地运用高效的管理手段管理其他工作人员的工作,从而使得学校的教务管 ...

  5. Mac中开发常用的软件

    Mac中开发常用的软件 https://pan.baidu.com/ 开发软件 IDEA2021 IntelliJ IDEA 2022 for Mac(最好用的Java开发工具)永久激活版 Snail ...

  6. 79款 C/C++开发工具开源软件

    参考网站:http://www.oschina.net/project/tag/118/c-development-tools 集成开发环境Eclipse Eclipse是著名的跨平台的自由集成开发环 ...

  7. 探索互联网,分享电脑实用助手软件

    我们的电脑里常常会装载着各种各样的软件,有些是用来工作.学习的,有些则是为了娱乐和消遣.但除了这些常见的软件之外,还有很多实用助手类的软件,它们能够大幅提高我们的工作效率和生活品质.今天,我想向大家分 ...

  8. 基于C#的自动生成视频和海报营销号助手软件设计 课程报告+展示PPT+项目源码

    目录 营销号"助手"软件 1 需求分析与概要设计 1 项目说明 1 1.1. 项目目标: 2 1.2. 软硬件环境需求 2 1.3. 使用的关键技术: 2 需求分析 3 2.1. ...

  9. BBdoc文件管理助手V1.24升级通知 详见官网:http://www.bbdoc.cn

    BBdoc文件管理助手V1.24升级内容    BBdoc文件管理助手 1.BBdoc名称更改为"BBdoc文件管理助手",官网重大升级,新版本提供商业付费版,详见官网. 2.已支 ...

最新文章

  1. Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)
  2. qt无法找到动态链接库文件怎么办?
  3. ngx_lua操作Redis和Mysql
  4. FOI冬令营 Day 3
  5. class(一)--类的创建
  6. 计算机网络7种类型,OSPF中7种类型LSA
  7. Mysql 锁定 读情况
  8. windows 删除网络驱动器
  9. JavaScript经纬度和地图坐标相互转换
  10. 下载英文电子书网站,推荐
  11. GitChat·Python | 零基础小白如何入门 Python 编程
  12. 内网渗透-最实用的横向移动总结
  13. HTTPS证书文件格式转换
  14. 【涂鸦物联网足迹】涂鸦云平台接口列表—万能红外遥控器
  15. android多屏幕多分辨率的一些概念
  16. Etcd Unable to attach or mount volumes
  17. vue中的this.nextTick()
  18. 专访今目标李雪:行业分化愈加明显 专业的公司做专业的事情
  19. ----不知道这是不是好友里的buge~~~
  20. 数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(3)

热门文章

  1. 猫眼电影-爬取(Python)
  2. python进阶练习题:自圣诞树III:叶中心【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  3. 计算机图像学试题,北交20秋《计算机图形学》在线作业二题目
  4. 荣耀鸿蒙系统怎么设置,华为鸿蒙系统OS怎么样?荣耀智慧屏鸿蒙系统界面曝光...
  5. C语言 模拟计算器实现
  6. VB中操作剪粘板方法
  7. 递推java_Java算法-递推算法思想
  8. wlk修复最好的服务器,cwlk中那些最容易获得的服务器第一成就
  9. 封装与多态的基本使用
  10. java ajax无刷分页_简单实现Ajax无刷新分页效果