具备智能感知的富文本控件制作方法

文档序号:6459843阅读:150来源:国知局
专利名称:具备智能感知的富文本控件制作方法
技术领域
本发明涉及计算机文本控件技术领域,具体涉及一种开发计算机文本编辑 器中的带智能感知和语法高亮显示功能的文本编辑控件的制作方法。
技术背景在软件开发过程中常常要利用富文本控件开发文本编辑器。 一些文本编辑 器要求具备智能感知和语法高亮显示功能,如程序设计语言的文本编辑器要求 对保留关键字、自定义类型、注释和正文以不同种颜色显示,并且用户在编辑 输入时对用户输入的保留关键字,自定义变量给予智能提示。但是用传统的富文本控件开发出来的富文本编辑器控件难以实现上述目 的,因此需要制作一种新型的富文本控件,该控件能语法高亮显示文本,能在 用户输入时给予智能提示自动完成输入工作。 发明内容本发明所要解决的技术问题是如何提供一种具备智能感知的富文本控件制 作方法,该富文本控件能克服现有技术中所存在的缺陷。本发明所提出的技术问题是这样解决的提供一种具备智能感知的富文本 控件制作方法,其特征在于,包括以下步骤① 制作智能提示框实现显示最佳匹配以及所有的候选项,根据用户的输 入调整最佳匹配或自动完成输入;② 定义高亮字符串的显示单元类型在文本中高亮显示的字符串作为一个 显示单元处理,把高亮字符串抽象成三种类型的显示单元A、 单词单元高亮字符串就是一个单词,作为一个高亮显示单元;B、 行尾单元从高亮字符串开始到当前行的行尾,作为一个高亮显示单元;从高亮字符串开始到指定的结束符,作为一个高亮显 示单元;③ 定义高亮字符串的识别模式A、 单词识别模式高亮字符串和当前字符串是同一个单词;B、 起始识别模式高亮字符串作为当前字符串的起始字符;C、 包含识别^^莫式高亮字符串作为当前字符串的一部分;④ 定义高亮字符对需要高亮显示的字符串抽象出共性,包括字符前景色、 背景色、显示单元类型和识别才莫式;⑤ 制作具备智能感知的富文本控件该控件处理过程是捕捉用户的每次输 入,根据输入作相应处理1) 接受键盘和鼠标输入;2) 如果传统的富文本编辑控件中的文本发生改变,则转入步骤2);否则 转入步骤5 ));3) 保存最近N步操作;4) 若智能感知没有打开转入步骤4)),否则转入步骤8)5) 完成匹配,若匹配成功,则定位显示;否则转入步骤10);6) 若智能提示框没有打开,转入步骤6);否则转入步骤7);7) 操作系统处理用户输入;8) 如果用户输入的是space键或enter键代表用户要求自动完成输入,则 自动完成输入,转入步骤IO);否则转入步骤8);9) 如果用户输入的是up键或down键,则转入步骤9);否则转入步骤 10);10) 完成最佳设置;11) 重新对传统的富文本编辑控件中的文本进行语法高亮显示。按照本发明所提供的具备智能感知的富文本控件制作方法,其特征在于, 对于用户每次的输入,只要发生文本变更,控件就作一次文本分析,对文本语 法高亮处理,并重新显示文本,具体步骤如下1) 传统的富文本编辑控件中的文本按行分隔成行数组;2) 若行数组结束转入步骤IO));否则转入步骤2);3) 读取一行,按分割符分割成字符串数组;4) 若字符串数组结束转入步骤l);否则转入步骤4));5) 读取字符串,若该串是分隔符,则转入步骤9);否则转入步骤5)6) 该字符串和高亮字符集中的对象是否存在匹配项;7) 若匹配结束转入步骤9);否则转入步骤7)8) 若匹配成功则转入步骤8);否则转入步骤6)9) 对字符串按高亮字符的属性作语法高亮处理;10) 把字符串il^口到副本中,转入步骤3)11) 用副本刷新当前的文本。按照本发明所提供的具备智能感知的富文本控件制作方法,其特征在于, 保存最近N步的具体梯:作步骤如下1) 接受用户输入;2) 若文本变更转入步骤2);否则转入步骤4)3) 压入撤销栈;4) 更新最近N步,转入步骤l)5) 是#:销命令,则转入步骤5);否则转入步骤8)6) 压入恢复栈;7) 弹出撤销栈顶元素;8) 更新文本,转入步骤l)9) 是恢复命令,则转入步骤9);否则转入步骤12)10) 压入撤销栈;11) 更新最近N步;12) 弹出恢复栈顶元素,转入步骤8);13) 才乘作系统处理用户输入。采用本发明所制作的具备智能感知的富文本控件,能语法高亮显示文本,能在用户输入时给予智能提示自动完成输入工作。


图l是本发明中完成智能感知的具体实施方式
流程图;图2是图1中语法高亮显示的具体实施方式
流程图;图3是图1中保存最近N步的具体实施方式
流程图。
具体实施方式
下面结合附图以及实施例对本发明作进一步的说明。 本发明将控件的制作分成两大步骤实施第一步,在FORM控件的基础上 制作智能提示框;第二步,在传统的富文本编辑控件上制作具备智能感知的富 文本控件。详细制作过程如下(一) 、制作智能提示框利用已有的FORM控件制作智能提示框。在本实例中智能提示框显示全部的 选项,选中最佳匹配项,自动完成用户输入。全部选项由传统富文本编辑控件 提供数据源。最佳匹配项确定有两种机制, 一种机制有由传统富文本编辑控件 根据用户的输入来确定,这种机制会将在0中详细描述,另一种机制是本实例 中制作的智能提示框来确定。第二种机制的详细描述如下智能提示框捕捉用 户的鼠标输入,用户在智能提示框上点击鼠标左键,选中鼠标指示的选项;用 户在智能提示框上的其他操作由智能提示框的其他处理机制来处理,若智能提 示框没有相应的处理机制则交给系统处理。自动完成用户输入有两种机制, 一种机制有由传统富文本编辑控件根据用户 的输入来完成用户输入,这种机制会将在下文中详细描述,另一种机制是本实 例中制作的智能提示框来完成用户输入。第二种机制的详细描述如下智能提 示框捕捉用户的鼠标输入,用户在智能提示框上双击鼠标左键,自动输入鼠标 指示的选项;用户在智能提示框上的其他操作由智能提示框的其他处理机制来 处理,若智能提示框没有相应的处理机制则交给系统处理。(二) 制作具备智能感知的富文本控件具备智能感知的富文本控件是在传统富文本编辑控件上利用(一)中制作具备智能感知的富文本控件是在传统富文本编辑控件上利用(一)中制作 的智能提示框制作而成的。传统富文本编辑控件为(一)中制作的智能提示框 提供匹配项的数据源,根据用户的输入打开或隐藏智能提示框,完成最佳匹配或自动完成选项的输入,保存最近的N步操作,重新高亮显示文本。定义相关数据结构。根据发明内容中的步骤②、步骤③、步骤④定义辅助 相关的数据结构。对于预定义的每一个高亮字符都有高亮显示类型的特性,在实现方案中, 定义为冲文举public enum DescriptorType〃高亮描述符的高亮类型Word,Z/单词高亮 ToEOL,〃高亮到行尾 ToCloseTokenZ/高亮到到结束符高亮字符串的识别模,在实现方案中,定义为枚举public enum DescriptorRecognitionZ/高亮描述符在token串中的识另'J才莫式WholeWord,/7完整识别 StartsWith,〃起始识别 Contains 〃包含i。、别预定义的高亮字符的特性抽象为一个类HighlightDescriptor: public class HighlightDescriptorpublic readonly Color Color;〃高亮描述符的前景色 public readonly Font Font;〃高亮描述符的字体 public readonly string Token;〃高亮描述符public readonly DescriptorType DescriptorType;〃高亮类型 public readonly DescriptorRecognition DescriptorRecognition;〃高亮描述符识别才莫式 public readonly bool UseForAutoComplete; 〃/ <summary> 〃/构造函数 〃/ </summary>〃/ <param name:"token"〉描述符〈/param〉 〃/ <param name:"color"〉描迷符前景色々param〉 〃/ 〈param nameyfont"〉字体〈/param〉 〃/ <param name-"descriptorType"〉4苗述才寻类型〈/param〉 〃/ <param name-"dr"〉描述符识别才莫式〈/param〉 〃/ <param name="useForAutoComplete">自动冗成〈/param〉 public HighlightDescriptor(string token, Color color, Font font,DescriptorType descriptorType, DescriptorRecognition dr, bool UseForAutoComplete); 〃把参数付给那些共有的只读变量提供匹配项的数据源。智能提示框需要给用户显示所有的匹配项(语法保 留字),在本实例中,预定义的语法保留字产生一个XML文件,传统的富文本 编辑控件读取这个XML文件生成高亮显示对象的集合,作为智能提示框的数据 源。图1是本实例中完成智能感知的具体实施方式
流程图。处理过程是捕捉用 户的每次输入,根据输入作出相应的处理,详细的步骤如下1) 接受键盘和鼠标输入;2) 如果传统的富文本编辑控件中的文本发生改变,则转入步骤2);否则转入步骤5 ));3) 保存最近N步操作;4) 若智能感知没有打开转入步骤4)),否则转入步骤8)5) 完成匹配,若匹配成功,则定位显示;否则转入步骤10);6) 若智能提示框没有打开,转入步骤6);否则转入步骤7);7) 操作系统处理用户输入;8) 如果用户输入的是space键或enter键代表用户要求自动完成输入,则 自动完成输入,转入步骤IO);否则转入步骤8);9) 如果用户输入的是up键或down键,则转入步骤9);否则转入步骤 10);10) 完成最佳设置;11) 重新对传统的富文本编辑控件中的文本进行语法高亮显示。图2是图1中语法高亮显示的具体实施方式
流程图。对用户每次的输入, 只要发生文本变更,控件就要作一次文本分析,对文本作语法高亮处理,并重 新显示文本。文本语法高亮处理的基本处理过程是利用分隔符把文本分隔成字 符片段,每个字符片段和预定义的高亮字符作匹配处理,看是否需要高亮显示。在本实例中,分隔符是指可以将文本分隔成字符片段的某些特定的ASCII 字符,如空格,分号,逗号,各种数学逻辑运算符。1) 传统的富文本编辑控件中的文本按行分隔成行数组2) 若行数组结束转入步骤10));否则转入步骤2));3) 读取一行,按分割符分割成字符串数组;4) 若字符串数组结束转入步骤l));否则转入步骤4));5) 读取字符串,若该串是分隔符,则转入步骤9);否则转入步骤5));6) 该字符串和高亮字符集中的对象是否存在匹配项7) 若匹配结束转入步骤9);否则转入步骤7));8) 若匹配成功则转入步骤8);否则转入步骤6)9) 对字符串按高亮字符的属性作语法高亮处理;ii10) 把字符串追加到副本中,转入步骤3);11) 用副本刷新当前的文本;图3是图1中保存最近N步的具体实施方式
流程图利用富文本框开发编辑软件时,有些软件功能上要求尽可能多的恢复/撤销 步骤,但过多的步骤会占用大量的系统资源降低系统的性能。因此在功能和性 能的取舍上必须有个较好的平衡点,这个平衡点只能在软件的测试过程中找到。传统的富文本控件并没有为程序开发人员提供设置恢复/撤销的最大步骤, 本实例制作的具备智能感知的富文本控件默认恢复/撤销的最大步骤为50步,在 编程过程中能自由设置最大步骤。保存最近N步的一个基本思想是设置一个恢 复堆栈, 一个撤销"堆栈"。用户输入时只要引起文本变更就编辑现场压入4敎销"堆 栈",当用户要求撤销时,撤销"堆栈,,弹出栈顶元素,压入恢复堆栈;当用户要 求恢复时,恢复堆栈弹出栈顶元素,更新当前文本。需要强调的是本实例中撤 销"堆栈,,不是传统意义的堆栈,这个堆栈要求在栈满时不能溢出,而是去掉栈底 元素,在栈顶容纳新元素。详细步骤如下1) 接受用户输入2) 若文本变更转入步骤2);否则转入步骤4)3) 压入撤销栈4) 更新最近N步,转入步骤l)5) 是4敦销命令,则转入步骤5);否则转入步骤8))6) 压入恢复栈7) 弹出撤销栈顶元素8) 更新文本,转入步骤l)9) 是恢复命令,则转入步骤9);否则转入步骤12)10) 压入撤销栈11) 更新最近N步12) 弹出恢复栈顶元素,转入步骤8)13) 操作系统处理用户输入。
权利要求
1、一种具备智能感知的富文本控件制作方法,其特征在于,包括以下步骤①制作智能提示框实现显示最佳匹配以及所有的候选项,根据用户的输入调整最佳匹配或自动完成输入;②定义高亮字符串的显示单元类型在文本中高亮显示的字符串作为一个显示单元处理,把高亮字符串抽象成三种类型的显示单元A、单词单元高亮字符串就是一个单词,作为一个高亮显示单元;B、行尾单元从高亮字符串开始到当前行的行尾,作为一个高亮显示单元;C、结束符单元从高亮字符串开始到指定的结束符,作为一个高亮显示单元;③定义高亮字符串的识别模式A、单词识别模式高亮字符串和当前字符串是同一个单词;B、起始识别模式高亮字符串作为当前字符串的起始字符;C、包含识别模式高亮字符串作为当前字符串的一部分;④定义高亮字符对需要高亮显示的字符串抽象出共性,包括字符前景色、背景色、显示单元类型和识别模式;⑤制作具备智能感知的富文本控件该控件处理过程是捕捉用户的每次输入,根据输入作相应处理1)接受键盘和鼠标输入;2)如果传统的富文本编辑控件中的文本发生改变,则转入步骤2);否则转入步骤5));3)保存最近N步操作;4)若智能感知没有打开转入步骤4)),否则转入步骤8)5)完成匹配,若匹配成功,则定位显示;否则转入步骤10);6)若智能提示框没有打开,转入步骤6);否则转入步骤7);7)操作系统处理用户输入;8)如果用户输入的是space键或enter键代表用户要求自动完成输入,则自动完成输入,转入步骤10);否则转入步骤8);9)如果用户输入的是up键或down键,则转入步骤9);否则转入步骤10);10)完成最佳设置;11)重新对传统的富文本编辑控件中的文本进行语法高亮显示。
2、 根据权利要求l所述的具备智能感知的富文本控件制作方法,其特征在 于,对于用户每次的输入,只要发生文本变更,控件就作一次文本分析,对文 本语法高亮处理,并重新显示文本,具体步骤如下1) 传统的富文本编辑控件中的文本按行分隔成行数组;2) 若行数组结束转入步骤10));否则转入步骤2);3) 读取一行,按分割符分割成字符串数组;4) 若字符串数组结束转入步骤l);否则转入步骤4));5) 读取字符串,若该串是分隔符,则转入步骤9);否则转入步骤5)6) 该字符串和高亮字符集中的对象是否存在匹配项;7) 若匹配结束转入步骤9);否则转入步骤7)8) 若匹配成功则转入步骤8);否则转入步骤6)9) 对字符串按高亮字符的属性作语法高亮处理;10) 把字符串追加到副本中,转入步骤3 )11) 用副本刷新当前的文本。
3、 根据权利要求l所述的具备智能感知的富文本控件制作方法,其特征在 于,保存最近N步的具体操作步骤如下1) 接受用户输入;2) 若文本变更转入步骤2);否则转入步骤4)3) 压入〗敬销栈;4) 更新最近N步,转入步骤l)5)是"t敬销命令,则转入步骤5);否则转入步骤8)6) 压入恢复栈;7) 弹出撤销栈顶元素;8) 更新文本,转入步骤l)9) 是恢复命令,则转入步骤9);否则转入步骤12)10) 压入撤销栈;11) 更新最近N步;12) 弹出恢复栈顶元素,转入步骤8); 13 )操作系统处理用户输入。
全文摘要
本发明公开了一种具备智能感知的富文本控件制作方法,分成两大步骤实施第一步,在FORM控件的基础上制作智能提示框;第二步,在传统的富文本编辑控件上制作具备智能感知的富文本控件。采用本发明所制作的具备智能感知的富文本控件,能语法高亮显示文本,能在用户输入时给予智能提示自动完成输入工作。
文档编号G06F9/44GK101324844SQ20081004551
公开日2008年12月17日 申请日期2008年7月10日 优先权日2008年7月10日
发明者强 刘, 刘井波, 熊志斌, 陈文宇, 黄卫华 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1