專利名稱:兩層粘貼緩沖區(qū)和顯示裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及屏幕前(front-of-screen)處理。更具體地,涉及使用兩層剪貼板或緩沖區(qū)復(fù)制和粘貼數(shù)字、文本或代碼。
背景技術(shù):
在本領(lǐng)域中已知可以提供一個(gè)剪貼板或緩沖區(qū),將諸如由用戶選擇的顯示數(shù)據(jù)等素材復(fù)制到其中以便隨后粘貼到顯示的其它區(qū)域。參考圖1的步驟10,這種選擇通常是由塊選(高亮顯示)將被刪除或復(fù)制的素材或部分而完成的。在步驟12,移入剪貼板中的素材(數(shù)字、文本、代碼等)可以被從其原始位置移除(刪除操作)或留在原始位置(復(fù)制操作)。在步驟14,用戶選擇插入點(diǎn),這通常是由定位一光標(biāo)完成,并且在步驟16把剪貼板中的內(nèi)容粘貼在插入點(diǎn)處。
偶爾會(huì)發(fā)生這樣的情況,即用戶有些時(shí)候塊選的顯示數(shù)據(jù)少于所希望的或在語法上正確的素材。例如,用戶可能僅塊選了電話號碼的一部分而在該過程中丟失了一個(gè)或多個(gè)數(shù)字。類似地,程序員可能塊選或高亮顯示源代碼中將被粘貼到代碼的其它位置上的一部分,并且在這樣做時(shí)丟失了為了語法正確而所需的一部分代碼結(jié)構(gòu)。
因此,所希望的是提供一種用于將素材從一個(gè)顯示位置復(fù)制到第二個(gè)顯示位置的改進(jìn)的系統(tǒng)和方法。
還希望提供一種用于確保被部分地塊選的數(shù)據(jù)被完整地復(fù)制的系統(tǒng)和方法。
還希望提供用于確保為部分地被選擇的數(shù)據(jù)部分而復(fù)制在語法上完整的數(shù)據(jù)的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于將復(fù)制到剪貼板中的素材插入到顯示中的系統(tǒng)和方法。用戶選擇將被復(fù)制到剪貼板中的素材。系統(tǒng)選擇額外的素材并復(fù)制到剪貼板中。用戶為用戶選擇的素材選擇插入點(diǎn),系統(tǒng)向用戶顯示用戶所選擇的素材以及可選擇的額外素材。根據(jù)一更加具體的實(shí)施例,系統(tǒng)選擇的素材是在插入點(diǎn)的上下文中,在語法上正確地為用戶呈現(xiàn)所選擇的素材所必須的素材。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,它被配置為用于在計(jì)算機(jī)顯示監(jiān)視器上的一個(gè)插入點(diǎn)處顯示用戶所選的素材以及系統(tǒng)所選的額外素材。
本發(fā)明的一個(gè)優(yōu)點(diǎn)是提供了一種用于將素材從一個(gè)顯示位置復(fù)制到第二位置的改進(jìn)的系統(tǒng)和方法。
本發(fā)明的另一優(yōu)點(diǎn)是提供了一種用于確保部分地塊選的數(shù)據(jù)被完整地復(fù)制的系統(tǒng)和方法。
本發(fā)明的另一優(yōu)點(diǎn)是提供了一種用于確保為部分地選擇的數(shù)據(jù)部分而復(fù)制在語法上完整的數(shù)據(jù)的系統(tǒng)和方法。
下面將參考附圖僅以示例的方式說明本發(fā)明,其中 圖1是表示了現(xiàn)有技術(shù)的剪切/復(fù)制和粘貼操作的流程圖; 圖2是表示了本發(fā)明的優(yōu)選實(shí)施例的兩層剪切/復(fù)制和粘貼操作的流程圖; 圖3是表示了根據(jù)本發(fā)明的優(yōu)選實(shí)施例,用于實(shí)現(xiàn)兩層剪貼板的數(shù)據(jù)結(jié)構(gòu)的示意圖;以及 圖4是表示了本發(fā)明的兩層剪貼板操作的其它實(shí)施例的流程圖。
具體實(shí)施例方式 參考圖2,其示出了本發(fā)明優(yōu)選實(shí)施例的用于執(zhí)行剪切/復(fù)制和粘貼操作的方法。在步驟20,用戶選擇用于復(fù)制的素材。在圖2中,以編程代碼說明了該操作,但是要被復(fù)制和粘貼的素材可以是任意素材,例如文本、數(shù)字、代碼、表格或圖形數(shù)據(jù),或是它們的組合。在步驟22,用戶將選擇的素材復(fù)制到第一層剪貼板,并且在步驟24,系統(tǒng)選擇額外的素材并添加到第二層剪貼板,所述的額外的素材一般在所述素材的周圍。這些第一和第二層剪貼板可以實(shí)現(xiàn)為不同的存儲(chǔ)單元,或是例如帶有適當(dāng)?shù)闹羔樀膯蝹€(gè)單元。在步驟26,用戶選擇插入點(diǎn)并執(zhí)行粘貼命令。在步驟28,系統(tǒng)作為響應(yīng)插入第二層素材和以高亮顯示的(以第一方式,例如通過第一顏色或粗體)第一層素材,并且可選擇的額外素材也被高亮顯示(但是以第二方式,例如以第二顏色或斜體)。在步驟30,用戶選擇將被保留在插入點(diǎn)處的插入代碼部分。
高亮顯示的目的不僅是向用戶表明除了已經(jīng)被選擇的素材之外還有素材被粘貼了,而且還允許用戶接受或移除所述的額外素材。例如對于文本,這可以由用戶將光標(biāo)定位在高亮顯示的文本上并在其上點(diǎn)擊而執(zhí)行。此時(shí),高亮顯示消失了并且文本在插入點(diǎn)處成為永久文本。為了移除文本,例如,用戶可以點(diǎn)擊刪除鍵,或?qū)⒐鈽?biāo)移動(dòng)到別處并繼續(xù)編輯。同樣,所述的額外素材可以在用戶開始編輯它時(shí)被保留下來。
電話號碼提供了另一個(gè)例子。更確切地說,假設(shè)顯示的電話號碼是555-1212,并且在步驟20用戶僅塊選或選擇了555-121部分用于復(fù)制。當(dāng)在步驟22,用戶將其復(fù)制到一個(gè)被設(shè)計(jì)用于電話號碼的輸入域中,控制該輸入域的應(yīng)用一般將執(zhí)行語法驗(yàn)證代碼,并且確定該塊選的部分是無效的。在這種情況下,該應(yīng)用將訪問第二層剪貼板以獲得完成該號碼的文本,并在步驟28將555-1212顯示給用戶(對于額外素材,第二個(gè)“2”被高亮顯示),用戶然后可在步驟30點(diǎn)擊高亮顯示的部分以接受整個(gè)數(shù)字。
可以執(zhí)行各種可供選擇的方法,以便選擇要增加到第二層剪貼板內(nèi)或從第二層剪貼板內(nèi)去除的素材。例如,可以選擇包括位于被選擇的用于粘貼的素材之上或之下的一個(gè)或多個(gè)編碼括號的代碼素材,以便將其包括在第二層剪貼板內(nèi)??商娲兀梢詢H包括編譯所選擇的代碼段所需要的那些括號,這意味著相等數(shù)目的開括號和關(guān)括號?;蛘?,在第二層剪貼板內(nèi)包括完成一個(gè)函數(shù),即,一個(gè)完整的while循環(huán)或if/then/else語句所需的第二層剪貼板素材?;蛘?,可以將塊選的素材之上和/或之下任意數(shù)目的行復(fù)制到第二層剪貼板。這些技術(shù)僅僅是許多可以被設(shè)想出來的用于為第二層剪貼板選擇素材的技術(shù)的示例。
參看圖3,其給出了用于實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的、由控制器所訪問或使用的示例性的數(shù)據(jù)結(jié)構(gòu)。初始顯示50向用戶呈現(xiàn)出例如若干行素材,所述素材此處為文本或代碼文本。用戶可以塊選或選擇呈現(xiàn)在顯示50中的部分文本52,此時(shí)確定位于所選文本之上的文本54或之下的文本56。
剪貼板58包括第一層部分64,所選擇的文本52被裝入其內(nèi)作為已選擇的文本62,如線51所示,并且還包括第二層部分70,所選擇的文本52被裝入其內(nèi)作為已選擇的文本72,如線53所示。某部分上面文本54和某部分下面文本56被復(fù)制到第二層剪貼板70作為上面部分74和下面部分76,如線55和線57分別表示的。
虛擬顯示(virtual display)80從第一層64接收所選擇的文本62,并且將其作為所選擇的文本82安放在插入處之上的素材84和插入處之下的素材86之間的插入點(diǎn)處,如線61所示。根據(jù)本發(fā)明的另一實(shí)施例,如線85所表示的,在所選擇的文本82被確定為在語法上是正確的情況下,可以直接產(chǎn)生結(jié)果顯示110而不用向用戶給出提示顯示100。以這種方式,可以為用戶呈現(xiàn)出結(jié)果顯示110而不必驗(yàn)證他對所選擇的文本92的選擇,或從所選擇的文本92內(nèi)和/或選擇之上的部分94和/或選擇之下的部分96中去除文本。
然而,如果所選擇的文本82被確定為在語法上或其它方面不正確,它就被高亮顯示(第一高亮顯示,例如粗體),并且被作為所選擇的文本92在提示顯示100中,在選自第二層70的包括有所選擇的文本之上的某些部分94和所選擇的文本之下的某些部分96的素材之間(以第二種高亮顯示,例如斜體),在插入處之上的部分90和插入處之下的部分98之間的插入點(diǎn)處顯示出來。結(jié)果顯示116包括夾在線93所指的插入點(diǎn)之上的素材114和線95所指的插入點(diǎn)之下的素材116之間的、經(jīng)過驗(yàn)證的所選擇的文本112,其包括有,如線91所示,初始的塊選或選擇的文本52以及(如果有的話)素材94和96的用戶選擇部分的提示顯示副本。
結(jié)合圖3并參考圖4,在操作中,在步驟120用戶選擇文本段52,在步驟122他將該文本段復(fù)制到剪貼板58的第一層64。系統(tǒng)選擇上部文本54和下部文本56,也將它們復(fù)制到剪貼板58的第二層70中。在步驟126,用戶選擇插入點(diǎn),并且在步驟128、130,系統(tǒng)評估(如虛擬顯示80所表示的)在插入處之上的素材84和插入處之下的素材86的上下文中,所選擇的文本82是否在語法上或其它方面是正確的。如果語法是正確的,如線85和步驟132所表示的,系統(tǒng)將第一層剪貼板素材粘貼到結(jié)果顯示110和140,作為已驗(yàn)證的所選擇的文本112。如果語法不正確,在步驟134,系統(tǒng)從第二層70中選擇所選擇的文本72、92上部的文本94和/或下部的文本96,以便如果可能,在插入點(diǎn)處在語法上正確地呈現(xiàn)用戶選擇的段92,并且在步驟136,在插入處之上部分90和插入處之下部分98之間的插入點(diǎn)處,為用戶呈現(xiàn)用戶所選擇的文本92和系統(tǒng)所選擇的文本94、96,并且素材92和94、96被適當(dāng)?shù)馗吡溜@示。在步驟138,用戶按照所希望的來驗(yàn)證、確認(rèn)、選擇和丟棄在顯示100中給出的素材92、94、96。在步驟140,包括用戶從所選擇的文本之上的素材94和所選擇的文本之下的素材96中選擇的任何文本的經(jīng)確認(rèn)的選擇文本,被顯示在插入處之上的素材114和插入處之下的素材116之間的插入點(diǎn)處。
根據(jù)本發(fā)明的另一實(shí)施例,用戶從一顯示中選擇素材的一部分以便復(fù)制到剪貼板或緩沖區(qū),并且系統(tǒng)從顯示中復(fù)制額外的素材到剪貼板中。額外素材或內(nèi)容的數(shù)量取決于執(zhí)行復(fù)制的應(yīng)用,然而,執(zhí)行復(fù)制的應(yīng)用要做出關(guān)于包括多少額外內(nèi)容的決定。當(dāng)用戶試圖將剪貼板的內(nèi)容粘貼到由插入點(diǎn)確定的位置時(shí),接收所述內(nèi)容或素材的應(yīng)用檢查剪貼板以確定該內(nèi)容是否相對于其將要被粘貼的位置是良好構(gòu)成的(well-formed)。如果它不是良好構(gòu)成的,則檢查包括在剪貼板中的額外的內(nèi)容,并且測試所選擇內(nèi)容的其他開始和終止位置,以確定是否可以使用該額外內(nèi)容構(gòu)建良好構(gòu)成的內(nèi)容。如果是的,該良好構(gòu)成的素材被粘貼到它的位置上,并且高亮顯示額外內(nèi)容??梢蕴峁┻x擇,從而用戶可以撤消該額外素材,或選擇它的某些或全部內(nèi)容。
表1、2和3給出了為代碼素材產(chǎn)生提示顯示100的各種例子,其中由于分別沒有包括后續(xù)行、在前行、以及后續(xù)行和在前行而使得所選擇的素材在語法上是不正確的。
表1包括后續(xù)行的第二層 由如下面給出的例程A開始 202 routineA(rec*list,char key) 203{ 204 rec*obj; 205 obj=list; 206 while(obj?。絅ULL) 207 { 208 if(strcmp(obj->key,key)) 209 { 210register(FOUND,obj); 211break; 212 } 213 obj=obj->next; 214 } 215 return; 216} 用戶從例程A選擇第一層代碼段A,包括行206-212,由于疏忽或由于“錯(cuò)誤”沒有包括行206-214的完整的while循環(huán) 206 while(obj?。絅ULL) 207 { 208 if(strcmp(obj->key,key)) 209 { 210 register(FOUND,obj); 211 break; 212 } 當(dāng)該文本(代碼段A,粗體表示的行206-212)被粘貼到下面的例程(例程B,行217-220)中由-->指示的插入點(diǎn)(行219)處時(shí) 217 void routineB(rec obj) 218 { 219 --> 220 } 所得到的代碼部分C增加了如下所示以斜體表示的來自第二層的行213和214以完成該while循環(huán),如下所示 217 void routineB(rec obj) 218 { 206 while(obj?。絅ULL) 207 { 208 if(strcmp(obj->key,key)) 209{ 210register(FOUND,obj); 211break; 212} 213obj=obj->next; 214 } 220 } 表2包括在前行的第二層 一個(gè)包括有前面行的第二層的例子 從例程A開始 231 routineA(rec*list,char key) 232{ 233 rec*obj; 234 obj=list; 235 while(obj?。絅ULL) 236 { 237 if(strcmp(obj->key,key))<!-- SIPO <DP n="7"> --><dp n="d7"/> 238 { 239 register(FOUND,obj); 240 break; 241 } 242 obj=obj->next; 243 } 244 return; 245 } 選擇以下所示的第一層代碼段1A,由于“錯(cuò)誤”它沒有包括完整的while循環(huán) 237 if(strcmp(obj->key,key)) 238 { 239register(FOUND,obj); 240break; 241 } 242 obj=obj->next; 243 } 當(dāng)該文本(代碼段1A)被粘貼到下面的例程(例程1B)的由-->指示的行248時(shí) 246 void routine1B(rec obj) 247 { 248 --> 249 } 得到的代碼部分1C包括來自第二層的以斜體表示的行235-236 246 void routine1B(rec obj) 247 { 235while(obj?。絅ULL) 236{ 237if(strcmp(obj->key,key)) 238{ 239register(FOUND,obj); 240break; 241} 242obj=obj->next;<!-- SIPO <DP n="8"> --><dp n="d8"/>243 } 249 } 表3包括后續(xù)行和在前行的第二層 一個(gè)包括有上面和下面的行的第二層的例子。從例程2A開始 260 routine2A(rec*list,char key) 261 { 262 rec*obj; 263 obj=list; 264if(obj.name==′NONE′) 265{ 266while(obj?。絅ULL) 267{ 268 if(strcmp obj->key,key) 269 { 270 register(FOUND,obj); 271 break; 272 } 273 obj=obj->next; 274} 275return; 276 } 277 else 278 { 279 register(FOUND,obj); 280 obj=obj->next; 281 } 282 } 用戶選擇如下所示的第一層代碼段2A,由于“錯(cuò)誤”(疏忽)沒有包括緊接著while循環(huán)之外的行264和行277的if/else語句 266 while(obj?。絅ULL) 267 { 268 if(strcmp obj->key,key) 269 {<!-- SIPO <DP n="9"> --><dp n="d9"/> 270 register(FOUND,obj); 271 break; 272 } 273 obj=obj->next; 274} 275return; 當(dāng)該文本(代碼段2A,行266-275)被粘貼到下面的例程(例程2B,行283-286)中由行285的-->所指示的插入點(diǎn)處時(shí) 283 void routine2B(rec obj) 284 { 285--> 286 } 得到的代碼部分2C中將增加以斜體表示的第二層中的行264-265和行276-281 283 void routine2B(rec obj) 284 { 264 if(obj.name==′NONE′) 265 { 266 while(obj?。絅ULL) 267 { 268 if(strcmp obj->key,key) 269 { 270 register(FOUND,obj); 271 break; 272} 273obj=obj->next; 274 } 275return; 276 } 277 else 278 { 279 register(FOUND,obj); 280 obj=obj->next; 281 } 286 } 應(yīng)當(dāng)理解,雖然此處出于說明的目的描述了本發(fā)明的特定實(shí)施例,但是可以做出各種改型而不脫離本發(fā)明的精神和范圍。特別地,下面所說明的都落在本發(fā)明的范圍之內(nèi)提供一種計(jì)算機(jī)程序產(chǎn)品或程序單元、或程序存儲(chǔ)器或存儲(chǔ)裝置,例如固體或流體傳輸介質(zhì)、磁性或光學(xué)纜線、磁帶或盤等等,其用于存儲(chǔ)機(jī)器可讀的信號,以便根據(jù)本發(fā)明的方法控制計(jì)算機(jī)的運(yùn)行和/或根據(jù)本發(fā)明的系統(tǒng)的構(gòu)成計(jì)算機(jī)的組件結(jié)構(gòu)。
此外,該方法的每一步都可以在任意的通用計(jì)算機(jī),例如命名為zSeries、iSeries、xSeries和pSeries的IBM系統(tǒng)或類似的計(jì)算機(jī)上,按照由任意編程語言,例如,C++、Java、P1/1、Fortran等產(chǎn)生的一個(gè)或多個(gè)、或一個(gè)或多個(gè)的一部分的程序單元、模塊或?qū)ο髨?zhí)行。此外,可以由為該目的而設(shè)計(jì)的專用硬件或電路模塊執(zhí)行每個(gè)所述的步驟、或?qū)崿F(xiàn)每個(gè)所述步驟的文件或?qū)ο蟮取?br>
權(quán)利要求
1.一種用于復(fù)制顯示素材的方法,包括如下的步驟
為用戶顯示第一顯示素材(50);
從所述用戶接收(20、120)所述第一顯示素材的第一部分(52);
將所述第一部分存儲(chǔ)(22、122)到剪貼板(58);
識別所述第一顯示素材的第二部分(54、56)并將其存儲(chǔ)(24、124)到所述的剪貼板;
從所述用戶接收(26、126)第二顯示素材中的一個(gè)插入點(diǎn);以及
為所述用戶在所述的插入點(diǎn)處顯示(28、136)所述的第一部分和所述的第二部分。
2.如權(quán)利要求1的方法,還包括如下的步驟
從所述的第一顯示素材(50)中選擇足以在所述的插入點(diǎn)處顯示出良好構(gòu)成的所述第二部分的素材作為所述第二部分(54、56)。
3.如權(quán)利要求2的方法,還包括將在所述插入點(diǎn)處在語法上是正確的第一顯示素材(50)的特征描述為良好構(gòu)成的步驟。
4.如權(quán)利要求1的方法,還包括將所述的第一部分(52)存儲(chǔ)到剪貼板(58)的第一層(64),并且將所述的第二部分(54、56)存儲(chǔ)到所述剪貼板的第二層(70)。
5.如權(quán)利要求1的方法,還包括顯示以第一方式高亮顯示的所述第一部分(52),并且顯示以第二方式高亮顯示的所述第二部分(54、56)的步驟。
6.如權(quán)利要求5的方法,還包括從所述的用戶接受動(dòng)作,該動(dòng)作有選擇地指定用于接收插入到所述的插入點(diǎn)或者從所述的插入點(diǎn)取消插入的第二部分(54、56)素材。
7.如權(quán)利要求2的方法,還包括為所述第二部分(54、56)選擇在所述的第一顯示素材(50)中包括在所述第一部分(52)素材之上和/或之下的預(yù)先確定的編碼括號內(nèi)的素材的步驟。
8.如權(quán)利要求2的方法,還包括為所述的第二部分(54、56)選擇在所述的第一顯示中足以使得所述第一部分素材(50)進(jìn)行編譯的素材的步驟。
9.如權(quán)利要求2的方法,還包括為所述的第二部分(54、56)選擇使得在所述第一部分(50)中僅是部分完整的函數(shù)成為完整函數(shù)所需的額外素材的步驟。
10.一種用于顯示復(fù)制到剪貼板中的素材的系統(tǒng),包括
用于顯示所述素材的顯示裝置;
用戶可操作的選擇器,用于指定所述素材的第一部分(52)以便復(fù)制和粘貼到一個(gè)插入點(diǎn);
用于臨時(shí)存儲(chǔ)要被粘貼到所述插入點(diǎn)處的素材的剪貼板(58);以及
控制器,其用于為用戶顯示第一顯示素材(50);從所述用戶接收所述第一顯示素材(50)的第一部分;將所述的第一部分存儲(chǔ)在所述剪貼板中;識別所述第一顯示素材的第二部分(54、56),并將其存儲(chǔ)在所述剪貼板中;從所述用戶接收一個(gè)第二顯示素材中的插入點(diǎn);并且為所述用戶在所述插入點(diǎn)處顯示所述第一部分和所述第二部分。
11.一種計(jì)算機(jī)程序,其包括用于執(zhí)行根據(jù)權(quán)利要求1到9中任意一個(gè)權(quán)利要求的方法的每個(gè)步驟的代碼單元。
全文摘要
提供了一種用于將復(fù)制到剪貼板內(nèi)的素材插入到顯示的系統(tǒng)和方法。用戶選擇要復(fù)制到剪貼板內(nèi)的素材。系統(tǒng)選擇額外的素材并將其復(fù)制到剪貼板內(nèi)。用戶為用戶所選擇的素材選擇插入點(diǎn),并且系統(tǒng)向用戶顯示用戶所選擇的素材和可選擇的額外素材。根據(jù)本發(fā)明的一個(gè)更具體的實(shí)施例,系統(tǒng)選擇的素材是為在插入點(diǎn)的上下文中在語法上正確地呈現(xiàn)用戶所選擇的素材所必須的素材。
文檔編號G06F9/44GK1618057SQ0282766
公開日2005年5月18日 申請日期2002年10月28日 優(yōu)先權(quán)日2002年1月31日
發(fā)明者C·L·巴特斯, G·F·馬蒂諾, J·M·桑托索索, V·T·蒂蒙三世 申請人:國際商業(yè)機(jī)器公司