專利名稱:具備智能感知的富文本控件制作方法
技術領域:
本發(fā)明涉及計算機文本控件技術領域,具體涉及一種開發(fā)計算機文本編輯 器中的帶智能感知和語法高亮顯示功能的文本編輯控件的制作方法。
技術背景在軟件開發(fā)過程中常常要利用富文本控件開發(fā)文本編輯器。 一些文本編輯 器要求具備智能感知和語法高亮顯示功能,如程序設計語言的文本編輯器要求 對保留關鍵字、自定義類型、注釋和正文以不同種顏色顯示,并且用戶在編輯 輸入時對用戶輸入的保留關鍵字,自定義變量給予智能提示。但是用傳統(tǒng)的富文本控件開發(fā)出來的富文本編輯器控件難以實現上述目 的,因此需要制作一種新型的富文本控件,該控件能語法高亮顯示文本,能在 用戶輸入時給予智能提示自動完成輸入工作。 發(fā)明內容本發(fā)明所要解決的技術問題是如何提供一種具備智能感知的富文本控件制 作方法,該富文本控件能克服現有技術中所存在的缺陷。本發(fā)明所提出的技術問題是這樣解決的提供一種具備智能感知的富文本 控件制作方法,其特征在于,包括以下步驟① 制作智能提示框實現顯示最佳匹配以及所有的候選項,根據用戶的輸 入調整最佳匹配或自動完成輸入;② 定義高亮字符串的顯示單元類型在文本中高亮顯示的字符串作為一個 顯示單元處理,把高亮字符串抽象成三種類型的顯示單元A、 單詞單元高亮字符串就是一個單詞,作為一個高亮顯示單元;B、 行尾單元從高亮字符串開始到當前行的行尾,作為一個高亮顯示單元;從高亮字符串開始到指定的結束符,作為一個高亮顯 示單元;③ 定義高亮字符串的識別模式A、 單詞識別模式高亮字符串和當前字符串是同一個單詞;B、 起始識別模式高亮字符串作為當前字符串的起始字符;C、 包含識別^^莫式高亮字符串作為當前字符串的一部分;④ 定義高亮字符對需要高亮顯示的字符串抽象出共性,包括字符前景色、 背景色、顯示單元類型和識別才莫式;⑤ 制作具備智能感知的富文本控件該控件處理過程是捕捉用戶的每次輸 入,根據輸入作相應處理1) 接受鍵盤和鼠標輸入;2) 如果傳統(tǒng)的富文本編輯控件中的文本發(fā)生改變,則轉入步驟2);否則 轉入步驟5 ));3) 保存最近N步操作;4) 若智能感知沒有打開轉入步驟4)),否則轉入步驟8)5) 完成匹配,若匹配成功,則定位顯示;否則轉入步驟10);6) 若智能提示框沒有打開,轉入步驟6);否則轉入步驟7);7) 操作系統(tǒng)處理用戶輸入;8) 如果用戶輸入的是space鍵或enter鍵代表用戶要求自動完成輸入,則 自動完成輸入,轉入步驟IO);否則轉入步驟8);9) 如果用戶輸入的是up鍵或down鍵,則轉入步驟9);否則轉入步驟 10);10) 完成最佳設置;11) 重新對傳統(tǒng)的富文本編輯控件中的文本進行語法高亮顯示。按照本發(fā)明所提供的具備智能感知的富文本控件制作方法,其特征在于, 對于用戶每次的輸入,只要發(fā)生文本變更,控件就作一次文本分析,對文本語 法高亮處理,并重新顯示文本,具體步驟如下1) 傳統(tǒng)的富文本編輯控件中的文本按行分隔成行數組;2) 若行數組結束轉入步驟IO));否則轉入步驟2);3) 讀取一行,按分割符分割成字符串數組;4) 若字符串數組結束轉入步驟l);否則轉入步驟4));5) 讀取字符串,若該串是分隔符,則轉入步驟9);否則轉入步驟5)6) 該字符串和高亮字符集中的對象是否存在匹配項;7) 若匹配結束轉入步驟9);否則轉入步驟7)8) 若匹配成功則轉入步驟8);否則轉入步驟6)9) 對字符串按高亮字符的屬性作語法高亮處理;10) 把字符串il^口到副本中,轉入步驟3)11) 用副本刷新當前的文本。按照本發(fā)明所提供的具備智能感知的富文本控件制作方法,其特征在于, 保存最近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) 才乘作系統(tǒng)處理用戶輸入。采用本發(fā)明所制作的具備智能感知的富文本控件,能語法高亮顯示文本,能在用戶輸入時給予智能提示自動完成輸入工作。
圖l是本發(fā)明中完成智能感知的具體實施方式
流程圖;圖2是圖1中語法高亮顯示的具體實施方式
流程圖;圖3是圖1中保存最近N步的具體實施方式
流程圖。
具體實施方式
下面結合附圖以及實施例對本發(fā)明作進一步的說明。 本發(fā)明將控件的制作分成兩大步驟實施第一步,在FORM控件的基礎上 制作智能提示框;第二步,在傳統(tǒng)的富文本編輯控件上制作具備智能感知的富 文本控件。詳細制作過程如下(一) 、制作智能提示框利用已有的FORM控件制作智能提示框。在本實例中智能提示框顯示全部的 選項,選中最佳匹配項,自動完成用戶輸入。全部選項由傳統(tǒng)富文本編輯控件 提供數據源。最佳匹配項確定有兩種機制, 一種機制有由傳統(tǒng)富文本編輯控件 根據用戶的輸入來確定,這種機制會將在0中詳細描述,另一種機制是本實例 中制作的智能提示框來確定。第二種機制的詳細描述如下智能提示框捕捉用 戶的鼠標輸入,用戶在智能提示框上點擊鼠標左鍵,選中鼠標指示的選項;用 戶在智能提示框上的其他操作由智能提示框的其他處理機制來處理,若智能提 示框沒有相應的處理機制則交給系統(tǒng)處理。自動完成用戶輸入有兩種機制, 一種機制有由傳統(tǒng)富文本編輯控件根據用戶 的輸入來完成用戶輸入,這種機制會將在下文中詳細描述,另一種機制是本實 例中制作的智能提示框來完成用戶輸入。第二種機制的詳細描述如下智能提 示框捕捉用戶的鼠標輸入,用戶在智能提示框上雙擊鼠標左鍵,自動輸入鼠標 指示的選項;用戶在智能提示框上的其他操作由智能提示框的其他處理機制來 處理,若智能提示框沒有相應的處理機制則交給系統(tǒng)處理。(二) 制作具備智能感知的富文本控件具備智能感知的富文本控件是在傳統(tǒng)富文本編輯控件上利用(一)中制作具備智能感知的富文本控件是在傳統(tǒng)富文本編輯控件上利用(一)中制作 的智能提示框制作而成的。傳統(tǒng)富文本編輯控件為(一)中制作的智能提示框 提供匹配項的數據源,根據用戶的輸入打開或隱藏智能提示框,完成最佳匹配或自動完成選項的輸入,保存最近的N步操作,重新高亮顯示文本。定義相關數據結構。根據發(fā)明內容中的步驟②、步驟③、步驟④定義輔助 相關的數據結構。對于預定義的每一個高亮字符都有高亮顯示類型的特性,在實現方案中, 定義為沖文舉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文件,傳統(tǒng)的富文本 編輯控件讀取這個XML文件生成高亮顯示對象的集合,作為智能提示框的數據 源。圖1是本實例中完成智能感知的具體實施方式
流程圖。處理過程是捕捉用 戶的每次輸入,根據輸入作出相應的處理,詳細的步驟如下1) 接受鍵盤和鼠標輸入;2) 如果傳統(tǒng)的富文本編輯控件中的文本發(fā)生改變,則轉入步驟2);否則轉入步驟5 ));3) 保存最近N步操作;4) 若智能感知沒有打開轉入步驟4)),否則轉入步驟8)5) 完成匹配,若匹配成功,則定位顯示;否則轉入步驟10);6) 若智能提示框沒有打開,轉入步驟6);否則轉入步驟7);7) 操作系統(tǒng)處理用戶輸入;8) 如果用戶輸入的是space鍵或enter鍵代表用戶要求自動完成輸入,則 自動完成輸入,轉入步驟IO);否則轉入步驟8);9) 如果用戶輸入的是up鍵或down鍵,則轉入步驟9);否則轉入步驟 10);10) 完成最佳設置;11) 重新對傳統(tǒng)的富文本編輯控件中的文本進行語法高亮顯示。圖2是圖1中語法高亮顯示的具體實施方式
流程圖。對用戶每次的輸入, 只要發(fā)生文本變更,控件就要作一次文本分析,對文本作語法高亮處理,并重 新顯示文本。文本語法高亮處理的基本處理過程是利用分隔符把文本分隔成字 符片段,每個字符片段和預定義的高亮字符作匹配處理,看是否需要高亮顯示。在本實例中,分隔符是指可以將文本分隔成字符片段的某些特定的ASCII 字符,如空格,分號,逗號,各種數學邏輯運算符。1) 傳統(tǒng)的富文本編輯控件中的文本按行分隔成行數組2) 若行數組結束轉入步驟10));否則轉入步驟2));3) 讀取一行,按分割符分割成字符串數組;4) 若字符串數組結束轉入步驟l));否則轉入步驟4));5) 讀取字符串,若該串是分隔符,則轉入步驟9);否則轉入步驟5));6) 該字符串和高亮字符集中的對象是否存在匹配項7) 若匹配結束轉入步驟9);否則轉入步驟7));8) 若匹配成功則轉入步驟8);否則轉入步驟6)9) 對字符串按高亮字符的屬性作語法高亮處理;ii10) 把字符串追加到副本中,轉入步驟3);11) 用副本刷新當前的文本;圖3是圖1中保存最近N步的具體實施方式
流程圖利用富文本框開發(fā)編輯軟件時,有些軟件功能上要求盡可能多的恢復/撤銷 步驟,但過多的步驟會占用大量的系統(tǒng)資源降低系統(tǒng)的性能。因此在功能和性 能的取舍上必須有個較好的平衡點,這個平衡點只能在軟件的測試過程中找到。傳統(tǒng)的富文本控件并沒有為程序開發(fā)人員提供設置恢復/撤銷的最大步驟, 本實例制作的具備智能感知的富文本控件默認恢復/撤銷的最大步驟為50步,在 編程過程中能自由設置最大步驟。保存最近N步的一個基本思想是設置一個恢 復堆棧, 一個撤銷"堆棧"。用戶輸入時只要引起文本變更就編輯現場壓入4敎銷"堆 棧",當用戶要求撤銷時,撤銷"堆棧,,彈出棧頂元素,壓入恢復堆棧;當用戶要 求恢復時,恢復堆棧彈出棧頂元素,更新當前文本。需要強調的是本實例中撤 銷"堆棧,,不是傳統(tǒng)意義的堆棧,這個堆棧要求在棧滿時不能溢出,而是去掉棧底 元素,在棧頂容納新元素。詳細步驟如下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) 操作系統(tǒng)處理用戶輸入。
權利要求
1、一種具備智能感知的富文本控件制作方法,其特征在于,包括以下步驟①制作智能提示框實現顯示最佳匹配以及所有的候選項,根據用戶的輸入調整最佳匹配或自動完成輸入;②定義高亮字符串的顯示單元類型在文本中高亮顯示的字符串作為一個顯示單元處理,把高亮字符串抽象成三種類型的顯示單元A、單詞單元高亮字符串就是一個單詞,作為一個高亮顯示單元;B、行尾單元從高亮字符串開始到當前行的行尾,作為一個高亮顯示單元;C、結束符單元從高亮字符串開始到指定的結束符,作為一個高亮顯示單元;③定義高亮字符串的識別模式A、單詞識別模式高亮字符串和當前字符串是同一個單詞;B、起始識別模式高亮字符串作為當前字符串的起始字符;C、包含識別模式高亮字符串作為當前字符串的一部分;④定義高亮字符對需要高亮顯示的字符串抽象出共性,包括字符前景色、背景色、顯示單元類型和識別模式;⑤制作具備智能感知的富文本控件該控件處理過程是捕捉用戶的每次輸入,根據輸入作相應處理1)接受鍵盤和鼠標輸入;2)如果傳統(tǒng)的富文本編輯控件中的文本發(fā)生改變,則轉入步驟2);否則轉入步驟5));3)保存最近N步操作;4)若智能感知沒有打開轉入步驟4)),否則轉入步驟8)5)完成匹配,若匹配成功,則定位顯示;否則轉入步驟10);6)若智能提示框沒有打開,轉入步驟6);否則轉入步驟7);7)操作系統(tǒng)處理用戶輸入;8)如果用戶輸入的是space鍵或enter鍵代表用戶要求自動完成輸入,則自動完成輸入,轉入步驟10);否則轉入步驟8);9)如果用戶輸入的是up鍵或down鍵,則轉入步驟9);否則轉入步驟10);10)完成最佳設置;11)重新對傳統(tǒng)的富文本編輯控件中的文本進行語法高亮顯示。
2、 根據權利要求l所述的具備智能感知的富文本控件制作方法,其特征在 于,對于用戶每次的輸入,只要發(fā)生文本變更,控件就作一次文本分析,對文 本語法高亮處理,并重新顯示文本,具體步驟如下1) 傳統(tǒng)的富文本編輯控件中的文本按行分隔成行數組;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 )操作系統(tǒng)處理用戶輸入。
全文摘要
本發(fā)明公開了一種具備智能感知的富文本控件制作方法,分成兩大步驟實施第一步,在FORM控件的基礎上制作智能提示框;第二步,在傳統(tǒng)的富文本編輯控件上制作具備智能感知的富文本控件。采用本發(fā)明所制作的具備智能感知的富文本控件,能語法高亮顯示文本,能在用戶輸入時給予智能提示自動完成輸入工作。
文檔編號G06F9/44GK101324844SQ20081004551
公開日2008年12月17日 申請日期2008年7月10日 優(yōu)先權日2008年7月10日
發(fā)明者強 劉, 劉井波, 熊志斌, 陳文宇, 黃衛(wèi)華 申請人:電子科技大學