(57)【特許請求の範囲】
【請求項１】
コンピュータ装置が実行する方法であって、ＨＴＭＬ（Hypertext Markup Language）ドキュメントのコンテンツのテキスト部分を、前記コンピュータ装置のディスプレイに表示されるＷｅｂブラウザのウィンドウ内でユーザが編集するための方法であって、
前記ＨＴＭＬドキュメントを前記Ｗｅｂブラウザのウィンドウ内に表示するステップと、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を編集するリクエストを受信するステップと、
前記リクエストに応答して、前記ウィンドウに表示されたとおりの前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の位置およびサイズを判断するステップと、
前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の上に重なる編集面を作成するステップであって、前記編集面は、前記Ｗｅｂブラウザにレンダリングされる際に、前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の前記位置において前記サイズで前記ウィンドウに表示される前記編集面を生じさせるためのサイズおよび位置の属性を有するＨＴＭＬエレメントを、前記ＨＴＭＬドキュメントに追加することにより作成される、ステップと、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を前記編集面にコピーするステップと、
前記ウィンドウ内で前記ユーザの入力操作による入力を受信するステップと、
前記入力を受信する際に、前記編集面が前記入力を処理するかどうかを判断するステップと、
前記編集面が前記入力を処理すると判断された場合には、前記入力を、処理のために前記編集面エレメントに渡し、前記編集面に対しリフローオペレーションを実行するステップと、
前記編集面が前記入力を処理しないと判断された場合には、すべての変更を前記ＨＴＭＬドキュメントのコンテンツに適用し、前記編集面を前記ＨＴＭＬドキュメントから除去し、前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を見えるようにするステップと、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の編集を停止するリクエストを受信するステップと、
前記リクエストを受信したことに応答して、前記すべての変更を前記ＨＴＭＬドキュメントのコンテンツに適用し、前記編集面を破棄するステップとを備え、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を編集するリクエストを受信するステップは、
挿入ポインタが前記ウィンドウ内のある位置に置かれたことを検出するステップと、
前記挿入ポインタが置かれた場所で前記ウィンドウ内に表示された前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を判断するステップと、を含み、さらに、
前記ウィンドウ内に表示された前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を判断する際に、前記挿入ポインタの前記位置に対応する前記ＨＴＭＬドキュメントのコンテンツのテキスト部分に置かれているテキスト内の文字位置を判断するステップと、
前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の上に重なる前記編集面を作成する際に、前記編集面内の前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の前記テキスト内の前記文字位置にカーソルを位置づけるステップと
をさらに備えることを特徴とする方法。
【請求項２】
前記編集面に対してリフローオペレーションを実行するステップは、
前記ウィンドウ内で前記編集面をリフローする必要があるかどうかを判断するステップと、
前記編集面をリフローする必要があると判断する際に、
前記すべての変更を前記ドキュメントのコンテンツに適用し、
前記ウィンドウ内の前記ＨＴＭＬドキュメントを前記Ｗｅｂブラウザに再レンダリングさせ、
前記ウィンドウ内に表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の新しい位置と新しいサイズを判断し、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の前記新しい位置と前記新しいサイズで前記編集面が前記ウィンドウ内で前記Ｗｅｂブラウザにレンダリングされるように、前記ＨＴＭＬドキュメントに追加される前記ＨＴＭＬエレメントの前記サイズおよび位置の属性を修正するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記編集面が入力を処理するかどうかを判断するステップは、前記入力が文字キー、句読点キーおよび数字キーの１つが押された結果であるかどうかを判断するステップを含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
コンピュータ実行可能命令を収めたコンピュータ記憶媒体であって、前記コンピュータ実行命令がコンピュータによって実行されたとき、
前記コンピュータのディスプレイに表示されるＷｅｂブラウザに生成されたウィンドウ内にＨＴＭＬ（Hypertext Markup Language）ドキュメントを表示し、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を編集するリクエストを受信し、
前記リクエストに応答して、前記ウィンドウに表示されたとおりの前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の位置およびサイズを判断し、
前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の上に重なる編集面を作成し、前記編集面は、前記Ｗｅｂブラウザにレンダリングされる際に、前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の前記位置において前記サイズで前記ウィンドウに表示される前記編集面を生じさせるためのサイズおよび位置の属性を有するＨＴＭＬエレメントを、前記ＨＴＭＬドキュメントに追加することにより作成され、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を前記編集面にコピーし、
前記ウィンドウ内で前記ユーザの入力操作による入力を受信し、
前記入力を受信する際に、前記編集面が前記入力を処理するかどうかを判断し、
前記編集面が前記入力を処理すると判断された場合には、前記入力を、処理のために前記編集面エレメントに渡し、前記編集面エレメントに対しリフローオペレーションを実行し、
前記編集面が前記入力を処理しないと判断された場合には、前記すべての変更を前記ＨＴＭＬドキュメントのコンテンツに適用し、前記編集面を前記ＨＴＭＬドキュメントから除去し、前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を見えるようにし、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の編集を停止するリクエストを受信し、
前記リクエストを受信したことに応答して、前記すべての変更を前記ＨＴＭＬドキュメントのコンテンツに適用し、前記編集面を破棄し、
前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を編集するリクエストを受信することは、
挿入ポインタが前記ウィンドウ内のある位置に置かれたことを検出し、
前記挿入ポインタが置かれた場所で前記ウィンドウ内に表示された前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を判断することを含み、さらに、
前記ウィンドウ内に表示された前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を判断する際に、前記挿入ポインタの前記位置に対応する前記ＨＴＭＬドキュメントのコンテンツのテキスト部分に置かれているテキスト内の文字位置を判断し、
前記ウィンドウに表示されたように前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の上に重なる前記編集面を作成する際に、前記編集面内の前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の前記テキスト内の前記文字位置にカーソルを位置づける
ことをコンピュータに実行させることを特徴とするコンピュータ記憶媒体。
【請求項５】
前記編集面のリフローオペレーションを実行することは、
前記ウィンドウ内の前記編集面のリフローが必要であるかどうかを判断し、
リフローが必要であると判断する際に、
前記ウィンドウ内の前記ＨＴＭＬドキュメントのコンテンツのテキスト部分を前記編集面からの前記変更で更新し、
前記Ｗｅｂブラウザに前記ウィンドウにおいて前記ＨＴＭＬドキュメントを再レンダリングさせ、
前記ウィンドウ内で前記ＨＴＭＬドキュメントのコンテンツのテキスト部分の上に重なる前記編集面を再配置することを含むことを特徴とする請求項４に記載のコンピュータ記憶媒体。
【請求項６】
前記編集面が前記入力を処理するかどうかを判断することは、前記入力が文字キー、句読点キー、および数字キーのうちの１つがキーボード上で押された結果であったかどうかを判断することを含むことを特徴とする請求項４または５に記載のコンピュータ記憶媒体。
【請求項７】
請求項１から３のいずれか一項に記載の方法を実行するコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
従来、ワードプロセッシングアプリケーションは、パーソナルコンピュータにインストールされていて、ローカルまたはネットワークベースのファイルに格納されたドキュメントのためにリッチな編集とフォーマッティングの機能を提供するスタンドアロンソフトウェアプログラムであった。これらのアプリケーションは、一般的に非常に大きいため、インストールするのにドライブスペースに多くのメガバイトを必要としていた。しかし、最近の傾向では、同じスタンドアロンワードプロセッシングアプリケーションへのアクセス権を有していないことがあるリモートの種々のユーザによって協働的にドキュメントが開発され、これらのドキュメントは、インターネットを通してアクセス可能なリモートネットワーク上に格納されていることがある。この結果、従来のＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（Ｗｅｂ）ブラウザを介して配信可能なワードプロセッシングプログラムが開発されることになり、従来のスタンドアロンワードプロセッサをインストールしなくても、ユーザは、リモートドキュメントを編集することが可能になった。
【背景技術】
【０００２】
Ｗｅｂベースのワードプロセッシング機能を提供する１つの方法では、多くのＷｅｂブラウザプログラムに用意されている編集機構(editing features)を利用したＷｅｂページが開発されている。この方法には、小さく高速であるという利点があり、必要とする開発作業が非常に少なくなっている。しかし、これらのＷｅｂブラウザによって提供される編集機構は、従来のスタンドアロンワードプロセッサの特徴がリッチな能力とは比較にならないほど限られているのが一般的である。さらに、利用可能な編集機構は異なるＷｅｂブラウザプログラム間で非常に異なっているため、すべてのＷｅｂブラウザにわたって統一したユーザ体験を提供することが困難になっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
Ｗｅｂベースのワードプロセッシング機能を提供する別の方法では、ＳＵＮ  ＭＩＣＲＯＳＹＳＴＥＭＳ提供のＪＡＶＡ、ＡＤＯＢＥ  ＳＹＳＴＥＭＳ提供のＦＬＡＳＨ、またはＡｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔおよびＸＭＬ（「ＡＪＡＸ」）などのクロスブラウザ(cross-browser)ランタイムテクノロジを使用してブラウザ内で実行される完全なワードプロセッシングプログラムが実現されている。開発者は、このプログラムの特徴と能力を完全に制御できる一方で、この方法には、相当量の開発作業が必要になり、ユーザによってタイプされたようにウィンドウでテキストをレンダリングし、明滅カーソルをテキスト前後に動かし、またはユーザがタイプしたウィンドウの内容を統一的にリフローする、といったローレベルの編集機能を実現する必要があるのが一般的である。さらに、ワードププロセシングプログラムは、ブラウザベースのランタイムテクノロジで実行されるために、実行が低速であることがよくあり、十分に応答性のあるユーザインタフェースを提供できないことがある。
【０００４】
本明細書に行なわれている開示事項が提示されているのは、上記考慮事項およびその他に関してである。
【課題を解決するための手段】
【０００５】
本明細書には、Ｗｅｂブラウザで実行されることを目的したハイブリッド編集モデルのワードプロセッサを実現するための技術が記載されている。具体的には、ワードプロセッサは、クロスブラウザランタイムテクノロジ(cross-browser runtime technology)で実現され、従来のスタンドアロンワードプロセッサのそれに匹敵するリッチな編集機構群を提供している。しかし、ワードプロセッシングプログラムは、ローレベル編集機能を実現するためにＷｅｂブラウザによって提供される編集機構の一部を利用している。具体的には、ワードプロセッシングプログラムは、個々のテキストブロックつまりパラグラフに対するユーザの変更を受け入れる編集面(editing surface)を提供するためにＷｅｂブラウザを使用している。この編集面は、ローレベルなテキスト編集機構をユーザに提供するために必要な時間だけアクティブである点で一時的(transitory)である。
【０００６】
本明細書に提示している一態様によれば、Ｗｅｂブラウザ内のドキュメントは、一時的編集面を使用して編集されることがある。この点では、Ｗｅｂブラウザで実行されるワードプロセッシングプログラムは、ドキュメントをブラウザウィンドウに表示する。ワードプロセッシングプログラムは、ユーザがマウスでテキスト内をクリックする、といった方法またはキーボードのナビゲーションキーを使用してパラグラフにナビゲートすると、いった方法で、挿入ポインタがドキュメント内のテキストのパラグラフに置かれたことを検出する。挿入ポインタが置かれたことが検出されると、ワードプロセッシングプログラムは、ドキュメント内のパラグラフの上に重なる編集面を作成する。これは、その下に位置するパラグラフを見えないようにしたまま、その下に位置するパラグラフと同じロケーションに置かれ、同じサイズのドキュメントに編集面エレメントを追加することで行なわれることがある。一態様では、編集面エレメントは、ハイパテキストマークアップ言語（ＨＴＭＬ）ＩＦＲＡＭＥエレメントであってもよい。その下のプラグラフの内容は、編集面にコピーされる。
【０００７】
次に、ワードプロセッシングプログラムは、ユーザがブラウザウィンドウで行なった入力をモニタし、一部の入力は編集面によって直接に処理されるのを可能にし、他方ではワードプロセッシングプログラムによる処理のために他の入力をインターセプト(intercept)するのを可能にする。一態様によれば、ワードプロセッシングプログラムは、キーボードから入力された文字キー、数字キー、および句読点キーの入力を直接に編集面に渡す一方で、マウスクリックまたはページダウンまたはページアップのようなナビゲーションキーをインターセプトする。編集面は、ユーザ入力を処理して、ユーザがそこに含まれる内容に対して変更が行なわれるのを可能にする。
【０００８】
ワードプロセッシングプログラムは、ユーザ入力の処理時に編集面をモニタして、編集面のリフロー(reflow)が必要であるかどうかを判断する。例えば、編集面内の内容に対する変更には、ブラウザウィンドウ内の編集面のサイズまたは位置に対する変更が必要になることがある。リフローが必要な場合は、編集面の修正した内容がコピーされてドキュメントに戻され、Ｗｅｂブラウザはページ上のドキュメントを再レンダリングするのを強行する。その下に置かれたパラグラフの新しい位置とサイズが次に判断され、編集面は、その下に置かれたパラグラフの新しい位置とサイズに一致するように再配置され、サイズが変更される。編集が完了すると、編集面の修正した内容がコピーされてドキュメントに戻され、編集面が破棄され、その下に置かれたパラグラフが再び見えるようにされる。
【０００９】
以上から当然に理解されるように、上述した主題は、コンピュータ制御装置、コンピュータプロセス、コンピューティングシステム、またはコンピュータ可読媒体などの製造物品として実現されることもある。これらの特徴およびその他の種々の特徴は、以下の詳細説明を読み、添付図面をレビューすることにより明らかになる。
【００１０】
この要約は、詳細説明の中で以下に詳しく説明されている概念を選んで簡単に紹介したものである。この要約は、請求項に記載の主題のキーとなる特徴または基本的な特徴を特定するものでも、この要約が請求項に記載した主題を制限するために使用されるものでもない。さらに、請求項に記載の主題は、本開示事項のいずれかの部分に記載された欠点のいずれかまたはすべてを解決する実現形態に限定されない。
【図面の簡単な説明】
【００１１】
【図１】例示の動作環境の態様および本明細書に記載の実施形態によって提供されるいくつかのソフトウェアコンポーネントを示すネットワークおよびソフトウェアアーキテクチャを示す図である。
【図２Ａ】本明細書に記載の１実施形態による一時的編集面のオペレーションの例示スクリーンショットを示すスクリーン図である。
【図２Ｂ】本明細書に記載の１実施形態による一時的編集面のオペレーションの例示スクリーンショットを示すスクリーン図である。
【図２Ｃ】本明細書に記載の１実施形態による一時的編集面のオペレーションの例示スクリーンショットを示すスクリーン図である。
【図３】本明細書に記載の実施形態で提供される一時的編集面を提供するワードプロセッシングプログラムのオペレーションの態様を示すフロー図である。
【図４】本明細書に記載の実施形態で提供される一時的編集面を提供するワードプロセッシングプログラムのオペレーションの態様を示すフロー図である。
【図５】本明細書に記載の実施形態で提供される一時的編集面を提供するワードプロセッシングプログラムのオペレーションの態様を示すフロー図である。
【図６】本明細書に記載の実施形態の態様を実現する能力を備えたコンピューティングシステムのための例示コンピュータハードウェアおよびソフトウェアのアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【００１２】
以下の詳細説明は、ワードプロセッシング機能をブラウザ内で提供する技術に関するものである。本明細書に提示した技術と概念の使用を通して、ワードプロセッシングプログラムは、テキストの編集を管理するローレベルな細部をこのプログラムに実装させなくても、従来のスタンドアロンワードプロセッシングプログラムのそれに類似した特徴がリッチなワードプロセッシング体験を提供するブラウザ内に実装されることができる。これは、完全なカスタム開発のワードプロセッシングプログラムとＷｅｂブラウザの内容編集機構とのハイブリッドを実現することにより遂行される。ワードプロセッシングプログラムは、ハイレベルのワードプロセッシング機能を提供する一方で、ユーザがタイプしたようにウィンドウ内でテキストをレンダリングし、明滅カーソルをテキスト内を動かし、またはユーザがタイプするとウィンドウの内容をコンスタントにリフローする、といったようなローレベルのテキスト編集機構を実行するためにＷｅｂブラウザの編集機構が採用されている。Ｗｅｂブラウザの編集機構は、ウィンドウ内の編集面を、編集中のドキュメントの内容の場所に一時的に置くために利用されている。編集可能面が一時的であるのは、それが必要とされる間だけ表示され、アクティブのままになっているからである。内容の編集が完了すると、編集面は破棄され、修正された内容がユーザに表示される。
【００１３】
本明細書に記載の主題は、オペレーティングシステムとアプリケーションプログラムがコンピュータシステム上で実行されるのと一緒に実行されるプログラムモジュールの一般的コンテキストの中で提示されているが、当業者ならば認識されるように、他のタイプのプログラムモジュールと組み合わさって他の実施形態が実行されてもよい。一般的に、プログラムモジュールの中には、ルーチン、プログラムコンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ型を実現する他のタイプの構造が含まれている。さらに、当業者ならば認識されるように、本明細書に記載の主題は他のコンピュータシステム構成と共に実施されることもあり、その中には、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルなコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどが含まれている。
【００１４】
以下の詳細説明において、本明細書の一部を構成する添付図面が参照されており、そこには特定の実施形態または例が具体例として示されている。次に、図面を参照して説明すると、図面には類似の符号はいくつかの図面を通して類似のエレメントを示しているが、一時的編集面を使用してドキュメントを編集するためのコンピューティングシステムおよび方法の態様について説明する。
【００１５】
次に、図１を参照して説明すると、例示のオペレーティングシステムおよび本明細書に提示の実施形態によって提供されるいくつかのソフトウェアコンポーネントに関する詳細が示されている。具体的には、図１は、一時的編集面を使用してドキュメントを編集するためのシステム１００の態様を示している。システム１００は、コンピュータ１２０を含み、コンピュータ１２０は、オペレーティングシステムと１つまたは２つ以上のアプリケーションプログラムを実行する能力を有する標準のデスクトップ型またはラップトップ型コンピュータシステムを含む。コンピュータ１２０は、ディスプレイ１０４、マウス１０８、およびキーボード１１０と動作可能に接続され、コンピュータ１２０上で実行されるシステムおよびアプリケーションプログラムとユーザ１０２がやりとりするのを可能にしている。コンピュータ１２０は、ネットワーク１６０のような１または２以上のローカルエリアネットワークおよびワイドエリアネットワークを通してサーバコンピュータ１６２に相互接続されている。当然に理解されるように、図１に図示した以上に多くのネットワークコネクションが利用されてもよい。
【００１６】
コンピュータ１２０は、サーバコンピュータ１６２によって実行されるＷｅｂサーバ１６４にネットワーク１６０を通して動作可能に接続されているＷｅｂブラウザ１２２を実行するように動作可能である。一実施形態では、Ｗｅｂブラウザ１２２は、ＭＩＣＲＯＳＯＦＴ社提供のＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、Ｍｏｚｉｌｌａ社提供のＦＩＲＥＦＯＸ、またはＡＰＰＬＥ社提供のＳＡＦＡＲＩなどのように、ＨＴＭＬドキュメントを表示する機能を有するアプリケーションプログラムである。なお、当業者ならば理解されるように、マークアップ言語をレンダリングし、スクリプトロジックを実行する機能を有するどのタイプのアプリケーションプログラムは、Ｗｅｂブラウザ１２２を具体化するために利用されてもよい。Ｗｅｂサーバ１６４は、Ｗｅｂブラウザ１２２にドキュメントを供給する能力を有する任意のソフトウェアプログラムを含む。Ｗｅｂサーバ１６２は、ドキュメントを含むデータストレージ１６８およびワードプロセッシングプログラム１４０にさらに接続されている。なお、ワードプロセッシングプログラム１４０は、以下に詳しく説明されている。一実施形態によれば、ドキュメントは、Ｗｅｂブラウザ１２２に供給されるＨＴＭＬドキュメント１２８を含んでいてもよい。コンピュータ１２０のユーザ１０２によるリクエストを受けて、Ｗｅｂブラウザ１２２は、ＨＴＭＬドキュメント１２８をＷｅｂサーバ１６４から取り出し、そのドキュメントをディスプレイ１０４上でウィンドウ１０６内にレンダリングしてユーザ１０２に提示するよう動作可能である。
【００１７】
以上に簡単に説明したように、システム１００は、コンピュータ１２０のユーザ１０２がＨＴＭＬドキュメント１２８の内容をウィンドウ１０６内で編集できるように動作可能であるワードプロセッシングプログラム１４０も含む。一実施形態によれば、ワードプロセッシングプログラム１４０は、Ｗｅｂブラウザ１２２によって提供されるランタイム環境で実行される能力を有する。例えば、ワードプロセッシングプログラム１４０は、ＡＪＡＸ開発手法を用いて作成されてもよい。
【００１８】
一実施形態では、ワードプロセッシングプログラム１４０は、編集されるドキュメント１２８と一緒にＷｅｂサーバ１６４から取り出される。代替の実施形態では、ワードプロセッシングプログラム１４０は、コンピュータ１２０上にローカルに置かれていてもよい。ワードプロセッシングプログラム１４０は、ワードプロセッシング機能をユーザ１０２に提供するように動作可能なワードプロセッシングロジック１４８を含む。一実施形態では、ワードプロセッシングプログラム１４０は、編集されるドキュメントの内容を内部ドキュメントイメージ１５０で保持している。他の実施形態では、ワードプロセッシングプログラム１４０は、編集されるドキュメントの内容をＨＴＭＬドキュメント１２８内に直接に保持している。ＨＴＭＬレンダラ１２４は、ＨＴＭＬドキュメント１２８を表示するためにレンダリングする。
【００１９】
一実施形態では、ワードプロセッシングプログラム１４０は、イベント処理ロジック(event handling logic)１４６を含み、イベント処理ロジック１４６は、ユーザ入力プロセッサ１２６からのユーザ入力イベントをモニタしている。図３に関連して以下に詳しく説明されているように、イベント処理ロジック１４６は、ウィンドウ１０６内に表示されたように、ユーザ１０２によって挿入ポインタがＨＴＭＬドキュメント１２８内のあるロケーションに置かれたことを検出するよう動作可能である。イベント処理ロジック１４６は、さらに、図４に関連して以下に説明されているように、ドキュメントの内容の編集中にユーザ入力イベントをモニタするよう動作可能である。
【００２０】
ワードプロセッシングプログラム１４０は、編集面作成ロジック１４４も含み、編集面作成ロジック１４４は、図３を関連して以下に詳しく説明されているように、ドキュメントの内容に対する変更を受け入れる編集面をウィンドウ１０６内に作成する。一実施形態では、編集面は、編集面エレメント１３０を作成するためにＨＴＭＬドキュメント１２８にマークアップを追加することで作成され、編集面エレメント１３０は、Ｗｅｂブラウザ１２２によってレンダリングされるとき、編集面をウィンドウ１０６内に表示する。さらに、ワードプロセッシングプログラム１４０は、リフローロジック(reflow logic)１４２を含む。図５を参照して以下に詳しく説明されているように、リフローロジック１４２は、ユーザ１０２が編集面２０８で内容を変更したとき編集面２０８のサイズと位置を維持している。
【００２１】
次に、図２Ａ〜２Ｃを参照して説明すると、一実施形態によれば、Ｗｅｂブラウザ１２２によって実行されるワードプロセッシングプログラム１４０によって生成されるウィンドウ１０６の例示スナップショットが示されている。図２Ａに示されているように、ウィンドウ１０６は、ＨＴＭＬドキュメント１２８のメインボディに含まれるテキスト２０２のあるパラグラフを、ＨＴＭＬドキュメント１２８のテーブル２０４内のあるテキストブロックと共に表示している。テキスト２０２のパラグラフの編集を望んでいるユーザ１０２は、ここではテキスト挿入ポインタまたはカレット(caret)２０６として例示されているマウスポインタを、マウス１０８を使用してウィンドウ１０６内のテキスト２０２のパラグラフ内のある位置に置き、マウス１０８上のボタンをクリックすることができる。ワードプロセッシングプログラム１４０のイベント処理ロジック１４６は、パラグラフ２０２に置かれた挿入ポインタ２０６と共にマウスクリックを検出し、図２Ｂに示されているように、ウィンドウ１０６内でテキスト２０２のパラグラフの上に重なっている編集面２０８Ａを編集面作成ロジック１４４に作成させる。以上から理解されるように、マウスによって実行されるものとして本明細書に説明されているユーザ入力アクティビティは、別のタイプの入力デバイスを使用してサブミットされることがある。
【００２２】
図３を参照して以下に詳しく説明されているように、編集面作成ロジック１４４は、ウィンドウ１０６に表示されたようにパラグラフまたはテキスト２０８と同じサイズで同じ位置にあるように編集面２０８Ａを作成する。編集面作成ロジック１４４は、さらに、パラグラフ２０２の内容を編集面２０８Ａにコピーし、そのパラグラフ２０２をウィンドウ１０６内で見えないようにする。なお、パラグラフ２０２は、ウィンドウ１０６内で見えなくなるが、それでもウィンドウ１０６内の同じ物理的スペースを占めているので、基本的に編集面２０８Ａの下に置かれている。次に、編集面作成ロジック１４４は、挿入ポインタ２０６がユーザ１０２によってパラグラフ２０２内に置かれている位置に対応する編集面２０８Ａ内にカーソル２１０を位置づける。以上から理解されるように、図２Ｂのスナップショットに示されている編集面２０８Ａの境界は単なる例示目的のためである。編集面２０８Ａの実際の境界はウィンドウ１０６には作成されない。種々の実施形態で説明したように編集面２０８Ａを作成し、その下に位置するパラグラフ２０２の内容を編集面２０８Ａにコピーし、その下に位置するパラグラフをウィンドウ内で見えないようにするプロセスはユーザ１０２には気づかれないようになっている。ウィンドウ１０６に対する変更でユーザ１０２が気づく唯一の変更は、挿入ポインタ２０６が置かれた位置にカーソル２１０が作成されることである。
【００２３】
編集面２０８Ａは、ユーザ１０２が編集面２０８Ａのテキスト内容にローレベル編集を行なうのを可能にするためにウィンドウ１０６内でアクティブのままになっている。例えば、一実施形態では、編集面２０８Ａは、カーソル２１０が置かれている現在の位置でユーザ１０２が文字を追加したり、テキストから文字を削除したりするのを可能にしている。図４を参照して以下に詳しく説明されているように、ユーザ１０２がよりハイレベルの編集機能をワードプロセッシングプログラム１４０に要求したり、ウィンドウ１０６内でＨＴＭＬドキュメント１２８の異なる部分にナビゲートしたりすると、ＨＴＭＬドキュメント１２８は、ユーザ１０２によって編集面２０８Ａに行なわれた編集で更新され、編集面２０８Ａは破棄される。例えば、図２Ｃに図示されているように、ウィンドウ１０６に表示されたテーブル２０４内のテキストブロックにユーザ１０２が挿入ポインタ２０６を置くと、編集面２０８Ａは、破棄され、編集面２０８Ａの下に位置するテキスト２０２のパラグラフが編集面２０８からの編集があれば、その編集で更新され、ウィンドウ１０６内で再び見えるようにされる。さらに示すように、テーブル２０４内のテキストブロックの上に置かれた新しい編集面２０８Ｂが作成され、テキスト挿入のためのカーソル２１０が新しい編集面２０８Ｂ内に作成される。
【００２４】
次に、図３を参照して説明すると、一時的編集面を使用してドキュメントを編集するために本明細書に提示した実施形態に関してさらに詳しく説明する。具体的には、図３は、一時的編集面２０８をウィンドウ１０６内に作成するオペレーションを例示するフロー図である。当然に理解されるように、本明細書に記載したロジカルオペレーションは、（１）コンピュータシステム上で実行されるコンピュータ実装アクトのシーケンスまたはプログラムモジュールとしておよび／または（２）コンピューティングシステム内の相互接続マシンロジック回路または回路モジュールとして実装されている。この実装は、コンピューティングシステムのパフォーマンスおよびその他の要求条件に依存する選択の問題である。従って、本明細書に記載したロジカルオペレーションは、ステートオペレーション、構造デバイス、アクトまたはモジュールと様々に呼ばれている。これらのオペレーション、構造デバイス、アクトおよびモジュールは、ソフトウェアで実装されてもよいし、ファームウェアで実装されてもよいし、特殊目的デジタルロジックで実装されてもよいし、これらの任意の組み合わせで実装されてもよい。また、当然に理解されるように、図面に図示され、本明細書に記載されているものよりも、多くのまたは少ないオペレーションが実行されてもよい。これらのオペレーションは、本明細書に記載したものとは異なる順序で実行されてもよい。
【００２５】
ルーチン３００は、オペレーション３０２から開始し、そこでイベント処理ロジック１４６は、ユーザ１０２がウィンドウ１０６内のあるロケーションに挿入ポインタ２０６を置いたことを検出する。上述したように、一実施形態では、ユーザ１０２は、マウス１０８を使用して、またはキーボード１１０のナビゲーションキーを使用して使用中のカーソル２１０をＨＴＭＬドキュメント１２８のあるセクションから別のセクションに動かすことによって、ウィンドウ１０６内のロケーションに挿入ポインタ２０６を置くことができる。代替の実施形態では、ユーザ１０２は、ウィンドウ１０６内のあるロケーションで指またはスタイラスでディスプレイ１０４に触れることによって、挿入ポインタ２０６を置くこともできる。
【００２６】
挿入ポインタ２０６が置かれたことを検出すると、ルーチン３００は、オペレーション３０４に移動し、そこで編集面作成ロジック１４４は、挿入ポインタ２０６が置かれたウィンドウ１０６内のロケーションに現在表示されているＨＴＭＬドキュメント１２８の部分を判断する。一実施形態では、ＨＴＭＬドキュメント１２８は、テーブル２０４のセルのように、ドキュメントのメインボディ内または他のコンテナに収められたテキスト２０２のパラグラフに分割されていてもよい。ユーザ１０２がマウス１０８を使用して挿入ポインタ２０６を置くと、編集面作成ロジック１４４は、マウス１０８がクリックされたロケーションに対応するＨＴＭＬドキュメント１２８内のパラグラフのＩＤをＷｅｂブラウザ１２２に要求する。ユーザ１０２がキーボード１１０のナビゲーションキーを使用して挿入ポインタ２０６を置いた場合は、編集面作成ロジック１４４は、ＨＴＭＬドキュメント１２８の内容を分析することによって正しいパラグラフを判断する。代替の実施形態では、ドキュメントの他の分割が望まれることもある。
【００２７】
ルーチン３００は、オペレーション３０４から、オペレーション３０６に進み、そこで編集面作成ロジック１４４は、挿入ポインタ２０６が置かれたウィンドウ１０６内のロケーションに最も近く対応しているパラグラフ２０２内の文字位置を判断する。この文字位置は、編集面２０８においてカーソル２１０を、挿入ポインタ２０６がパラグラフ内に置かれた場所に対応する位置に置くために使用される。一実施形態では、編集面作成ロジック１４４は、バイナリサーチアルゴリズム(binary search algorism)を使用して文字位置を判断する。例えば、ＳＰＡＮエレメントのようなＨＴＭＬエレメントは、ＨＴＭＬドキュメント１２８の中でパラグラフのテキストを含んでいるマークアップの中間の文字位置に置かれる。ＳＰＡＮエレメントのロケーションのウィンドウ１０６内の座標がＷｅｂブラウザ１２２に要求され、挿入ポインタ２０６が置かれている位置の座標と比較されて、挿入ポインタ２０６がテキスト内のＳＰＡＮエレメントの前に置かれていたか、後に置かれていたかが判断される。このプロセスは再び繰り返され、ＳＰＡＮエレメントをマークアップの第１の半分または第２の半分の中間にそれぞれ置いて、挿入ポインタ２０６のロケーションに対応するパラグラフ２０２内の文字位置が判断されるまで繰り返し継続する。
【００２８】
ルーチン３００は、オペレーション３０６から、オペレーション３０８に進み、そこで編集面作成ロジック１４４は、ウィンドウ１０６に表示されたようにパラグラフ２０２の現在の位置とディメンションを判断する。一実施形態では、この情報は、いったんパラグラフ２０２が特定されると、Ｗｅｂブラウザ１２２に要求される。そのあと、編集面作成ロジック１４４は、オペレーション３１０で示されたようにパラグラフ２０２と同じロケーションで同じディメンションの編集面２０８をウィンドウ１０６内に作成する。一実施形態では、編集面作成ロジック１４４は、ＨＴＭＬ  ＩＦＲＡＭＥエレメントのような編集面エレメント１３０を作成するためにＨＴＭＬドキュメント１２８にマークアップを追加することによって編集面２０８を作成する。編集面エレメント１３０は、そのcontentEditable属性を「真(true)」にセットすることで編集可能にされる。代替の実施形態では、編集面エレメント１３０は、そのcontentEditable属性が「真」にセットされたＨＴＭＬ  ＤＩＶエレメントであってもよいし、ＨＴＭＬ  ＴＥＸＴＡＲＥＡエレメントであってもよい。編集面作成ロジック１４４は、編集面エレメント１３０のサイズと位置の属性をセットして、それがウィンドウ１０６内でパラグラフ２０２と同じ位置で同じサイズにＷｅｂブラウザ１２２によってレンダリングされるようにする。当業者ならば理解されるように、挿入ポインタ２０６が新しいパラグラフまたは空のパラグラフに置かれて、パラグラフの現在のサイズがゼロになっている場合は、編集面作成ロジック１４４は、カーソル２１０およびユーザ１０２がタイプした最初の数文字を正しく表示するのに十分な高さと幅の編集面２０８を作成する。
【００２９】
ルーチン３００は、オペレーション３１０から、オペレーション３１２に進み、そこで編集面作成ロジック１４４は、ＨＴＭＬドキュメント１２８の中のパラグラフ２０２の内容を編集面２０８にコピーする。この中には、ＨＴＭＬドキュメント１２８の中のパラグラフ２０２に含まれるテキストを編集面エレメント１３０にコピーすることと、編集面エレメント１３０の属性をＨＥＭＬドキュメント１２８中のパラグラフに適用されたものと同じになるようにセットすることとが含まれる。そのあと、編集面作成ロジック１４４は、オペレーション３１４でパラグラフ２０２をウィンドウ１０６内で見えないようにする。上述したように、これは、パラグラフ２０２がウィンドウ１０６内でユーザ１０２に見えなくなるような形で行なわれるが、パラグラフ２０２は、依然としてウィンドウ１０６内に同じ物理的スペースを占めている。例えば、一実施形態では、ＨＴＭＬドキュメント１２８の中のパラグラフ２０２の可視性属性は、「隠れている(hidden)」にセットされている。
【００３０】
次に、ルーチン３００は、オペレーション３１６に進み、編集面作成ロジック１４４は、挿入ポインタ２０６が置かれ、オペレーション３０６で計算された文字位置に対応する文字位置に編集面２０８内のカーソル２１０を位置づける。一実施形態では、これは、現在のセレクションを文字位置にある空のテキスト範囲にセットすることによって行なわれる。次に、ルーチン３００は、オペレーション３１８に進み、そこで編集面作成ロジック１４４は、編集面２０８のためにイベント処理ロジック１４６のイベントハンドラを登録する。図４を参照して以下に詳しく説明されているように、これによりイベント処理ロジック１４６は編集面２０８からのマウス、キーボード、およびスクローリングといった他のブラウザイベントを処理することが可能になる。オペレーション３２０において、ウィンドウ１６０内の現在のフォーカス(current focus)が編集面２０８にセットされる。
【００３１】
図４は、編集面２０８がウィンドウ１０６内でアクティブである間に編集面２０８またはＷｅｂブラウザ１２２によって生成される処理イベントのオペレーションを例示するフロー図である。ルーチン４００は、オペレーション４０２から開始し、そこでイベント処理ロジック１４６は、主にマウス１０８をクリックする、またはキーボード１１０上でタイプする、といったユーザ入力の結果として、編集面２０８がイベントを生成したことを検出する。ユーザ入力イベントを検出すると、イベント処理ロジック１４６は、編集面エレメント１３０がオペレーション４０４でユーザ入力をネイティブに処理するかどうかを判断する。
【００３２】
一実施形態では、ユーザ入力がキーボード１１０からタイプされた文字を表している場合は、イベント処理ロジック１４６は、タイプされた文字を編集面エレメント１３０によって処理される文字のリストと比較する。例えば、タイプされた文字が、文字、数字または句読点文字であれば、イベント処理ロジック１４６は、その文字が編集面エレメント１３０によって処理されるかどうかを判断する。しかし、タイプされた文字が結果的にＣＴＲＬ−Ｂのようにテキストに対するフォーマットの変更となる可能性がある場合は、その文字は、処理のために編集面エレメント１３０に転送されない。代替の実施形態では、イベント処理ロジック１４６は、カーソルナビゲーションキーまたはコピーおよびペーストショートカットキーのように、編集面エレメント１３０が追加のキーボード入力を処理することを可能にしてもよい。
【００３３】
編集面エレメント１３０がユーザ入力をネイティブに処理するとイベント処理ロジック１４６が判断した場合に、ルーチン４００は、オペレーション４１４に進み、そこでユーザ入力が処理のために編集面エレメント１３０に渡される。編集面エレメント１３０がユーザ入力を処理したあと、ルーチン４００は、オペレーション４１６に進み、そこでリフローロジック１４２が実行される。これは、図５を参照して以下に詳しく説明されている。一実施形態では、イベント処理ロジック１４６は、タイムアウト値を０にしてＷｅｂブラウザ１２２のタイマをセットしてから、ユーザ入力を編集面エレメント１３０に渡す。このようにして、ユーザ入力が編集面エレメント１３０によって処理され、イベント処理ロジック１４６がリフローオペレーションを実行するのを可能にしたあと、対応するタイマイベントが即時に生成される。
【００３４】
編集面エレメント１３０がユーザ入力をネイティブに処理しないとイベント処理ロジック１４６が判断した場合は、ルーチン４００は、オペレーション４０６に移り、そこでイベント処理ロジック１４６は、ユーザ１０２によって変更が行なわれていればその変更を含む編集面２０８からのテキストをコピーして、ＨＴＭＬドキュメント１２８のその下に位置するパラグラフ２０２に戻す。そのあと、イベント処理ロジック１４６は、編集面エレメント１３０をＨＴＭＬドキュメント１２８から除去することによって、オペレーション４０８で与えられたように編集面２０８を破棄する。オペレーション４１０において、その下に位置するパラグラフ２０２は見えるようにされ、オペレーション３１４で行なわれた変更が戻される。これは、一実施形態では、パラグラフ２０２の可視性(visibility)属性を「見える」にセットすることにより行なわれる。そのあと、イベント処理ロジック１４６は、オペレーション４１２で別の処理のためにユーザ入力をワードプロセッシングロジック１４８に渡す。
【００３５】
図５は、ＨＴＭＬドキュメント１２８内の編集面２０８がウィンドウ１０６内でアクティブである間に編集面２０８のリフローを実行するオペレーションを例示するフロー図である。本明細書に記載した種々の実施形態において、編集面エレメント１３０を作成するためにＨＴＭＬドキュメント１２８に追加されたＨＴＭＬマークアップは、結果として、ユーザ１０２がそのドキュメントに含まれる内容を編集している間にウィンドウ１０６内でサイズが正しく拡大または縮小しない編集面２０８が得られることがある。例えば、ＨＴＭＬ  ＩＦＲＡＭＥエレメントは、その内容を編集している間自らを正しくリサイズしない。この結果、編集面２０８の内容がその境界をオーバフローするために、編集面２０８がウィンドウ１０６に表示されているようにその境界内で内容をスクロールアップまたはダウンする可能性がある。このことが起るのを防止するために、リフローロジック１４２は、ユーザ１０２が内容を編集しているとき編集面２０８のサイズと位置をウィンドウ１０６に動的に残しておく。さらに、リフローロジック１４２は、その下に位置する見えないパラグラフ２０２のサイズと位置がアクティブ状態の編集面２０８の同じサイズのままであることを保証し、ＨＴＭＬドキュメント１２８の残り部分が編集面２０８の前後に正しくフローすることを保証する。このプロセスは、本明細書では「リフロー(reflow)」と呼ばれる。
【００３６】
ルーチン５００は、オペレーション５０２から開始し、そこでリフローロジック１４２は、編集面２０８のリフローが必要であるかどうかを判断する。一実施形態では、リフローロジック１４２は、編集面エレメント１３０によってネイティブに処理される各ユーザ入力イベントのあとリフローオペレーションを実行することができる。例えば、編集面２０８は、各文字がユーザ１０２によってキーボード１１０からタイプされたあとリフローされてもよい。別の実施形態では、リフローロジック１４２は、イベント処理ロジック１４６を通してＷｅｂブラウザイベントをモニタして、リフローオペレーションが必要であるかどどうかを判断することができる。例えば、リフローロジック１４２は、編集面２０８によって生成されたスクロールイベントに応答するだけで編集面２０８のリフローオペレーションを実行して、オーバフロー状態が起ったことを知らせることができる。さらに別の実施形態では、リフローロジック１４２は、編集面２０８の内容についてテキストメトリック計算(text-metric calculations)を実行して、オーバフロー状態が起ったとの可能性があることを判断することができ、オーバフロー状態が起った可能性が高ければ、リフローオペレーションが実行される。
【００３７】
編集面２０８のリフローが必要であると判断すると、ルーチン５００は、オペレーション５０４に進み、そこでリフローロジック１４２は、ユーザ１０２によって行なわれた変更があれば、その変更を含む編集面２０８からのテキストをコピーし、ＨＴＭＬドキュメント１２８のその下に位置するパラグラフ２０２に戻す。オペレーション５０６において、リフローロジック１４２は、ウィンドウ１０６内でＷｅｂブラウザ１２２にＨＴＭＬドキュメント１２８を再レンダリングさせるので、編集面２０８の修正された内容を含んでいる、その下に位置するパラグラフ２０２の位置とサイズをウィンドウ１０６内に表示されたように再計算するようにＷｅｂブラウザ１２２をトリガする。そのあと、リフローロジック１４２は、オペレーション５０８に示されているように、その下に位置するパラグラフ２０２の新しい位置とディメンションをウィンドウ１０６に表示されたように判断する。一実施形態では、この情報はＷｅｂブラウザ１２２に単に要求されるだけである。新しい位置とディメンションが分かると、ルーチン５００は、オペレーション５１０に進み、そこでリフローロジック１４２は、ウィンドウ１０６内でその下に位置するパラグラフ２０２の位置とサイズに一致するように編集面２０８を再配置し、サイズを変更する。
【００３８】
図６は、上記に示したように一時的編集面を使用してドキュメントを編集するために本明細書に記載したソフトウェアコンポーネントを実行する能力を備えたコンピュータ６００のための例示的なコンピュータアーキテクチャを示す図である。図６に示すコンピュータアーキテクチャは、従来のデスクトップ、ラップトップ、またはサーバコンピュータを例示したもので、コンピュータ１２０またはサーバコンピュータ１６２上で実行されるものとして本明細書に提示されているソフトウェアコンポーネントのいずれかを実行するために利用されることがある。
【００３９】
図６に示されているコンピュータアーキテクチャは、中央処理ユニット（ＣＰＵ）６０２、ランダムアクセスメモリ（ＲＡＭ）６１４とリードオンリメモリ（ＲＯＭ）６１６を含むシステムメモリ６０８、およびメモリとＣＰＵ６０２に結合するシステムバス６０４を含む。スタートアップ期間のように、コンピュータ６００内のエレメント間の情報の転送を支援する基本的ルーチンを含む基本入出力システムは、ＲＯＭ６１６に格納されている。コンピュータ６００は、本明細書の以下でより詳しく説明されているオペレーティングシステム６１８、アプリケーションプログラム、およびその他のプログラムモジュールを格納するためのマスストレージデバイス６１０も含んでいる。
【００４０】
マスストレージデバイス６１０は、バス６０４に接続されたマスストレージコントローラ（図示せず）を通してＣＰＵ６０２に接続されている。マスストレージデバイス６１０およびその関連コンピュータ可読媒体は、コンピュータ６００のために不揮発性ストレージを提供している。本明細書に記載したコンピュータ可読媒体の説明は、ハードディスクまたはＣＤ−ＲＯＭドライブのようなマスストレージデバイスのことを指しているが、当業者ならば理解されるように、コンピュータ可読媒体は、コンピュータ６００によってアクセス可能なコンピュータ記憶媒体ならば、どのような媒体でも利用可能である。
【００４１】
例を挙げると、コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を格納するためのいずれかの方法または技術で実現された揮発性および不揮発性の取り外し可能および固定媒体を含んでもよいが、これらに限定されない。例えば、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他の半導体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ(digital versatile disk)、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ、またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、または望みの情報を格納するために使用可能で、コンピュータ６００によってアクセス可能である他のどのような媒体を含んでもよいが、これらに限定されない。
【００４２】
種々の実施形態によれば、コンピュータ６００は、ネットワーク６２０のようなネットワークを通したリモートコンピュータとの論理的コネクションを使用したネットワーク化環境で動作してもよい。コンピュータ６００は、バス６０４に接続されたネットワークインタフェースユニット６０６を通してネットワーク６２０に接続されてもよい。当然に理解されるように、ネットワークインタフェースユニット６０６は、他のタイプのネットワークおよびリモートコンピュータシステムに接続するために利用されることもある。コンピュータ６００は、キーボード、マウス、またはエレクトロニックスタイラス（図６には図示されていない）を含む、いくつかの他のデバイスからの入力を受け取って処理するための入出力コントローラを含んでもよい。同様に、入出力コントローラは、ディスプレイスクリーン、プリンタ、または他のタイプの出力デバイス（同じく図６に図示されていない）に出力を提供してもよい。
【００４３】
上記で簡単に説明したように、いくつかのプログラムモジュールおよびデータファイルは、コンピュータ６００のマスストレージデバイス６１０およびＲＡＭ６１４に格納されてもよいし、その中には、ネットワーク化されたデスクトップ、ラップトップ、またはサーバコンピュータの動作を制御するのに適したオペレーティングシステム６１８が含まれている。マスストレージデバイス６１０およびＲＡＭ６１４は、１つまたは２つ以上のプログラムモジュールを格納してもよい。具体的には、マスストレージデバイス６１０およびＲＡＭ６１４は、Ｗｅｂブラウザ１２２またはＷｅｂサーバ１６４のアプリケーションプログラムを格納してもよいし、これらの各々は図１〜５を参照して上記に詳しく説明した通りである。マスストレージデバイス６１０およびＲＡＭ６１４は、他のタイプのプログラムモジュールを格納してもよい。
【００４４】
上述した説明に基づくと当然に理解されるように、本明細書には、一時的編集面を使用してドキュメントを編集するための技術が提供されている。本明細書に提示した主題はコンピュータの構造上の特徴、方法上のアクト、およびコンピュータ可読媒体に特有の表現で説明されているが、当然に理解されるように、請求項に定義された本発明は必ずしも本明細書に記載した特定の特徴、アクト、または媒体に限定されない。むしろ、これらの特定の特徴、アクトおよび媒体は、請求項を実現する例示の形態として開示されたものである。
【００４５】
上記に説明した主題は単なる例示として提供されたものであり、限定的であると解されるものではない。図示し、説明した例示の実施形態およびアプリケーションに従わなくても、および請求項に明記されている本発明の真の精神および範囲から逸脱することなく、本明細書に記載の主題に種々の改良および変更が行なわれてもよい。
【図１】
0005490729.tif 000002
【図２Ａ】
0005490729.tif 000003
【図２Ｂ】
0005490729.tif 000004
【図２Ｃ】
0005490729.tif 000005
【図３】
0005490729.tif 000006
【図４】
0005490729.tif 000007
【図５】
0005490729.tif 000008
【図６】
0005490729.tif 000009