JP3950937B2 - インターフェースの方法、複合文書生成方法、及び複合文書表示方法 - Google Patents
インターフェースの方法、複合文書生成方法、及び複合文書表示方法 Download PDFInfo
- Publication number
- JP3950937B2 JP3950937B2 JP51818295A JP51818295A JP3950937B2 JP 3950937 B2 JP3950937 B2 JP 3950937B2 JP 51818295 A JP51818295 A JP 51818295A JP 51818295 A JP51818295 A JP 51818295A JP 3950937 B2 JP3950937 B2 JP 3950937B2
- Authority
- JP
- Japan
- Prior art keywords
- shape
- frame
- contents
- document
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Document Processing Apparatus (AREA)
Description
本発明はコンピュータとそのコンピュータの人間の利用者との間のインタフェースに関し、特に、複合文書の創成と操作における柔軟性をより高めたコンピュータと人間とのインタフェースアーキテクチュアに関する。
発明の背景
現在、パーソナルコンピュータにおいて利用される多くのアプリケーションは、単一のモノシリックプログラムとして書かれており、これらの1つ1つで実行される特定の基本的な機能をもつように設計されている。例えば、ワードプロセシングプログラムは、テキスト文書を創成し編集するために設計されている。一方、テキスト処理のためには設計されていないが、他の多くのプログラムもまた、付随的に文字を使用することもある。例えば、帳票プログラムでは文字をその帳票内に情報の行と列とを表すための記述子として挿入することが可能である。同様に、ペインティングや描画プログラムのような図形プログラムは、そのペインティングをした図形や描画した図形内にラベルとしてテキストを用いることができるようになっている。これらの異なる種類のプログラム全ては、テキスト編集機能を提供しているが、テキストが編集される方法は互いに異なっている。アプリケーションのいくつかは、この機能に関して非常に大きな能力をもっているが、他のものではその能力かなり限定されている。結果として、ユーザは同じ仕事、例えば、テキスト編集を実行するために異なる種類のアプリケーション夫々に関して、異なる方法を学ぶことが要求されている。
それゆえ、必要とするときにはいつでもテキストのような文書のコンポーネントを用いることができるとともに、それが存在する特定の環境に係わりなく、同時に統一した方法でこれを創成したり編集できるアーキテクチュアを備えることが望まれている。そのような方法を用いるなら、テキストがワードプロセシング文書、帳票、図形文書、或いは、他の文書の中に存在しようと、文字を編集ために同じコマンドセットを用いることが可能である。ユーザはただ1つのテキストエディタについてのみ学べばよく、これによって編集過程はもっと快適なものになる。
さらにこれらの考え方に沿って、文書自身の中で複合文書のコンポーネントを編集できることが望まれている。本発明の中では、複合文書とは、2つ以上の異なる種類のプログラムが用いられて1つの統合された情報としての形をなすものである。例えば、それには、図形プログラムによって創成された図形を含むテキスト文書がある。これら2つの種類の情報は互いに包含しあうという関係をもっている。即ち、テキスト文書は、図形オブジェクトがテキスト文書とともに移動し、そのテキスト(コンテナ)文書によって影響されるというように、図形オブジェクトのコンテナとして機能する。
過去において、この種の複合文書は2つの別個のアプリケーションを実行することによって創成された。ワードプロセシングプログラムはその文書のテキスト部分を創成するために用いられた。別の図形アプリケーションは図形を生成するために用いられた。これら2つのプログラムでの生成物を単一の文書に組み込むために、図形はある特定のデータタイプ或いは形式で保存され、このデータ構造の内容がワードプロセシング文書内に、例えば、カット・ペースト操作を用いて、置かれる。これら別々の形の情報を1つの文書にまとめることは、しばしば、プレゼンテーションマネージャとして言及される第3のアプリケーションによって達成されていた。
さて、一度、図形がワードプロセシング文書に埋め込まれたなら、その内容は静的なものとなる。もし、その図形を変更する必要があるなら、ユーザは図形プログラムを呼び出して、もとの図面を取り出し、そのプログラム内でその図形を編集する必要がある。その編集が複合文書の外でなされると、ユーザはその変更がなされたように複合文書内でその変更を見ることはできない。その改訂された図面はその後ワードプロセシング文書内に元々の図面の代わりに埋め込まれねばならない。
種々のアプリケーションの間を切り替えるための必要を克服するために、複合文書の種々のコンポーネントがその複合文書内で編集できるようにすることが望ましい。このやり方は時間を節約し手順を簡略にするのみならず、ユーザがそれらが作られている複合文書内の文脈で変更をそのまま見ることができるようにもする。
従って、本発明の目的は、タスクが実行される環境に係わりなく、そのタスクに対して一貫したユーザインタフェースが備えられたシステムを提供することである。さらに、このような考え方に沿って、本発明はまた、複合文書の主たるパーツと埋め込まれたパーツとの間でのインタフェースとしての役割を果たす新しいデータ構造を提供し、これらのパーツ間での協働を容易にすることを別の目的としている。
発明の概略説明
これらの目的を追求かつ達成するため、本発明は、以前は不可能であった方法で異なる種類全ての情報伝達要素が文書内で結合され操作できるようにする統一されたインタフェースを備える。本発明の文脈にそえば、文書はインタフェースの要素であると考えられ、そのインタフェースの目的はユーザに情報を提示し、その情報、例えば、テキスト文書や図形文書が編集できるようにすることである。
インタフェースの統一性は、タスクを達成するために、以下、“パーツ”として言及される基本構築ブロックを採用した文書中心のアーキテクチュアを通して備えられる。1つのパーツは、内容とその操作子という2つの主要なコンポーネントで構成される自己完結型の要素である。これら2つのコンポーネントは、そのパーツがシステム内のどこに存在していようと、例えば、フォルダ内やデスクトップ上の文書の要素として、常にユーザから利用可能である。そのパーツの操作子は、パーツの内容に関するどんな種類のエディタでもよいし、ビューワでもよいし、必要であるなら、ユーザによってそれは選択可能である。例えば、パーツの内容がテキストであるなら、そのパーツのコンポーネントであるエディタは、ユーザが親しんでいるどんなワードプロセッサでもよい。そのワードプロセッサは、テキストが埋め込まれているところではどこでも、そのパーツのテキスト内容を編集するために用いられる。従って、たとえ、そのパーツが非テキスト文書、例えば、帳票内に埋め込まれていても、そのパーツのテキストの内容は、依然として、ユーザが選択したワードプロセッサで編集できる。
この特徴を示すインタフェースは、より単純でより強力であるという顕著な固有の特性を有している。その単純さは、ユーザはテキストを編集するといった特定のタスクを実行するために1つの方法を学べば良いという事実に起因する。同時に、そのテキストエディタは、多くのアプリケーションで現在見られるそれほど性能のよくないものを置き換えてしまう十分な機能をもったモジュールであり得るために非常に強力であるといえる。
パーツの2つの基本的なコンポーネントは、パーツをオブジェクト(その固有の内容のために)としても、(その固有の操作子或いはエディタに起因する)アプリケーションとしても機能させ得る。これらの特徴により、パーツは数多くの機能を提供する。例えば、どの文書もパーツであり、どのパーツも文書として作用する。これを例示すると、テキストパーツは、文字を含む文書であり、図形パーツは線や円を含む文書である。
このパーツの別の特徴は、それがコンテナとして機能することである。例えば、1つのパーツは別のパーツを含むことができる。さらに、パーツは、それが含むパーツの種類に限定されない。むしろ、1つのパーツがどんな種類のパーツを含むことができるなら、それは全種類のパーツを含むこともできる。このパーツの特徴は、本発明を複合文書の創成に理想的なアーキテクチュアにしている。文書はパーツを含んでいるので、それは文書や操作子を変えることなく異なる種類の情報を表現する全ての種類のパーツを自動的に含むことができる。
これらの特徴により、ユーザインタフェースでは所望の結果を生み出すように異なるパーツを調整することで複合文書を構成するようになる。この意味で本発明のインタフェースは、アプリケーション指向というよりはむしろ文書中心型である。即ち、従来のアプリケーションは本発明のインタフェースの役割を果たしていないが、本発明はパーツを形成するために結合されるデータからは分離している。
このインタフェースの別の特徴はパーツをユーザに表現する方法である。パーツは、そのパーツのハンドルを提供する小さな絵ともいえるアイコンとして表現され、そのアイコンによって全体が操作できるようになっている。例えば、アイコンはデスクトップ上とウィンドウ間でドラッグされるし、そのアイコン自体がドラッグ操作によって他のアイコンをドロップする目的地ともなり得る。また、パーツの内容は、従来のアプリケーションに類似したデスクトップ上のウィンドウによって定義されたワークスペースに拡大される。
パーツはまたフレームとしても表現される。フレームはパーツを表現する表示画面のある領域である。アイコンのように、フレームはパーツにハンドルを提供し、そのハンドルによって全体として操作が可能になる。フレームもデスクトップ上やウィンドウ間でドラッグされ、それ自体がドラッグ操作によるドロップ先を提供しており、オープンされてウィンドウとなったり、クローズさされてフレームに戻ったりする。しかしながら、アイコンとは異なり、フレームでパーツの内容を見ることや編集することができる。
フレームとは、例えば文書のような主たる(コンテナ)パーツと、埋め込まれた従たるパーツとの間のインタフェースとして機能するデータ構造である。フレームは、数多くの属性から成り立っており、その属性のいくつかは主たる(コンテナ)パーツによって、またあるものは埋め込まれた従たるパーツによって制御される。このようなフレームの媒介によって、主たる(コンテナ)パーツと埋め込まれた従たるパーツに関する操作子は、主たる(コンテナ)パーツ内で埋め込まれた従たるパーツに与えられる空間割り当てを調整する。
ユーザインタフェースに関し、基本的構築ブロックとしてパーツを利用することによって、パーソナルコンピュータのアプリケーションでは以前には利用不可能であった能力が備えられる。これらの能力は、これ以降、本発明の好適な実施例での具体例を参照して説明する。
【図面の簡単な説明】
図1はコンピュータシステムの主要な要素のブロック図である。
図2A−図2Bは夫々表示画面の例であり、フォルダから文書にパーツをドラッグする様子を示している。
図3は夫々表示画面の例であり、フレームを起動する様子を示している。
図4はアクティブなフレーム内で選択されたフレームの様子を示す図である。
図5は複合文書のレイアウトを定義する基本プリミティブの様子を示す図である。
図6A−図6Cはフレームとファセット構造の例を示す図である。
図7A−図7Fはフレームとファセット属性に関し、埋め込まれた従属パーツと主たる(コンテナ)パーツとの間で発生する調整の例を示すフローを示す図である。
図8はエディタを立ち上げる過程を示すフローチャートである。
図9A−図9Eはデスクトップと文書との間でのパーツのドラッグを示す表示画面の移り変わりを示す図である。
図10−図10Bはパーツをドラッグしてドロップする過程を示すフローチャートである。
図11−図11Cは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図12A−図12Cは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図13A−図13Cは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図14は、あるパーツから別のパーツにマテリアルを置く過程を示すフローチャートである。
図15は、アクセス制限されたパーツを示す表示画面である。
図16は、パーツビン示す表示画面である。
実施例の詳細な説明
本発明とこれによって得られる利点の理解とを容易にするために、本発明の特徴をアップルコンピュータ株式会社によって供給されるマッキントッシュ(Macintosh▲R▼)コンピュータに本発明を適用することによって説明する。しかしながら、関連技術に詳しいものにとっては、本発明の原理はこの特定の動作環境によって限定されるものではないことが理解されよう。むしろ、本発明を基礎とする概念は、文書、特に、複合文書のコンパイルや編集に統一されたインタフェースを提供することが望ましいどんな種類のコンピュータオペレーティングシステムにも適用できる。
本発明において用いられる典型的な種類のコンピュータシステムは、図1に示したブロック図のような構成である。ただし、そのコンピュータそれ自体の構造は、本発明の一部を構成している訳ではない。ここでは、本発明の特徴がどのようにコンピュータの構造と協働しているかを、後のでの理解のために簡単に説明する。図1において、システムは種々の外部周辺装置12を接続したコンピュータ10を含んでいる。コンピュータ10は、中央処理装置(CPU)14、通常はRAM16とROM18を有するスタティックメモリと磁気或いは光学ディスク20のような不揮発性記憶装置とが組み込まれた主記憶とを含んでいる。CPU14は、内部バス22を介してこれらメモリの1つ1つと交信する。周辺装置12は、キーボード24のようなデータ入力装置と、マウス、トラックボール等のようなポインティング・カーソル制御装置26とを含んでいる。CRTモニタやLCDスクリーンのような表示装置28は、コンピュータ内で処理されている情報、例えば、文書の内容を可視化して表示する。この情報のハードコピーはプリンタ30或いは同様の装置によって備えられる。これらの外部周辺装置各々は、コンピュータの1つ以上の入出力ポートによって、CPU14と交信する。
本発明は、特に、CPU14がキーボード24やカーソル制御装置26によって操作される情報を取り扱う方法を制御したり、また、操作された情報がユーザに対して表示装置30を通して表示される方法を制御するシステムに関するものである。本発明の原理を用いるインタフェースの例が図2Aと図2Bに示されている。これらの図は、ワークスペース36を定義するデスクトップ34を図示している。また、そのデスクトップにはメニューバー38が含まれている。ワークスペース36の中には、2つのウィンドウ40、42がある。左側のウィンドウ40は、種々のパーツを表現するアイコンを含むフォルダのウィンドウである。図2Aに示されているように、3つのアイコン44はテキストパーツに属し、4番目のアイコン45は図形パーツを表現し、さらに別のアイコン46は帳票46を表現している。6番目のアイコン48は、プレゼンテーションスライドの創成のために用いられるパーツを表現するステーショナリアイコンである。図2Aにおいて、右側のウィンドウ42は、テキスト文書を含んでいる。即ち、その文書はテキストパーツ50を含んでいる。このテキストパーツはウィンドウ42の中にテキストをタイプすることにより、或いは、そのウィンドウ内にアイコンによって表現され以前に創成されたテキストパーツをオープンすることにより創成される。
図2Bは図形アイコン45が左側のウィンドウ40のフォルダから右側のウィンドウ42のテキスト文書にドラッグされた操作の結果を図示している。図2Aと図2Bに示されているようなデスクトップ・メタフォーを備えたユーザインタフェースでは知られているように、ドラッギングとは、オブジェクトがデスクトップ上やウィンドウ内でカーソル制御装置26を起動することで、移動されたり複写されたりするときになされる操作である。一度、図形アイコンが文書内に置かれたなら、その内容は、フレーム52に表示される。その文書は今や図形要素とテキスト要素とを含んでいるのであるから、それは複合文書として言及される。
複合文書において、例えば、エディタのような異なるプログラム実行モジュールは共働し、単一の統合された情報を生成する。そのような実行モジュール各々は、その文書の全情報の内容の1つのセグメント、即ち、パーツを制御する。包含されているものは、その文書のパーツを互いに関連づけるために用いられる。包含されているものは、ユーザが包含されたパーツ或いは従属する埋め込まれたパーツが主たる(コンテナ)パーツとともに移動したり、或いは、主たるパーツによって影響を受けることを期待する論理的な関係を表現する。
テキスト50とフレーム52内にある図形要素は別々のパーツに属し、これらのパーツがいっしょになって複合文書を作り上げる。前述したように、パーツは、内容とその内容に関する操作子とで構成される自己完結型のエンティティである。これら2つのコンポーネントは、いつもそのパーツがアクセスされるとき、それがデスクトップのどこに位置しているかに関わらず、利用可能である。従って、図2Aに示されているように、図形アイコン45がウィンドウ40のフォルダに位置しているとき、そのアイコンは図形要素とその要素に関するエディタとを含むパーツを表現している。そのパーツがウィンドウ42の文書に移動するとき、その内容はその移動とともに移動し、その内容に関するエディタの機能もユーザには利用可能である。
この特徴で重要なことは、パーツの内容がどこに位置していようと、その内容が常に編集可能であるか、さもなければ操作可能であるという事実である。従って、図2Bの複合文書において、テキストの内容50はその文書内で、例えば、そのテキストを初めに創成するために用いられたのと同じワードプロセッサを用いることによって、編集可能である。図形エディタがフレーム52内でパーツのコンポーネントとして存在しているのであるから、そのパーツの図形の内容が適宜、直接編集可能となる。従って、パーソナルコンピュータに関する以前のアプリケーションとは異なって、ユーザは例えば、デスクトップ34の他のウィンドウにおいて図形アプリケーションをオープンし、望むように図形情報を編集し、それから編集された図形をウィンドウ42の文書にイクスポートするといった必要はない。むしろ、ユーザは、中間的な工程を導入することなく、直接ウィンドウ42の文書の内容の中でフレーム52の内容を編集できる。そのユーザはアプリケーションよりむしろ文書の内容に注意を向け、周辺の文書によって備えられる文脈を利用できる。
それ故に、パーツとは、基幹システム技術で自律性のある自己完結的なオブジェクトである。それは、どんな種類のソフトウェアエンジンでも環境でも使用することができ、ユーザはパーツについて特別なエディタの操作を学ぶ必要はない。そのカテゴリーのパーツのエディタが基幹システムで表現されている限り、ユーザは、そのパーツの能力を十分に利用することができる。さらに、もし、テキスト部分が特別なテキストエディタ(ワードプロセッサ)で生成されたなら、ユーザはただそのテキストエディタをそのパーツに用いるように限定されている訳ではない。もし、そのユーザが異なるワードプロセッサのコマンドにより親しんでいるなら、そのプロセッサを、コンピュータシステムでの全てのテキストパーツに関する好適なエディタとして指定できる。
パーツは、文書やその内容にのみ限定されない。むしろ、システム内のどのオブジェクトもパーツを構成する。従って、ウィンドウ40のフォルダは、パーツであり、その内容はアイコン44−48である。同様に、デスクトップ34それ自身もパーツであり、ダイヤログボックスや他のユーザインタフェースオブジェクトも同様である。
フレームとアイコンは、パーツの2者択一的な表示である。ユーザは、パーツのフレーム表示とアイコン表示とを切り替えることができ、これは、適当なキーボードからのコマンドやメニューコマンドによってなされる。もし、文書が大きく、例えば、数ページにも及ぶなら、その一部分だけしかフレームに表示されない。それゆえ、アイコンのようなフレームは、ウィンドウ内にオープンすることができ、これによって、例えば、これをスクロールして大きなパーツの全ての内容を見る事ができ、ウィンドウ内で利用可能な機能、例えば、拡大機能、を用いて編集することができる。同様に、そのパーツはウィンドウ表示からクローズしてフレーム表示に戻すこともできる。フレームは、その内容を適宜編集することができるという点で、アイコンと異なる。フレームはまた、1つのフレーム、或は、複数のフレームがウィンドウ内に存在するので、ウィンドウとも異なる。ウィンドウは、オブジェクトの遷移的なビューであり、それは、ただパーツが編集されたり、検証されたりするときにのみ、オープンされたままになる。これに対して、フレームは、パーツの内容の永久的な表示方法である。
パーツ、それはアイコン或はフレームの表示形式をとっているが、それは、他のパーツのコンテナとしても働く。図2Bの例において、文字50はフレーム内に存在するが、そのフレームの境界は、ウィンドウ42のそれと同じである。この比較的大きなフレームは、図形パーツに関する比較的小さなフレーム52を含んでいる。その文字部分は、ウィンドウの最外部にあるので、それば、“ルートパーツ”とラベルが付される。一般的にいって、そのルートパーツは、ウィンドウに関する基本的な編集方針を確立する。
ルートパーツは、図2Aで示されるアイコン48のような、ステイショナリアイコンによって生成される。一般に、ステイショナリアイコンは、予め定義されたパーツを表現し、物理世界におけるペーパ台についてのメタフォーとして機能する。新しい文書が生成されるとき、人はペーパ台より未使用の用紙を一枚むしりとり、文書の内容、例えば、単語や図面などをその上に置く。ステイショナリアイコンも同様の役割を果たすのである。ユーザが新しい文字文書を生成したい場合、テキスト文書ステイショナリアイコンが、例えば、それをダブルクリックすることによって、オープンされる。これに応答して、そのステイショナリアイコンは、それ自身のコピーを生成し(或は、“むしりとり”)、ウィンドウやフレーム内にそれをオープンする。このコピーは、最初は何の内容も入っていないブランクか、或は、レターヘッドや会社のロゴのような所定の情報をもった普通のパーツである。それから、ユーザは、その文書に付加的な内容、例えば、文字をいれる。
ステイショナリそれ自身は、ウィンドウとしてもフレームとしてもオープンはされず、ただアイコンとして存在する。はぎとられたコピーのみが、オープンするのである。従って、ステイショナリアイコンが文書内にドラッグされた場合、それ自身をフレーム内にオープンするというよりむしろ、コピーがむしりとられ、文書内に置かれ、そのコピーがフレーム内でオープンするのである。ステイショナリアイコンそれ自身は、移動前に占めていた位置に戻る。これによって、ステイショナリが間違って文書に挿入されたり、或は、失われてしまうことを防いでいる。
フレームは、コンテナとして機能するのであるから、それはウィンドウの良く知られた性質を示すことになる。例えば、ユーザが図形オブジェクトのような固有の内容を選択すると、選択された内容を含むフレームはアクティブになる。パーツがアクティブであると、それはコマンドやキーボードのイベントを受け付け、そのメニューと他のユーザインタフェースオプションが表示される。フレームのアクティベーションの例が図3Aと図3Bに示されている。図3Aは、テキストと図形部分とを有する複合文書を含むウィンドウ54を有したデスクトップを示す。この複合文書において、テキストはその文書のルートパーツを形成する。図3Aの例では、そのテキストの一部56が選択され、反転表示されている。この場合、選択されたパーツを含むフレームは、ウィンドウ自身の境界に接している。デスクトップのメニューバー58は、テキストを編集するために適切なコマンドを含んでいる。
図3Bは、図形要素、即ち、三角形60が選択された例を示している。その図形要素を含むフレームが、今度はアクティブになり、その境界線は、点線62によって示されている。そのアクティブフレームが今回は図形パーツであるので、メニューバー58のコマンドは、図形の内容を編集するのに適切なものに変えられる。さらに、パレット64がデスクトップに表示され、アクティブフレームの図形の内容を編集するのに必要なツールを備える。
フレームをアクティベートすることに加え、ユーザは、また、フレームを選択しても良い。そのフレーム選択は、例えば、フレームをアクティベートしてその境界が見えるようにし、その後、カーソルのポインタをフレームの境界上に位置させる一方、カーソル制御装置のボタンを押してすることで達成される。図4は、図形の内容とテキストの内容の両方を含むフレーム66を図示している。そのフレームの境界68は、点線によって示され、それがアクティブフレームであるという事実を示している。そのアクティブフレームの中に、テキストの内容を含むフレーム70がある。このフレームは、カーソル72のポインタをフレームの境界73の上に位置させる一方、カーソル制御装置のボタンを押すことによって選択される。フレーム72が選択されたという事実を示すために、選択フレーム72の境界73は、アクティブフレーム66のそれとは異なる外観となる。例えば、その境界は、図4にしめすように、広くなる。さらに加えて、サイズ変更ハンドル74が備えられ、これを用いてフレームの形やサイズをよく知られた方法で変化させることができる。
一般に、パーツの内容の一部或はいくつかが選択されたときはいつでも、選択された要素を含む最小のフレームがアクティブフレームとなる。従って、フレーム70内の1つのワードが、例えば、カーソルをそのワードに位置付けしてカーソル制御ボタンをクリックすることによって、選択されると、フレーム70はその状態が選択状態よりアクティブ状態へと変化する。同時に、フレーム66の境界は目には見えなくなる。なぜなら、このフレームは、もはやアクティブでもなければ、選択されている訳でもないからである。逆に、もしフレーム66が、その境界68上をクリックすることで選択されたなら、境界73が消滅し、境界68が現れるようになり、フレーム66を含むフレーム(或はウィンドウ)の境界(図4には示されていない)が高輝度表示になって、それがアクティブであることを示す。
図3A、図3B、図4の例において、フレームは矩形であるように示されている。さて、この形はたいていの種類のパーツの内容を表示するためには好ましいものであるが、フレームの形は、矩形に限定される必要はない。むしろ、そのフレームは、その表示内容に適するようにどんな形をとっても良い。
フレームは、パーツそれ自身の要素ではない。むしろ、クレームは文書のレイアウトを定義するプリミティブを形成する3つの別々のデータ構造の1つである。これら3つのデータ構造は、カンバスとフレームと変換とを有している。図5において、カンバス75は文書の全体的な文脈を表現するデータ構造である。これは、座標空間の説明と一連の図形コマンドを画像や表現形式の中に取り込むメカニズムとを含んでいる。カンバスの例は、コンピュータ画面、プリンタに関するページ記述言語、コンピュータディスプレイについての表示リスト上でのビットマップ或はピクセルマップである。
フレーム76は、主たる(コンテナ)パーツと埋めこまれるパーツとの間で共有情報貯蔵所としての役目を果たすデータ構造である。変換は、図形コマンドに適用される1連の幾何学的説明を表現しているデータ構造である。図5の例において、その変換は、参照点、例えば、カンバス75の左上端の点からのオフセット77として表現される。他の種類の変換としては、スケーリング、回転、ねじれ、歪みなどがある。一般的に言って、変換とは、カンバス75上でのフレーム76の位置や方向性についての幾何学的な説明である。それは、実際のところ、2次元的或は3次元的なものである。
主たる(コンテナ)パーツと埋めこまれるパーツとの間でのインタフェースとして機能するために、フレーム各々が多くの特徴的な属性をもったデータ構造なのである。これらの属性のいくつかは、種々の“シェイプ”と呼ばれる。これらシェイプ各々は、主たる(コンテナ)パーツと埋めこまれるパーツとの間で共有されるある文書文脈を定義する領域の幾何学的な説明を表現する。シェイプのいくつかは主たる(コンテナ)パーツで制御され、一方、他のものは埋めこまれるパーツによって決定される。一般に、これらの種々のシェイプは、文書の文脈の座標空間の任意の領域、例えば、カンバスを表現できる。この点、フレームのシェイプは、隣接領域と同様に分離領域を表現できる。
フレームの特徴的なシェイプは、図6Aに示されている。この図において、左側の図はテキスト(ルートパーツ)と三角形によって表現される図形パーツとを含む複合文書を示す。一方、右側の図は図形パーツに関するフレームのシェイプの属性を示している。
フレームの特徴的な属性の1つは、フレームシェイプである。そのシェイプは、主たる(コンテナ)パーツ(テキスト)によって決定され、その埋め込まれたパーツ(図形要素)にそのレイアウトを示すために用いる幾何学的な領域を記述する。図6Aにおいて、フレームシェイプは、外の実線の境界78によって示されている。そのシェイプによって示される領域は、スケーリングやライン切断や、埋め込まれたパーツに関するエディタによってなされねばならないその他類似のレイアウト決定に影響する。ただ、主たる(コンテナ)パーツだけが直接にフレームシェイプを変更できる。このシェイプが主たる(コンテナ)パーツによって変更されたとき、通知が埋め込まれたパーツに対してなされ、適切な変更が埋め込まれたパーツの表示及び/或は内容においてもなされるようにしている。
フレームのさらに別の特徴的な属性は、図6Aに内側に斜線が施されている境界79で示されている使用中シェイプである。このシェイプは、埋め込まれたパーツによって決定され、主たる(コンテナ)パーツに対して、その埋め込まれたパーツによって実際に使用されている幾何学領域の部分を説明する。このシェイプは、必要に応じてフレームシェイプのサブセットになる。主たる(コンテナ)パーツは、使用中シェイプに引張ってくる事が許されているのではなく、使用中シェイプの外側の領域、それがたとえ、フレームシェイプ78の内側であっても、その領域に引張ってくることは自由である。その埋め込まれたパーツが使用中シェイプを変更でき、それがなされたときには、その埋め込まれたパートはその変更を主たる(コンテナ)パーツに通知する。
フレームの他の2つの属性は、そのグループタグとその変換である。主たる(コンテナ)パーツが埋め込まれるに適当な空間を備えることができないとき、その埋め込まれたパーツは主たる(コンテナ)パーツから新しいフレームを要求することができる。そのグループタグは、数字のような識別子であり、それは、与えられた主たる(コンテナ)パーツにおいて一連の関連したフレームをただ一つだけ識別する。ここで、主たるパーツ(コンテナ)の全ては、単一の埋め込まれたパーツと関連している。主たる(コンテナ)パーツはそのフレームグループタグを用いてグループにおける種々のフレームの幾何学的な関係を制御する。
フレーム変換は、フレーム内の埋め込まれたパーツを表示するために用いられる全ての図形コマンドに適用されることになる幾何学的な変換を特定するデータ構造である。例えば、そのパーツが90°回転させられるとするなら、フレーム内に表示されている全ての項目もその角度だけ回転する。この変換は、注目フレーム内に囲まれている全てのフレームと埋め込まれているパーツそれ自身に適用される。フレーム変換はその埋め込まれたパーツによって制御される。
主たる(コンテナ)パーツと埋め込まれたパーツとの間の関係において係わり合う別のデータ構造は、フレームのファセットである。ファセットは、特定の配置と、主たる(コンテナ)パーツと埋め込まれたパーツとの間の幾何学的関係と関連のあるクリッピング情報を表現する。フレームのように、ファセットもまた多くの特徴的な属性をもっている。これらの1つはその属性が関連するフレームである。ファセットの属性の別のグループは、種々のシェイプを定義する。ファセットのシェイプは図6B及び図6Cに示されている。これら2つの図の例において、ルートパーツはテキスト文書であり、これは3つの図形パーツ、即ち、三角形、楕円、表を含んでいる。図6Bの右側の図は三角形のパーツに関するファセットのシェイプを示し、図6Cの右側の図は楕円のパーツに関するファセットのシェイプを示す。説明を明瞭にするために、これら2つのパーツに関するフレームのシェイプ78と80は夫々、図6Bと図6Cとに示されている。
ファセットの属性の1つはクリッピングシェイプである。クリッピングシェイプは、埋め込まれたパーツに、パーツの内容が描画或は表示可能な幾何学的領域を説明する。図6Bと図6Cの例において、不透明な三角形の図形パーツの右下部は表が重なりあっている。それゆえ、その三角形のクリッピングシェイプ81は、その表によって重なりあっているこの部分を除外する。クリッピングシェイプは、コンテナ(主たるパーツ)、即ち、図6Bで図示された例のルートパーツを形成するテキスト文書によって決定される。そのコンテナ(主たるパーツ)だけがクリッピングシェイプを変更でき、そして、それがなされたときには、その変更を埋め込まれたパーツに通知する。
ファセットの特徴的な属性である他のシェイプは、そのアクティブシェイプであり、それは図6Bにおいて細い実線の三角形のシェイプ82で示されている。このシェイプは、埋め込まれたパーツによって決定され、フレームシェイプや使用中シェイプとは独立である。これは、主たる(コンテナ)パーツに、埋め込まれたパーツがカーソル制御入力のような幾何学的に関係したイベントを受信するべき幾何学的領域を説明する。この領域内でイベントが発生したときにはいつでも、ユーザインタフェースはそのイベントを主たる(コンテナ)、パーツではなくむしろ、埋め込まれたパーツに伝える。しかしながら、主たる(コンテナ)パーツは、その埋め込まれたパーツのアクティブシェイプ82の外側の領域で発生するイベントには自由に応答する。
ファセットのもう1つの特徴的な属性は、ファセット変換である。このデータ構造は、主たる(コンテナ)パーツによって制御され、その主たる(コンテナ)パーツ内で埋め込まれたパーツを表示するために用いられる全ての図形コマンドに適用される変換を特定する。即ち、この変換は、主たる(コンテナ)パーツのカンバス上で情報がどこにどのように表示されるかを指示する。この変換は、注目ファセット内で入れ子になった全てのファセットと、埋め込まれたパーツに適用する。
これら2つの属性に加えて、ファセットは他のシェイプを含む。これらの1つは不透明シェイプである。このシェイプは埋め込まれたパーツによって制御され、主たる(コンテナ)パーツにそのクリッピングシェイプのどの領域が不透明であるかを説明する。不透明領域は、埋め込まれたパーツがパーツの描画結果を用い、その埋め込まれたパーツがそれ自身の表示を完成させるために隠す領域のことである。図6Bと図6Cの例において、楕円は不透明であり、クリッピングシェイプ83と同一の広がりをもつフレームシェイプ80(これらは図6Cで別々に描かれているが)のフレーム内に含まれている。このパーツは、所望の色、例えば、青の透明な網を、それが隠すものに施す。表示中、このパーツはカンバス上で以前描画された結果を用い、その網の下ではより青みがかったようにするために、描かれた色を変更する。
このパーツに関する不透明シェイプ84は、図6Cに示されている。このシェイプは、埋め込まれたパーツ、即ち、楕円によって制御される。それは表示システムによって用いられ、z軸方向、即ち、表示平面に垂直方向に関し、埋め込まれたパーツの下側に現れるパーツに関する表示及びクリッピング情報の順序を決定する。埋め込まれたパーツが不透明領域のシェイプを変更すると、そのパーツは主たる(コンテナ)パーツに通知する。
ファセットのもう1つの特徴的なシェイプは、オーバラップシェイプである。このシェイプは主たる(コンテナ)パーツによって制御され、その埋め込まれたパーツに、主たる(コンテナ)パーツの不透明な内容によって隠されたクリッピングシェイプの部分について、説明する。三角形のパーツに関するオーバラップシェイプ85は、図6Bに示されている。その図に示されているように、クリッピングシェイプ81内の幾何学的領域が楕円パーツについての不透明シェイプ84に一致している。説明を明瞭なものとするために、図6Bにおいて、オーバラップシェイプ85はクリッピングシェイプ81からオフセットがあるように図示されている。しかしながら、実際には、オーバラップシェイプの上と左の境界は、クリッピングシェイプの端と一致する。
主たる(コンテナ)パーツの不透明な内容は、埋め込まれたパーツの表示コーードの結果を必要とする内容であり、これによって主たる(コンテナ)パーツは不透明な内容を正しく描画することができる。その埋め込まれたパーツがこの領域におけるその内容の何かを変更したときにはいつでも、そのパーツは主たる(コンテナ)パーツに通知を行なって必要な表示変更がなされるようにしなければならない。
フレームとファセットは各々、特徴的なシェイプやこれらに関係した他の特徴的な属性をもつことが理解できる。一般的に言って、フレームの属性は持続性があり、文書に関するファイルとともに保存される。これとは反対に、ファセットの属性は一時的なものであり、文書が画面上に表示中にだけ現れるものである。
そのフレームデータ構造は、主たる(コンテナ)パーツとその埋め込まれたパーツが、互いの内部制約をできる限り知らないようにして、文書構造を互いに調整できるようにしている。主たる(コンテナ)パートとその埋め込まれたパートとの間で発生する調整の例は、図7A−図7Fに示されている。これらのケース各々において、シェイプデータ構造は主たる(コンテナ)パーツとその埋め込まれたパーツとの間でやりとりされる。そのような全ての場合において、主たる(コンテナ)パーツは、その埋め込まれたパーツの座標系からそれ自身の座標系へそのシェイプを変換する役目を負っている。図7Aの例では、フレームシェイプは、コンテナで変更されている。この手順は、ユーザからのコマンドで始まり、例えば、1つ以上のフレームサイズ変更ハンドルを移動させることによって、フレームのサイズを変更する。ステップ701では、主たる(コンテナ)パーツは、その埋め込まれたパーツのために、新たなフレームシェイプを決定し、その新しいシェイプをフレームに通知する。主たる(コンテナ)パーツは、コンテナフレームの座標空間から埋め込まれたフレームの座標空間へとシェイプを変換する役目を負っている。この新しいシェイプはフレームシェイプとして格納され、その埋め込まれたパーツにはステップ702でその変更が通知される。ステップ703では、その組み込まれたパーツは、自分自身を新しいフレームシェイプに調整する。例えば、テキストエディタがテキストのレイアウトのためのマージンをリセットするかもしれない。もし、使用中シェイプ、及び、アクティブシェイプがフレームシェイプのマージンと異なっているならば、その埋め込まれたパーツもまた、これら新しいシェイプを計算する。その時に、制御は、新しい使用中及びアクティブシェイプの通知を行なって、主たる(コンテナ)パーツに戻る。ステップ704では主たる(コンテナ)パーツは、新しいフレームシェイプに対応するためにフレームのファセットのクリッピングシェイプを変更し、その新しいクリッピングシェイプをファセットに通知する。
図7Bは、埋め込まれたパーツが新しいフレームシェイプを要求するときに発生する手順を図示している。この要求は、内容が正しくレイアウトされるために付加的な空間を必要とする組み込まれたパーツの内容の編集結果として、もたらされるかもしれない。ステップ705では、埋め込まれたパーツが新しいフレームシェイプを必要とするという決定がなされ、新しいシェイプのための表示フレームに要求が伝えられる。古いシェイプは、後で必要とされる場合に備えて、埋め込まれたパーツによって保存される。ステップ706では、表示フレームはその要求を主たる(コンテナ)パーツに伝え、そのパーツはその要求を主たる(コンテナ)パーツの座標空間でのものに変換する。ステップ707では、主たる(コンテナ)パーツは、その要求への返答方法を決定する。それは、望まれた形に対する要求を認めるかもしれないし、或は、より小さい形が要求されていると決定するかもしれない。フレームシェイプが一度決定されたなら、そのフレームのファセットに関するクリッピングシェイプもまた変形され、その許されたシェイプに関して、通知がフレームに与えられる。ステップ708では、表示フレームは、主たる(コンテナ)フレームの座標でのシェイプを埋め込まれたフレームでのシェイプに変換する。その新しい形は、フレームシェイプとして保存され、そのフレームシェイプは、埋め込まれたパーツに伝えられる。ステップ709では、埋め込まれたパートは、そのファセットの使用中シェイプとアクティブシェイプを変更して、新しいフレームシェイプに合わせるようにする。
図7Cは、主たる(コンテナ)パーツがファセットのクリッピングシェイプを変更する場合の手順を図示している。図6Bにおいて、例えば、クリッピングシェイプを変更する必要は、表示フレームによって囲まれた領域の一部が異なるパーツの内容に重なるようになってしまうようにするといったユーザの動作の結果として、発生するかもしれない。ステップ710では、主たる(コンテナ)パートは、ファセットのために新しいクリッピングシェイプを決定し、この新しいシェイプをそのファセットに通知する。ステップ711では、ファセットは、その通知を埋め込まれたパーツに伝える。これに応答して、ステップ712では、埋め込まれたパーツは、その内容が適切にレイアウトされるように変更することで、それ自身を新しいクリッピングシェイプに合わせる。
図7Dは、埋め込まれたパーツが、その使用中シェイプを変更する場合の手順を図示している。再び、そのような変更の必要は、ユーザによってそのパーツの内容を編集するときに、発生するかもしれない。ステップ713では、埋め込まれたパーツは、新しい使用中シェイプをその表示フレームのために取り上げ、この新しいシェイプをフレームに通知する。ステップ714では、その表示フレームは、主たる(コンテナ)パーツにその通知を伝える。これに応答してステップ715では、主たる(コンテナ)パーツは、それ自身を新しい使用中シェイプに合わせる。例えば、主たる(コンテナ)パーツは、その内容がレイアウトされる仕方を変更して、新しいシェイプにそって以前とは異なるようにするかもしれない。
図7Eは埋め込まれたパーツがその不透明シェイプを変更する手順を示した図である。この変更は、その埋め込まれたパーツの内容を編集する結果としてもたらされるかもしれない。ステップ716では、その埋め込まれたパーツはファセットについての新しい不透明シェイプを決定し、そのファセットにこの新しいシェイプを通知する。ステップ717では、そのファセットはこの通知を主たる(コンテナ)パーツに伝える。これに応答して、ステップ718では、その主たる(コンテナ)パーツはそれ自身を新しい不透明シェイプに合わせる。例えば、そのパーツはその内容が並べられている方法を変更したり、或は、新しいシェイプに合わせるために表示状態を変更する。
不透明シェイプが変更されるとき、同様に、対応するオーバラップシェイプを変更する必要があるかもしれない。例えば、図6Bと図6Cにおいて図示された不透明な楕円のシェイプが変更されたなら、オーバラップシェイプ85もまた変更されねばならない。図7Fにおいて、ステップ719では、主たる(コンテナ)パーツは、ファセットに関して新しいオーバラップされたシェイプを選択し、そのファセットにこのシェイプを通知する。ステップ720では、そのファセットは埋め込まれたパーツにこの新しいシェイプを伝える。これに往応答して、ステップ721では、埋め込まれたパーツはその表示を調整して新しいシェイプを組み込めるようにする。次に、埋め込まれたパーツは主たる(コンテナ)パーツにその新しいオーバラップシェイプの内容を通知して、ステップ722で主たる(コンテナ)パーツが、例えば、青みがかったその表示を調整できるようにする。一般的に言って、オーバラップシェイプの内容がそのシェイプ自身の変更、或は、その内容の編集のために変更されたときにはいつでも、その埋め込まれたパーツはこの変更を主たる(コンテナ)パーツに伝え、その表示が適切に調整されるようにしなければならない。
従って、フレームとファセットは、埋め込まれたパーツと主たる(コンテナ)パーツとの間での必要とされる空間割り当てがすぐさま調整されることを可能にするデータ構造である。種々のシェイプと他の属性を用いることで、フレームとファセットとによって、その主たる(コンテナ)パーツや埋め込まれたパーツが、各々のパーツに他のパーツの内容や振る舞いに関しての詳細な情報をもつように要求することなく、その内容の表示のために効率的に利用可能な空間を利用できるようにしている。従って、複合文書が非常に柔軟に組み合わせられるのである。
パーツに関するエディタや他の操作子は、従来のコンピュータシステムにおけるアプリケーションプログラムに類似している。パーツの内容を表示し、そして、適切な場合には、その内容を変更修正するユーザインタフェースを与えるために必要な機能を提供しているのはソフトウェア要素である。それには、メニュー、コントローラ、ツールパレット、他のインタラクション技術が含まれるかもしれない。他のパーツを含むことが可能なパーツに関し、そのエディタは、その内容が表示される場合には、含まれるパーツを考慮する。例えば、テキストエディタは、そのパーツの内容を包み込み、それが組み込まれた図形パーツの使用中シェイプでは現れないようにする。
従来のアプリケーションで提供される機能を用いるために、プログラムが立ちあげられるか或はブートされねばならない。言い換えると、それは、システムのアクティブなメモリ、例えば、RAM16に格納されている必要がある。同じような方法で、パーツに関するエディタは、システムのメモリ或はCPUがアクセス可能なメモリで実行されねばならない。これを行うために、エディタは、システムにインストールされている必要がある。例えば、それは、ハードディスク20のフォルダに格納され、関連パーツがアクセスされたときに呼び出される。システム資源を浪費しないために、全てのインストールされたエディタは、常時システムメモリにはロードしなくとも良い。むしろ、それらは必要な時に、立ちあげることができる。例えば、パーツに関するエディタは、そのパーツが文書内にドラッグされたとき、その時が編集機能がおそらく必要な時であるので、立ちあげればよい。
エディタや他の操作子を立ちあげる過程は、図8のフローチャートに図示されている。その図を参照して説明すると、ステップ801では、システムは起動されるべきパーツを探す。このステップのアクセスは、マウスボタンが押されたときにいつでも生成されるイベントフラグに応答してなされる。或は、このアクセスは、スクリプトでのステップでも良い。一度、パーツの起動が検出されると、システムはそのパーツに関連するエディタを識別する(ステップ802)。この点、夫々のパーツは、それに関連した一定の特性を有している。これらの内の1つは、そのパーツに関するエディタを指示するポインタである。2つの他の特性は、例えば、それがテキストであるか、図形であるか、帳票であるかなどの、そのパーツのカテゴリと、そのタイプである。タイプは、そのパーツの内容に関するフォーマットの指標となる。例えば、1つのテキストパートは、それが同じカテゴリ(テキスト)に属していても、“ワードプロセッサA”タイプのもので有り得るし、別のタイプは“ワードプロセッサB”で有り得る。しばしば、パーツのタイプは、パーツの内容で用いられた最後のエディタによって決定される。一般的に言って、カテゴリとは、1セットのパーツのタイプであり、カテゴリが、与えられたパーツに適用可能であるパーツエディタやビューワのセットを決定する。パーツの特性は、その内容とともに保存される。例えば、全てのパーツの特性は、そのパーツの内容とともに格納される“特性シート”に含まれている。
一度、エディタ(或はパーツのタイプ)がステップ802で認識されたなら、システムはそのエディタが既にメモリ上で実行しているかどうかを判別する(ステップ803)。もし、そうであれば、システムはメインルーチンに戻り、ユーザからのさらなる動作を待つ。もし、エディタがまだ実行していないなら、システムはステップ802で識別されたエディタがシステムにインストールされているかどうかをチェックする(ステップ804)。もし、ステップ802で識別されたエディタがシステムにインストールされているなら、そのエディタはステップ805で立ちあげられ、パーツの内容を編集できるようにされる。
しかしながら、パーツエディタが現在システムにインストールされていないという場合も有り得る。この場合、ステップ804での決定は“ネガティブ”となり、これに応答して、システムはユーザがパーツのカテゴリに関して好適なエディタを選択したかどうかを判別する(ステップ806)。即ち、ユーザは、好適な、或は、デフォルトのエディタをパーツの夫々異なるカテゴリに関して選択することができる。従って、もし、ユーザが特定のワードプロセッサの機能コマンドに良く親しんでいるなら、そのプロセッサがテキストカテゴリの全てのパーツに関しての好適なテキストエディタとして選択される。もし、好適なエディタが選択されたなら、システムはその好適なエディタがシステムにインストールされているかどうかをチェックする(ステップ807)。そして、もし、そうであれば、ステップ808でそれは立ちあげられる。
もし、好適なエディタが指定されなかったなら、或は、その好適なエディタがシステムに存在しなかったなら、ステップ809では、パーツのそのカテゴリについて何かのエディタがシステムに存在するかどうかのチェックがなされる。もし、何のエディタもなければ、適切な警告がユーザに与えられ(ステップ810)、そして、システムはバックグラウンドルーチンに戻る。もし、そのカテゴリについて1つ以上のエディタが利用可能であれば、それらはリストアップされ、ユーザはその1つを選択するように促される(ステップ811)。ユーザによるその選択に応答して、選択されたエディタが立ちあげられ(ステップ812)、それは、パーツのそのカテゴリについての好適なエディタとして保管される(ステップ813)。システムは、それから、バックグラウンドルーチンに戻り、ユーザからのさらなる入力を待つ。
ユーザは、いつでも、例えば、適切なメニューコマンドを通して、パーツについて指定されたエディタを変更する機会が与えられている。このコマンドを実施することによって、ユーザは、パーツの特性の1つとして格納されているポインタを、システムにインストールされている異なるエディタの位置に変えるようにできる。メニューコマンドは、また、ユーザが、例えば、文書レベル(文書の全てのテキストパーツは同じエディタをもつ)やグローバルレベル(システムにわたる)といった異なるレベルで好適なエディタを選択できるように備えられている。ユーザがメニューにアクセスし、パーツのエディタを選択したり、変更したりするときにはいつでも、パーツのカテゴリについて適切なインストール済みのエディタのセットだけがユーザに選択させるために表示される。
もし望むなら、システムはメモリ上で実行しているエディタ各々が使用された最新時刻の記録を保存できる。もし、エディタが所定時間の間に使用されなかったなら、システムは自動的にそのエディタをメモリから消去し、これによってシステム資源の浪費を防いでいる。また、文書がクローズされたとき、その文書のパーツに関連したエディタもまた、それが現在オープンされている他のパーツ、例えば、他の文書に属していないならば、クローズされる。
パーツの自律的な性質のために、種々のパーツのコンテナは、決して特別なタイプに限定されるものではない。例えば、過去において、テキスト文書は特定のデータフォーマットである場合にのみ図形や他の内容を含むことができた。この種の制約は、本発明のアーキテクチュアによって取り除かれる。基本的に、どんなパーツも他のパーツに対しては、“ブラックボックス”となっている。主たる(コンテナ)パーツはその中に含む他のパーツの内部構造やセマティックスについての情報をもつ必要はない。主たる(コンテナ)パーツは、単に、それが含む他のパーツについてはラッパとしてのみ機能する。この種のアーキテクチュアは、複合文書のコンパイルや編集を非常に楽なものにしている。
さらに説明を続けるが、文書はデスクトップそれ自身の上に位置したアイコンによって表現される。図9Aにおいて、図示されたデスクトップは、テキスト文書を含むウィンドウ89を含んでいる。また、デスクトップ上にあるものとして、図形文書のアイコン90がある。ウィンドウとアイコンの各々は、夫々のパーツを表現している。ウィンドウ内に位置したテキスト文書の場合には、パーツはフレームの形で表現されている。そして、そのフレームの境界はウィンドウ自身の境界と接している。本発明に従えば、アイコンによって表現されたパーツは、ダイアログボックスなどのようなものを介する必要なく、直接ユーザによって操作され、テキスト文書の中に置かれる。この操作は、この後、図9A−図9E、及び、図10A−図10Bのフローチャートを参照して説明する。
アイコン90によって表現される図形文書をウィンドウ89内のテキスト文書本体に置くためには、ユーザは、まず、そのアイコン上にマウスのポインタを位置づけ(ステップ1001)、そして、マウスボタンを押してそのアイコンを選択する(ステップ1002)。これに応答して、システムはそのアイコンの表示を高輝度にし、それが選択されたという事実を示す(ステップ1003)。図9Aの例では、アイコン90の高輝度化は、そのアイコンの絵とタイトルの反転表示によって示されている。
そのマウスボタンを押さえたまま、ユーザはそのカーソルを図形パーツの所望の位置にまで移動させる(ステップ1004)。図9Bに図示されているように、選択されたアイコンは、そのカーソルの動きに合わせて移動する。カーソルに合わせたアイコンの移動は、“ドラッグ”操作として知られている。そのアイコンが所望の位置にまでドラッグされると、アイコンのゴーストアウトライン91がデスクトップ上には残り、その元々の位置を示す。或は、その代わりに、そのゴーストアウトラインがカーソルとともに移動して、ステップ1005に図示されているように、完全な形のアイコン表示がその元々の位置に残っていても良い。
このアイコンのドラッグの間、システムはそのカーソルがウィンドウに入ったかどうかを判別する(ステップ1006)。アイコン90がウィンドウ89の内側に位置すると、ウィンドウそれ自身が高輝度表示に変わる。そのシステムがドラッグされたアイコンがウィンドウ内のフレームに入ったことを検出すると(ステップ1007)、そのフレームは適当に高輝度表示され、そのフレームがドラッグされたオブジェクトを受け付けたことを示す(ステップ1008)。もし、そのフレームの外側にでてしまうまでそのアイコンがドラッグされ続けるなら、そのフレームの高輝度表示はなくなる(ステップ1009)。逆に、複数のフレームが互いに内側に入れ子になっているなら、順々に入れ子になっているフレーム各々は、そのアイコンがその内側にドラッグされていくにつれ、アクティブになる。このようにして、システムは、アクティブになるフレームと、カーソル制御ボタンが放された場合にアイコンがドロップされる場所とに関してフィードバックを備えている。
一旦、ドラッグされたアイコンが所望の位置にきたなら、ユーザはマウスボタンを放す(ステップ1010)。この時点で、システムはそのパーツに関する好適な表示方法を決定する。例えば、それが、アイコンとして表示されるべきか、或は、フレームとして表示されるべきかなどである(ステップ1011)。図9A−図9Eの例では、パーツが文書の中に置かれているので、その好適な表示方法は、フレームとなっている。従って、図9Cに示されているように、そのマウスボタンが放されたときに、そのカーソルの位置に対応する場所を左上隅として図形パーツはフレーム96として表示される(ステップ1012)。また、図9Cに示されているように、そのフレームは、太い点線の境界で、また、サイズ変更ハンドルが付加されて表現され、それが、選択されたパーツであることを示している。
逆の操作が、そのパーツを文書からデスクトップに戻すために実行される。さらにその上、そのパーツをコピーし、その内容がその文書内に残るようにし、一方でそのパーツの別の表示がデスクトップに置かれるようにすることもできる。これを行うために、ユーザは、そのフレームをドラッグしながら、キーボード上のコントロール或はオプションキーのような機能キーを押す。マウスボタンの押下とともに同時に機能キーを押下することで、システムにコピー動作が実行されることを指示する。その時、マウスボタンを押さえつづけながら、図9Dに示すようにユーザがフレームをデスクトップまでドラッグする。ここで、図形パーツの内容98がテキスト文書の中に残り、そのパーツの第2のコピーがフレーム96に現れる。一旦、フレームがデスクトップ上の所望の位置に移動したなら、マウスボタンを放し、システムは再びパーツに関する好適な表示方法を決定する。この場合、そのパーツはデスクトップに位置しているのであるから、その好適な表示はアイコンである。従って、パーツのアイコン表示90が、図9Eに示されるようにデスクトップに表示される。
或は、コピー操作が移動操作に優先しているなら、コントロールキーを押下することなくパーツをドラッグすることによってコピーがなされ、パーツが選択されドラッグされた時点で、そのコントロールキーが押下されたとき、移動操作を実行することができる。
本発明のシステムにおいて、パーツは直接にデスクトップと文書との間で操作されるのであるから、デスクトップのメタフォーはより良く保存される。即ち、ユーザは、ダイアログボックスなどに書き込むといった中間的な操作を行うことなく、デスクトップから所望のパーツをピックアップし、それを直接に文書の中に置く。その結果、新しい内容を文書内に持ち込むために必要な時間や数多くのステップを減らすことができる。
デスクトップと文書との間でのオブジェクトをドラッグしたりドロップする機能をシステムがインプリメントした場合の1つの方法に関するさらに詳しい情報は、1993年3月3日出願の、出願番号08/058,260、発明者がロバート G.ジョンソン ジュニア、マーク L.スターン、デビット L.エバンス、名称が“コンピュータ制御表示システムにおけるアプリケーションプログラムとファイルシステムとの間の改良型データ操作装置と方法”という発明に説明されている。その開示内容はここで参照のために、本願に組み込まれている。
さて、上述のように、パーツ各々はある特性をもち、その特性はその好適な表示で参照される。この特性は、与えられたパーツ中に含まれるパーツが、従来よりフォルダと文書ウィンドウの両方に関係づけられている振る舞いを得るために、通常、アイコンとして表示されるか、或は、フレームとして表示されるかを決定する。一般的に言って、全てのパーツは、デスクトップパーツか或は文書パーツかに分類される。デスクトップパーツは、フォルダ、プリンタ、或は、メールボックスのような他のパーツを含むことか、或は、そこで動作することが、その目的である。デスクトップパーツに含まれるパーツに関する好適な表示は、アイコンのようなものである。文書パーツは、最終的には、テキスト文書や図形文書のような用紙或は他のハードコピー上にプリントされることが、その目的となるものである。文書パーツに含まれるパートに関する好適な表示は、フレームのようなものである。従って、図9A−図9Cに図示されている動作を参照すると、図形パーツは、それがデスクトップにある時には、アイコンとして表示され(図9A)、しかし、それが文書の中に置かれるときにはフレーム表示に変更される(図9C)。同様に、そのパーツは文書からデスクトップに移動すると、その表示はフレームからアイコンに変化する(図9C−図9E)。もちろん、ユーザには、例えば、キーボードやメニューコマンドを通して、どんなパーツの表示でも変更できるオプションが備えられている。
上述したように、ステーショナリパーツは、それが、ただアイコンで表示されるという点で異なる。それは、1つのデスクトップパーツから別のパーツに移動できる。従って、例えば、フォルダ内の普通のパーツのように扱うことができる。しかしながら、ステーショナリパーツを文書パーツに移動させようと試みても、ステーショナリパーツのコピーが代わりに、文書パーツに置かれ、そのコピーがフレームとして現れる。
全体としてパーツを移動させることに加えて、ユーザはパーツの内容のいくつか或は全てを選択し、移動できる。パーツ各々は、それ固有のタイプの内容を有している。例えば、テキストパーツはテキスト文字を含んでいるし、図形パーツは図形要素などを含んでいる。ユーザは、1つのパーツの固有の内容のいくつか、即ち、ドナーパーツを選択し、これらを異なるパーツ、即ち、目的とする行き先のパーツに移動したりコピーしたりできる。この種の動作が発生するときに3つのシナリオが有り得る。即ち、(1)ドナーパーツと行き先パーツとは両方とも同じ固有のタイプのデータを含んでいる。(2)ドナーパーツと行き先パーツとは異なるタイプのデータを含むが、行き先パーツはドナーパーツから受信するデータのカテゴリを組み入れることができる。(3)ドナーパーツと行き先パーツとは異なるタイプのデータであり、行き先パーツはドナーパーツから受信するデータのカテゴリを組み入れるようには調整されていない。これら3つの場合の夫々について、図示した例を参照して以下に説明する。
最初のシナリオの場合、ドナーパーツと行き先パーツとは同じタイプのパーツである。例えば、それらの固有の内容は、テキスト文字であるかもしれず、それらは、同じワードプロセッサによって生成されたかもしれない。図11Aは、2つのテキスト文書100、102が夫々、デスクトップ上の2つのウィンドウにある例について図示している。左側の文書100の文字の一部104が選択されており、このことが反転表示で示されている。この選択されたテキストは、右側のウィンドウの文書102にコピーされることになっている。従って、ユーザが機能キーを押しながらマウスボタンを押下し、もし必要なら、選択されたテキスト104のコピー105を図11Bに示されているように、右側の文書102にドラッグしてもってくる。一旦、カーソルが第2の文書102に入ると、この文書は高輝度表示になる。左側の文書100は今やアクティブではないので、それは文書102の後ろに置かれ、そのタイトルバーはもはや高輝度表示ではなくなる。
一旦、コピーされたテキストが所望の位置にくれば、ユーザはマウスボタンを放し、図11Cに図示されているように、その文書にそのテキストを置く。第1の文書から第2の文書にコピーされたテキストは、第2のテキストの固有の内容と同じタイプであるので、そのテキストは第2の文書の内容に組み込まれる。言い換えると、選択されたテキストが一旦、第2の文書に置かれると、それはもはやそれ自身の独立した主体性をもたなくなる。むしろ、行き先の文書の固有の内容の一部となる。従って、行き先の文書の元々の内容のために用いられたのと同じエディタで、それは編集できる。
上述した第2のシナリオの場合、ドナーパーツと行き先パーツの固有の内容は異なるタイプであるが、行き先パーツはドナーパーツに含まれるカテゴリの情報を取り扱うことができる。図12Aにおいて、テキストエディタの能力を十分に用いて生成された文書100から選択されたテキスト106は、ダイヤログボックス108にコピーされることになっている。この例において、選択されたテキスト106は、ある形式に合わせられる。即ち、それは太字の属性をもっており、また、イタリックフォントとなっている。しかしながら、ダイヤログボックスはだた普通のテキストを取り扱うだけである。
前の例と類似した方法で、選択されたテキスト106のコピーがテキスト文書からダイヤログボックスにドラッグされる。そのカーソルがダイヤログボックスに入ると、それは図12Bに図示されているように表示の最上部に移動する。一旦、選択されたテキストのコピーが、ダイヤログボックスの適切な位置にくると、ユーザはマウスボタンを放し、これを適切に“ドロップ”する。この時点で、システムはそのドロップされたテキストがダイヤログボックスの固有の内容とは同じタイプではない、即ち、普通の書式ではなくある形式をもっている、ことを判別する。しかしながら、それは、テキストであるので、互換性のあるカテゴリに属している。従って、システムはあるスタイルをもったテキストを、そのスタイルの属性を取り除くことによって、普通のテキストに変換し、それから、それを、図12Cに示されているように、固有の内容の一部としてダイヤログボックスの中に組み入れる。さて、オリジナルの文書100で2行にわたってラップされているコピーされたテキストは、例えば、選択されたテキストのコピーには存在したキャリッジリターンを除去することで、ダイヤログボックス108の中で変換過程の一部として1行に再ラップされる。
上述の第3のシナリオの場合には、ドナー文書の固有の内容は、行き先パーツと比較して、異なるタイプであり、互換性のないカテゴリにある。図13Aにおいて、テキスト文書100から選択されたテキスト104は、図形文書110にコピーされることになっている。再び、ユーザは、テキスト文書100から選択されたテキストのコピー105を図形文書110にドラッグする。そのカーソルが行き先文書に入るや否や、図形文書110は高輝度表示となる(図13B)。そのテキストのコピー105が一旦、適切な位置にくれば、ユーザはマウスボタンを放し、そのテキストを図形文書にドロップする。この場合、選択されたもの、即ち、テキストのカテゴリは、行き先文書の固有の内容、即ち、図形要素とは、互換性をもっていない。従って、システムはドナー文書と同じタイプ(テキスト)の新しいパーツを生成し、選択されたもののコピーをそのパーツに挿入し、行き先文書にその新しいパーツを組み込む。このようにして、新しいパーツは、行き先文書の中でそれ自身の独自性を保持することなる。それは、それ自身の固有の内容、即ち、テキスト文字と、それに関連したテキストエディタとを有するようになる。その新しい生成物は、別の分離したパーツであるので、図形文書内には、図13Cに図示されるように、フレーム112として留まる。フレーム112は、そのフレームの回りの境界によって図示されてるように、選択されたオブジェクトとして留まる。
選択されたテキストのコピーが、テキスト文書から図形文書に移動するとき、デスクトップのメニューバー114は、図13Aと図13Bとに図示されてるように、テキスト文書に関連したコマンドを留めている。しかしながら、そのコピーされたテキストが図形文書に一旦、ドロップされたなら、図13Cに示されているように、メニューバー114で利用可能なコマンドはテキストエディタに合わせたものから、図形エディタに合わせたものに切り替わる。さらに、図形エディタに関連したツールバー116がデスクトップに現れる。なぜなら、図形文書が今やアクティブな文書であり、その文書に選択されたパーツが位置しているからである。しかしながら、もし、ユーザがフレーム112の中にカーソルを位置させ、文字や単語を選択するなら、ツールバー116が取り除かれ、メニューバー114のコマンドがテキストの編集のために適切なものに変わる。
要約すれば、1つの文書から他の文書に内容が移動するとき、システムはその内容が行き先文書にその固有内容の一部として組み込まれるかどうか、或は、行き先文書の中で自律的なパーツとして組み込まれねばならないかを判断する。このプロセスを実行するシステムの動作が、図14のフローチャートには図示されている。ユーザが1つのオブジェクトを選択し、それを意図する行き先にドラッグした後に、システムは選択されたオブジェクトが元々存在したパーツのタイプを判別する(ステップ1401)。例えば、選択されたオブジェクトは、普通のテキストであるかもしれないし、ある書式のテキストであるかもしれないし、図形要素などであるかもしれない。夫々のパーツについて格納されている特性の1つは、それがどのタイプのパーツであるかを識別し、そして、そのパーツから移動される或はコピーされるオブジェクト各々もまた、その識別されたタイプであるとして認識される。パーツのタイプが識別された後、そのタイプが行き先文書のタイプと同じであるかどうか判定される(ステップ1402)。もし、そうであれば、選択された内容は、行き先の文書に組み込まれるか或は挿入され、その固有の内容の一部となる(ステップ1403)。もし、選択された情報が、行き先文書のタイプと同じではない場合、システムはそれが同じカテゴリに属しているかどうかを判別する(ステップ1404)。例えば、もし、選択された情報が、ある書式スタイルをもったテキストであり、その行き先の文書では普通のテキストであれば、それらは異なるタイプではあるが、同じカテゴリに属している。もし、選択された情報が行き先文書と同じカテゴリに属していれば、システムは選択された情報を行き先文書と同じタイプに変換する(ステップ1405)。例えば、あるワードプロセッサで生成されたテキストが、異なるワードプロセッサによって採用されているフォーマットに変換される。或は、図形文書はあるファイルフォーマットから別のものに変換される。一旦、その変換が完了すると、選択された情報は、行き先文書の内容に組み込まれる(ステップ1403)。もし、その選択された情報が、行き先文書と同じカテゴリに属していなければ、新しいパーツが、その選択された情報がその内容となるように生成され(ステップ1406)、そして、その新しいパーツがフレームとして行き先文書に組み込まれる(ステップ1407)。
パーツの自律的な性質のため、パーツは、種々のユーザの間での情報交換を非常に容易にする。文書、例えば、ルートパーツは、幾つかの他のパーツを含んでいる。ユーザはその文書全体を取り出すことができ、それを眺め、所望ならその個々のパーツを編集できる。或は、個々のパーツは夫々がデスクトップに置かれ、多くのユーザによって共有されるが、一方、その文書へのアクセスは全体として保護される。
これらのことをさらに詳しく述べると、パーツ1つ1つは限定されたアクセス権で保護される。例えば、幾つかの異なるパーツを含む文書は多くの異なる種類の人々への配布が目的となっていることもある。それらのパーツのいくつかは、ある種類の人々には公開したくはない機密情報を含んでいるかもしれない。本発明の主旨によれば、これら個々のパーツは、限定されたアクセス権で保護される。そして、その内容は適切なパスワードや或は他のアクセス手段を有した人々によってのみ回覧される。言い換えると、アクセス制限機能はパーツの別の特徴的な性質である。
図15において、図示されている文書118は、多くのパーツから構成され、そのパーツ1つ1つは、破線で示されたフレーム内に含まれている。パーツの1つ120へのアクセスは制限されている。例えば、そのパートは機密の帳票データを含んでいるかもしれない。このパーツへのアクセスが制限されているので、その内容はそのフレームには表示されない。むしろ、そのフレームは不透明となっており、キー122のような適切なシンボルを表示し、パスワードなどのようなものがそれにアクセスするためには必要であることを示す。
文書118はシステムのユーザによってオープンされ、その概要レイアウトと機密ではないパーツの情報を見ることができる。しかしながら、機密のパーツ120の中に含まれているデータは、そのパートにアクセスする適切なパスワードを有した人達だけが見ることができる。そのような人がそのパートを選択すると、その不透明カバーが取り去られ、その内容が表示される。
その内容はアクセスされないが、制限されたパーツの他の特性は、そのパスワードを有していないシステムユーザに対しても、やはり、利用可能である。例えば、文書中のそのパーツの位置は変更できるし、それを選択し、そのフレームの境界にあるサイズ変更ハンドルを移動させて、そのサイズを変更することもできる。同じように、そのアクセスが制限されたパーツはどこにでもコピーすることができる。しかしながら、そのアクセス制限は、どこにそれがコピーされようとも、そのコピーされたものにも付加されたままである。
制限されたアクセス権をもつパーツは、それに埋め込まれる他のパーツをもつことができる。その結果、あるユーザが適切なパスワードを有しておらず、パーツの内容にアクセスするならば、それに含まれる他のパーツもまた、制限されて見る事はできない。一旦、パスワードが受け付けられたなら、そのパスワードは自動的に全ての組み込まれたパーツにも伝えられ、それらの制限が解除されて、ユーザの手を煩わせる事なく見る事ができる。しかしながら、もちろん、その埋め込まれたパーツがそれに関連した異なるパスワードをもつことはでき、たとえユーザが1つの制限があるパーツにアクセスできようとも、それに含まれる他のパーツへのアクセスはさらに制限されていることもある。
従って、本発明は文書内レベルでは文書の内容へのアクセスを制限できる。そのアクセス権はパーツ単位に特定されたものであり、そのパーツのデータがどこに位置しているかに関わらず、有効である。この方法によれば、文書全体にわたる広範なアクセス制限を課すことなく、文書中で特権を与えられていないパーツはユーザによるアクセスが可能となる。複数の著者をもつ大きな文書において、パーツ毎にアクセス制限を設けることができることで、著者たちが文書を概観し協力して作業を行うときなどに、より融通性の効いたものになる。
パーツの操作と複合文書のコンパイルを容易にするために、“パーツビン”と呼ばれる特別なタイプのパーツが備えられる。パーツビンの一例を図16に示す。図16において、文書がウィンドウ130でオープンされ、その文書に対するパーツビン132がウィンドイドと言われる別の領域に現れている。そのウィンドイドは、ウィンドウ130と関係をもち、その結果、もしその文書が画面の前面にきたならば、そのウィンドイドもそれとともに画面の前面にくる。
パーツビン132は本質的には他のパーツに関するソースとして機能するユーザ定義パレットである。それは他のパーツを含むのみであり、固有の内容はもたない。パーツビンの中にあるパーツは、“冷凍された”という特性をもっている。即ち、カーソルがフレーム内にある間にユーザがふつうにマウスボタンを押すと、カーソルの位置にある最も小さな要素が選択される。図16において、通常の場合、もしカーソルが帳票フレーム134の1つのセルに置かれ、そこでカーソル制御ボタンが押されると、そのセルの内容が選択される。しかし、ユーザは、異なったオブジェクト、例えば、実際に選択されたセルを含む帳票全体を選択することを意図していたのかもしれない。そうするために、ユーザは、カーソルをフレーム内の他の領域、しかし、所望のパーツ内に埋め込まれた他のパーツの外側に移動させなければならない。しかしながら、このような要求はパーツビン内のパーツを冷凍(フリーズ)することによってなくすことができる。この場合、ユーザはパーツのどこにカーソルが存在していてもマウスをクリックし、パーツ全体を選択することができる。従って、パーツビン内に位置するパーツは、たとえそれが他の埋め込めれたパーツを含むフレームとして表現されていても、全体として取り扱われる。
パーツビンのパーツは、その内容が変えられないようにロックすることもできる。パーツビンのロックされたときの特性は、ウィンドイドのヘッダにあるパッドロック記号136によって表される。ユーザがもし、ロックされたパーツビンの外にあるパーツをドラッグしようと試みても、そのパーツのコピーが自動的にとられ、その元々のパーツはパーツビンの中に残り、これによって、ビンの内容の完全性が保証される。ユーザがパーツビンをカスタマイズできるように、パーツビンのロックは、例えば、パッドロック記号136をクリックすることによって解除することができ、そして、そのパーツを変更する。
本発明のこの特徴を示す別の実施例では、文書毎に付随のパーツビンをもたせるようにできる。この“文書パーツビン”により、標準的なパーツセットを文書に結合させておくことができ、これによって、その文書のユーザはすぐに利用可能なパーツをもつことができる。コマンドを起動することで、ユーザはその文書パーツビンをウィンドイド等に表示させることができる。付随のパーツビンをもった文書はそれに制限的な特性をもつことができる。これによって、その文書内に置くことができるパーツだけが、そのビン内のものとなる。その制限的な特性をもった文書に他のパーツを置こうと試みても、それは拒否される。この特性は、文書のユーザがある一定のパーツとだけ作業ができることを保証し、これによって、文書に関連した訓練やサポートやメンテナンスを削減することができる。例えば、データ入力フォームに関するパーツビンは、そのフォームのデータを入力するために必要なパーツだけをもつことになる。その結果、訓練を受けていないユーザが、もしかすれば正しく用いることができない予想もしていないパーツに出くわすことはない。パーツに関するこの制限によって、組織が文書の内容を制御することが可能になる。
以上説明したユーザの利点に加えて、本発明のアーキテクチュアは、ソフトウェアの開発者にも益をもたらす。例えば、帳票プログラムは基本的には数字を処理するように設計されている。そして、この分野で経験を積んだ開発者はこの機能に関しては最も効率的に時間を用いることができる。しかしながら、そのユーザは公式や数値の中でもテキストを編集できなければならないので、テキストエディタも帳票アプリケーションの必要なパーツである。従来のプログラムでも必要ではあるが、テキストエディタのプログラムを書かねばならないことは帳票プログラムの開発者にとってやっかいなことでる。しかしながら、ユーザが選択したテキストエディタが帳票における別々のパーツとして利用可能である環境では、帳票開発者はもはやテキストエディタを書く必要はない。その開発者は自分の時間を帳票プログラムのより本質的な部分に専ら用いることができ、以前には帳票の数値処理機能に付随した他の機能を開発するために用いていた時間のために利用することができなかった時間を用いて、特別な機能を組み込むことができるようになる。
さらに、ソフトウェアの開発者は次に新しい機能を付加することや存在するバグを修正することを決断した場合には、その仕事はより簡単なものとなる。特に、開発者はプログラムの帳票部分にのみ注意を集中すればよく、テキストエディタのような付随コンポーネントに注意を払う必要はない。
さて本発明は、そこにある原理の理解を容易にするためにここで説明した特定の実施例に限定されるものではない。例えば、テキストや図形は文書のコンポーネントを表現するために例示のために用いられたものである。従って、パーツのコンポーネントはこれら2つの特定の範疇に限定されるものではない。むしろ、パーツの内容は、ビデオ、音、アニメーション等を含むどんな種類の媒体でも良い。本発明の範囲には、前述の実施例ではなく、以下に添付した請求の範囲によって規定され、その請求の範囲の意味するところと一致する全ての同等物が含まれるものである。
Claims (26)
- 文書の第1のパーツが前記文書の第2のパーツに埋め込まれ、パーツ各々がそれに付随する内容とこれら内容に関する操作子を含む複合文書の創成及び/或いは操作を行うコンピュータシステムにおける、前記第1と第2のパーツとの間の関係を定義するインタフェースの方法であって、
前記第1のパーツと前記第2のパーツとの間のインタフェースとして前記第1及び第2のパーツの間で共有され、前記第1のパーツの内容を収容するために利用可能な前記第2のパーツ内の領域を定義する前記第2のパーツによって決定される第1のシェイプと、前記第1のパーツの内容が実際に位置する前記領域の一部を定義する前記第1のパーツによって決定される第2のシェイプとを含む情報を含む第1のデータ構造を格納する工程と、
前記第1のデータ構造に関連し、前記第1及び第2のパーツとの間の幾何学的関係に関し、前記第2のパーツによって決定され、前記第1のパーツの内容が表示される前記領域の一部を定義する第3のシェイプを含む情報を含む第2のデータ構造を格納する工程とを有し、
前記第1と第2のデータ構造を介して、前記第1、第2、及び第3のシェイプ各々に対する変更を前記第1と第2のパーツとの間で通知することにより、前記パーツの内部的な制約についての知識がなくとも前記複合文書における第1及び第2のパーツの創成及び/或いは操作を可能にすることを特徴とするインタフェースの方法。 - 前記第2のデータ構造に含まれる前記情報は、前記第1のパーツによって決定され、前記システムへのユーザ入力が前記第1のパーツに伝えられる前記第3のシェイプの一部を定義する第4のシェイプを含むことを特徴とする請求項1に記載のインタフェースの方法。
- 前記第2のデータ構造は、第2のパーツの内容を隠す第1のパーツの領域を識別する不透明シェイプと、第2のパーツの内容によって隠される第1のパーツの領域を識別するオーバラップされるシェイプとを定義する情報を含むことを特徴とする請求項1に記載のインタフェースの方法。
- 前記第1のデータ構造は、前記第1のパーツの内容を表示するために用いられる全てのコマンドに適用される幾何学変換を特定する情報を格納することを特徴とする請求項1に記載のインタフェースの方法。
- 前記第2のデータ構造も、前記第1のパーツの内容を表示するために用いられる全てのコマンドに適用される幾何学変換を特定する情報を格納することを特徴とする請求項4に記載のインタフェースの方法。
- 文書のコンポーネントが内容を有したパーツとして格納され、前記パーツがその内容に関して付随する操作子を備え、第2のパーツ内に第1のパーツが埋め込まれる構成の、コンピュータシステムにおける複合文書を生成する複合文書生成方法であって、
前記第2のパーツの内容内に前記第1のパーツの内容に割り当てられる領域を決定する第1決定工程と、
前記領域に対応したフレームシェイプを設定し、前記フレームシェイプを前記第1のパーツに通知する設定通知工程と、
前記第1のパーツに関する前記操作子によって、前記フレームシェイプ内に前記第1のパーツの内容のレイアウトを決定し、前記第1のパーツの内容によって占有される前記領域のサブセットに対応して使用中シェイプを決定し、前記使用中シェイプを前記第2のパーツに通知する第2決定工程と、
前記第1のパーツに関する前記操作子によって、前記使用中シェイプのサブセットに対応し、前記フレームシェイプと前記使用中シェイプとは独立なアクティブシェイプを決定する第3決定工程と、
前記文書の内容の操作に関連したユーザ入力事象を検出する検出工程と、
検出されたユーザ入力事象が前記アクティブシェイプ内で発生したことが判別されたときには、前記検出されたユーザ入力事象を前記第1のパーツに関する操作子に呈示する呈示工程と、
前記第1のパーツに関する操作子によって、前記検出されたユーザ入力事象に応答する応答工程とを有することを特徴とする複合文書生成方法。 - 少なくとも、前記使用中シェイプの前記領域の外側に前記第2のパーツの内容のいくらかを表示する表示工程をさらに有することを特徴とする請求項6に記載の複合文書生成方法。
- 少なくとも2つのパーツ、即ち、1つの従属するパーツが主たるパーツである他のパーツに埋め込まれ含まれるような構成であり、各々のパーツは内容とその内容に関する付随の操作子で構成されるような複合文書を扱うコンピュータシステムにおける前記複合文書の表示を行う複合文書表示方法であって、
前記従属のパーツについて利用可能である主たるパーツ内で領域を定義するフレームシェイプと、実際に前記従属するパーツによって用いられる前記フレームシェイプ内における領域を定義する使用中シェイプとに関する情報を含むフレームデータ構造を格納する格納工程と、
前記主たるパーツによってフレームシェイプを決定し、前記フレームデータ構造に前記フレームシェイプの通知を行う第1通知工程と、
前記主たるパーツの座標空間から前記従属するパーツの座標空間に前記フレームシェイプを変換する変換工程と、
前記従属のパーツに前記変換されたフレームシェイプを通知する第2通知工程と、
前記従属のパーツによって、前記フレームシェイプに準拠した使用中シェイプを決定する決定工程と、
前記主たるパーツに前記決定された使用中シェイプの通知を行う第3通知工程と、
前記使用中シェイプの領域内に前記従属するパーツの内容を、少なくとも、いくらか表示する表示工程とを有することを特徴とする複合文書表示方法。 - 前記主たるパーツによるフレームシェイプの決定は、前記従属するパーツからの要求に応じて実行されることを特徴とする請求項8に記載の複合文書表示方法。
- クリッピングシェイプに関し、前記従属するパーツの内容が表示できる前記フレームシェイプ内の領域を定義する情報を含むファセットデータ構造を格納する工程と、
前記主たるパーツにおいて前記クリッピングシェイプを決定する工程と、
前記クリッピングシェイプに関し、前記従属するパーツに通知を行う工程と、
前記クリッピングシェイプの領域内でのみ前記従属するパーツの内容を表示する工程とをさらに有することを特徴とする請求項8に記載の複合文書表示方法。 - 前記ファセットデータ構造は、さらに、前記主たるパーツの内容を隠す前記クリッピングシェイプの領域を認識する不透明シェイプを定義する情報を含み、
前記主たるパーツに前記不透明シェイプの通知を行う工程と、
前記主たるパーツから前記従属のパーツに、前記不透明シェイプ内の前記主たるパーツの内容の情報を提供する工程と、
前記従属のパーツによってなされる隠しに従って、前記内容の表示を変更する工程とをさらに有することを特徴とする請求項10に記載の複合文書表示方法。 - 前記ファセットデータ構造は、さらに、前記主たるパーツの内容によって隠される前記クリッピングシェイプの領域を認識するオーバラップしたシェイプを定義する情報を含み、
前記従属するパーツに前記オーバラップしたシェイプの通知を行う工程と、
前記従属したパーツから前記主たるパーツに、前記オーバラップしたシェイプ内の前記従属したパーツの内容の情報を提供する工程と、
前記主たるパーツによってなされる隠しに従って、前記内容の表示を変更する工程とをさらに有することを特徴とする請求項10に記載の複合文書表示方法。 - 前記オーバラップされたシェイプ内で前記従属したパーツの内容が変更されるときはいつでも、前記従属のパーツから前記主たるパーツに通知を行う工程と、
前記主たるパーツによってなされる隠しに従って、前記変更された内容の表示を変更する工程とをさらに有することを特徴とする請求項12に記載の複合文書表示方法。 - 前記ファセットデータ構造は、幾何学変換を定義する情報を含み、
前記クリッピングシェイプの内容全てに前記変換を適用する工程をさらに含むことを特徴とする請求項10に記載の複合文書表示方法。 - 前記フレームデータ構造は、幾何学変換を定義する情報を含み、
前記クリッピングシェイプ内に表示される内容全てに前記変換を適用する工程をさらに含むことを特徴とする請求項10に記載の複合文書表示方法。 - 前記フレームシェイプの内側で、かつ、前記使用中シェイプの領域の外側に、少なくとも、前記主たるパーツの内容のいくつかを表示する工程をさらに含むことを特徴とする請求項8に記載の複合文書表示方法。
- 前記従属するパーツに関する操作子によって、前記使用中シェイプを変更する工程と、
前記主たるパーツに前記変更された使用中シェイプを通知する工程と、
前記変更された使用中シェイプに従って、前記主たるパーツの内容の表示を変更する工程とをさらに有することを特徴とする請求項16に記載の複合文書表示方法。 - 前記第1のシェイプは矩形であることを特徴とする請求項1に記載のインタフェースの方法。
- 前記第1のシェイプは矩形以外の形であることを特徴とする請求項1に記載のインタフェースの方法。
- 前記第1のパーツの内容が表示される前記フレームシェイプ内における領域を定義するクリッピングシェイプを決定する工程と、
前記クリッピングシェイプに関し、前記第1のパーツへの通知を行なう工程と、
前記クリッピングシェイプの前記領域内にのみ前記第1のパーツの内容を表示する工程とをさらに含むことを特徴とする請求項6に記載の複合文書生成方法。 - 前記第2のパーツの内容を隠す前記クリッピングシェイプの領域を識別する不透明シェイプを定義する工程と、
前記不透明シェイプの前記第2のパーツへの通知を行なう工程と、
前記第2のパーツから前記第1のパーツへ、前記不透明シェイプ内の前記第2のパーツの内容の情報を提供する工程と、
前記第1のパーツによってなされる前記隠しに従って、前記内容の表示を変更する工程とをさらに含むことを特徴とする請求項20に記載の複合文書生成方法。 - 前記第2のパーツの内容によって隠される前記クリッピングシェイプの領域を識別するオーバラップしたシェイプを定義する工程と、
前記オーバラップしたシェイプの前記第1のパーツへの通知を行なう工程と、
前記第1のパーツから前記第2のパーツへ、前記オーバラップしたシェイプ内の前記第1のパーツの内容の情報を提供する工程と、
前記第2のパーツによってなされる前記隠しに従って、前記内容の表示を変更する工程とをさらに含むことを特徴とする請求項20に記載の複合文書生成方法。 - 前記オーバラップしたシェイプ内の前記第1のパーツの内容が変更されるときにはいつでも、前記第1のパーツから前記第2のパーツへと通知を行なう工程と、
前記第2のパーツによってなされる隠しに従って、前記変更された内容の表示を変更する工程とをさらに含むことを特徴とする請求項22に記載の複合文書生成方法。 - 前記第1のパーツについての操作子によって前記使用中シェイプを変更する工程と、
前記第2のパーツに前記変更された使用中シェイプを通知する工程と、
前記変更された使用中シェイプに従って前記第2のパーツの内容の表示を変更する工程とをさらに含むことを特徴とする請求項7に記載の複合文書生成方法。 - 前記フレームシェイプは矩形であることを特徴とする請求項8に記載の複合文書生成方法。
- 前記フレームシェイプは矩形以外の形であることを特徴とする請求項8に記載の複合文書生成方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17554993A | 1993-12-30 | 1993-12-30 | |
US08/175,549 | 1993-12-30 | ||
PCT/US1994/014943 WO1995018406A1 (en) | 1993-12-30 | 1994-12-27 | Frame structure which provides an interface between parts of a compound document |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09507322A JPH09507322A (ja) | 1997-07-22 |
JP3950937B2 true JP3950937B2 (ja) | 2007-08-01 |
Family
ID=22640673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51818295A Expired - Lifetime JP3950937B2 (ja) | 1993-12-30 | 1994-12-27 | インターフェースの方法、複合文書生成方法、及び複合文書表示方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0738403B1 (ja) |
JP (1) | JP3950937B2 (ja) |
AU (1) | AU1407595A (ja) |
CA (1) | CA2179747C (ja) |
DE (1) | DE69430013T2 (ja) |
WO (1) | WO1995018406A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659742A (en) * | 1995-09-15 | 1997-08-19 | Infonautics Corporation | Method for storing multi-media information in an information retrieval system |
US5822731A (en) * | 1995-09-15 | 1998-10-13 | Infonautics Corporation | Adjusting a hidden Markov model tagger for sentence fragments |
US5675788A (en) * | 1995-09-15 | 1997-10-07 | Infonautics Corp. | Method and apparatus for generating a composite document on a selected topic from a plurality of information sources |
US5873076A (en) * | 1995-09-15 | 1999-02-16 | Infonautics Corporation | Architecture for processing search queries, retrieving documents identified thereby, and method for using same |
US5721902A (en) * | 1995-09-15 | 1998-02-24 | Infonautics Corporation | Restricted expansion of query terms using part of speech tagging |
US5717914A (en) * | 1995-09-15 | 1998-02-10 | Infonautics Corporation | Method for categorizing documents into subjects using relevance normalization for documents retrieved from an information retrieval system in response to a query |
US5640553A (en) * | 1995-09-15 | 1997-06-17 | Infonautics Corporation | Relevance normalization for documents retrieved from an information retrieval system in response to a query |
US5742816A (en) * | 1995-09-15 | 1998-04-21 | Infonautics Corporation | Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic |
US6618754B1 (en) * | 1995-10-23 | 2003-09-09 | Sun Microsystems, Inc. | System for transmission of embedded applications over a network |
US5841434A (en) * | 1996-11-19 | 1998-11-24 | International Business Machines Corporation | System and method for multi-platform implementation of objects on windowing computer systems |
JPH11288412A (ja) * | 1998-04-02 | 1999-10-19 | Hitachi Ltd | 文書作成方法及びシステム及び文書作成プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US10162491B2 (en) * | 2011-08-12 | 2018-12-25 | Otoy Inc. | Drag and drop of objects between applications |
US20130227457A1 (en) * | 2012-02-24 | 2013-08-29 | Samsung Electronics Co. Ltd. | Method and device for generating captured image for display windows |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4723210A (en) * | 1984-08-30 | 1988-02-02 | International Business Machines Corp. | Superblock structure in a multiple in a data editor |
US5142618A (en) * | 1986-11-21 | 1992-08-25 | Hitachi, Ltd. | Window management apparatus for a document creating apparatus |
US4933880A (en) * | 1988-06-15 | 1990-06-12 | International Business Machines Corp. | Method for dynamically processing non-text components in compound documents |
CA2068486C (en) * | 1991-08-30 | 1998-09-15 | Stephen S. Fleming | System and graphical method for creating an object |
-
1994
- 1994-12-27 AU AU14075/95A patent/AU1407595A/en not_active Abandoned
- 1994-12-27 JP JP51818295A patent/JP3950937B2/ja not_active Expired - Lifetime
- 1994-12-27 WO PCT/US1994/014943 patent/WO1995018406A1/en active IP Right Grant
- 1994-12-27 DE DE69430013T patent/DE69430013T2/de not_active Expired - Lifetime
- 1994-12-27 EP EP95905470A patent/EP0738403B1/en not_active Expired - Lifetime
- 1994-12-27 CA CA002179747A patent/CA2179747C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0738403A1 (en) | 1996-10-23 |
DE69430013D1 (de) | 2002-04-04 |
EP0738403B1 (en) | 2002-02-27 |
DE69430013T2 (de) | 2002-11-14 |
CA2179747C (en) | 2004-11-02 |
CA2179747A1 (en) | 1995-07-06 |
WO1995018406A1 (en) | 1995-07-06 |
AU1407595A (en) | 1995-07-17 |
JPH09507322A (ja) | 1997-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3849880B2 (ja) | 複合文書におけるコンピュータ/ヒューマンインタフェースシステム | |
US5745910A (en) | Frame structure which provides an interface between parts of a compound document | |
US5835919A (en) | Computer-human interface system which manipulates parts between a desktop and a document | |
US5669005A (en) | System for automatically embedding or incorporating contents added to a document | |
US5577188A (en) | Method to provide for virtual screen overlay | |
US5140677A (en) | Computer user interface with window title bar mini-icons | |
US8166388B2 (en) | Overlaying electronic ink | |
JP4091622B2 (ja) | ソフトウェアメモ | |
US5428734A (en) | Method and apparatus for enhancing drag and drop manipulation of objects in a graphical user interface | |
Kramer | Translucent patches—dissolving windows | |
EP1526463A1 (en) | Electronic sticky notes | |
US20090100325A1 (en) | System and method in an electronic spreadsheet for copying and pasting displayed elements of a range of cells | |
JP3950937B2 (ja) | インターフェースの方法、複合文書生成方法、及び複合文書表示方法 | |
JPH0555893B2 (ja) | ||
JPH0683561A (ja) | 電子メイルを入力する方法及び装置 | |
WO1995018406A9 (en) | Frame structure which provides an interface between parts of a compound document | |
JPH0823803B2 (ja) | システムの挙動にアクセスする方法、アイコン表示装置及びデータ処理システム | |
US5802531A (en) | Method and system for embedding parts of documents and synchronizing multiple views thereof | |
JP2000181868A (ja) | 情報処理装置及びその方法、コンピュータ可読メモリ | |
CA2487312C (en) | Computer-human interface system for compound documents | |
JP2004094803A (ja) | 文書作成支援方法及び文書作成支援プログラムを記録した記録媒体 | |
EP4254153A1 (en) | Information processing system, information processing method, and program | |
Willman | Menus, Toolbars, and More | |
Merna | OOD editor: A tool for creating object-oriented designs | |
JPS62271071A (ja) | 画情報編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031127 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040810 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061018 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070328 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20070328 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |