欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    NCHR开发框架设计说明书.docx

    • 资源ID:12618782       资源大小:81.18KB        全文页数:35页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    NCHR开发框架设计说明书.docx

    1、NCHR开发框架设计说明书NCHR开发框架设计说明书作 者:丁建昕 王星 曾诚创建日期:2005-12-15修改日期:2005-12-27修改次数:0变更记录变更日期变更内容变更原因变更人YYYY-MM-DD目 录1. 引言 51.1. 编写目的 51.2. 背景 51.3. 定义 51.4. 参考资料 52. 程序系统的结构 62.1. 横向来看 62.2. 纵向来看 62.3. 从框架开发者的角度 62.4. 从应用开发者的角度 63. 基础结构BaseUI相关类设计说明 73.1. 程序描述 73.2. 功能 73.2.1. BaseUI类 73.2.2. 状态控制 83.2.3. 按钮

    2、管理 93.2.4. 动作管理 103.2.5. 数据持久化 114. 快速开发模板FrameUI相关类设计说明 124.1. 程序描述 124.2. 功能 144.2.1. 界面展现 144.2.2. 按钮和动作管理 155. 按钮管理ButtonManager相关类设计说明 165.1. 关键词 165.2. 功能说明 165.3. 按钮管理相关类 165.3.1. 类图 175.3.2. ButtonManager类说明 185.3.3. AbstractBtnRgst类说明 195.3.4. ButtonStateRegister类说明 215.3.5. StateRegister类说

    3、明 226. MainBillCardPanel设计说明 236.1. MainPanel父类说明 236.1.1. MainPanel的设计意图 236.1.2. MainPanel的方法说明 236.2. MainBillCardPanel说明 267. MainBillListPanel设计说明 27 引言编写目的详细说明UIFrame的设计思想、层次结构、类之间的关系。适用读者为UIFrame的开发者和使用者。背景针对界面开发中代码结构不合理的问题提供一个解决方案及规范。定义UIFrame:框架名称UI类:界面入口程序Panel:组织存放各种控件DataModel:保存当前状态,发送状

    4、态信息;同服务器端通讯按钮:界面上菜单位置的按钮控件,不包括其它动作:点击按钮时要完成的事情观察对象及被观察对象:当被观察对象改变时,观察对象响应被观察对象的变化状态:界面响应用户的操作会导致控件状态变化:可用、不可用、可见、不可见注册:将功能或是数据类以参数形式告知管理类,由管理类负责调用参考资料程序系统的结构横向来看UIFrame是以UI类作为程序的入口和控制中心,结合DataModel类进行状态控制,结合ButtonManager进行按钮控制。同时以各个Panel为被控制单元,在各种动作类(Action)中进行调度。纵向来看UIFrame分为两个层次,以BaseUI为中心的相关类作为最上

    5、层,完成UIFrame的基本功能:状态控制,按钮管理。以FrameUI为中心的相关类继承于BaseUI,以模板形式提供额外的快速开发能力。从框架开发者的角度需要考虑的是如何为框架添加更多的快速开发能力,即继承BaseUI相关类,形成与FrameUI平行的各种模板类。从应用开发者的角度直接继承各种模板类,充分利用模板已经实现的各种功能,扩展自己的业务功能。有一点需要特别注意:严格禁止应用开发者继承BaseUI相关类。基础结构BaseUI相关类设计说明程序描述BaseUI相关类组成UIFrame的基础结构,为所有其它UI相关类的父类,完成UIFrame的最基本功能。涉及类:BaseUI、DataM

    6、odel、ButtonManager、StateRegister、AbstractButtonRegister、ButtonStateRegister、StateChangeEvent类名描述父类接口BaseUI程序入口,负责调度所有资源,包括DataModel、ButtonManagerToftPanelDataModel保存当前状态,发送状态事件;同后台通讯ButtonManager管理全部按钮,包括其名称、动作、状态StateChangeListerStateRegister状态列表AbstractButtonRegister按钮列表ButtonStateRegister按钮对应状态列表

    7、StateChangeEvent状态事件EventObject涉及接口StateChangeListener、ICommand接口名描述父接口StateChangeListener响应状态改变EventListenerICommand响应按钮动作功能BaseUI类程序入口,继承于ToftPanel,界面的控制中心,负责调度界面的所有资源,包括按钮、Panel、DataModel,组织各个Panel,获得了BaseUI的引用即获得了掌控界面资源的入口。BaseUI并不直接操纵各种控件,按钮的处理交给ButtonManager负责,控件的处理交给各个子Panel负责,状态及数据持久化交给DataM

    8、odel负责。这些类的实例化都在BaseUI类中进行,以下是BaseUI中创建他们的方法,可以根据业务不同在BaseUI的子类中进行重写,具体使用方法参考javadoc。方法名称参数返回值描述createDataModelDataModel根据业务不同,创建DataModel的子类,例如要实现复杂查询createButtonStateRegisterButtonStateRegister根据业务不同,创建ButtonStateRegister的子类,例如自定义按钮的状态createBtnRegisterAbstractButtonRegister根据业务不同,创建AbstractButtonR

    9、egister的子类,例如自定义按钮注:ButtonManager不需要开发者创建,由getBtnManager方法进行实例化,createButtonStateRegister和createBtnRegister作为ButtonManager构造方法的参数传到ButtonManager中。 BaseUI中的其它方法方法名称参数返回值描述getTitle返回界面标题重写父类方法,默认返回在功能节点上注册的名字,如有不同可在子类中重写OnButtonClicked点击按钮时调用重写父类方法,将按钮操作转移到ButtonManager,不允许子类重写setButtons设置按钮重写父类方法,扩大其

    10、可视范围,不允许子类重写updateButtons更新按钮重写父类方法,扩大其可视范围,不允许子类重写状态控制涉及DataModel、StateChangeListener、StateChangeEvent、StateRegister,状态控制还包括按钮状态,在此处不做详细介绍,请参考ButtonManager说明。状态控制的原理主要是采用事件发送、监听机制。需要状态控制的类实现StateChangeListener接口,当调用DataModel的setCurrentState方法时,将状态事件StateChangeEvent发送到实现StateChangeListener接口的类,这些类将自

    11、动响应状态的变化。StateChangeListener类中的方法只有一个stateChanged方法名称参数返回值描述stateChangedStateChangeEvent实现StateChangeListener接口的类需要在这个方法中填写业务相关的状态设置StateChangeEvent中的方法主要是设置、获取当前状态,当实现了StateChangeListener的类在方法中获得了StateChangeEvent实例,就可获得当前的状态方法名称参数返回值描述getCurrentState返回当前状态获得当前状态setCurrentStateInt设置当前状态由DataModel进行调

    12、用,开发者不用调用StateRegister主要用于状态列表,如果有自定义状态列表,需要继承实现自己的状态列表,在子类中添加静态常量,重写getAllStateIDs方法,StateRegister类的初始化是在DataModel的createState方法中进行方法名称参数返回值描述getCurrentState返回当前状态由DataModel进行调用,开发者不用调用setCurrentStateInt设置当前状态由DataModel进行调用,开发者不用调用getAllStateIDsint获得当前界面所用的状态列表由子类重写,返回业务所需状态列表DataModel类关于状态方面的功能主要是

    13、保存当前状态,此处只介绍状态方面的方法,数据持久化的方法在数据持久化一节中介绍方法名称参数返回值描述addStateChangeListenerStateChangeListener添加状态监听removeStateChangeListenerStateChangeListener删除状态监听fireStateChanged发送状态事件,由DataModel自身调用setCurrentStateInt设置当前状态,同时将状态改变发送出去getCurrentStateint获取当前状态,与状态事件中的状态是一致的createStateStateRegister创建StateRegister,由子

    14、类重写,实现业务需要的状态列表getStateStateRegister获得StateRegistersetStateStateRegister设置StateRegister按钮管理界面上的按钮统一由ButtonManager控制,包括按钮的名称、状态、动作,ButtonManager的实例化由BaseUI进行,不用开发者参与。但是ButtonManager的参数需要开发者在BaseUI的子类中实现,请参考BaseUI一节和ButtonManager一节获取详细信息。动作管理动作管理实际上是按钮管理的一部分,当点击按钮所要做的事情是由ButtonManager负责调度的。ButtonManag

    15、er的调度过程请参考ButtonManager一节,此处主要讨论ICommand接口。每个按钮动作都实现了ICommand接口,开发人员不必关心如何执行业务逻辑的调用,只需要实现ICommand接口的execute方法,并将动作注册到ButtonManager即可。从而简化开发模型,减少出错机率。每个按钮的名称将同按钮的动作相分离,提高了灵活性。每个动作都可重用,增加了可维护性。方法名称参数返回值描述execute执行业务逻辑validateboolean执行前进行校验,返回true则调用execute,false则不调用AbstractAction实现了ICommand接口,提供了一些基本方

    16、法的实现。方法名称参数返回值描述getFrameUIFrameUI获取FrameUIgetMainPanelMainPanel获取MainPanelgetDataModelDataModel获取DataModelvalidateboolean动作执行前校验,空方法,子类重写,可用于前台校验getCheckMethodString子类继承,返回一个包含类名和类中一个方法的字符串,共后台校验使用,字符串中包含的类应该放在bs端数据持久化数据持久化操作全部集中在DataModel中进行,方便自动单元测试。以下论述只涉及到DataModel的持久化方法,状态相关方法请参考状态控制一节。方法名称参数返回

    17、值描述onDeleteObjectboolean删除数据,空方法,由子类继承后重写onQueryClass,StringSuperVO查询数据,用于单表查询,Class指明表对应的VO,String指明查询条件,空方法,由子类继承后重写onSaveObjectObject保存数据,空方法,由子类继承后重写,返回保存的数据queryDataByHeadVOSuperVO,StringHRAggVO根据主表数据查询,返回主表及子表数据,空方法,由子类继承后重写快速开发模板FrameUI相关类设计说明程序描述FrameUI相关类继承了BaseUI相关类,除了保留父类的状态控制、按钮管理的功能外,还提

    18、供了模板式的快速开发能力。主要表现在:标准按钮动作的实现、标准状态控制、标准界面类型,特别是针对单据模板提供了MainBillListPanel和MainBillCardPanel两个类处理单据模板相关操作(请参考MainBillListPanel和MainBillCardPanel两节内容)。FrameUI针对HR界面特点,将界面分为几个部分:按钮下的导航条TopPanel、左边的导航栏LeftPanel(可能是树、表或列表)、数据的主要显示界面MainPanel。其中MainPanel必须存在,TopPanel、LeftPanel可以根据用户设置决定是否存在。MainPanel中可以存放标

    19、准的单据模板,也可以存放各种控件,提供最大的灵活性。对界面的操作是以Panel为单元进行的,即按钮动作不直接调用Panel中每个控件的设置方法,而是调用Panel中的方法,由Panel自己在调用其中的控件设置方法,这是为了减少动作和Panel之间的耦合,同时可减少动作的数量,开发者应当注意。换个说法就是尽量把Panel作为一个控件来用。涉及界面类:FrameUI、MainPanel、LeftPanel、TopPanel、MainBillListPanel、MainBillCardPanel、LeftTreePanel、LeftTablePanel、LeftListPanel类名描述父类接口Fr

    20、ameUI程序入口,资源控制中心,组合各个Panel类BaseUIMainPanel显示数据详细信息,点击LeftPanel时自动响应点击事件UIPanelStateChangeListener,ObserverLeftPanel导航树,或表,或列表UIPanelStateChangeListenerTopPanel导航栏,可以存放查询的前置条件UIPanelStateChangeListenerMainBillListPanel封装BillListPanelMainPanelMainBillCardPanel封装BillCardPanelMainPanelLeftTreePanel导航树Le

    21、ftPanelLeftTablePanel导航表LeftPanelLeftListPanel导航列表LeftPanel涉及数据持久化类BillDataModel,此类继承了DataModel,重写了其中的空方法。类名描述父类接口BillDataModel其数据持久化的相关方法主要针对单据模板,如果不是这样,子类应当重写DataModel涉及动作类AddAction、AddLineAction、CancelAction、DeleteAction、DeleteLineAction、EditAction、EditLineAction、PrintAction、QueryAction、RefreshAc

    22、tion、SaveAction,每个动作都对应一个按钮,使用时需要在ButtonManager中进行注册。类名描述父类接口AddAction新增,只是清空界面数据AbstractActionAddLineAction增加行,为表格添加一个空行AbstractActionCancelAction取消,取消新增或编辑AbstractActionDeleteAction删除,删除界面数据同时删除后台数据AbstractActionDeleteLineAction删除行,删除表格中的一行AbstractActionEditAction编辑,将数据填充到界面,同时设置界面控件可用AbstractActi

    23、onEditLineAction编辑行AbstractActionPrintAction打印,调用单据模板的打印功能,如果没有使用单据模板则需要自己实现AbstractActionQueryAction查询,调用查询模板查询数据,同时更新界面数据AbstractActionRefreshAction刷新,重新查询数据填充到界面AbstractActionSaveAction保存,将修改或新增的数据持久化AbstractAction涉及工具类TreeUtilities类名描述父类接口TreeUtilities对树操作的工具类,包括创建DefaultTreeModel,添加、删除、查找节点,在De

    24、faultTreeModel上放的树节点类型为DefualtMutableTreeNode的子类FrameTreeNode,其中的UserObject放的是HRAggVO涉及其它类FrameTreeNode、HRAggVO类名描述父类接口FrameTreeNode对DefaultMutableTreeNode的重新包装,用于将SuperVO直接转化成具有父子关系的树节点DefaultMutableTreeNodeHRAggVO对单据模板VO的实现类ExtendedAggregatedValueObject功能界面展现涉及类:FrameUI、MainPanel、LeftPanel、TopPane

    25、l、MainBillListPanel、MainBillCardPanel、LeftTreePanel、LeftTablePanel、LeftListPanel。FrameUI类是整个界面的核心,负责组织MainPanel、LeftPanel、TopPanel,初始化按钮。方法名称参数返回值描述createLeftPanelLeftPanel默认返回LeftTreePanel,如果需要其它类型则需要在子类中重写此方法,返回LeftPanel子类createMainPanelMainPanel默认返回MainPanel,如果需要其它类型则需要在子类中重写此方法,返回MainPanel子类crea

    26、teTopPanelTopPanel默认返回TopPanel,如果需要其它类型则需要在子类中重写此方法,返回TopPanel子类initButtons此方法为抽象方法,子类在此实现初始化按钮initialize此方法初始化各个Panel和按钮getSplitPane创建UISplitPane,为私有方法,开发者无需关心needLeftPanelboolean抽象方法,设置是否使用LeftPanel,由开发者实现,true为需要,false为不需要needTopPanelboolean抽象方法,设置是否使用TopPanel,由开发者实现,true为需要,false为不需要FrameUI还负责打印

    27、模板、查询模板的配置工作。如果一个节点有多个查询模板,则在使用QueryAction之前应当设置好FrameUI的queryNodeKey属性,如果有常用查询条件,还要设置对应queryNodeKey的常用查询的UIPanel;同样,如果一个节点有多个打印模板,则在使用PrintAction之前应当设置好FrameUI的printNodeKey属性。方法名称参数返回值描述getQueryDialogQueryConditionClient返回查询模板,程序自动根据功能注册的节点号,设置的nodeKey查找查询模板getNormalQueryPanelUIPanel返回常用查询UIPanelse

    28、tNormalQueryPanelUIPanel设置常用查询UIPanelgetQueryNodeKeyString返回查询模板nodeKeysetQueryNodeKeyString设置查询模板nodeKeygetPrintNodeKeyString返回打印模板nodeKeysetPrintNodeKeyString设置打印模板nodeKeyMainPanel类中的方法大多为空方法,MainBillListPanel、MainBillCardPanel为针对两种单据模板的MainPanel的实现类,具体使用请参考相关章节。按钮和动作管理按钮和动作管理的工作在ButtonManager中进行,

    29、具体使用请参考ButtonManager一节。按钮管理ButtonManager相关类设计说明关键词系统按钮:在AbstractBtnRgst类中以静态常量方式注册的按钮常量所代表的按钮,我们叫做系统按钮,当然并不是每一个系统按钮都会被系统管理起来,系统默认管理的系统按钮只包括SYSBTN_QUERY 查询SYSBTN_ADD 增加 SYSBTN_EDIT 修改SYSBTN_SUBOPERATION 子集操作SYSBTN_ADD_LINE 增行SYSBTN_DEL_LINE 删行SYSBTN_INSERT_LINE 插入行SYSBTN_EDIT_LINE 修改行SYSBTN_SAVE 保存SYSB


    注意事项

    本文(NCHR开发框架设计说明书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开