(57)【特許請求の範囲】
【請求項１】
クリップボード（５８）にコピーされた第１表示データ（５４、５２、５６）を表示するためのシステムであって、
前記第１表示データ（５４、５２、５６）を表示するためのディスプレイと、
ユーザによって動作可能であり、前記第１表示データ（５４、５２、５６）の第１部分（５２）を、挿入点にコピーおよびペーストするために指定する選択装置と、
前記挿入点にペーストされる前記第１表示データ（５４、５２、５６）を一時的にストアするためのクリップボード（５８）と、
前記第１表示データ（５４、５２、５６）を前記ユーザに表示し、前記ユーザによって指定された前記第１部分（５２）を受け取り、前記第１部分を前記クリップボードの第１層（６４）にストアし、前記第１部分（５２）ならびに前記第１部分（５２）の上および／または下にある前記第１表示データの第２部分（５４、５６）を識別して前記クリップボードの第２層（７０）にストアし、前記第１部分が前記挿入点に関し構文的に正しいか否かを判定し、前記第１部分が構文的に正しい場合には、前記第１部分を前記挿入点にペーストし、前記第１部分が構文的に正しくない場合には、前記第１部分を前記挿入点に関し構文的に正しくするために必要な追加の表示データを前記第２部分から選択し、前記ユーザに前記挿入点における前記第１部分および前記第２部分からの前記追加の表示データをそれぞれ第１の方法および第２の方法で強調して表示するためのコントローラと
を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面処理に関する。更に具体的には、これは、２層のクリップボードまたはバッファを用いた、数値、テキスト、またはコードのコピーおよびペーストに関する。
【背景技術】
【０００２】
当技術分野において、クリップボードまたはバッファを設け、これに、ユーザが選択したディスプレイ・データ等の素材をコピーし、後にディスプレイの別の領域内にペーストすることは既知である。図１を参照すると、ステップ１０で、この選択は、通常、消去またはコピーする素材または部分をブロックする（強調する）ことによって行われる。ステップ１２において、クリップボードに移動した素材（数値、テキスト、コード等）を、その元の位置から除去する（消去動作）または残す（コピー動作）ことができる。ステップ１４では、ユーザは、通常はカーソルを位置付けることによって挿入点を選択し、ステップ１６では、挿入点にクリップボードの内容をペーストする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ユーザは時に、所望のまたは構文的に正しいものよりも小さいディスプレイ領域をブロックすることがある。例えば、ユーザは、電話番号の一部のみをブロックし、プロセスにおいて１つ以上の数字を抜かしてしまう恐れがある。同様に、プログラマは、ソースコードの１セクションをコードの別の部分にペーストするためブロック、即ち強調し、そうする際に、正しい構造に必要なコード構造の一部を抜かしてしまう恐れがある。
【０００４】
１つのディスプレイ位置から第２の位置へ素材をコピーするための改良されたシステムおよび方法を提供することが望ましいであろう。
【０００５】
更に、部分的にブロックされたデータがその全体でコピーされることを確実とするためのシステムおよび方法を提供することが望ましいであろう。
【０００６】
更に、部分的に選択されたデータのセクションのために構文的に完全なデータをコピーすることを確実とするためのシステムおよび方法を提供することが望ましいであろう。
【課題を解決するための手段】
【０００７】
クリップボードにコピーされた素材をディスプレイに挿入するためのシステムおよび方法を提供する。ユーザは、クリップボードにコピーする素材を選択する。このシステムは、追加の素材を選択して、クリップボードにコピーする。ユーザは、ユーザが選択した素材のための挿入点を選択し、システムは、ユーザに、ユーザが選択した素材および選択的な追加の素材を表示する。システムが選択した素材は、より具体的な実施形態によれば、挿入点の文脈においてユーザが選択した素材を構文的に正しくするために必要な素材である。
【０００８】
本発明の１つの態様によれば、コンピュータのディスプレイ・モニタにおける挿入点に、ユーザが選択した素材およびシステムが選択した追加の素材を表示するように動作可能に構成されたコンピュータ・プログラムが提供される。
【０００９】
本発明の利点は、１つのディスプレイ位置から第２の位置へ素材をコピーするための改良されたシステムおよび方法が提供されることである。
【００１０】
本発明の利点は、部分的にブロックされたデータがその全体でコピーされることを確実とするためのシステムおよび方法が提供されることである。
【００１１】
本発明の利点は、部分的に選択されたデータのセクションのために構文的に完全なデータをコピーすることを確実とするためのシステムおよび方法が提供されることである。
【発明を実施するための最良の形態】
【００１２】
図２を参照すると、コピー／カットおよびペースト動作を実行するための本発明の好適な実施形態の方法が示されている。ステップ２０では、ユーザが、コピーのための素材を選択する。図２では、動作は、プログラミング・コードに関連付けて説明するが、コピーおよびペーストする素材は、テキスト、数値、コード、表、もしくはグラフィック・データ、またはそれらの組み合わせ等、いかなる素材とすることも可能である。ステップ２２では、ユーザは、選択した素材を第１層クリップボードにコピーし、ステップ２４では、システムは、追加の素材（典型的には、ユーザが選択した素材を囲んでいる素材）を選択し、第２層クリップボードに追加する。これらの第１層および第２層のクリップボードは、例えば、ストレージ内の別個の位置として、または適切なポインタを用いて単一の位置として実施することができる。ステップ２６では、ユーザは、挿入点を選択してペースト・コマンドを実行する。ステップ２８では、システムは応答し、第１層の素材を強調して（第１の色または太字によって等、第１の方法で）、更に、選択的に追加の素材も強調して（第２の色または斜字によって等、第２の方法で）、第２層の素材を挿入する。ステップ３０では、ユーザは、挿入点に保持すべき挿入コードの部分を選択する。
【００１３】
強調の目的は、ユーザに、素材が選択されたことに加えて素材がペーストされたことを示すことだけでなく、ユーザが追加の素材を受容または除去できるようにすることである。これは、テキストに関しては、例えば、ユーザが強調されたテキストにカーソルを位置付けて、その上でクリックすることにより行うことができる。この時点で、強調は消えて、テキストは挿入点において永続的になる。テキストを除去するためには、例えば、ユーザが消去キーを活性化し、またはカーソルを他の場所に動かして編集を続けることができる。また、追加の素材は、ユーザがその編集を開始すると保持することができる。
【００１４】
電話番号が、別の例を提供する。すなわち、電話番号を５５５−１２１２と表示すると仮定し、ステップ２０では、ユーザはコピーのために部分５５５−１２１をブロックまたは選択する。ステップ２２において、ユーザがこれを、電話番号のためにフォーマット化した入力フィールドにコピーすると、その入力フィールドを制御するアプリケーションは、通常、構文の妥当性を検査するためのコードを実行し、ブロックされた部分は無効であると判定する。この場合、そのアプリケーションは、クリップボードの第２層にアクセスして、番号を完全にするテキストを獲得することができ、ステップ２８では、５５５−１２１２をユーザに表示する（追加の素材、２番目の「２」を強調して）、次いで、ステップ３０では、強調した部分をクリックして完全な番号を受容することができる。
【００１５】
素材を選択してクリップボードの第２層に追加またはそれから除去するために、様々な代替的な手法を実施可能である。例えば、ペーストするために選択された素材の上および下にある、１つ以上のコーディング括弧を含むコード素材を、第２層に含むために選択することができる。あるいは、コンパイルするために選択されたコードの断片に必要な括弧のみを含ませる。これは、開括弧および閉括弧の数が等しいことを意味する。または、第２層には、機能を完全にするために必要な素材、すなわち完全なｗｈｉｌｅループ、またはｉｆ／ｔｈｅｎ／ｅｌｓｅステートメントが含まれる。または、ブロックされた素材の上および／または下の任意の数の行を第２層にコピーすることができる。これらの技法は、第２層用の素材を選択するために考えられる多くの技法を例示するに過ぎない。
【００１６】
図３を参照すると、本発明の好適な実施形態を実施するためにコントローラがアクセスまたは使用するデータ構造の概略を示す。最初のディスプレイ５０は、ユーザに、例えば、素材、ここではテキストまたはコード・テキストの数行を提示する。ユーザは、ディスプレイ５０に提示されたテキストの部分５２を、ブロックまたはその他の方法で選択することができ、この時点で、選択されたものの上のテキスト５４および下のテキスト５６を決定する。
【００１７】
クリップボード５８は、第１層部分６４を含み、この中に、線５１によって表すように、選択テキスト５２を選択テキスト６２としてロードし、更に、クリップボード５８は、第２層部分７０を含み、この中に、線５３によって表すように、選択テキスト５２を選択テキスト７２としてロードする。上テキスト５４および下テキスト５６の部分を、それぞれ、線５５および５７によって表すように、上部分７４および下部分７６として第２層７０にコピーする。
【００１８】
バーチャル・ディスプレイ８０は、線６１によって表すように、第１層６４から選択テキスト６２を受信し、それを、選択テキスト８２として、上挿入８４と下挿入８６との素材間の挿入点に配置する。本発明の代替的な実施形態によれば、線８５で表すように、選択テキスト８２が構文的に正しいと判定された場合、ユーザに提示ディスプレイ１００を提示することなく、結果として得られるディスプレイ１１０を直接発生させることができる。このように、選択テキスト９２の選択を検証したり、選択テキスト９２および／または上選択９４および／または下選択９６からテキストを破棄したりする必要なく、結果として得られるディスプレイ１１０をユーザに提示することができる。
【００１９】
しかしながら、選択テキスト８２が構文的またはその他の点で不正確であると判定されると、これは強調され（太字等、第１の強調）、提示ディスプレイ１００に、上挿入部分９０と下挿入部分９８との間の挿入点において、選択テキストの上のある部分９４および／または下のある部分９６を含む第２層７０から選択された素材（斜字等、第２の強調）間に、選択テキスト９２として表示される。結果として得られるディスプレイ１１０は、線９３の挿入点上の素材１１４と線９５の挿入点下の素材１１６との間に挿入された、妥当性検証された選択テキスト１１２を含み、これは線９１で表すように、最初のブロックまたは選択されたテキスト５２の提示ディスプレイ・コピー９２、および、もしあれば素材９４、９６のユーザ選択部分を含む。
【００２０】
動作において、図３と共に図４および図５を参照すると、ステップ１２０では、ユーザはテキスト・セグメント５２を選択し、これはステップ１２２において、ユーザがクリップボード５８の第１層６４にコピーする。システムは、上テキスト５４および下テキスト５６を選択し、これもクリップボード５８の第２層７０にコピーする。ステップ１２６において、ユーザは挿入点を選択し、ステップ１２８、１３０では、システムが、（バーチャル・ディスプレイ８０によって表すように）上挿入素材８４および下挿入素材８６の文脈において、選択テキスト８２が構文的またはその他の点で正しいか否かを評価する。構文が正しい場合、線８５およびステップ１３２で表すように、システムは、第１層のクリップボード素材を、妥当性検証された選択テキスト１１２として、ステップ１４０で結果として得られるディスプレイ１１０にペーストする。構文が正しくない場合、ステップ１３４において、システムは、第２層７０から、選択テキスト７２の上テキスト７４および／または下テキスト７６を選択して、可能であれば、挿入点においてユーザ選択セグメント９２を構文的に正しくし、ステップ１３６では、ユーザ選択テキスト９２およびシステム選択テキスト９４、９６を、上挿入９０および下挿入９８間の挿入点において、素材９２および９４、９６を適切に強調してユーザに提示する。ステップ１３８では、ユーザは、所望の場合、ディスプレイ１００に提示された素材９２、９４、９６を検証、妥当性検査、選択または破棄する。ステップ１４０では、上選択素材９４および下選択素材９６からユーザが選択したいずれかを含む妥当性検査された選択テキストを、上挿入素材１１４と下挿入素材１１６との間の挿入点に表示する。
【００２１】
本発明の更に別の実施形態によれば、ユーザは、クリップボードまたはバッファにコピーするためにディスプレイから素材の一部を選択し、システムは、ディスプレイからクリップボードに追加の素材をコピーする。追加の素材または内容の量は、コピーを行っているアプリケーションに依存するが、コピーを行っているアプリケーションが、どのくらいの追加内容を含むかに関して行う判定がある。ユーザが、クリップボードの内容を、挿入点によって決定される位置にペーストしようとする場合、内容または素材を受け取るアプリケーションは、クリップボードを調べて、その内容が、それをペーストしている位置に適合するように良好に形成されたか否かを判定する。そのように良好に形成されていなければ、クリップボードに含まれる追加の内容を調べて、選択の交互の開始および停止位置を試験して、この追加の内容を用いて良好に形成された内容を構成可能であるか否かを判定する。構成可能な場合、追加の内容を強調して、この良好に形成された素材を適所にペーストする。任意選択肢を与えて、ユーザが、この追加の素材をオーバーライドし、またはその一部または全てを選択可能とすることもできる。
【００２２】
表１、２、および３は、コード素材のための提示ディスプレイ１００の発生の様々な例を示し、それらの例では、選択された素材が、以降の行、先行する行、ならびに以降および先行する行の双方をそれぞれ含んでいないために、構文的に不正確である。
【００２３】
表１      以降の行を含む第２層
以下のように、ルーチンＡで開始する。
【数１】
0004056477.tif 000002
【００２４】
ユーザは、行２０６〜２１２から成るルーチンＡのセグメントＡから第１層コードを選択し、これは、不注意で、または「間違い」によって、行２０６〜２１４の完全なｗｈｉｌｅループを含まない。
【数２】
0004056477.tif 000003
【００２５】
テキスト（コード・セグメントＡ、太字で示す行２０６〜２１２）を、以下のルーチン（ルーチンＢ、行２１７〜２２０）内に、−−＞で示す点（行２１９）にペーストする場合、
【数３】
0004056477.tif 000004
【００２６】
結果として得られるコード部分Ｃは、第２層から、斜字で下に示す行２１３および２１４によって増強されて、以下のようにｗｈｉｌｅループを完成する。
【数４】
0004056477.tif 000005
【００２７】
表２    先行する行を含む第２層
上の行を有する第２層の例を含む。
ルーチンＡから開始する。
【数５】
0004056477.tif 000006
【００２８】
以下のように第１層内でコード・セグメント１Ａを選択し、これは「間違い」によって完全なｗｈｉｌｅループを含まない。
【数６】
0004056477.tif 000007
【００２９】
テキスト（コード・セグメント１Ａ）を、以下のルーチン（ルーチン１Ｂ）内に、−−＞で示す行２４８にペーストする場合、
【数７】
0004056477.tif 000008
【００３０】
結果として得られるコード部分１Ｃは、第２層から、斜字で示す行２３５〜２３６を含む。
【数８】
0004056477.tif 000009
【００３１】
表３  以降の行および先行する行を含む第２層
上および下の行を有する第２層の例を含む。
ルーチン２Ａから開始する。
【数９】
0004056477.tif 000010
【００３２】
ユーザは、以下のように第１層のコード・セグメント２Ａを選択し、これは、「間違い」（不注意）によって、ｗｈｉｌｅループの外側の行２６４および２７７のｉｆ／ｅｌｓｅステートメントを含まない。
【数１０】
0004056477.tif 000011
【００３３】
テキスト（コード・セグメント２Ａ、行２６６〜２７５）を、以下のルーチン（ルーチン２Ｂ、行２８３〜２８６）内に、−−＞で示す点の行２８５にペーストする場合、
【数１１】
0004056477.tif 000012
【００３４】
結果として得られるコード部分２Ｃは、斜字の第２層の行２６４〜２６５および２７６〜２８１によって増強される。
【数１２】
0004056477.tif 000013
【００３５】
本発明の具体的な実施形態を例示の目的のために説明したが、本発明の精神および範囲から逸脱することなく、様々な変形を実施可能であることは認められよう。特に、本発明の方法に従ってコンピュータの動作を制御するため、および／または本発明のシステムに従ってその構成要素を構築するために、固体または流体伝送媒体、磁気または光ワイヤ、テープまたはディスク等、機械によって読み取り可能な信号をストアするために、コンピュータ・プログラム・プロダクトまたはプログラム要素、またはプログラム・ストレージまたはメモリ・デバイスを提供することは、本発明の範囲内である。
【００３６】
更に、本方法の各ステップは、ｚＳｅｒｉｅｓ、ｉＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、およびｐＳｅｒｉｅｓとして指定されたＩＢＭシステム等の如何なる一般的なコンピュータ上でも実行可能であり、Ｃ＋＋、Ｊａｖａ、ＰＬ／１、Ｆｏｒｔｒａｎ等のいずれかのプログラミング言語から発生したプログラム要素、モジュールまたはオブジェクトの１つ以上、または１つ以上の一部に準ずる。更にまた、各前記ステップ、または各前記ステップを実施するファイルもしくはオブジェクト等は、専用ハードウエアまたはその目的のために設計された回路モジュールによって実行可能である。
【図面の簡単な説明】
【００３７】
【図１】従来技術のカット／コピーおよびペースト動作のフローチャートである。
【図２】本発明の好適な実施形態の２層のカット／コピーおよびペースト動作のフローチャートである。
【図３】本発明の好適な実施形態による２層のクリップボードを実施するためのデータ構造の概略である。
【図４】本発明の２層のクリップボード動作の更に別の実施形態のフローチャートの前半部分である。
【図５】本発明の２層のクリップボード動作の更に別の実施形態のフローチャートの後半部分である。
【図１】
0004056477.tif 000014
【図２】
0004056477.tif 000015
【図３】
0004056477.tif 000016
【図４】
0004056477.tif 000017
【図５】
0004056477.tif 000018