JPH09510567A - ドキュメント・プロキシィ・フレームワーク - Google Patents

ドキュメント・プロキシィ・フレームワーク

Info

Publication number
JPH09510567A
JPH09510567A JP7524678A JP52467895A JPH09510567A JP H09510567 A JPH09510567 A JP H09510567A JP 7524678 A JP7524678 A JP 7524678A JP 52467895 A JP52467895 A JP 52467895A JP H09510567 A JPH09510567 A JP H09510567A
Authority
JP
Japan
Prior art keywords
document
oriented
drop
drag
proxy
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.)
Pending
Application number
JP7524678A
Other languages
English (en)
Inventor
スコット,カーク,エム.
ディッキンソン,ロバート,ディー.
ワタナベ,リョウジ
Original Assignee
オブジェクト テクノロジー ライセンシング コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by オブジェクト テクノロジー ライセンシング コーポレイション filed Critical オブジェクト テクノロジー ライセンシング コーポレイション
Publication of JPH09510567A publication Critical patent/JPH09510567A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 「プロキシイ」('proxy')という新しい技術を利用する、アクティブなドキュメントから、ドキュメント処理の特徴をシステム・レベルでサポートするオブジェクト指向ドキュメントアーキテクチャ。プロキシイは、外部ドキュメント管理機能を同時的にシームレスに標準的なオペレーティング・システムのドキュメント処理コマンドに統合する。システムは、革命的なオブジェクト指向フレームワークシステムを利用して、ドキュメント中または他の作動中のアプリケーション中からドキュメント・アクセスおよび編集機能をサポートするインタフェースを提供する。

Description

【発明の詳細な説明】 ドキュメント・プロキシィ・フレームワーク 著作権表記 本特許出願の一部には、著作権保護の対象となる内容が含まれている。著作権 所有者は、米国特許商標庁の特許ファイルまたはレコードに記録されている特許 文書または特許開示内容を何人もが原文通りに複製することを妨げるものではな いが、その他の場合は一切の著作権を所有することを留保する。 発明の分野 本発明は、一般的には、コンピュータ・システムに関し、より具体的には、ド キュメント処理システム内のドキュメント・プロキシィを管理するシステムおよ び方法に関する。 発明の背景 オブジェクト指向プログラミング(OOP)は、ユーザ・フレンドリで、イン テリジェントなコンピュータ・ソフトウェアを構築するための好ましい環境であ る。OOPの重要な要素は、データ隠蔽(data encapsulation)、継承(inheritan ce)および多相性(polymorphism)である。これらの要素は、アイコン、マウス・ カーソルおよびメニューを有するウィンドウ環境により特徴づけられているグラ フィカル・ユーザ・インタフェース(GUI)を生成するために使用されている 。これらの3つの重要な要素は、OOP言語に共通であり、大部分のOOP言語 は、これらの3つの要素を異なるようにではあるが、実装(インプリメント)し ている。 OOP言語の例は、スモールトーク(Smalltalk)、オブジェクト・パスカル(Ob ject Pascal)、およびC++である。スモールトークは、実際には言語以上のも のであり、より正確には、プログラミング環境として特徴づけられるものである 。スモールトークはゼロックスのパロアルト研究センタ(Xerox's Palo Alto Res earch Center:PARC)における学習研究グループ(the Learning Research Group) で、1970年代の初期に開発された。スモールトークにおいては、メッセージ がオブジェクトに送られて、オブジェクト自体を評価する。メッセージはタスク を実行し、これは従来のプログラム言語における関数コール(function call)と 同様である。プログラマはデータの型に対して関心を払う必要はなく、むしろプ ログラマはメッセージの正しい順序を作成することに関心を払うことのみでよい 。オブジェクト・パスカルは、アップルのマッキントッシュ(登録商標)コンピ ュータに用いられる言語である。アップルは、パスカルの設計者であるニコラス ・ヴィルト(Niklaus Wirth)の協力で、オブジェクト・パスカルを開発した。C ++は、ビジョルン・ストラウプ(Bjarne Stroustrup)により、AT&Tのベル 研究所(Bell Laboratories)において1983年に、Cの拡張として開発された 。C++のキーとなる概念は、クラスであり、これはユーザ定義の型(type)であ る。クラスはオブジェクト指向のプログラムの特徴を与える。C++のモジュー ルは、Cのモジュールと互換性があり、自由にリンクすることができるので、既 存のCのライブラリがC++のプログラムとともに使用することができる。もつ とも広く用いられているオブジェクトを基礎としているオブジェクト指向プログ ラミング言語は、1960年代に、ノルウェーのO−J.ダール(O-J.Dahl)、B .マーハウグ(B.Myhrhaug)、K.ニガード(K.Nygard)により開発されたシミュラ (Simula)へその遺産を遡ることができる。これ以上のOOPに関する情報は、Gr ady Booch″Object Oriented Design with Applications″Benjimin/Cummings P ublishing Co.,Redwood City,Clif(1991)(グラディ・ブーチ「アプリケーシ ョンのオブジェクト指向設計」)を参照されたい。 上記の短いOOPの概要を意に留めると、ドキュメント処理は、事実上、社会 が出版を生み出す方法を革命的に変化させている。典型的な従来のドキュメント 処理システムは、DOSのようなオペレーティング・システムの上で実行する。 最近では、これらのドキュメント処理システムはウィンドウ環境中で実行するよ うに設計される。これらのドキュメント処理システムの多くは、市販されている 。これらのドキュメント処理システムが、ドキュメントとテキストを処理する能 力を改良する一方、処理の方法論に関してドキュメント・プロセッサの間に大き い矛盾が存在する。これらの矛盾の結果、アプリケーション開発者およびアプリ ケーション・ユーザにとって問題を生じる。 新しいドキュメント・プロセッサを作成するごとに、アプリケーション開発者 は常に「一からやり直す」必要がある。オペレーティング・システムおよびイン タフェース・プログラムは、使用することができるいくつかのツールを供給して いるが、特定のドキュメント・プロセッサに対する設計プロセスの大部分は、ユ ーザがドキュメントを処理できるように協力する処理モジュールのグループを作 成することに向けられている。アプリケーション開発者は、他の会社により開発 された処理モジュールをたびたび設計している。これは努力の重複を要求してお り、各開発者が、様々な所望の機能をどのように実装するかの詳細な部分を取り 扱う必要がある。 グラフィカル・コンピュータ・インタフェース・システムの大部分は、グラフ ィカル表示装置上に提示されるインタフェース、および、1以上のグラフィカル に提示されるエンティティー「ドキュメント」例えばワード・プロセッサ・ドキ ュメント中の情報へのアクセスをユーザに供給して、ユーザが、含まれるテキス ト・データを読み、編集することができるようしている。いくつかの現在手に入 れられるコンピュータ・ユーザ・インタフェース・システム、例えばアップル( 登録商標)マッキントッシュ(登録商標)コンピュータでは、ユーザが、小さい 操作可能なグラフィカル・エンティティ例えば「アイコン」として表示されてい る複数のドキュメント・エンティティをグラフィカルに管理し、組織できるよう にしている。このようなシステム中の機能の一例として、アイコン表示のドキュ メ ントをあるドキュメントからグラフィカルにドラッグし、他のドキュメント上に それをドロップすることで、含まれているエンティティから他のエンティティへ のドキュメントの移動を要求することができる。上記の機能のカテゴリーの両方 をサポートする、現在手に入るシステム上では、システムは機能の2つのカテゴ リーを、動作の2つの分離しているモードで利用可能である。例えば、アップル ・マッキントッシュ上では、ユーザは、オープンされたドキュメントを編集する モードから出て、ファインダ・アプリケーションに切り替えることにより、ドキ ュメントの移動のようなドキュメント管理機能を実行する必要がある。出願人が 知っているシステムでは、ドキュメント処理を基本的なシステム・オペレーショ ンに統一するプロキシイ(proxy)機能を有するものはない。 発明の要約 本発明の目的は、「プロキシイ」('proxy')というユニークな特徴を利用する ドキュメント処理システムを提供することである。プロキシイは、外部ドキュメ ント管理機能を同時的にシームレスに標準的なオペレーティング・システムのド キュメント処理コマンドに統合する。このシステムおよび方法は、ドキュメント 中または他の作動中のアプリケーション中からドキュメント・アクセスおよび編 集機能をサポートするインタフェースを提供する。 図面の簡単な説明 図1は、本発明の好ましい実施例に従ったパーソナル・コンピュータのブロッ ク図である。 図2は、本発明の好ましい実施例に従ったドキュメント・プロキシイの表示の 例示である。 図3は、本発明の好ましい実施例に従った、格納された典型的なドキュメント に関連する情報のデータ構造である。 図4は、本発明の好ましい実施例に従った、デスクトップ・スクリーンを示す 図である。 図5は、本発明の好ましい実施例に従った、ドロップをアクセプトした又はハ イライトされた目的領域を示す図である。 図6は、本発明の好ましい実施例に従った、本処理を表現しているブーチ図(B ooch diagram)を示す図である。 図7は、本発明の好ましい実施例に従った、マウス・イベントを処理するロジ ックを表現しているブーチ図を示す図である。 図8は、ウィンドウ中にドキュメントをオープンするに必要な処理の詳細なフ ローチャートである。 図9は、本発明の好ましい実施例に従った、ドロップをアクセプトする他のエ ンティティに、プロキシイをドラッグするロジックの詳細なフローチャートであ る。 図10は、本発明の好ましい実施例に従った、プロキシイのドラッグおよびド ロップの動作の詳細なフローチャートである。 発明の詳細な説明 ここで、本発明の詳細な実施例について開示される。しかし、開示された実施 例は本発明の単なる例であり、本発明は色々な形態で実施できることを理解すべ きである。このため、ここで開示された詳細は制限として解釈されるべきでなく 、 単に請求の範囲の基礎として、かつ、本発明の使用および/または作成のために 当業者の教示として解釈されるべきである。 オブジェクト指向プログラミングの歴史およびフレームワークの発展は、発明 の背景に示されている文献中に十分に記載されており、C++およびスモールト ークは十分に文献が出ているが、ここでは詳細には説明しない。同様に、隠蔽、 多様性および承継のようなオブジェクトの特徴は、文献や特許のなかで詳細に記 述されている。オブジェクト指向システムの素晴らしい調査として、読者はGrad y Booch″Object Oriented Design With Application″ISBN 0-8053-0091-0(199 1)(グラディ・ブーチ「アプリケーションのオブジェクト指向設計」)を参照さ れたい。多数のオブジェクト指向システムが、原始的な入力および出力を実行す る基礎的なオペレーションの上で動作するように設計されているが、本システム は、特定の特徴に対して、システム・レベルのサポートを供給するように使用さ れる。 本発明は、好ましくは、IBM(登録商標)PS/2(登録商標)またはアップル社 (登録商標)マッキントッシュ(登録商標)コンピュータなどのパーソナル・コ ンピュータに常駐したオペレーティング・システムを背景にして実施される。図 1は代表的なハードウェア環境を示しもので、本発明によるコンピュータの代表 的なハードウェア構成を示していて、このハードウェア構成は、従来のマイクロ プロセッサなどの中央演算処理ユニット10と、システム・バス12を介して相 互接続された複数の他のユニットとを含んでいる。図1に示すコンピュータはリ ード・オンリ・メモリ(ROM)16、ランダム・アクセス・メモリ(RAM) 14、ディスク・ユニット20などの周辺デバイス、および21で示す他の入出 力周辺デバイスをシステム・バス12に接続するための入出力アダプタ18、キ ーボード24、マウス32、スピーカ28、マイクロホン26および/またはタ ッチ・スクリーン・デバイス(図示せず)などの他のユーザ・インタフェース・ デバイスをバス12に接続するためのユーザ・インタフェース・アダプタ22、 ワークステーションを23で示すデータ処理ネットワークに接続する ための通信アダプタ34を含んでいる。バスをディスプレイ・デバイス38に接 続するためのディスプレイ・アダプタ36も含んでいる。ワークステーションに は、アップル・システム/7(登録商標)オペレーティング・システムなどのオ ペレーティング・システムが常駐している。 ここで開示されるドキュメント・フレームワークの主たる目的は、システム・ レベルにおける新しい特徴を可能にすることで、アプリケーションの基本的レベ ルを向上することである。その上、これらの特徴に対するシステム・サポートが ないことからこれらの実装に限界がある。例えば、どのようなドキュメントの静 的な表示(ピクチャー)に注釈をつけることができるが、「ライブ」ドキュメン ト自身にたいしてはできない。コンテント−ベース検索アプリケーションはドキ ュメントの内容(コンテント)に対するアクセスに問題がある。これは、各アプ リケーションが通常のファイル・フォーマットを有しているからである。また、 アプリケーションがドキュメントを見つけだしたとき、それに対して何かをする ことが困難である。例えば、ドキュメントをオープンするシステム・レベルのサ ポートがない。ドキュメント・フレームワークはまた、例えば注釈サポートのよ うな、基礎的なサービス上に構築される多数の高いレベルの可能性を含んでいる 。可能性を拡大するため、ドキュメント・フレームワークは、どのような方式ま たはユーザ・インタフェースの決定を特定しない。プロキシイは、ドキュメント ・アクセスおよび編集機能をサポートするインタフェース中に、同時的にシーム レスに可能とする外部ドキュメント管理機能の全て、またはサブセットができる 機能を提供する。 図2は、好ましい実施例による組み込まれたプロキシイとともにドキュメント の表示を示している。ウィンドウ210は、プロキシイ200を含むオープンさ れたドキュメントを表示している。プロキシイ200は、この場合、ドキュメン トの形をした幾何学的な画像で示されており、現ドキュメント240中への他の ドキュメントの統合をユーザに示している。その上、プロキシイは、プロキシイ 200のとなりに表示される統合されたドキュメントのタイトル220を持つこ とができる。この実施例では、プロキシイはアイコンとして表現される。しかし ながら、この分野の当業者の一人にとって、プロキシイが、カラーや他の方法で 印を付けられた表示上の領域を用いて、円や他の幾何学的画像や他のアイコンで 示すことができることが、容易に理解できるであろう。プロキシイは、アイコン がドキュメント管理のためのインタフェース中に表れたとき、類似のアイコン表 示がサポートするどのような操作もサポートする。例えば、プロキシイは、スク リーン上のデスクトップ表示上の他の場所にあるコンテナ・エンティティの表示 へドラッグすることができ、そして、そこに置かれて、関連するドキュメントの コピーを作成する。全てのこのような操作に対して、プロキシイは、ウィンドウ (表れている)が表示しているドキュメントを表している。例えば、デスクトッ プ上にコンテナ・エンティティにプロキシイ・アイコンをドラッグすることによ り、タイトル”Message to Bob”のドキュメントが特定の位置に 移動又はコピーされる。 また、ここで(説明の目的のために)記述されているのは、ドキュメント管理 機能のカテゴリ中のただ一つの機能である。この機能は、従来のユーザ・インタ フェース・システムが他のモデル機能により可能であり、プロキシイでより良く よりシームレスに提供可能である。この分野の当業者は、プロキシイを利用して 、他のどのようなドキュメント処理機能も実施することができることが理解でき るであろう。例えば、ユーザはプロキシイを他のドキュメントにドラッグして、 他のドキュメント中にプロキシイのコピーを供することができる。また、ユーザ は、プロキシイ上をダブル・クリックして、プロキシイに関連付けられているド キュメントをオープンすることができる。同様に、プロキシイをプリンタやメイ ルボックスにドラッグして、プリントすることやドキュメントを付属するコンピ ュータに送信することができる。 「ドキュメント」は、コンピュータ・システムがユーザに対して提示する単位 エンティティであり、オープン、読み出し、編集、コピー、削除等を行うことが できる、ユーザが操作可能なオブジェクトを指している。格納されたドキュメン トは、コンピュータ・システムにより管理される隠蔽されたデータの単位を指し ており、ドキュメント・インスタンスを定義している。ファイル・システム中に 物理的に常駐している格納されたドキュメントの特定の実装に対して、用語「格 納された」は、図3に示されているような情報のデータ構造および関連する情報 をストレッジ・デバイスにセーブすることを指している。しかしながら、この出 願に記述されている動作に従う限り、ストレッジとして、同じ外部的に識別でき る構造を内部的にデータ管理する他の手段を除外しない。その上、ファイル・シ ステム中のストレッジを基礎とする実装に対して、ファイル・システムをどのよ うに使用して、記述したような関連する構造を格納するのか詳細は、この説明で は重要ではない。 図3は、好ましい実施例に対応したデータ構造を示す。格納されたドキュメン トはこの構造を有しており、プロキシイを実装するのに必要なメカニズムに関連 するそれぞれは、もっと詳しく記述される。 ・格納されたドキュメントは、コンテント・データ310を含み、ドキュメント がオープンされたとき、これがユーザに対して提示され、アクセスすることが可 能となる。 ・格納されたドキュメントは、ドキュメント・プレゼンタ・オブジェクト320 を含み、ドキュメントがオープンされたとき、これはドキュメントのコンテント ・データのグラフィカル表示を操作する責任がある。一般的に、これはドキュメ ントの一部として格納されることは、ドキュメントを表示するためにオープンす るメカニズムが、適切なドキュメント・プレゼンタに近づくことができる限り、 必須ではない。ドキュメント・データ構造は、後述する記述において具体性(con creteness)を含んでいる。 ・格納されたドキュメントは、名前やアイコン・グラフィックのような識別属性 (identifing attribute)340を含む。他の識別属性の例は、次のものを含む。 データの作成と修正、カラー、緊急性ラベル、分類、所有者、サイズ。 ・格納されたドキュメントは、ドラッグされた表示ソース・オブジェクト350 を含む。これは後で説明される。 ・格納されたドキュメントは、ドロップ・アクセプタンス・ハンドラ・オブジェ クト360を含む。これは後で説明される。 格納されたドキュメントは、ここに包含しておらず、ここでの記述に影響しな い、追加の構造および他のメカニズムのサポートの可能性を持つことができる。 オブジェクト指向中の格納されたドキュメントの自然な実現は、上で記述したコ ンポーネントにアクセスを供給するビィヘイビア(動き:behavior)を定義し、コ ンポーネントの実際の格納管理を実装するための詳細を隠蔽する抽象を設計する ことである。 好ましい実施例のドラッグ&ドロップ・メカニズム このセクションは、ドラッグ&ドロップと呼ばれるメカニズムを使用する好ま しい実施例を明確に記述する。好ましい実施例において、グラフィカル・オブジ ェクトは、デスクトップ上の独立のオブジェクト(例えばウィンドウ)にユーザ の入力に対応して現れる。システムは、イベント・オブジェクトの形態でユーザ 入力情報を供給する。イベント・オブジェクトは、ユーザからシステムが受けた ユーザ入力がどのような型であるかを、イベントに対するさらに詳細な情報とと もに記録する。イベントの例は、「マウス・ダウン」であり、これは、ユーザが マウス入力デバイス上のボタンを押したことを報告する。イベントの詳細情報は 、マウス・ボタンが押されたときのカーソルの位置を含む。ユーザ入力に応答し て、デスクトップ上に現れるグラフィカル・オブジェクトは、イベント・ハンド ラとしてインプリメント(実装)される。イベント・ハンドラはイベント・サプ ライに次のことを供給する:イベントを受けるイベント・キュー、および関連す る実 行スレッドである。実行スレッドは、キューからイベントを逐次取り出して、イ ベントに応答することにより、オブジェクトの実装で定められた、プログラムさ れたビィヘイビアでこれらを処理する。プログラムされたビィヘイビアは、オブ ジェクトの機能によりオブジェクト毎に異なっている。イベント・ハンドリング に関連する詳細なロジックは、同時に出願されている、オブジェクト指向通知フ レームワーク・システムと名付けられた出願番号07/996,782に記述さ れている。これは参照により、本明細書の一部分を構成する。 好ましい実施例は、スレッドの実行とイベント・ハンドラとの間の特定の関連 に依存していない。実行するスレッドが最終的に、特定のイベント・キュー中で 待っているイベントを処理(ハンドル)する関連があれば、実装については十分 である。特に、メカニズムを実装することに含まれる実行するスレッドの数には 、厳密な依存関係はない。ドラッグ&ドロップは、イベント・ハンドリングする グラフィカル・オブジェクトに基づく特定のインタラクション(相互作用:inte raction)である。このグラフィカル・オブジェクトは、デスクトップ上のポイ ントやコンテキストに対するグラフィカル・エンティティの選択を表現し、グラ フィカル・エンティティを他のポイントやコンテキストに「キャリし(運び:car ry)」、目的地のポイントに置くか、目的地のコンテキストにそれを供給するた めにグラフィカル・エンティティを「ドロップする(drop)」ことで、比喩的に示 されるユーザ・インタフェース・インタラクションを実装するのに用いられてい たものである。操作のキャリ部分は、よくドラッグと呼ばれており、このためド ラッグ&ドロップという用語で呼ばれる。 典型的にドラッグ&ドロップのインタラクションは、好ましい実施例に実装さ れたシステム、従ってドラッグ&ドロップを実装しているシステムに基づいて具 体的に記述される、次のような詳細な動作を含む。正確のために、かつ、当業者 への明快なコミニュケーションのために、重要なオブジェクト・クラスは標準C ++言語を用いて記述される。記述されたクラス設計は、好ましい実施例に従っ た実際のシステムを基礎としている。特に、次のような規則に準拠している。 ・クラスおよびメソッドの名前は、用語法を限り、かつ焦点をあてるために変更 している。 ・標準C++メンバ関数である、デフォルト・コンストラクション、コピー・コ ンストラクション、デストラクション、および適切な割り当ては、記述から省略 しているが、しかしながら、特別な引き数(argument)をとる特別なコンストラク タは説明される。 ・クラス動作の実装をサポートするクラスの非公開(private)の内部データ構造 は、省略されている(明確のために提供される具体的な例の場合は例外である) 。オブジェクト指向プログラミングの利益の1つとして、クラスは、内部実装構 造としてよりも、外部に公開されているメンバ関数(externally published memb er function)で定義されている。このため、好ましい実施例上の実際のオブジェ クトを用いて働くプログラマでも、この内部実装構造を見ることはない(又は、 内部構造に依存することはない)。重要な設計のポイントは、実装の詳細ではな く、クラス・インタフェースにより行われる。 ・オブジェクト・インスタンスをある実行環境(例えばアドレス空間)から他の 実行環境にコピーする、または永続的なストレージからまたはストレージに値を 移動するメカニズムを仮定している。例えば、これを実装するスキームとしては 、バイト・ストリーム表現からまたはバイト・ストリーム表現にオブジェクトの 値を変換する「ストリーム(streaming)」・オペレータのセットを供給する各ク ラスを有している。 関係するクラス・オブジェクトの型(type)を比較するか、関係付ける動作中に 下記で使用するクラスが記述される。好ましい実施例に関連してクラスTTypeDes criptionのC++インタフェースが下で示される。 TTypeDescriptionオブジェクトは、特定のクラスに対する型識別(type identi ty)をコード化する。例えば、TTextと呼ばれる型をコード化する値を作成するた めに、型記述(type description)のインスタンスを次のように作成する:TTypeD escription(″TText″)。TTypeDescriptionは、等号演算子(equality operator :==)により、おなじクラスであるのかをみるために比較する。高度の実装に おいては、メソッド”isA () ”を提供している。これは、ある型が他の型の サブクラスであるかをチェックするのに使用される。すなわち、クラスTAに対す るaTypeがTTypeDescriptionであり、クラスTBに対するbTypeがTTypeDescription である場合、bType.IsA(aType)はTRUEを返し、BがAのサブクラスである場合に はFALSEを返す。後述のことは、厳密に等号比較の存在に依存する;”isA () ”関数は、共通の便利な制作物として触れられている。 次に、ドラッグ&ドロップ・インタラクション中の「ドラッグ」を行うエンテ ィティのソフトウェア・オブジェクトの実施例を述べる。このようなオブジェク トの全ては抽象クラスTDraggedRepresetationのサブクラスのインスタンスであ る。TDraggedRepresetationは、直接に下に示されている。 たとえば、ドラッグ&ドロップ・インタラクションがテキストの一片をそのデ ータとしてキャリーするアレンジをするために、以下に直接的に示されるサブク ラスTDraggedRepresentationForTextを提供することができる。 // 使用可能な型、として"TText"を返すようにオーバーライドされる。 TTextと名付けられたクラスは、あるテキスト・データを保持し、そのテキス ト・データへの操作に対するインタフェースを提供している。同時的に異なるサ ブクラスのインスタンスを保持することができるように、TDraggedRepresetatio nオブジェクトの抽象集合を管理する能力をサポートすることは有益である(「 抽象」により、オブジェクトが、TDraggedRepresetationForTextのような具体的 なサブクラスによるより、むしろTDraggedRepresetationのような抽象インタフ ェースを介して、アクセスされ、管理されている)。コンテント・データおよび それにアクセスするプロトコルはサブクラス(例えばTDraggedRepresetationFor Text)により導入されるため、TDraggedRepresetationオブジェクトの抽象集合 のクライアントにとって、コンテント・データ型のインスタンスを尋ねることが できることは有益である。これは、TDraggedRepresetationのメンバ関数であるv irtual Get AvailableTyoes()によりサポートしている。例えば、サブクラスTDraggedRepres etationForTextはこのメンバ関数をオーバライドして、TTextデータが使用可能 であるようにできることを意味するTTypeDescription(″TText″)を返すように することができる。この記述の形式において、GetAvailableTypes()は、リスト ・データ構造TListOf〈TTypeDescription〉を介して使用可能な型のリストを返 すことができる。リスト・データ構造TListOf〈TTypeDescription〉は、多数の サポート・ライブラリに共通に見られる形式のテンプレートを基礎とした、TTyp eDescriptionsの単純な順序付けられたリスト(simple ordered list)である。こ の情報に加えて、このデータをキャリするTDraggedRepresetationサブクラスに 伴うコンテント型に関連するコンベンション(convention)を与えることにより、 クライアントは、抽象オブジェクトを具体的(concrete)サブクラス型にキャスト して、特定のコンテント・データにアクセスするサブクラス・メンバ関数を呼ぶ ことができる。 デスクトップ・システムは、アクティブなグラフィカル・オブジェクトをスク リーン上に表示して、ドラッグ&ドロップ・インタラクションを受ける状態であ る。グラフィカル・オブジェクトは、ドラッグされてドロップされるオブジェク トを受けることができるターゲットとして、システムに自分自身をパブリッシュ (publish)する。図4は、好ましい実施例に関連するデスクトップ・スクリーン を示している。図5は、本発明の好ましい実施例に従った、ドロップをアクセプ トした又はハイライトされた目的領域を示す。 クラスMDropAcceptorのサブクラスとして、ドロップを受けるターゲットとし てシステムに自分自身をパブリッシュ好ましい実施例中のグラフィカル・オブジ ェクトが、下に直接示される。 MDropAcceptorは、ドロップを受けるビィヘイビアの部分を定義するサブクラ スを実装する、2つの純粋な仮想メンバ関数(virtual member function)を供給 する。ChoosePreferredTye()は、候補リプレゼンテーション型(candedate repre sentation type)(例えば、ドラッグされたアイテムの表示)のリストを受け、 パラメータが選択した型中でもっとも好ましい型であればTRUEを返し、リス ト中に受けることができるものない場合はFALSEを返すメンバ関数である。 AcceptDrop()は、呼び出されてMDropAcceptorのサブクラスに、(以前にChooseP referredType()中で受けることができるとして選択されたリプレゼンテーション の型から)ドロップされたアイテムのリプレゼンテーション(representation)を 受けるようにするメンバ関数である。(TGPointパラメータは後で説明される。 )MDropAcceptorは、MDragAndDropEventHandlerのサブクラスであり、この関数 は後述で示される。 ディスクトップ上に現れるイベント・ハンドリング・グラフィカル・オブジェ クトのアクティビィティ(activity)とビジビリティ(visibility)を管理するシス テム機能を前提とする。例えば、オブジェクトがアクティブなグラフィカル・オ ブジェクトのヒエラルキィ(ウィンドウ管理システム)のメンバを有しており、 イベント・ハンドリング・グラフィカル・オブジェクトTViewに関するクラスで ある。TViewオブジェクトは、グラフィカル・オリエンテーション(サイズ、形 、位置)を符号化し、自身を描く(例えば、システムからのスクリーン上で見え ている位置を更新するリクエストをサポートする)能力を有し、かつ、複数のイ ベントを受け、ハンドルする能力を有している。これは後で説明する。 完全なドロップをうけるグラフィカル・オブジェクトは、TViewとMDropAccept orからのサブクラスを作成することで定義される(それらのサブクラスである) 。図6は、好ましい実施例に従った、本処理を表現しているブーチ図(Booch dia gram)である。上で述べたように、MDropAcceptorは、ドロップ・アクセプタの受 けることができるリプレゼンテーション型を特定するサブクラスである。TView からのサブクラスは、次のものを提供して、全体を完成する。スクリーンの領域 としてのドロップを受けるターゲットのグラフィカル・オリエンテーションを特 定する。ユーザが何かをドラッグおよびドロップできるような(例えば、フォル ダ・アイコンに見えるように)、オブジェクトのグラフィカルな外見を定義する ようにする。最後に、イベントのシステムの資源との結合を行う。これは、後で 見るように、いくつかの重要なメカニズムを実装している。AcceptDrop()中のwh ereDroppedのパラメータはシステム型のTGpointであり、2次元の座標点の値を 記録しており、このメンバ関数中で、ドロップを受けるビュー(drop accepting view)上のどこに、ドラッグされたアイテムがドロップされるのかを特定するた めに使用される。 図4にもどり、システムの状態は、デスクトップ・スクリーン上でアクティブ でビィジブルな、いくつかのドロップを受けるビユー・サブクラス(TViewとMDr opAcceptorと両方からのサブクラス)がある状態である。各ドロップを受けるビ ユー・インスタンスは、自分自身を、あるグラフィカル・オリエンテーションの ドロップ・アクセプタンス・ターゲットとしてパブリッシュし、ドラッグされた あるリプレゼンテーション型を受ける能力を有する。 ドラッグ&ドロップのインタラクションを受けることができる状態であるシス テムが、図4に示されている。すなわち、ドラッグされたアイテムが何かの上に ドロップされる状態であり、全ての部分がこの状態とされている。ドラッグされ るアイテムを提供するインタラクションの側の記述は、次に行う。 ドラッグすることができるようにするグラフィカル・オブジェクトは、マウス ・デバイスからの入力としてユーザのドラッグの行動の開始を、すなわちマウス ・デバイスからのイベントとして見る。好ましい実施例を実装したシステム中で 、マウス入力イベントの受け手であるオブジェクトは、MMouseEventHandlerのサ ブクラスで、下に直接示している。 MMouseEventHandlerは、メンバ関数で名付けられている各マウスの動きからイ ベントを受け取るメンバ関数を有している。MouseDown()およびMouseUp()は、ユ ーザがマウス・ボタンを押さえ、離すことにそれぞれ対応するイベントをハンド ルするために呼び出される。MouseEntered()およびMouseEntered()は、下に説明 されている。MouseMovedは、マウスの位置の変化に対応するイベントに応答して 呼び出される。いつも全てのマウスの動きの報告を受けるために、ある所定の時 間に全てのマラス・イベント・ハンドラが存在することは適切ではないので、Mo useMovedのイベントを受けることを選択的に開始し、停止するメソッドであるst artMouseMovedEvent()およびStopMouseMovedEvent()が、MMouseEventHandler中 に存在する。 完全なマウス入力に応答するグラフィカル・オブジェクトは、TViewおよびMMo useEventHandlerからのサブクラスを作成することで定義される(それらのサブ クラスである)。図7に示されている。図7は、ブーチ図を利用して、″mouse event handling view″をTViewおよびMMouseEventHandlerのサブクラスとして示 している。この関数を実装するC++のコードは、下に記述されている。 上述されているように、MMouseEventHandlerは、マウス・イベントに応答する オブジェクトを特定するためにサブクラスを作成する。TViewからサブクラスを 作成することで、次の情報を提供することにより、全体を完成させる。これは、 オ ブジェクトによりハンドルするマウス・イベントに感じるスクリーンの領域のグ ラフィカル・オリエンテーションを特定することができるようにする。これは、 オブジェクトのグラフィカルな外見、特に、ユーザがドラッグし、なにかの上に ドロップすることができるエンティティであることを伝えるような外観(例えば 、アイコンのような)を定義するようにする。最後に、この場合マウス・イベン トである、イベントのシステム資源への結合を管理する。 われわれの目的のため、(図中で示されている様々な種類:TMouseDownEvent, TMouseUpEvent等の)マウス・イベントをオブジェクトとして特徴付けるのに、 イベント型(「マウス・ダウン」・イベント対「マウス・アップ」)およびイベ ントが発生したときのカーソルの位置をコード化すれば十分である。このような イベントを利用できる大部分の市販されているシステムは、この特徴を有してい る。このため、詳細は、このようなシステムを扱う当業者にとって良く知られて いるべきものである。 ビユーを処理するマウス・イベント、TViewおよびMMouseEventHandlerのサブ クラスでは、MMouseEventHandlerのメンバ関数StartMouseEntryEvents()は、ビ ユーが広がるデスクトップの領域にマウスが入り、出ることを報告するイベント を受けることで開始するために利用可能である。これらのイベントは、メンバ関 数MouseEntered()およびMouseExited()ビユーを受け取る。StopMouseEntryEvent s()はこれらのイベントを受けることを停止する。 典型的なドラッグ&ドロップ・インタラクションの詳細な処理は後で提示され る。ドラッグ&ドロップ・インタラクションは、デスクトップ上の2つのイベン ト・ハンドリング・グラフィカル・オブジェクトを含む。その1つは、ドラッグ ソースで、マウス・ハンドリング・ビユーである。他のひとつは、ドロップ・ア クセプタで、ドロップを受けるビユーである。ドロップ・アクセプタは、システ ム状態中のどのドロップ・アクセプタ、例えば図4に示されているプリンタ・ア イコンでもよい。 完全なインタラクション(相互作用)は、次のようなステップを含む。 1)ユーザは、カーソルをドラッグ・ソース・オブジェクト内のドラッグ可能な エンティティとして表示されているものへ動かす。例えば、含んでいるウィンド ウ内のドラッグ可能なアイコン・オブジェクトでよい。 2)ユーザは、マウス・ボタンを押す(そして、それを上げない)。 3)システムは、イベントの位置とデスクトップ上にある可視マウス・イベント ・ハンドリング・ビユーとを比較することにより、どのマウス・イベント・ハン ドリング・ビユーがイベントを幾何学的に包含しているか、言い換えれば、どの ビユー・オブジェクトが「ヒット」されたかを判定する。 4)システムは、TMouseDownEventをヒット・ビユーと関連するイベント・キュ ー中にポストする。 5)そのキュー中のイベントを処理する実行スレッドが、メンバ関数MouseDown( )をヒット・マウス・イベント・ビユー・オブジェクトに対して呼び出すことで 、イベントを処理する。 6)ヒット・ビユーがドラッグ可能なエンティティをパブリッシュする(この例 のインタラクションで仮定しているように)と、マウス・ダウン・イベントのカ ーソル位置が、グラフィカルに提示されているドラッグ可能なエンティティ上に 、幾何学的に含まれているかを判定する。 7)ドラッグ・ソースは、1つ以上のTDraggedRepresentationサブクラス・オブ ジェクトを作成して、ユーザにより論理的にドラッグされたアイテムを提示する (又は一般的に、提供する)。下のプロキシイを取り扱う特定の例は、ドラッグ &ドロップの特定のアプリケーションに対してどのように行われるかを記述して いる。 8)ドラッグ・ソースは、TDragAndDropInteractorと呼ばれる好ましい実施例を 実装しているシステムによりサポートされているオブジェクトをインスタンス化 する。TDragAndDropInteractorの作成と管理は、ドラッグ&ドロップ・インタラ クションが開始し、続けて行くことを、システムに対してどのように表している かである。TDragAndDropInteractorは、自身のコンストラクタ中に、供給された (前のステップで作成された)1以上のTDraggedRepresentationサブクラスのリ ストを受け取る。ここで記述している特定の設計において、TDragAndDropIntera ctorのコンストラクタもまたグラフィック・オブジェクト(MGraphicのサブクラ ス、受動的なグラフィック・オブジェクトに対する仮定した抽象システム・イン タフェース)を取る。これは、下に続くステップでユーザがカーソルを動かすこ とによりドラッグされたアイテムの、ユーザに対するグラフィカル・フィードバ ックをデスクトップ上に表示するために、TDragAndDropInteractorの実装により 用いられている。 9)ドラッグ・ソースはStartMouseEvents()を自身に対して呼び出す。 10)ユーザは、カーソルを動かして、アイテムをデスクトップ上の他の点に、 ここにアイテムをドロップするためにドラッグするカーソルの動きを行う。ユー ザのカーソルの動きに応答して、ドラッグ・ソースに対してMouseMoved()が呼び 出される。ドラッグ・ソースは、このメソッドを、DragAt()をTDragAndDropInte ractorに対して呼ぶことにより実装している。これは、ステップ8で作成され、 TMouseMovedEventの位置をパラメータとして渡す。ドラッグ・ソースのMouseMov ed()メンバ関数、およびそのためドラッグ&ドロップ・インタラクタのDragAt() メンバ関数が、ユーザのカーソルの動きに応答してシステムにより生成された、 すべてのマウスが動いたイベントに対して呼び出される。 11)TDragAndDropInteractorのDragAt()メンバ関数は、次のように(システム により)実装される。図4に示されているようなシステムの状態(ここではデス クトップ上に表示されるドロップを受けるビユーがある)が与えられると、Drag At()の中に渡された座標点が、どのドロップを受けるビユー上にあるかどうかを 見に行く。DragAt()に対する前の呼出し中で上ではない、ドロップを受けるビユ ー上にあることが分かると、TDragEnterEventを、新しい点が上になっているド ロップを受けるビユーに関連するイベント・キューにポストする。DragAt()に対 する前の呼出し(call)中の点が異なるドロップを受けるビユー上にある場合は、 または、前にはビユー上にあるが、ポイントが現在の呼出し中のビユー上にはな い場合、そのビユーにTDragExitEventをポストする。ドロップを受けるビユーは ドラッグ・エンタおよびエグジットのイベントを、MDropAcceptorメンバ関数Dra gEnter()およびDragExit()中で受け、イベントが処理される。これらの関数はド ロップ・アクセプタの実装によりオーバライドされて、ユーザに対してグラフィ カル・フィードバックを提供し、アイテムがドロップされる上にドラッグされた アイテムを、ビユーが受け取ることを示す。例えば、フィードバックは、受け取 るビユーのカラーの変化であってもよい。当業者の一人であるならば、ドラッグ ・エンタ・イベントに関連するドラッグされたリプレゼンテーションのリストが 提供されて、フィードバックの実装において、ドラッグされたアイテムの実際の 受けることできることを示すことを容易に理解することができる。 12)ユーザがアイテムを所望の目的のドロップ・アクセプタにドラッグし、カ ーソルをその上に位置付ける。 13)ユーザはマウス・ボタンを上げる。 14)システムは、TMouseUpEventをドラッグ・ソースに関連するイベント・キ ューにポストする。 15)ドラッグ・ソースに関連するイベント・キュー内のイベントを処理するス レッドが、ドラッグ・ソースのメンバ関数Mouseup()を呼び出すことにより、こ のイベントを処理する。メンバ関数DropAt()をTDragAndDropInteractorに対して 、MouseMoved()がドラッグ&ドロップ・インタラクタに対するDragAt()への呼出 しに翻訳するのと同様に呼び出す。 TDragAndDropInteractorのDropAt()メンバ関数は次のように実装される。まず 、ポストしているドラッグ・エグジット・イベントをDragAt()の実装と同じ形態 で処理して、DragAt()への最後の呼出し(もしあれば)以降の、ドロップを受け るビユーを「エグジットされた」状態とする。次に、パラメータ点、ドロップが 起きたカーソル点が、ドロップを受けるビユー上にあるかを見る。あれば、TDro pEventをそのビユーにポストする。ドロップ・イベントの部分として又関連する ものとして、ドロップ・イベントのハンドラに利用可能なドラッグされたリプレ ゼンテーションのリストを作成する。 16)ドロップ・アクセプタに関連するイベント・キュー中のイベントを処理す るスレッドは、ドロップ・ハンドラに対してメンバ関数Drop()を呼び出すことに より、このイベントを処理する。TDragAndDropInteractorのDrop()メンバ関数は 、次のような標準実装を有する。ドロップ・イベントに関連するドラッグされた リプレゼンテーションのリストを取り、ChoosePreferedTypesを自身に対して呼 出してドラッグされたリプレゼンテーションのリストを自身に渡す。仮想関数Ch oosePreferedTypes()の実装が、受け取るアイテムの型記述(type description) を適切に選択し、この型記述およびリストからの今回一致するドラッグされたリ プレゼンテーションが、最後のドロップ・イベントのカーソル位置も渡されるAc ceptDrop()への呼出し中のドラッグ・アクセプタに渡し戻される。これとともに 、ドラッグされたリプレゼンテーションは、ドラッグ・ソース・オブジェクトか らドロップ・アクセプタに移転され、インタラクションは完了する。 インタラクションは、デスクトップ上のある点にあるグラフィカル・オブジェ クトから他の場所の他のグラフィカル・オブジェクトに、ドラッグされたリプレ ゼンテーションのオブジェクトをして実装されている情報の伝達を、ユーザが特 定することできるようにする。このドラッグされたリプレゼンテーション・オブ ジェクトの伝達に応答して何がなされるかは、このメカニズムがどのように展開 されるかにより特定される。プロキシイを含むいくつかの例が後で記述される。 ドラッグ・ソースが、ドラッグ&ドロップ・インタラクタに対して、1つのド ラッグされたリプレゼンテーションではなく、リプレゼンテーションのリストを 提示するかに興味を持っているかについての説明がここでなされる。説明は、デ ータ・オブジェクトが、あるデータ型から他のデータ型に変換することができる 又は、他のアクセス・モデルを介して見ることができる能力を含んでいる。この ような場合の1例は、最新のワード・プロセッサのドキュメントである。これは 、次のようにアクセスすることができる。A)ワード・プロセッサ・アプリケー ションにより作成されたドキュメント(このため、これにより、コンピュータ上 で、読み出し、編集することができる)、ドキュメントのデータは、B)テキス ト文字(text character)のストリーム(すなわち、スペル・チェック動作)とし て、役立つように見ることができる。C)グラフィックのページ(すなわち、プ リンタでそれをプリントする)。また、D)異なるワード・プロセッサ・アプリ ケーション製品の入力として輸出する(それにより、元の作成したアプリケーシ ョンにアクセスすることができないユーザにより、アクセスすることができる) 。 ドラッグ&ドロップ・インタラクション中で、ドラッグされたアイテムである 、このような互換性のある又は柔軟にアクセスできるデータ・オブジェクトの場 合を考える。データ・オブジェクトまたはデータに対する特定のアクセス・モデ ルの役立つ変換は、データ・オブジェクトを受けるドロップ・アクセプタの機能 に依存している。例えば、ワード・プロセッサ・ドキュメント中で、ドロップ・ アクセプタは、次のようなものである。A)ドキュメント自身のアプリケーショ ン、B)スペル・チェッカ・ユーティリティ、C)プリンタ、又はD)他のワー ド・プロセッサ・アプリケーション。 ドラッグ&ドロップ・インタラクションの開始時、ドラッグ・オブジェクトが ドラッグされ始めるとき、システムは、最終的な目的のドロップ・アクセプタを 定めることができない。これは、ユーザの引き続くマウスの動きにより特定され ることになる。これは、ドラッグ&ドロップ・インタラクションの開始時に作成 されたドラッグされたリプレゼンテーションは、最終的にドロップ・アクセプタ が要求した他のアクセスに対する有益な変換を行うことが必要となることを意味 する。このような変換可能なドラッグされたリプレゼンテーション・オブジェク トの実用的な実装上の解決は、次のようなものである。1)ドラッグされたオブ ジェクトがインタフェースとして利用可能な(変換を介して、または他のものへ のアクセスにより)型のリスト、および2)元のオブジェクトを十分に識別でき 、(変換を介して、または選択されたアクセス・モデルを介して)元のオブジェ クトへのアクセスを提供できる、元のオブジェクトのサロゲート(surrogate)ま たはそれに対する参照。このような参照の例は、元のデータ・オブジェクトが格 納されているファイル上の位置である。 この説明の主たる点は次のものである。1)ドラッグされたリプレゼンテーシ ョンを提供するドラッグ&ドロップの参加者は、データ互換性、又は多元アクセ ス・インタフェースを介して、ユーティリティを提供する必要と機会を有してい る。この能力は、提供されるドラッグされたリプレゼンテーション・オブジェク トの機能性を表現している。これは、ドラッグされた適切で有益なリプレゼンテ ーションを提供する便宜を隠蔽するプロキシイのコンテキストで、下で説明され ている、ドラッグされたリプレゼンテーション・ソース・オブジェクトに対する 動機付けである。2)ドラッグされたアイテムのリプレゼンテーションの柔軟性 は、ドラッグされたリプレゼンテーションを受けるドロップ・アクセプタのプロ グラムされたビィヘイビアによる有利性に用いられる。例えば、ワード・プロセ ッサ・ドキュメント・リプレゼンテーションへのリンクを提供し、ドキュメント のアクセスを可能にしているものとして、次のものがある。A)非変換ドキュメ ント、B)テキストのストリーム、C)グラフィカル・レイアウトのページ、又 はD)他のドキュメント・フォーマット。 最後に、いくつかのドラッグ&ドロップの基礎的なメカニズムは、本発明の好 ましい実施例を理解を通じて、説明される必要がある。 第1に、このようなユーザ・インタラクションを実装するときの実際上の制限 は、ユーザからの「マウス・ダウン」イベントは、いくつかのインタラクション の一つを特定するのに使用される。例えば、「ドラッグする」の始まりではなく 、どんなカーソルの動きもなしでユーザがボタンをすぐに離す場合の、アイテム を選択する。実装は、上記のメカニズムを、ドラッグ&ドロップ・インタラクタ の作成をユーザがボタンを押しかつカーソルを少し動かすまで延期することによ り修正する。 第2に、ドラッグ&ドロップ・メカニズムの詳細な説明において、ユーザは、 ドラッグ&ドロップ・インタラクタの動作は、単独のマウスおよびマウス上の単 独ボタンの動きにより特定する。上述の基本的メカニズムを前提としているが、 ディスプレイ上の1つの点から他の点にアイテムを「運ぶ」ことを特定するため の動作が良く定義されていれば、異なる入力デバイス、複数の入力デバイス、又 はポインティング・デバイス上の複数のボタンを含む拡張が可能である。 第3に、ドラッグおよびドロップに関連するイベントをポストすることを要求 するメカニズムを効率的に作成するために、ドロップ・アクセプタを提供する基 本設計は、特定のドラッグ&ドロップ・インタラクションの前に、その受け付け る基準「アップ・フロント(upfront)」を表すことが必要である。これは、例え ば、ドラッグ&ドロップ・インタラクタのシステムへ実装において、この情報を 用いて、ドラッグおよびドロップに関連するイベントを抜粋して、実行されてい るドラッグされるリプレゼンテーション中で興味がないことが知られているアク セプタを落とすことができる。 第4に、上記の記述は、明確さと簡単化のために、単独のアイテム(例えば、 1つのアイコン)がドラッグされる例を取り扱っている(説明したように、単独 のアイテムが複数のリプレゼンテーションを有することは有用である)。もっと も現実的なアプリケーションにおいて、ユーザがアイテムの集合を選択し、それ ら全部を一時に1つのインタラクションで集合選択としてドラッグできるように することが有用であり、必要である。 最後に、ドラッグ&ドロップ・インタラクションの上述の記述は、1つのソー ス・コンテキストから異なる目的のコンテキストにドラッグされるオブジェクト を取り扱っている。このソースと目的の相違は記述の明確さのために適用されて いる。ドラッグ&ドロップのメカニズムは、双方の役割を行えるようにプログラ ムされたソースおよび目的が同じビユー・オブジェクトの場合も包含する。 プロキシイ動作の例と実装 プロキシイと共に、ドキュメントをウィンドウ中へのオープン 格納されたドキュメント、図3に示すようなドキュメントがグラフィカル表示 にオープンされる。図2は、好ましい実施例にしたがったドキュメント表示を示 す。図8は、ドキュメントをウィンドウ中にオープンするために必要な処理の詳 細なフローチャートである。処理は、機能ブロック400で開始し、ここでドキ ュメント・プレゼンタが格納されたドキュメントから取り出される。そして、呼 出し(call)がドキュメント・プレゼンタ・オブジェクトに対して行われ、機能ブ ロック410において、ドキュメントのコンテント(内容)を提示するウィンド ウを作成する。格納されたドキュメントに対する参照は、この呼出しを備えてい る。ドキュメント・プレゼンタは、次の要素を備えるウィンドウを作成する。 a)格納されたドキュメントのコンテント・データを表示し、編集するための機 能430; この機能の詳細はここでは重要ではないので、記述されない。 b)プロキシイ要素440、例えば、格納されたドキュメントからプロキシイ・ アイコン・グラフィックを取り出すことにより得られる外見とともに。このプロ キシイ要素は、それを含むウィンドウとともに、下述される直接的なユーザ操作 を実装するオブジェクトである。これらの操作を実装するために、ウィンドウ又 はプロキシイ要素は、格納されたドキュメントへの参照を備えている。 c)格納されたドキュメントからウィンドウのタイトルとして名前ラベルを配置 するような、格納されたドキュメントに含まれるオプションである他の識別属性 450。 プロキシイを他のドロップを受けるエンティティにドラッグ 図9は、好ましい実施例に従って、プロキシイを他のドロップを受けるエンテ ィティにドラッグすることに関連するロジックの詳細なフローチャートである。 好ましい実施例のドラッグ&ドロップ記述との結合を容易にするために、プロキ シイを含みかつ表示しているウィンドウは、ドラッグ・ソースであるイベント・ ハンドリング・グラフィカル・オブジェクトである。ユーザは、機能ブロック5 00に示すように、マウスによりプロキシイを選択する。そして、機能ブロック 510に記載されているように、プロキシイ・アイコンを他の位置にドラッグす る。プロキシイ要素と関連しているウィンドウは、このユーザ・インタラクショ ンを次のように処理するように実装されている。 a)機能ブロック520に示すように、格納されたドキュメントへの参照を、ド ラッグされたリプレゼンテーション・ソース・オブジェクトを取り出すために使 用する。 b)ドラッグ・リプレゼンテーション・ソース・オブジェクトは、1以上のオブ ジェクトをドキュメントの公開された特徴を表示しているデスクトップ上に生成 する。機能ブロック530に示されているように、ドキュメント・オブジェクト は、ドラッグされたプロキシイを受け取るターゲットに自分自身をパブリッシュ する。 c)ドラッグされたリプレゼンテーション・ソースにより生成されたリプレゼン テーション・オブジェクトの集合は、この種のユーザ操作をサポートするシステ ムにより提供される(又はシステム上に実装された)想定された「ドラッグする 」機能を備える。リプレゼンテーション・オブジェクトは、機能ブロック540 に示されるように、システムのドラッグする機能により、「運ばれる」(″carri ed″)。 d)ユーザは、機能ブロック540に示すように、スクリーン上のどこか他にあ る、プロキシイを受けるエンティティにドラッグし、それをドロップする。 e)機能ブロック550に示されるように、ドラッグ機能は、運ばれたリプレゼ ンテーション・オブジェクトを受けるエンティティを備える(ユーザが、プロキ シイを受けるエンティティに対して、グラフィカルにドロップすることを仮定す る)。運ばれたリプレゼンテーションに対して、受けるエンティティが何をする かは、この一般的なメカニズムにとって重要ではない。 ドキュメントのドラッグされたリプレゼンテーション・ソースにより供給され たリプレゼンテーション・オブジェクトの集合の例は、ワード・プロセッサ・ド キュメントである。ワード・プロセッサ・ドキュメントのリプレゼンテーション ・ソースは、次のようなリプレゼンテーションを供給する。特定のドキュメント 型により提供されるリプレゼンテーションの性質と選択の詳細なロジックおよび ドロップを受けるターゲットが運ばれたリプレゼンテーションに対して何をする のかは、現在の説明には重要ではなく、ここに記述されない。 外部ソースからプロキシイにアイテムをドラッグする この場合、プロキシイ又はプロキシイを含み表示しているウィンドウは、プロ キシイのために、ドロップ・アクセプタの役割を想定している。外部ソースにド ラッグされた、ドラッグされたリプレゼンテーションは、ドラッグ・ソースであ る他のエンティティから来ている。 1)ユーザが1つのアイテム又は、複数のアイテム(例えば、アイコン)をスク リーン上に表示されている他のいくつかのエンティティからドラッグし、注目の ウィンドウのプロキシイ要素の上に持っていき、ドロップする。 2)「ドロップ」処理機能は、この種のユーザ操作をサポートするシステムによ り提供される(又はシステム上に実装された)ことを想定されている。このよう な機能は、ドロップの発生を報告し、ドラッグされたエンティティとして運ばれ たリプレゼンテーションを、このようなドロップを処理するように展開された実 装に供給する。プロキシイ要素と関連するウィンドウはこのような実装を展開す る。この実装は、ドロップ発生およびドロップされたリプレゼンテーションを、 次のように処理する。 a)格納されたドキュメントから、ドロップ・アクセプタンス・ハンドラ・オブ ジェクトを取り出す。 b)このオブジェクト上にドロップ処理の呼出しを起動し、ドロップされたリプ レゼンテーションを供給する。 ドラッグされたアイテムの外部ソースは、他のプロキシイを含む、システムの ドラッグする機能に関する適切なものなら何でもよいことに注意されたい。 プロキシイ・メカニズムのヒューマン・インタフェース・アプリケーション 好ましい実施例によると、プロキシイは、「ワークプレース」の機能をウィン ドウ環境中の現在アクティブなドキュメントに与え、例として、プロキシイがワ ークプレース・コンテキスト中の普通のアイコンである場合の、ビィヘイビアの 特性の記述が示される。この記述は、プロキシイがオープン・ウインドウ環境中 でどのようにプロキシイが行動するかの記述が続いている。 ドキュメント・オブジェクト ワークプレース中でドキュメント・アイコンを、あるコンテナから他のコンテ ナにドラッグして、移動し、コピーすることができる。また、ドキュメント・ア イコンをごみ箱や機能デバイス(例えば、プリンタ)および外観を表している他 のアイコン、ドキュメントが運んでいるデータを読み、解釈することができる特 別なアイコンにドラッグすることができる。例えば、ドキュメントがメイル・ア ドレスを含んでいるとき、ドキュメント・オブジェクトがそのアドレスにメイル される。特に、それがビジネス・カード・オブジェクトである場合、手紙又は他 のドキュメント・オブジェクトがドラッグされ、ビジネス・カード・オブジェク ト上にドロップされて、ビジネス・カード内のアドレスに対してメイル・オペレ ーションを起動する。アドレスがインターネット・アドレスや他のネットワーク ・アドレスである場合、ドキュメントは、ネットワークの媒体を介して、特定の アドレスに送信される。電子アドレスがビジネス・カード内に存在しない場合、 ユーザに対して、アドレスを入力するようにプロンプトされる。動作を開始する ために、アイコンが選択され、次の動作が実行される。オープン、参照の作成、 複製、属性の表示。各動作は、下に詳細に示す。 ドキュメント・アイコンがプロキシイと共にウィンドウに対してオープンする。 1)プロキシイは移動/コピー/トラッシュ動作を、オープンされかつアクティ ブなドキュメントに対して供給する。 2)プロキシイを、ドキュメントをクローズせずドキュメントからプロキシイを 取り除かずに、デバイスおよび外見上にドロップすることができる。 ステイショナリ(便箋)・パッド・オブジェクト ステイショナリ(便箋)・パッド・オブジェクトはワークスペース中にオープ ンし、そして、アイコンはステイショナリ・パッド・ベース・ドキュメントのコ ピーを作成し、ドキュメントをオープンする。ステイショナリ・パッド・オブジ ェクトはプロキシイと共にウィンドウ中にオープンし、そして、ステイショナリ ・パッド・オブジェクトは、通常のドキュメントの意味でオープンの状態にはな らない。これは、オープンすることで、コピー(通常のドキュメントで、ステイ ショナリ・パッドではない)が作成され、プロキシイを含むドキュメント中にオ ープンされる。他の変形は、ステイショナリ・パッドに対するショー・プロパテ ィ・ウィンドウ(属性をみせるウィンドウ)はプロキシイを有し、ショー・プロ パティ・ウィンドウからオープンすることができる(コピーをオフし、ステイシ ョナリ・ドキュメント・インスタンスをオープン)。 プリンタ・オブジェクト プリンタ・オブジェクトはワークプレースにオープンされ、そして、それはア イコンとなる。それに対して、ドキュメントをドラッグし、関連するハードウェ ア・プリンタ・デバイスにドキュメントをプリントさせることができる。プリン タ・オブジェクトがプロキシイと共にオープンした場合、プリンタ・オブジェク トは、キューされたジョブの状態、プリンタの状態(紙が切れかかっているよう な)、または特別なプリンタ機能のためのパネルを表示するウィンドウ中にオー プンする。ウィンドウにプロキシイを含んでいるので、ユーザは、ジョブをプリ ンタにドラッグする同じインタフェースを、すなわち、ドキュメント・アイコン をプロキシイ・アイコンにドラッグすることで用い続けることができる。 図10は、好ましい実施例による、プロキシイ動作に関連した詳細なロジック を示すフローチャートである。処理は、マウス・ダウンが起こったとき、機能ブ ロック1000で始まる。そして、マウス・ダウン・イベントが検出されたとき 、 カーソルがイベント領域に位置しているかどうかを判定する判定ブロック100 2でテストが実行される。そうである場合は、機能ブロック1004に示されて いるように、イベントがポストされ処理される。ドラッグ可能なエンティティが 選択されたかどうかの他のテストが1010で実行される。そうではない場合、 機能ブロック1012に示されているように、制御は他のインタラクションに渡 される。そして、処理は機能ブロック1000に戻り、次のマウス・ダウン・イ ベントを待つ。ドラッグ可能なエンティティが判定ブロック1010で検出され た場合、ドラッグ&ドロップ・インタラクタが機能ブロック1020で作成され 、次のマウス・アクションに関係する次のイベントが機能ブロック1030で受 け取られる。新しいアクセプタがアイコンの下に位置しているか判定する判定ブ ロック1040でテストが実行される。そうである場合、機能ブロック1042 でドラッグ・エグジット・イベントをポストし、制御を判定ブロック1050に 渡し、選択されたアイコンの下に同じアクセプタが位置しているかを判定する。 同じアクセプタではない場合、機能ブロック1070でドラッグ・エンタ・イベ ントはポストされ、制御は判定ブロック1060に渡され、マウス・ドロップ・ イベントが発生したかを判定する。そうである場合、機能ブロック1080で示 されているように、アクセプタ機能を実行する。そうではない場合、制御を10 30に渡し、次のイベントを処理する。 バックグラウンドの文法分析ツールが、ソフトウェア・アイコンとして実装さ れており、これにテキスト・ドキュメントをドラッグすると、分析ツールが起動 され、分析ツールのアイコン表示上にドラッグされたドキュメントを分析する。 オープンされたアプライアンス・ウィンドウ(appliance window)がプロキシイを 有している場合、現在の結果が同じウィンドウに表示されている一方、もっと分 析すべきドキュメントをプロキシイが受け取るインタフェースを提供する。他の 例として、スペル・チェック動作が同時に起動することができる。 特定のシステム環境における好ましい実施例として本発明を説明してきたが、 当業者ならば、本発明が、添付されているクレームの範囲と精神の内で、修正を 加えて他のハードウェアおよびソフトウェア環境で実施できることが理解できる であろう。
【手続補正書】特許法第184条の8 【提出日】1996年4月15日 【補正内容】 請求の範囲 1.プロセッサ(10)と;前記プロセッサに取り付けられた格納手段(14, 16)と;前記プロセッサの制御下にある表示手段(38)と;前記格納手段に 存在し、前記表示手段上に表示される少なくとも1つのドキュメント(300) と; 前記格納したドキュメント(300)を処理する、システム・レベルのオブジ ェクト指向ドキュメント・フレームワーク手段とを備えるドキュメント処理のた めの装置において、 (a)前記ドキュメントの1つをアクティブなドキュメント(240)として 提示する手段(210,310)を含む、1以上のアイコン(図7,400〜4 30)として表示されているドキュメントを管理するシステム・レベルのオブジ ェクト指向デスクトップ管理手段と; (b)前記ドキュメントの1つのグラフィカル・リプレゼンテーション(20 0)をアクティブなドキュメント(240)のプレゼンテーション(210)内 に表示する手段を含む、前記システム・レベルのオブジェクト指向ドキュメント ・フレームワーク手段中の表示されているドキュメントから前記デスクトップ管 理手段を実行する、システム・レベルのオブジェクト指向ドキュメント・プロキ シイ手段(320〜360,図6,440〜450,500〜550)であって 、前記グラフィカル・リプレゼンテーションは、前記デスクトップ管理手段によ りサポートされており、これに関連するグラフィカル・プレゼンテーションを有 するドキュメントに対するオペレーションの集合を示し、かつ、グラフィカル・ リプレゼンテーションは、グラフィカル・リプレゼンテーションに関連する1つ のドキュメントに対するオペレーションの集合の1つを開始するように操作され ることができる手段と を備えることを特徴とする装置。 2.前記ドキュメント・フレームワーク手段は、ドキュメントのグラフィカル・ リプレゼンテーション(200)を表示上のアクティブ・ドキュメントとリンク する手段(330)を備えることを特徴とする請求項1記載の装置。 3.ドキュメントのグラフィカル・リプレゼンテーションを表示上のアクティブ ・ドキュメントとリンクする前記手段は、グラフィカル・リプレゼンテーション に近いドキュメントのテキスト記述(220)を表示する手段(320)を含む ことを特徴とする請求項2記載の装置。 4.前記格納手段中のオブジェクト(図3)内のプロキシイ属性(340)を隠 蔽する手段を含むことを特徴とする請求項1記載の装置。 5.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中の表 示されたドキュメントから、デスクトップ・ドラッグ&ドロップ機能(図6)を 実行するシステム・レベルのオブジェクト指向ドキュメント・プロキシイ手段を 含むことを特徴とする請求項3記載の装置。 6.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中のド ラッグ&ドロップ動作の互換性をチェックする型ネゴシエーション処理(360 ,550,1080)を含むことを特徴とする請求項1記載の装置。 7.表示手段と格納手段とを有し、格納したドキュメントを処理するシステム・ レベルのオブジェクト指向ドキュメント・フレームワークを有するプロセッサ上 のドキュメント処理の方法において、 (a)前記表示手段上に表示するための少なくとも1つのドキュメント(図3 )を前記格納手段に格納するステップと、 (b)前記ドキュメントの1つをアクティブなドキュメントとして表示するス テップを含む、1以上のアイコン(200)として表示されているドキュメント を管理するステップと、 (c)前記システム・レベルのオブジェクト指向ドキュメント・フレームワー ク(320〜360,図6,440〜450,500〜550)中のアクティブ なドキュメントから前記デスクトップ管理手段を実行するために、システム・レ ベルのオブジェクト指向デスクトップ管理手段を利用するステップであって、前 記ドキュメントの1つのグラフィカル・リプレゼンテーション(200)をアク ティブなドキュメント(240)のプレゼンテーション(210)内に表示する ステップを含み、前記グラフィカル・リプレゼンテーションは、グラフィカル・ プレゼンテーションに関連する全てのドキュメントに対する、前記デスクトップ 管理手段によりサポートされているオペレーションの集合を示すステップと、 (d)前記グラフィカル・リプレゼンテーションを操作して、前記グラフィカ ル・リプレゼンテーションに関連する1つのドキュメントに対して、前記オペレ ーションの集合の1つを開始させるステップと を備えることを特徴とする方法。 8.ドキュメントのグラフィカル・リプレゼンテーション(200)を表示上の アクティブ・ドキュメントとリンクする(330)ステップを備えることを特徴 とする請求項7記載の方法。 9.グラフィカル・リプレゼンテーションに近いドキュメントのテキスト記述( 220)を表示する(320)ステップを含むことを特徴とする請求項8記載の 方法。 10.前記格納手段中のオブジェクト(図3)内のプロキシイ属性(340)を 隠蔽するステップを含むことを特徴とする請求項7記載の方法。 11.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中の 表示されたドキュメントから、デスクトップ・ドラッグ&ドロップ機能(図6) を実行するステップを含むことを特徴とする請求項10記載の方法。 12.型ネゴシエーションを利用して、システム・レベルのオブジェクト指向ド キュメント・フレームワーク中のドラッグ&ドロップ動作(360,550, 1080)の互換性をチェックするステップを含むことを特徴とする請求項11 記載の方法。 13.1以上のアイコンをプロキシイにドラッグし、アクションを起動するステ ップを含むことを特徴とする請求項7記載の方法。 14.ドキュメントをプリントするステップを含むことを特徴とする請求項13 記載の方法。 15.ドキュメントをコピーするステップを含むことを特徴とする請求項13記 載の方法。 16.ドキュメントを移動するステップを含むことを特徴とする請求項13記載 の方法。 17.ドキュメントをトラッシュするステップを含むことを特徴とする請求項1 3記載の方法。 18.スペル・チェック動作を実行するステップを含むことを特徴とする請求項 13記載の方法。 19.ドキュメントをメイリングするステップを含むことを特徴とする請求項1 3記載の方法。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディッキンソン,ロバート,ディー. アメリカ合衆国 94544 カリフォルニア 州 ヘイワード フェアウェイ ストリー ト 250 (72)発明者 ワタナベ,リョウジ アメリカ合衆国 95014 カリフォルニア 州 クパチーノ パーム アヴェニュ 22284

Claims (1)

  1. 【特許請求の範囲】 1.ドキュメント処理のための装置において、 (a)プロセッサ手段と、 (b)前記プロセッサ手段に取り付けられた格納手段と、 (c)前記プロセッサ手段の制御下にある表示装置と、 (d)前記格納手段に存在し、前記表示手段上に表示される少なくとも1つのド キュメントと、 (e)前記格納したドキュメントを処理する、システム・レベルのオブジェクト 指向ドキュメント・フレームワーク手段と、 (f)1以上のアイコンとして表示されているドキュメントを管理する、システ ム・レベルのオブジェクト指向デスクトップ管理手段と、 (g)前記システム・レベルのオブジェクト指向ドキュメント・フレームワーク 手段中の表示されているドキュメントから前記デスクトップ管理手段を実行する 、システム・レベルのオブジェクト指向ドキュメント・プロキシイ手段と を備えることを特徴とする装置。 2.前記ドキュメント・フレームワーク手段は、ドキュメントのグラフィカル・ リプレゼンテーションを表示上のアクティブ・ドキュメントとリンクする手段を 備えることを特徴とする請求項1記載の装置。 3.ドキュメントのグラフィカル・リプレゼンテーションを表示上のアクティブ ・ドキュメントとリンクする前記手段は、グラフィカル・リプレゼンテーション に近いドキュメントのテキスト記述を表示する手段を含むことを特徴とする請求 頃2記載の装置。 4.前記格納手段中のオブジェクト内のプロキシイ属性を隠蔽する手段を含むこ とを特徴とする請求項1記載の装置。 5.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中の表 示されたドキュメントから、デスクトップ・ドラッグ&ドロップ機能を実行する システム・レベルのオブジェクト指向ドキュメント・プロキシイ手段を含むこと を特徴とする請求項3記載の装置。 6.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中のド ラッグ&ドロップ動作の互換性をチェックする型ネゴシエーション処理を含むこ とを特徴とする請求項1記載の装置。 7.ドキュメント・プロキシイ処理のための方法において、 (a)ドキュメントと格納されたドキュメント・オブジェクト中のドキュメント に関連する隠蔽された情報とを格納するステップと (b)前記格納されたドキュメント・オブジェクトのドキュメント・アイコン表 示を選択するステップと (c)ウィンドウ境界情報を表示するステップと (d)格納されたドキュメント・オブジェクトから特定のドキュメントに関連が あるウィンドウ・コンテント・リプレゼンテーションを取り出して、前記格納さ れたドキュメント・オブジェクトをオープンするステップと (e)格納されたドキュメント・オブジェクトから情報を取り出すことにより、 ドキュメント・プロキシイをグラフィカル表示を表示するステップと を備えることを特徴とする方法。 8.表示手段と格納手段とを有するプロセッサ上のドキュメント処理の方法にお いて、 (a)前記表示手段上に表示するための少なくても1つのドキュメントを前記格 納手段に格納するステップと、 (e)システム・レベルのオブジェクト指向ドキュメント・フレームワークを利 用して、前記格納されたドキュメントを処理するステップと、 (f)システム・レベルのオブジェクト指向デスクトップ管理手段を利用して、 1以上のアイコンとして表示されているドキュメントを管理するステップと、 (g)前記システム・レベルのオブジェクト指向ドキュメント・フレームワーク 手段中の表示されているドキュメントから前記デスクトップ管理手段を実行する ステップと を備えることを特徴とする方法。 9.ドキュメントのグラフィカル・リプレゼンテーションを表示上のアクティブ ・ドキュメントとリンクするステップを備えることを特徴とする請求項8記載の 方法。 10.グラフィカル・リプレゼンテーションに近いドキュメントのテキスト記述 を表示するステップを含むことを特徴とする請求項9記載の方法。 11.前記格納手段中のオブジェクト内のプロキシイ属性を隠蔽するステップを 含むことを特徴とする請求項8記載の方法。 12.システム・レベルのオブジェクト指向ドキュメント・フレームワーク中の 表示されたドキュメントから、デスクトップ・ドラッグ&ドロップ機能を実行す るステップを含むことを特徴とする請求項11記載の方法。 13.型ネゴシエーションを利用して、システム・レベルのオブジェクト指向ド キュメント・フレームワーク中のドラッグ&ドロップ動作の互換性をチェックす るステップを含むことを特徴とする請求項12記載の方法。 14.1以上のアイコンをプロキシイにドラッグし、アクションを起動するステ ップを含むことを特徴とする請求項8記載の方法。 15.ドキュメントをプリントするステップを含むことを特徴とする請求項14 記載の方法。 16.ドキュメントをコピーするステップを含むことを特徴とする請求項14記 載の方法。 17.ドキュメントを移動するステップを含むことを特徴とする請求項14記載 の方法。 18.ドキュメントをトラッシュするステップを含むことを特徴とする請求項1 4記載の方法。 19.スペル・チェック動作を実行するステップを含むことを特徴とする請求項 14記載の方法。 20.ドキュメントをメイリングするステップを含むことを特徴とする請求項1 4記載の方法。
JP7524678A 1994-03-21 1995-03-13 ドキュメント・プロキシィ・フレームワーク Pending JPH09510567A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US21084694A 1994-03-21 1994-03-21
US08/210,846 1994-03-21
PCT/US1995/003059 WO1995025999A1 (en) 1994-03-21 1995-03-13 Document proxy framework

Publications (1)

Publication Number Publication Date
JPH09510567A true JPH09510567A (ja) 1997-10-21

Family

ID=22784505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7524678A Pending JPH09510567A (ja) 1994-03-21 1995-03-13 ドキュメント・プロキシィ・フレームワーク

Country Status (6)

Country Link
US (1) US5638504A (ja)
EP (1) EP0742918B1 (ja)
JP (1) JPH09510567A (ja)
CA (1) CA2185990C (ja)
DE (1) DE69500885T2 (ja)
WO (1) WO1995025999A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010504591A (ja) * 2006-09-21 2010-02-12 ロイターズ アメリカ,アイエヌシー. 共通コンポーネントフレームワーク
JP2013125498A (ja) * 2011-12-16 2013-06-24 Canon Inc 文書管理装置及び方法
JP2014211889A (ja) * 2009-03-16 2014-11-13 アップル インコーポレイテッド イベント認識

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633861B2 (en) 1993-03-19 2003-10-14 Ricoh Company Limited Automatic invocation of computational resources without user intervention across a network
US5546502A (en) * 1993-03-19 1996-08-13 Ricoh Company, Ltd. Automatic invocation of computational resources without user intervention
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JP3684554B2 (ja) * 1995-04-20 2005-08-17 富士ゼロックス株式会社 文書処理装置
US5802531A (en) * 1995-05-08 1998-09-01 Apple Computer, Inc. Method and system for embedding parts of documents and synchronizing multiple views thereof
WO1997027553A1 (en) * 1996-01-29 1997-07-31 Futuretense, Inc. Distributed electronic publishing system
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US6049673A (en) * 1996-03-08 2000-04-11 Organicnet, Inc. Organicware applications for computer systems
US5802380A (en) * 1996-03-08 1998-09-01 Microsoft Corporation Method and system for uniform access of textual data
US5890176A (en) * 1996-04-24 1999-03-30 International Business Machines Corp. Object-oriented document version tracking method and apparatus
US5999986A (en) * 1996-05-01 1999-12-07 Microsoft Corporation Method and system for providing an event system infrastructure
US5765176A (en) * 1996-09-06 1998-06-09 Xerox Corporation Performing document image management tasks using an iconic image having embedded encoded information
US5938726A (en) * 1996-10-04 1999-08-17 Motorola, Inc. Apparatus for reading an electronic network navigation device and a peripheral for use therewith
US6081827A (en) * 1996-09-23 2000-06-27 Motorola, Inc. Network navigation methods and systems using an article of mail
US6138151A (en) * 1996-09-23 2000-10-24 Motorola, Inc. Network navigation method for printed articles by using embedded codes for article-associated links
US5948072A (en) * 1996-10-31 1999-09-07 International Business Machines Corporation Method and apparatus for defining the scope of a CORBAservices factory finder
US5999178A (en) * 1997-01-21 1999-12-07 Netiq Corporation Selection, type matching and manipulation of resource objects by a computer program
US5986653A (en) * 1997-01-21 1999-11-16 Netiq Corporation Event signaling in a foldable object tree
US6324682B1 (en) * 1997-02-14 2001-11-27 Velocity.Com Organicware applications for computer systems
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US5937064A (en) * 1997-03-03 1999-08-10 Lucent Technologies, Inc. System and method for interactive visualization, analysis and control of a dynamic database
US6002946A (en) 1997-04-14 1999-12-14 Motorola, Inc. Handheld device having an optical data reader
US6040830A (en) 1997-06-20 2000-03-21 Autodesk, Inc. Intelligent proxy objects
US6137654A (en) * 1997-06-23 2000-10-24 Motorola, Inc. Device having a diskette-like housing and a wireless transceiver and methods therefor
US6208659B1 (en) * 1997-12-22 2001-03-27 Nortel Networks Limited Data processing system and method for providing personal information in a communication network
FR2775096A1 (fr) * 1998-02-17 1999-08-20 Sbi Systeme de gestion de documents
AUPP252298A0 (en) * 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
US6112992A (en) * 1998-06-17 2000-09-05 Motorola, Inc. Optical code reader and methods and articles therefor
US6131813A (en) 1998-06-04 2000-10-17 Motorola, Inc. Optical code reader and methods and articles therefor
US6260760B1 (en) 1998-06-17 2001-07-17 Motorola, Inc. Optical code reader including circuitry for processing the symbology
US6535294B1 (en) 1998-06-23 2003-03-18 Discount Labels, Inc. System and method for preparing customized printed products over a communications network
US6731309B1 (en) * 1998-08-28 2004-05-04 Corel Corporation Real time preview
US6349295B1 (en) 1998-12-31 2002-02-19 Walker Digital, Llc Method and apparatus for performing supplemental searches over a network
US7062532B1 (en) 1999-03-25 2006-06-13 Autodesk, Inc. Method and apparatus for drawing collaboration on a network
US6418325B1 (en) 1999-07-12 2002-07-09 Motorola, Inc. Handheld device having an optical data reader
US6834306B1 (en) * 1999-08-10 2004-12-21 Akamai Technologies, Inc. Method and apparatus for notifying a user of changes to certain parts of web pages
US6763388B1 (en) * 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
US20060031746A1 (en) * 1999-11-11 2006-02-09 Toepfer John R Publishing architecture system and method
US6970931B1 (en) * 2000-04-03 2005-11-29 International Business Machines Corporation Method for translucent online interaction
US7016922B1 (en) 2000-04-27 2006-03-21 Autodesk, Inc. Intelligent object versioning
US20020052896A1 (en) * 2000-05-23 2002-05-02 Streit Jason Mitchell Secure signature and date placement system
US7786999B1 (en) * 2000-10-04 2010-08-31 Apple Inc. Edit display during rendering operations
US7032225B2 (en) * 2002-04-23 2006-04-18 International Business Machines Corporation Object-oriented framework for document routing service in a content management system
US7689673B2 (en) * 2002-04-23 2010-03-30 Canon Kabushiki Kaisha Remote creation of printer instances on a workstation
US20030212714A1 (en) * 2002-05-08 2003-11-13 Autodesk, Inc. Efficient deferred synchronization of objects
US7958455B2 (en) * 2002-08-01 2011-06-07 Apple Inc. Mode activated scrolling
JP2004118917A (ja) * 2002-09-25 2004-04-15 Clarion Co Ltd 電子機器及びナビゲーション装置
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7716593B2 (en) * 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
US8799808B2 (en) 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
US7707255B2 (en) 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US7130863B2 (en) * 2003-09-24 2006-10-31 Tablecode Software Corporation Method for enhancing object-oriented programming through extending metadata associated with class-body class-head by adding additional metadata to the database
US10437964B2 (en) 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US20050240866A1 (en) 2004-04-26 2005-10-27 International Business Machines Corporation Multi-source, multi-destination data transfers
US9552141B2 (en) 2004-06-21 2017-01-24 Apple Inc. Methods and apparatuses for operating a data processing system
US7895531B2 (en) 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7886290B2 (en) 2005-06-16 2011-02-08 Microsoft Corporation Cross version and cross product user interface
US8239882B2 (en) 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US9542667B2 (en) 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US20070061428A1 (en) * 2005-09-09 2007-03-15 Autodesk, Inc. Customization of applications through deployable templates
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US7739259B2 (en) 2005-09-12 2010-06-15 Microsoft Corporation Integrated search and find user interface
US8793605B2 (en) * 2006-03-29 2014-07-29 Yahoo! Inc. Smart drag-and-drop
US8605090B2 (en) 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
JP4795133B2 (ja) * 2006-06-23 2011-10-19 キヤノン株式会社 画像形成装置、画像処理方法、該方法を実行する制御プログラム
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US8365144B1 (en) 2008-02-28 2013-01-29 The Mathworks, Inc. Proxy graphical user interface generation
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
US8799353B2 (en) 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US8335344B2 (en) * 2010-03-31 2012-12-18 Xerox Corporation Method and system for document annotation
US8331612B2 (en) * 2010-03-31 2012-12-11 Xerox Corporation Method and system for document annotation that includes outlining
US8302014B2 (en) 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
JP5280568B1 (ja) * 2012-06-29 2013-09-04 楽天株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US9558278B2 (en) 2012-09-11 2017-01-31 Apple Inc. Integrated content recommendation
US9218118B2 (en) 2012-09-11 2015-12-22 Apple Inc. Media player playlist management
US10346422B2 (en) * 2012-10-18 2019-07-09 International Business Machines Corporation Use of proxy objects for integration between a content management system and a case management system
US20140114864A1 (en) * 2012-10-22 2014-04-24 International Business Machines Corporation Case management integration with external content repositories
US10656784B2 (en) * 2014-06-16 2020-05-19 Samsung Electronics Co., Ltd. Method of arranging icon and electronic device supporting the same

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US5142618A (en) * 1986-11-21 1992-08-25 Hitachi, Ltd. Window management apparatus for a document creating apparatus
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5317688A (en) * 1988-07-27 1994-05-31 Hewlett-Packard Company Software agent used to provide instruction to a user for a plurality of computer applications
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5140678A (en) * 1990-05-04 1992-08-18 International Business Machines Corporation Computer user interface with window title bar icons
US5140677A (en) * 1990-05-11 1992-08-18 International Business Machines Corporation Computer user interface with window title bar mini-icons
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5202828A (en) * 1991-05-15 1993-04-13 Apple Computer, Inc. User interface system having programmable user interface elements
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
JPH07104766B2 (ja) * 1991-10-28 1995-11-13 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのメニューから複数のオブジェクトを表示する方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010504591A (ja) * 2006-09-21 2010-02-12 ロイターズ アメリカ,アイエヌシー. 共通コンポーネントフレームワーク
JP2014211889A (ja) * 2009-03-16 2014-11-13 アップル インコーポレイテッド イベント認識
JP2013125498A (ja) * 2011-12-16 2013-06-24 Canon Inc 文書管理装置及び方法

Also Published As

Publication number Publication date
CA2185990A1 (en) 1995-09-28
EP0742918A1 (en) 1996-11-20
WO1995025999A1 (en) 1995-09-28
US5638504A (en) 1997-06-10
DE69500885D1 (de) 1997-11-20
EP0742918B1 (en) 1997-10-15
DE69500885T2 (de) 1998-05-20
CA2185990C (en) 2002-07-23

Similar Documents

Publication Publication Date Title
JPH09510567A (ja) ドキュメント・プロキシィ・フレームワーク
US5517606A (en) Object-oriented menuing system using command objects of an object-oriented operation system
US5717877A (en) Object-oriented data access framework system
EP0669017B1 (en) Object oriented application interface
CA2145676C (en) Menu state system
US5530864A (en) Command object system for an object-oriented software platform
US5551055A (en) System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order
US5434965A (en) Balloon help system
CA2135518C (en) Load system
EP0676067B1 (en) Dialog system
EP0679274B1 (en) Runtime loader
US5479601A (en) Method and apparatus for processing commands generated by user interface controls in an atomic manner
JPH04303240A (ja) オブジェクト指向インタフェース標準を与えるシステムおよび方法
EP0664020B1 (en) Scrolling system
JPH03191383A (ja) Caiシステム