Lyra Resource Platform 文档 详细设计说明书
详细设计说明书
1.引言
1.1 编写目的
本详细设计说明书是针对网络信息体系结构的课程作业而编写。目的是对该项目进行详
细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后
面的实现和测试作准备。本详细设计说明书的预期读者为本项目小组的成员以及对该系统感
兴趣,在以后想对系统进行扩展和维护的人员。
1.2 背景
a.[待开发的系统的名称:Lyra Resource Platform;
b.本项目的任务提出者: 赵东,成富,陈良,窦文敏
开发者:赵东,成富,陈良,窦文敏
用户:所有对该项目感兴趣,并想通过该项目的产品提高资源检索速度和质量,方便的
进行资源检索,预览,上传及下载的用户。
2. 系统的结构
1
Lyra Resource Platform 文档 详细设计说明书
z ui:系统界面部分,负责接受用户输入,显示系统输出,负责其他模块功能的协调调用,
并含有站内搜索功能,即在用户指定的已打开的 ftp 站点中搜索用户需要的资源。ui
部分调用 common 部分的功能读取 xml 文件中保存的界面元素属性信息,用户最近访问
过的 10 个 ftp 信息,用户选择的下载的 ftp 内容列表及其他需要通过 xml 文件保存的
信息。
z client:实现 ftp 客户端的功能,ftp 连接,ftp 上传及下载:上传或下载用户指定的
资源,并返回相应的信息。
z search:资源实时检索部分,根据用户输入的资源名称关键字,资源类型和选择的检索
方式检索用户需要的资源,并验证资源的可用性,返回可用资源及其大小,速度等相关
信息。
z preview:资源预览部分,显示用户选择的资源的部分内容,以使用户决定是否需要该
资源。preview 部分调用 common 部分读取属性文件的内容亦显示预览资源内容的显示
格式。
3.模块 1(ui)设计说明
3.1 模块描述
实现用户界面的包,含有 11 个文件 51 个类,是本系统中最复杂的代码。
3.2 功能
负责接受用户输入,显示系统输出,其他模块功能的协调调用,并含有站内搜索功能,
即在用户指定的已打开的 ftp 站点中搜索用户需要的资源。
3.3 交互的模块
client,search,preview,common。
3.4 模块设计
该模块中的主要文件,文件中包含的主要类及其功能和与其它包的交互如下:
z MainFrame.java:MainFrame 是含有主函数的类,也是 lyra 客户端开始执行的类,
它先后进行资源的初始化,显示主界面等工作,根据屏幕大小设置界面大小,设置界面
的观感。
z FtpFrame_AboutBox.java:显示关于窗口的类,当用户点击帮助菜单中的关于菜单
项时会弹出关于对话框。
z Tools.java:FileTools 是文件操作辅助类,可以实现文件的递归删除等。
z XMLController.java: JDOMTes 是操作 xml 文件的类,用 JDOM 来操作 xml 文件,
实现的功能有:
(1)保存 ftp 服务器的文件列表(站内搜索时使用),递归的从 ftp 服务器读取列表,
并存入一个 xml 文件中(文件的命名方法是:ip+用户名.xml);以目录树的形式保存。
(2)根据文件名在文件中查找文件,站内搜索时使用。
(3)保 存 ftp 服务器的信息:ip,端口(默认端口 21 不保存),用户名(默认 anonymous
不保存),密码,最多存 10 个;存在 resource\settings\ serversinfor.xml 文件中。
(4)读取已存储的 ftp 服务器信息。
(5)从
type.xml 读取搜索的类型。
z Constants.java:放置系统运行时使用的一些常量,initcontent()函数对所有常量进行
初始化,这个函数在 MainFrame 中被调用一次。iconHashMap 是 hash 表,用于存放
文件的系统图标。
z CustomizedController.java:包含自定义的控件类,java 中的控件可能不能满足需求,
2
Lyra Resource Platform 文档 详细设计说明书
需要自己定义某些属性。这些控件会在创建界面时使用。其中含有的类有:
(1)CustomizedJTable 是表格类,设置表格的某些属性,如字体等。
(2)CustomizedTableCellRenderer 是表格单元格绘制器类,主要用于显示文件的系统图标,
和文件名。
(3)LeftPanel 类的父类是 JTabbedPane,用户显示主窗口左边的面板。
(4)RightPanel 类的父类是 JPanel,用户显示右边的主题部分,包括右上边的搜索及服务
器选项,和中间的显示服务器文件的 TabbedPane。.
(5)BottomPanel 类是右下放显示下载和服务器信息的 JTabbedPane。
(6)CustomizedJButton 是定义按钮类,更改了按钮的字体,java 本身默认的字体不好看。
(7)CustomizedTableModel 是表格类,实现单元格的不可编辑。
( 8 ) CustomizedTableCellRenderer_Remote 类是表格绘制器,在远程文件浏览器
RemoteFilesPanel 使用,用于显示文件名和文件图标。
(9)FontTableCellRenderer 类是表格单元格绘制器,主要功能是设置字体。
(10)FontListCellRenderer 类是下拉列表框单元格绘制器,主要用于设置字体。
(11)CustomizedJLabel 类是自定义标签类,重新设置了标签的字体。
(12)CustomizedJTextField 类是自定义文本框类,主要用于设置文本框的显示属性。
(13)CustomizedJMenu 类是自定义菜单类,重新设置了菜单的字体。
(14)CustomizedJMenuItem 类是自定义菜单项类,重新设置了菜单的字体。
(15)CustomizedListCellRenderer 类是 JComboBox 即组合框单元格绘制器,用于在本地
路径选择的下拉列表中显示磁盘图标。
z SearchResultReceiver.java, SearchResultReceiver 是一个接口,主要用于返回搜索结果。
搜索完成后调用接口中的函数通知调用者。其中主要有两个函数:
(1)OnSearchFinished(String[] keywords,ArrayList[] resultset);result 是一个 10 维的数组表
result[10],result[i]是由类型为 i 的资源组成的数组。i:0-9,和类型列表框中的顺序一致。
(2)OnSearchFinished(String[] keywords,ArrayList resultset);不分类型,将所有资源放在一个
数组表中。
z FtpFrame.java:FtpFrame 是程序主窗口类,类型为 JFrame,是由三个分割窗口 JSplitPane
构成的。
jSplitPane_Left 是左边的分割窗口,水平分割条上边显示本地文件框,下边是预览框;
jSplitPane_Right 是右边的分割窗口,水平分割条上边是服务器选项和 ftp 服务器文件显示的
窗口,下边是下载和服务器信息显示窗口;
jSplitPane_Whole 是整体的分割窗口,垂直分割条,左边是 jSplitPane_Lef,右边是
jSplitPane_Right。
FtpFrame 把 LeftPanel,RightPanel,BottomPanel,PreviewWrapperPanel 这几部分安装在相
应的分割窗格中;LeftPanel,RightPanel,BottomPanel 是在 CustomizedController.Java 中定
义的,PreviewWrapperPanel 是在 Preview 包中定义的。
z LeftPanelCtrl.java: LocalFilesPanel 是本地文件面板,用表格来显示本地文件的信
息。上边是组合框,显示了磁盘分区通过这里可以改变根目录。表格中显示了文件的信
息,包括文件名,文件的系统图标,大小,最近修改日期,属性等。选中一个文件后可
以执行上载和删除操作。文件夹会递归的删除。GetCurrentPath()函数返回当前的路
径。DisplayPathFiles()函数在列表中显示指定目录下的文件。
z RightPanlCtrl.java:定义右上边的控件。含有的类有:
(1)FtpServerOptionPanel 类是服务器连接选项面板,包含服务器地址,端口,用户名,密
码等,还包括最上端的搜索选项。openRemoteFilesPanel()函数在下面的 TabbedPane 中打
3