一种基于状态机的用户图形界面状态控制方法

文档序号:6622330阅读:970来源:国知局
一种基于状态机的用户图形界面状态控制方法
【专利摘要】本发明提供一种基于状态机的用户图形界面状态控制方法,该方法包括(一)设置用户界面状态机(二)将界面控件与状态机进行关联(三)在程序中触发基于状态机的界面状态控制等三个实现步骤。通过在表单开发过程中应用此方法,可规范化用户界面状态的控制操作,提高界面状态控制的开发、维护的效率,降低出错的概率。
【专利说明】一种基于状态机的用户图形界面状态控制方法

【技术领域】
[0001]本发明涉及一种计算机应用【技术领域】,一种软件实现的表示层用户图形界面领域,具体地说是一种基于状态机的用户图形界面状态控制方法。

【背景技术】
[0002]在一个基于.NET Winforms技术实现的用户图形界面中,界面是由一组界面控件嵌套、组合而成。例如通常是由一个Form (窗体)作为基本容器,其中包含了工具栏、各种输入控件(文本、日期等)和数据表格控件等,其基本组成结构如附图1所示。用户界面状态是由组成界面的控件的状态构成。控件的状态包含两个状态值:可用、不可用。
[0003]当用户在操作一个图形界面时,有多种因素导致用户界面状态不同。例如用户界面打开后默认处于非编辑状态,这时界面的输入控件等处于不可用状态,当用户点击“编辑”按钮等操作,可使界面的输入控件进入到可用状态。其他的,例如当用户没有当前数据的修改权限时,整个界面的所有控件处于不可用状态。
[0004]在做图形界面开发时,根据不同的因素设置界面状态的控制,是比较繁琐的工作,并且在做维护时经常因为状态控制考虑不全导致程序错误。
[0005]如果能够设计一种通用的界面状态控制方法,提高界面状态控制的开发、维护的效率,降低出错的概率,是一项非常有价值的改进。


【发明内容】

[0006]本发明的目的是提供一种基于状态机的用户图形界面状态控制方法。
[0007]本发明的目的是按以下方式实现的,包括如下步骤内容:1)设置用户界面状态机;2)将界面控件与状态机进行关联;3)在程序中触发基于状态机的界面状态控制;其中:
基于步骤1),户界面状态机是由描述界面的多个“状态节点”及状态之间的“状态迁移”组成,
所述的,“状态节点”包含如下信息:状态标识、状态名称、状态描述;
所述的,“状态迁移”包含如下信息:迁移标识、迁移名称、迁移源状态、迁移目标状态,其中,迁移源状态和迁移目标状态分别关联一个“状态节点”;
所述的,在两个“状态节点”之间允许有多个“状态迁移”进行关联,用于表达不同的状态迁移应用场景;
基于步骤2),界面控件与状态机进行关联,主要完成以下子步骤:
(1)设置界面控件与状态机的“状态节点”的对应关系,该对应关系是一个多对多关系,即一个界面控件包含到多个“状态节点”中,而一个“状态节点”包含多个界面控件;
(2)设置“状态节点”包含的界面控件的状态;
基于步骤2)的设计,“状态节点”与界面控件的对应关系,是一个独立的实体,伪代码类型命名为:UIStateControl,该实体包含如下信息:状态节点标识、界面控件标识、界面控件状态,其中界面控件状态包含两个枚举值:可用、不可用; 基于步骤3),在程序中触发基于状态机的界面状态控制,主要包含以下子步骤:
(I)在具体的界面操作过程中,当要进行界面状态的改变时,需要调用状态机的状态机状态迁移编程接口,并获取返回的界面控件的状态集合;
进一步的,基于步骤三的子步骤(I ),状态机状态迁移编程接口,其伪代码如下所示:List< UIStateControl> TrasitState(string curStateID, string transit1nID,out string targetStateID);
其中curStateID是代表当前界面所处状态的状态机“状态节点”标识;transit1nID是要执行的“状态迁移”的标识;targetStateID是一个输出参数,用来标识通过方法执行,迁移到的“状态节点”的标识;返回值是一个“状态节点”与界面控件关联实体UIStateControl的集合,表示在执行方法后,界面控件状态集合;
(2 )根据步骤3 )的子步骤(I)的返回值,循环读取界面控件状态,通过程序对相应界面控件的状态机进行设置,完成界面状态的控制。
[0008]本发明的优异效果:通过在图形界面开发过程中应用此方法,可规范化用户界面状态的控制操作,提高界面状态控制的开发、维护的效率,降低出错的概率。

【专利附图】

【附图说明】
[0009]图1是图形用户界面控件组成结构示意图;
图2是控制界面状态的状态机基本结构图;
图3是界面控件与状态节点间的关系结构图;
图4是实施例中描述的采购订单界面示意图;
图5是实施例中描述的采购订单界面状态机示意图。

【具体实施方式】
[0010]参照说明书附图对本发明的作以下详细地说明。
[0011]以下将通过对本发明的优选实施例的详细描述,使本发明的上述目标、特征和优点更加清晰、易懂。
[0012]以某系统的采购订单为示例,采购订单界面,包含一个工具栏、一组输入控件及一个数据表格控件。其界面原型如附图4所示。工具栏有三个按钮:新建、编辑、保存,界面规则定义如下:
1.界面打开后,默认处于初始状态,新建、编辑按钮处于可用状态,保存按钮处于不可用状态。界面输入控件及数据表格控件处于不可用状态。
[0013]2.当用户点击新建按钮时,界面处于新建状态,其中所有的输入型控件及数据表格控件都处于可用状态,并且编辑按钮处于不可用状态,保存按钮处于可用状态。
[0014]3.当用户点击编辑按钮时,界面处于编辑状态;其中订单编号处于不可用状态,其他输入型控件及数据表格控件处于可用状态,并且新建按钮处于不可用状态,保存按钮处于可用状态。
[0015]4.当用户点击保存按钮,系统保存成功后,界面返回到初始状态。
[0016]首先,建立三个界面状态:初始、新建、可编辑,并设置三个状态的迁移关系,如图5所示。然后,定义三种状态下界面控件的状态信息如下:

【权利要求】
1.一种基于状态机的用户图形界面状态控制方法,其特征在于包括如下步骤内容:I)设置用户界面状态机;2)将界面控件与状态机进行关联;3)在程序中触发基于状态机的界面状态控制;其中: 基于步骤1),户界面状态机是由描述界面的多个“状态节点”及状态之间的“状态迁移”组成, 所述的,“状态节点”包含如下信息:状态标识、状态名称、状态描述; 所述的,“状态迁移”包含如下信息:迁移标识、迁移名称、迁移源状态、迁移目标状态,其中,迁移源状态和迁移目标状态分别关联一个“状态节点”; 所述的,在两个“状态节点”之间允许有多个“状态迁移”进行关联,用于表达不同的状态迁移应用场景; 基于步骤2),界面控件与状态机进行关联,主要完成以下子步骤: (1)设置界面控件与状态机的“状态节点”的对应关系,该对应关系是一个多对多关系,即一个界面控件包含到多个“状态节点”中,而一个“状态节点”包含多个界面控件; (2)设置“状态节点”包含的界面控件的状态; 基于步骤2)的设计,“状态节点”与界面控件的对应关系,是一个独立的实体,伪代码类型命名为:UIStateControl,该实体包含如下信息:状态节点标识、界面控件标识、界面控件状态,其中界面控件状态包含两个枚举值:可用、不可用; 基于步骤3),在程序中触发基于状态机的界面状态控制,主要包含以下子步骤: (I)在具体的界面操作过程中,当要进行界面状态的改变时,需要调用状态机的状态机状态迁移编程接口,并获取返回的界面控件的状态集合; 进一步的,基于步骤三的子步骤(I ),状态机状态迁移编程接口,其伪代码如下所示:List< UIStateControl> TrasitState(string curStateID, string transit1nID,out string targetStateID); 其中curStateID是代表当前界面所处状态的状态机“状态节点”标识;transit1nID是要执行的“状态迁移”的标识;targetStateID是一个输出参数,用来标识通过方法执行,迁移到的“状态节点”的标识;返回值是一个“状态节点”与界面控件关联实体UIStateControl的集合,表示在执行方法后,界面控件状态集合; (2 )根据步骤3 )的子步骤(I)的返回值,循环读取界面控件状态,通过程序对相应界面控件的状态机进行设置,完成界面状态的控制。
【文档编号】G06F9/44GK104133684SQ201410378534
【公开日】2014年11月5日 申请日期:2014年8月4日 优先权日:2014年8月4日
【发明者】孙立新 申请人:浪潮通用软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1