JP2008146664A - メニュー項目表示方法および装置 - Google Patents
メニュー項目表示方法および装置 Download PDFInfo
- Publication number
- JP2008146664A JP2008146664A JP2008000212A JP2008000212A JP2008146664A JP 2008146664 A JP2008146664 A JP 2008146664A JP 2008000212 A JP2008000212 A JP 2008000212A JP 2008000212 A JP2008000212 A JP 2008000212A JP 2008146664 A JP2008146664 A JP 2008146664A
- Authority
- JP
- Japan
- Prior art keywords
- menu
- data
- command
- menu item
- user
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】メニュー項目ごとにメニュー項目の状態を示す状態情報と、メニュー項目の状態を調べる論理を有するコマンドオブジェクトを設ける。少なくとも1つのメニュー項目がメニューから選択されたときに、システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新する。メニュー項目の表示形態はシステムの状態とコマンドオブジェクトにより決定される。コマンドオブジェクトはカプセル化される。
【選択図】図3
Description
ii)そのグラフィックに影響を与える通知
iii)それがアクティブであるかどうかに影響を与える通知
iv)それから得られるデータに影響を与える通知。この場合は、コマンドについて作成されたばかりのメニュー項目は、アクティブな通知のために接続される。これは、接続オブジェクトを通知システムに渡すことによって行われる。そのあと、コマンドは、コマンドがアクティブであるかどうかに影響を与える通知側(notifiers)に接続オブジェクトを接続することを受け持つ。
(a)状態情報および少なくとも1つのメニュー項目の状態を判定する論理を有するコマンドオブジェトをカプセル化する記憶手段と、
(b)前記コマンドオブジェクト中のデータ構造から、少なくとも1つのメニュー項目を作成するオブジェクト処理手段と、
(c)少なくとも1つのメニュー項目の状態についての確定的な状態情報を更新することにより少なくとも1つのメニュー項目を初期化するオブジェクト処理手段と、
(d)前記少なくとも1つのメニュー項目がメニューから選択されたときに、システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新するためのオブジェクト処理手段と
を備えたことを特徴とする。
・何をモデル化するか
ワードプロセッサではこれは入力しようとするテキストであり、スプレッドシートではそれはセル内の値と公式である。
・データをどのように表現し提供するか
再び、ワードプロセッサでは文字が適当な改行および改ページを用いて画面上に“見るものが得るもの”(wysiwyg) 形式で表示され、スプレッドシートでは表またはグラフとして表示され、構造化グラフィック・プログラム(例えばマックドロー(MacDraw))では、複数のグラフィック・オブジェクトの組として表示される。
・何が選択可能か
ワードプロセッサアプリケーションでは、選択されるのは文字の範囲であり、構造化グラフィック・プログラムではグラフィック・オブジェクトの組である。
・この選択の上で動作するコマンドは何か
ワードプロセッサではコマンドは文字のスタイルをボールドに変更することかもしれない。構造化グラフィック・プログラムにおけるコマンドはグラフィック・オブジェクトを回転させることかもしれない。第1B図は本発明による表示を示す。表示の前面にピクチャーをもってくるためのコマンドは41に描かれている。グラフィック情報のプレゼンテーションは40に描かれている。最後に、特定のグラフィック・オブジェクト、円の選択が42に示されている。
ワードプロセッサ・プログラムでは、選択されるのは文字の範囲であり、構造化グラフィック・プログラムではグラフィック・オブジェクトの組である。スプレッドシートではセルの範囲である。本発明は、システムがサポートする全ての基本的なデータ形式のために選択クラスを提供する。ユーザによりなされた選択を表す抽象ベース・クラスは選択されたデータの、アドレス空間から独立した指定を提供する。テキストでは、これは文字に対する一対のポインタよりはむしろ文字の数値範囲であるであろう。この限定は、他のユーザとの(リアルタイムでの)共同作業のとき、選択された範囲が他のマシーンとの間で交換されるので重要である。ベース・クラスはまたジェネリック・プロトコルをオーバライドして、この選択に対応する持続的選択を生成する。持続的選択はアンカー・オブジェクトのサブクラスであり、持続的選択が変更の編集から生き延びなければならないので、対応する短命な選択より重いと考えられる。例えば、持続的テキスト選択は、テキストがその前後に挿入されるときそれ自身を調整しなければならない。アンカーはハイパーメディアのリンク、データ・フローのリンクおよびアノテーションの実行に際して使用される。
本発明内の抽象化にプラグを差し込む利益は、概念的モデルを提供するよりも大きい。フレームワークにプラグを差すことはベース・オペレーティング・システム中に構成された多くの複雑な特徴を提供する。これは、比較的小さいメソッドをコールすることによりフレームワークが多数のユーザ特徴を実行することを意味する。フレームワークのための符号化への投資がいくつかの特徴に渡って影響をもたらす。
本発明はマルチレベル・アンドゥをサポートするように設計されている。この特徴を折り込むことは、しかしながら、開発者の側に余分な努力を要求しない。システムは、生成されるすべてのコマンド・オブジェクトを単に思い出すだけである。対応するコマンド・オブジェクトが存在する限り、ユーザは、データへの特定の変更をアンドゥ、即ち取り消すことができる。システムが、コマンドを保存し、どのコマンドをアンドゥあるいはリドゥ(再実行)すべきかを決定するので、ユーザはアンドゥの手順を折り込まない。
上記のように、ドキュメントは、ある過去の時の状態から始め、そのとき以降なされたコマンド・オブジェクトのシーケンスを適用することにより再構築することができる。このためユーザは故障の場合に仕事を回復することができ、リアルタイム協同作業をサポートすることができる。コマンド・オブジェクトは選択されたものについて動作し、それらの選択されたものはアドレス空間では独立である。従って、選択されたオブジェクトをネットワークを介して協同作業者に送ることができ、遠隔マシーンで使用することができる。同じことがコマンド・オブジェクトについても言える。1人の協同作業者が行ったコマンドを他の者に送り同じようにそれらの者のマシーンで実行することができる。協同作業者が同一のデータコピーから始めるならば、コピーは協同作業者が変更を行うにつれて“同期して”残る。選択の生成はコマンド・オブジェクトを使用して行うので、すべての協同作業者は同じ現在の選択をもつ。
コマンド・オブジェクトのシーケンスを管理するようにシステムを設計すると、システムワイドのスクリプト道具を実行することが可能となる。コマンド・オブジェクトのシーケンスはローカルアクションのスクリプトと等価である。スクリプト機能は、あるドキュメントに適用されるコマンド・オブジェクトを単にトラッキング(追尾)し続ける。スクリプト機能はまた、スクリプトに際して選択オブジェクトを使用する。この機能は、適用する選択を変えることによりスクリプトの注文化を提供する。コマンド・オブジェクトはそれらが特定の選択に適用できるかどうかを示すためのプロトコルを含むので、システムはユーザのスクリプトの変更が妥当であることを確認する。
アンカーとして知られている持続的な選択はリンク・オブジェクトにより接続されることができる。リンク・オブジェクトは、その終点を形成する2つのアンカーへの参照を有する。システムでは、リンクは双方向であり、両端は等しい能力を有する。リンクのより高いレベルの使用はリンクに方向を課すことができる。単一リンク・オブジェクトは2つの標準的特徴、即ち運行とデータ・フローとをサポートする。ユーザはリンクの一端から他端へ運行する。通常、これは指定アンカーを含み、持続的な選択をハイライトとするドキュメントをオープンすることを含む。正確な振る舞いは宛先でのアンカー・オブジェクトにより決定される。例えば、アニメーションへのリンクはアニメーションを演ずることができる。データベースクエリーへのリンクはクエリーを実行する。
本発明はシステムワイドの注釈の道具をサポートする。この道具により著者(使用者)は見直しのためドキュメントのドラフトを分配することができる。見直し者はドキュメントにポスト・ノート(posted note) 添付することができ、実行されたとき著者にドキュメントを戻す。著者はポスト・ノートを調べ、それぞれについてアクションを取る(著者はドキュメント内のポスト・ノートを生成することができる)。見直し者が著者と同じソフトウェアをもつ必要はない。代わりに、見直し者は標準注釈アプリケーションを使用することができる。このアプリケーションは著者のドラフトからデータを読み、注釈可能なプレゼンテーションを生成する(そのようなプレゼンテーションの生成は標準データ・カプセルプロトコルの一部である)。
データ表現は、モデル化するデータは何かとの質門への答えと関係する。本発明はデータのモデル化を助ける道具を提供する。テキスト、構造化グラフィックス、サウンドおよび映像を含めて、特定のデータ形式をモデル化するためのクラスがある。これらの特定のクラスに加えて、本発明は問題をモデル化するのを助ける多数の他の抽象化、コレクション(収集)クラス、同時の制御と回復フレームワーク、およびC++ 言語自身を提供する。本発明の主題では、特定データ形式のためのデータ・モデルをカプセル化するクラスはカプセル化クラスのサブクラスである。
開発者は、カプセル化クラスから導かれるクラスを生成することにより特定形式のデータ表現に対するコンテナを生成する。例えばグラフィック・オブジェクト、様式化されたテキスト、スプレッドシートのセルのようなシステム内の各形式のデータのために、ある形式のデータのためのコンテナとして働く異なる導かれたクラスが存在しなければならない。カプセル化クラスの各々は、それに含まれるデータをアクセスし、修正するための形式の特定プロトコルを提供する。このプロトコルは、一般に、データを表示するためのプレゼンテーションにより、またデータを修正するためのコマンドにより使用される。形式特定プロトコルに加えて、カプセル化クラスは、“ブラック・ボックス”としてのデータ・カプセルの他のエイリアン(異なる見知らぬ)形式への埋め込みをサポートするジェネリック・プロトコルを提供する。このプロトコルは導かれたクラスの中で実行され、カプセル化データのためにプレゼンテーション、編集および選択の生成をサポートしなければならない。コンテナは、エイリアン・データ形式の埋め込みをサポートするように、このジェネリック・プロトコルを理解する必要があるにすぎない。
データ形式の設計者は、特定形式のデータのための表現を設計するときに、C++ オブジェクト・モデルと、選択されるべき豊富な標準クラスの組との両方をもっている。データを表現するためのユニークなクラスを設計する前に、本発明により提供されるクラスが、常に考慮されるべきである。これにより、システム内の既存のクラスに同様なあるいは同一の機能を提供する新しいクラスを生成する無駄な努力を軽減することができる。これらのうちで最も基本となるのがC++ オブジェクト・モデルである。設計者は、ユーザが扱うクラスを表現するためにユーザのメンタル(精神的)モデルに近づける1または2以上のクラスを生成することができる。
カプセル化クラスは、カプセル内に含まれるデータの種々のクラスのプレゼンテーションを生成するためのプロトコルを提供する。プレゼンテーションは、寸描プレゼンテーション、“ブラウズ・オンリ”(拾い読み)プレゼンテーション、選択可能プレゼンテーションおよび編集可能プレゼンテーションを含む。プレゼンテーションのためのサイズのネゴシエーションを行い、選ばれたサイズ内にデータを適応させるためのプロトコルがまた存在する。このプロトコルを実行するカプセル化クラスのサブクラスは、他のカプセルへのデータの埋め込みをサポートする。現在サポートされているプレゼンテーションは、以下のものを含む。
カプセル化クラスに含まれるデータが変更されたとき、クライアント(例えばデータの使用者)に変更を通知する必要がある。カプセルは標準通知サポートのための組込クラスにあり、カプセルがデータ表現への変更をクライアントに通知することを可能とする。クライアントは、特定の変更についての通知あるいはすべての変更についての通知のためのカプセルに接続することができる。変更が起きたとき、カプセルはすべての関連するクライアントに変更についての通知を伝搬するように、このモデルに依頼する。
このセクションでは、どのようにしてシステムがデータをユーザにプレゼンテーションするかについて説明する。データが一旦システムに表現されると、適当な意味ある方法でデータをユーザにプレゼンテーションすることがユーザ・インターフェイスの役割である。ユーザ・インターフェイスはユーザとモデル化データの間のダイアログを確立する。このダイアログはユーザがデータを見、あるいは他に知覚することを可能とし、ユーザにデータを修正あるいは処理する機会を与える。このセクションはデータ表現に焦点を当てている。
開発者は、データ・カプセルと相互作用するようにデータのプレゼンテーションを容易にするクラスを生成する。プレゼンテーションからデータ・モデルを分離することにより、本発明は同じデータの多数のプレゼンテーションを容易にする。アップル社のマッキントッシュ・ファインダのようなアプリケーションは、同一データを多数にプレゼンテーションすることを制限された形で既にサポートしている。同じ時間に同じデータを異なる観点で表示することを可能とすることはある場合には有用である。これらの異なる観点は、同じデータの4つの異なる観点を示す3DCAD プログラムのような同じクラスのインスタンスであってもよい。各種のプレゼンテーションのため、ユーザには、モデルを表示することができるビューと、モデルを選択し修正できるトラッキング(追尾)ツールと追尾コマンドの組を前もって書くことを要求されていた。
最も簡単なプレゼンテーション形式はデータの名称である。名称はデータの内容あるいは形式を示すテキスト・ストリングである。例としては、“第4章”、“1990年連邦税収”、“すべきこと”等がある。他の簡単なプレゼンテーション形式であるアイコンは、データの小さいグラフィックプレゼンテーションである。それは通常データ形式を示す。例としては、本、レポート、金融モデル、サウンドあるいは映像の記録、図面等がある。しかしながら、また、それらは印刷しているプリンタのようなステータスを表示し、あるいは図面の縮尺図のような内容を示してもよい。最後に、寸描プレゼンテーションはモデル・データの小さいビューである。たとえば、縮尺された図、本の内容の表、縮尺された手紙、あるいは長い書類の縮尺された最初のページである。拾い読みプレゼンテーションは、ユーザが通常のサイズでデータを見ることを可能とするが、データのいずれも選択しあるいは修正することはできない。
選択可能プレゼンテーションは、ユーザがデータを見、調べ、データから情報を抽出することを可能とする。これらのプレゼンテーションは、コンテキスト、即ち、何がデータか、データはどこか、データはいつ生成されたかを提供する。それはリスト、グリッドのような構造化手法でデータを外観としてあるいは部分的にプレゼンテーションするのを助けることができる。それはまた、データ要素間の関係、データのコンテナあるいは同胞との関係、あるいは他の依存性を表示するのに有用である。
・サウンドの記録−コントロール・パネルは可聴プレゼンテーションを実行する。ビューは音楽のスコアとしてあるいは一連の波形としてサウンドを表す。ビューはサンプル番号あるいは時間表示を含む。
編集可能プレゼンテーションは、データの修正を行うことを除いて、対話的プレゼンテーションと同様である。編集可能プレゼンテーションは、マウスあるいは他のポインタでデータの直接の処理を可能とすることによりこれを行う。また、データがメニュー項目と他のコントロールを介してシンボル的に処理されることを可能とする。
プレゼンテーションは、データとプレゼンテーションされるべき他の情報とを決定するためにデータ・カプセルと相互に作用する(対話する)。プレゼンテーションは要求されるデータをモデルにクエリー(照会)する。プレゼンテーションは含まれるデータのすべてあるいは一部だけをプレゼンテーションしてもよいし、あるいはデータ・カプセルのデータから導かれてもよい。
アクティブな単一のモデルの多くのプレゼンテーションが一時に存在することができるので、データは、協同作業者を含めて多くのソースから変更され得る。モデル・データに関して、各プレゼンテーションは自身を更新し続ける責任がある。これは、モデルのすべてあるいは部分が変更するとき、通知を登録することにより達成される。プレゼンテーションと関連するデータにある変更が生じたとき、プレゼンテーションは通知を受け取り、そのビューを更新する。変更通知は以下にリストされている手法のいずれかで発生することが可能である。第1に、変更通知は実際にモデル・データを変更するデータ・カプセル内のメソッドから生成される。第2に、変更通知は変更を引き起こすコマンドから発生される。前に述べたように、これら2つのアプローチには利益がある。データ・カプセル内から通知を発生することはデータが変化するときにはいつでもクライアントは通知されることを保証する。コマンドからの通知の発生は、“高レベル(higher−level)”通知を可能とし、複雑な変更により生成される通知の混乱を減少させる。
通知フレームワークは、オブジェクト間の変更情報を伝搬するための機構を提供する。フレームワークは、オブジェクトが、それらが依存するオブジェクトに関係することを表し、オブジェクトの変更についての通知を受け取ることを可能とする。標準インターフェイスはクライアントに通知を提供するクラスのために提供される。通知者クラスはクライアントのリストを管理しそれらのクライアントに通知をデスパッチ(注:送信すること)する手段を通知ソース・オブジェクトに提供する。通知者オブジェクトは通知を受け取るオブジェクトのクラスについての特別の知識を要求しない。接続オブジェクトは通知者オブジェクトからの通知のデスパッチを特定の通知受信オブジェクトに提供する。これらの接続オブジェクトは通知が受信者の異なるクラスにどのようにして配信されるかを特定することを可能とする。最後に、通知オブジェクトは変更について記述した情報を輸送し、インタレストは通知ソース・オブジェクトを記述する。
第18図は通知ソース・オブジェクトに対するオブジェクト発生識別フローチャートである。処理はターミナル1800で始まり、機能ブロック1810にすぐに移行する。そこでは、通知受信者オブジェクトがそれ自身への接続を生成する。その後、機能ブロック1820で、通知受信者オブジェクトは1またはそれ以上の通知ソース・オブジェクトからの1またそれ以上の通知に対して適切なインタレストを加える。これらのインタレストは通知ソース・オブジェクトにより定義される。
データ仕様はデータ処理の選択を発行することを目的とする。ユーザが表現に含まれるデータを処理しなければならないとき、データはそのデータのサブセットを特定できなければならない。ユーザは一般にこの仕様を“選択”と呼び、システムはすべての選択クラスがディセンドされる(decend、注:入手するの意味)ベース・クラスを提供する。本発明はまたシステムがサポートする基本的データ形式のすべてのための選択クラスを提供する。
表現内のデータのサブセットの仕様を含むオブジェクトはモデル選択クラスである。テキスト表現の場合には、ある可能な選択仕様は一対の文字オフセットである。構造化グラフィック・モデルでは、各形状にはユニークなIDが割り当てられなければならず、選択仕様は1組のユニークなIDである。仕様のどれもが選択データを直接ポイントせず、それらをデータの多数のコピーに適用することができる。
選択は、データをアクセスし修正する表現プロトコルを理解し、ローカル・アドレス空間でデータを見つける方法を知る。コマンド・オブジェクトはデータ選択を介して表現データをアクセスし、従って仕様からローカル・モデル内のリアル・データに変換する知識を要求しない。それは選択オブジェクトの仕事であり、アドレス空間独立仕様からリアル・データへのアクセスを提供する。テキスト・カプセルでは処理はある範囲内に含まれる実際の文字に対するカプセルをクエリーすることを要求できる。グラフィック・エディタのようなベース・モデルでは、選択はリアル・オブジェクトの代用物を保持する。カプセルはリアル・オブジェクトへ代用物を変換するためのルックアップ道具を提供する。
モデル選択クラスは選択間のデータの交換のためのプロトコルを提供する。形式ネゴシエーション、データの吸収、埋め込み、および運び出しを行うためのプロトコルを実行することにより、導かれたクラスは標準編集コマンドのほとんどのサポートを提供する。これは、システムにより提供される(カット、コピー、ペースト、データをプッシュ等の)編集コマンドが、表現されたデータ形式のために機能し、各アプリケーションの再実行を要求しないということを意味する。モデル選択クラスは、また、アンカーとリンクの交換のために直接にサポートを提供するが、表現データの交換をサポートするためいくつかのキーメソッドの導かれたクラスの実行上にある。
仕様を生成するユーザ・インターフェイスは一般にはデータの表現の応答である。多数の機構がデータ形式とプレゼンテーション・スタイルに基づいて使用可能である。選択を生成するための最も好ましいユーザ・インターフェイスは直接実行である。簡単なグラフィック・モデルでは、マウスでオブジェクトを直接クリックしあるいはマウス・トラッカーを用いていくつかのオブジェクトを横切って選択ボックスをドラッグすることによりオブジェクトを選択することができる。テキストでは、選択はファインド・コマンドの結果として生成することができる。選択が生成される他の共通の手法は、“ファインド”のようなメニューコマンドの結果としてである。コマンドが発行されたあと、ドキュメントは適切な場所にスクロールされ、サーチされたテキストが選択される。
データ修正(Data Modeification)は質問を発する。:この選択に関して動作することができるコマンドは何か?
ユーザが表現内に含まれるデータを修正すべきとき、システムはなされるべき修正の形式を正確に特定できなければならない。例えば、ワードプロセッサ・プログラムでは、ユーザは選択された範囲の文字のスタイルを変更することを望むことができる。あるいは、構造化グラフィック・プログラムでは、ユーザはグラフィック・オブジェクトの回転を望むことができる。データ・カプセルに含まれるデータを修正するすべてのユーザのアクションは、“コマンド・オブジェクト”により表現される。
ユーザによりなされたコマンドを表すアブストラクト・ベース・クラスはモデル・コマンド・オブジェクトである。モデル・コマンド・オブジェクトのサブクラスはドゥ、アンドゥ、リドゥされることができるというようなユーザ・アクションの意味を捉える。これらのサブクラスはそれらを生成するために使用されるユーザ・インターフェイス技術から独立している。MacAPPと異なり、ユーザ・アクションの意味が知られるとすぐに、デバイス・イベントがシステムによりコマンド・オブジェクトに翻訳される。
ハンドル・アンドゥ(HandleUndo)、
ハンドル・リドゥ(HandleRedo)
新しいクラスのコマンドを生成することは多数のメソッドをオーバライド(override)することを含む。オーバライドするための最も重要な3つのメソッドは、Handledo、HandleUndo、およびHandleRedoである。HandleDoメソッドは、そのままであるコマンド形式とそのコマンドが適用される選択とに基づいて適切にデータ・カプセルを変更するように応答可能である。例えば、ワードプロセッサにおいてコマンドがある範囲の文字に対するスタイル変更を含むならば、HandleDoメソッドはこのコマンドのあとに“アンドゥ(Undo)”する必要のある情報のすべてを保存する。スタイルの変更の例では、アンドゥ(undo)情報の保存は文字範囲の旧スタイルを記録することも含む。ほとんどのコマンドに対するアンドゥ情報は保存が非常に簡単である。しかしながら、ファインドおよび変更のようないくらかのコマンドは大量の情報を記録したあとでコマンドをアンドゥすることを含む。最後に、HandleDoメソッドは、データ・カプセルになされる変更を記述する変更通知を発行する。
コマンド・オブジェクトは、ユーザ・アクションの意味を捉える。実際、コマンドは(種々のユーザ・インターフェイス技術を用いて)ユーザにより最も多く生成されるが、同様に他の手法で生成することができる“ワーク・リクエスト”を表す。重要な概念は、コマンド・オブジェクトがデータ・カプセルに含まれるデータを修正するための唯一の手段を表すことである。データ・カプセルへのすべての変更は、無限のアンドゥの利益、保存無しのモデル、本発明の他の特徴が実現されるべきならば、コマンド・オブジェクトにより処理されなければならない。
本発明は、多くのユーザ・インターフェイス・コマンドと同様に、カット、コピー、ペースト、ハイパーメディア・リンクのスタート、リンクの完了、リンクの運行、リンクに関するデータのプッシュ、リンクに関するデータのプルのためのジェネリック・コマンドを提供することに加えて、全ての組込データ形式のための多数の組込コマンド・オブジェクトを提供する。
このドキュメントの前のセクションは、本発明の基本的な特徴に焦点を当てた。本発明には、さらに進んだ特徴を実行する多くの追加される道具がある。特に、これらの道具は、モデルベースのトラッキング(追尾)、ファイリング、アンカー、および共同作業を含む。
トラッキング(追尾)は、直接処理ユーザ・インターフェイスの心臓部である。トラッキングにより、ユーザは、テキストの範囲を選択し、オブジェクトをドラッグし、オブジェクトを再サイズ調整し、オブジェクトを描くことが可能となる。本発明は、モデルを実際に修正することにより多数のビュー(表示)、および多数のマシーンに渡る機能にトラッキングを拡張する。トラッカーは、モデルにコマンドを発行し、モデルはすべての関係するビューへ変更通知を発行する。
持続性選択即ち“アンカー”はデータの仕様を表現する点で選択と非常によく似ている。違いは、アンカーはデータへの変更に渡って維持されるので、アンカーは編集変更を生き続けなければならない点である。ドキュメントの初期で述べたグラフィック選択の実行は持続的である。しかしながら、テキスト選択の実行はない。ユーザが選択の前にテキストを挿入しあるいはデリートするならば、文字オフセットを調整しなければならない。テキストアンカーを実行するためには2つのアプローチがある。第1に、テキスト表現は、スタイルが維持される手法と同様に、テキスト内を指すマーカーの集まりを維持する。アンカーはマーカーを参照するユニークなIDを含む。テキストが変更されたとき、マーカーはユニークにされるが、アンカーは同じままである。他のアプローチは、テキストに対する編集履歴を維持することである。アンカーは時間スタンプと同様に1対の文字位置を含むことができる。テキストが編集される毎に、履歴は更新され、変更(例えば、時間Tに位置Xからデリートされた5文字)を記録する。アンカーが使用されるとき、システムは、最後に使用されたとき以来起きた編集変更に基づいて文字位置を補正しなければならない。適切な時に、履歴は凝縮され、アンカーは永久的に更新される。
ファイリングはデータを永久格納に保存しあるいは永久格納から再生するプロセスである。ユーザがファイリング作業をするためにしなければならないことは、データ・カプセルのための一連の操作を実行することのみである。本発明のデフォルト・ファイリングは”イメージ”ベースである。ユーザがドキュメントを開くとき、ドキュメントの内容全体はメモリに読み出される。ユーザがドキュメントを閉じるとき、ドキュメントの内容の全体がディスクに書き込まれる。このアプローチは、簡単で、フレキシブルで、理解しやすいので採用された。異なるフォーマットでデータを格納するためには、前もって存在する標準のファイル・フォーマットとの互換性を保つために、2つのアプローチが可能である。第1に、カプセル・クラスは実際のデータへの参照を一連の流れとすることができ、実際のデータを見つけるために参照を使用することができ、あるいは新しいサブクラスがファイル・サブクラスを生成し、リターンするように定義することができる。
同時ネットワーク共同作業は、2人あるいはそれ以上の人が同時に同じドキュメントを編集することを意味する。システムはまた共同作業ポリシーを確立する。即ち、ユーザがデータを変更するときあるいは自由に変更させるとき後退させられるかどうかである。開発者は共同作業ポリシーあるいは共同作業の機構を心配する必要はない。
混乱の減少を助けモデル選択を増強するため、ドキュメント・アーキテクチャは協同作業者のイニシャルと望ましいハイライトの束について情報を含む協同作用者クラスを提供する。
多数の選択をサポートするために、ユーザは、各協同作業者が選択を有するのでプレゼンテーション・ビューを修正しなければならない。アクティブな協同作業者の選択が変わるとき、標準変更通知が送られる。受動的協同作業者の選択が変わるとき異なる通知イベントが送られる。ビューは両方のイベントのために登録すべきである。どちらかのイベントに応答して取られたアクションも通常同じなので、両方のイベントのために同じハンドラー・メソッドを登録することにより経済性が実現される。
本発明のこの部分は、基本的に、先に議論されたオペレーティング・システム・フレームワークの基本上に構築するユーザ・インターフェイスの観点に焦点が絞られる。ユーザ・インターフェイスの第1の観点はユーザがコントロールとして参照する種々のオブジェクトあるいはデータとの対話(相互作用)を管理することを可能とする機構である。
ユーザが他のオブジェクトあるいはデータを処理するよう対話するオブジェクトはコントロールと呼ぶ。コントロールはオブジェクトあるいはデータの現在の状態を決定するためのコマンドを使用する。ユーザとの適切な対話に続いて、コントロールはコマンド・パラメータを更新し、それが実行されるようにする。コントロールの例はメニュー、ボタン、チェックボックス、およびらラジオ・ボタンである。
コントロールのある集まりは、コントロール・パネルと呼ばれる。コントロール・パネル内のコントロールは一般に実際のデータに作用する(これはディフォルトであり、必要はない)。それらのアクションは通常直接的であり、互いに独立である。コントロール・パネルは必要によりコントロールの間で入力フォーカスの進行を制御する。コントロール・パネルはシステムですべてのユーザ・インターフェイスに渡って共有されるであろう。
コントロールの他の集まりはダイアログ・ボックスと呼ばれる。ダイアログ・ボックス内のコントロールは一般にプロトタイプのデータに作用する(これはディフォルトであり、必要はない)。それらのアクションは通常グループ内に一緒に集められ、その後ユーザが Applyボタンを押すとき一緒に実行される。ダイアログ・ボックスは必要によりコントロールの間で入力フォーカスの進行を制御する。
3つのアクションの役割を提供して、アクションにおけるコントロールを説明する。第2図は種々のコントロールを示す。役割の例はコントロール(この場合チェックボックス)、コマンド、選択およびデータ・カプセルと似た手法により使用される。
誰でもが第3図に示されるようによりよく互いを知りたい。コマンド310はコントロールが興味があるデータがどの通知を送ることができるかをチェックボックス300に知らせる(コマンド310がどのようにして知るかは他の者に関係がない)。チェックボックス300は次に通知のためにデータ320に接続する。
何かがデータに起きる−それは第4図に示されるように通知を送る。チェックボックス400はインタレストを表現したそれらについて聞く。第4図では、データからの通知はチェックボックス内にXを置くことにより反映される情報を太くする(ボールドにする)ように表現する。
ユーザはこのシーンで、第6図に示されるようにチェックボックス600を一度押す。チェックボックス600はコマンド610のセット値メソッドを用いて選択を介してデータ620の値をセットする。全体のプロセスを第7図に再び示す。
コントロール・パネルは第8図に示されるように一セットのコントロールを含む単なるウインドゥである。これらのコントロールは現在の選択に作用するコマンドを含む。コントロールはコマンドがアクティブならばイネーブルされる。ユーザとの適切な対話に続いて、コントロールはコマンドを実行し、データを変更する。
コントロール・パネルの例として第8図に示すサウンド・コントローラを考える。このコントロール・パネルはサウンドの再生を制御する4つのボタン800,802,804および806を含む。各ボタンは上記の“アクション時のコントロール”のセクションに述べられたように実行する。
ダイアログ・ボックスは、それが一セットのコントロールを含む単純なウインドゥであるという点でコントロール・パネルと同様である。しかしながら、選択されたデータへ作用するコントロールに変わって、それらは他のコマンドのパラメータに作用する。Applyボタンが押されるまでだけが修正されたリアル・データである。
ダイアログ・ボックスの例として第9図に示すカラー・エディタを考える。それは3つのスライダを含む。一つはカラーの赤900、一つは青910、および一つは緑920の成分のためのスライダである。スライダを望みの値に調整したあと、ユーザはApply930を押して選択した範囲のカラーを変更する。
以下のセクションはコントロールおよびダイアログ領域のクラスとそれらの基本的なメソッドを説明する。
コントロールは1またはそれ以上のコマンドへのユーザ・インターフェイスである。コントロールはその名称通りにコマンドについての情報を表示し、また、それが現在のコンテキストの中でアクティブか否かを表示する。適切なユーザとの対話に続いて、コントロールはコマンドを実行する。適切なとき、コントロールはコマンドが修正するデータの現在値を得て、それをユーザに表示する。コマンドを実行する前にこのデータの新しい値を示すコマンド・パラメータをセットすることができる。
単一の通知者はコントロールの多くのサブクラスの中で共有される。特定のコントロールインスタンス内のインタレストを表すために、インタレストは特定されなければならない。コントロールインタレストは特定のコントロールを指すポインタを含むインタレストである。このクラスはサブクラス無しで、通常そのまま使用される内部クラスである。
各通知者はコントロールの多くのサブクラスの中で共有されている。コントロールがどこに通知を送るかを区別するために、通知は特定されなければならない。コントロールの通知はその通知を送ったコントロールへのポインタを含む。このクラスはサブクラス無しで通常そのまま使用される。
コントロールのプレゼンターはコントロールを包むので、プレゼンテーション・データ・カプセルにより含まれることができる。それはすべてのプレゼンター・オブジェクトが提供する標準的な振る舞いを提供する。このクラスはサブクラス無しで通常そのまま使用される。
コントロール選択は、コントロール・プレゼンターの中に包まれプレゼンテーションの際に格納される単一のコントロールと付加的にその中のコマンドを特定する。
ユニコントロールは、単一のコマンドを提供し、適切なユーザとの対話に続いて実行させられるコントロールのためのアブストラクト・ベース・クラスである。この形式のコントロールの例はボタンとチェックボックスである。
ボタンは押されるとコマンドを実行するユニコントロールである。このクラスは通常サブクラス無しで使用され、単にコマンドをセットして離れる。
チェックボックスはブール値をセットするコマンドへのユーザ・インターフェイスである。適切なユーザとの対話に続いて、チェックボックスは、値を変更するようにコマンド・メソッドをコールしてそのコマンドを実行する。このクラスは通常サブクラス無しで使用され、単にコマンドとその値のゲッターとセッターをセットし、離れる。
スライダは、単一浮動小数点値を表示して適切なユーザとの対話に続いて変更されることを可能とするユニコントロールである。スライダの例は第9図と第10図に示した。
マルチコントロールはいくつかのコマンドを提供するコントロールのためのアブストラクト・ベース・クラスであり、適切なユーザとの対話に続いてそれらを変更することを可能とする。この形式のコントロールの例はラジオ・ボタンとメニューである。
ラジオ・ボタンは2あるいはそれ以上のブール値を表示するマルチコントロールであり、適切なユーザとの対話に続いてそれらを変更することが可能となる。ラジオ・ボタンは、第11図に示すように、正確に1つのボタンが選択されるという制約を有する。紙(Paper)が選択されると、1100でその円が黒くされる。プラスチック(Plastic)が選択されると、1110でその円が選択される。両方を選択されることはできない。
コマンドは、オブジェクトへのあるいはオブジェクトのセットへのリクエストをカプセル化して特定のアクションを行う。コマンドは通常、ボタンを押すことや、メニュー項目を選択すること、あるいは直接処理のようなエンド・ユーザ・アクションに応答して実行される。コマンドは、その出現を決定するためにコントロールにより使用することができるそれら自身についての種々の情報(例えば、名称グラフィック、キー等価、それらがアクティブか否か)を提供することができる。サブクラスは、コマンドがアクティブか否かを決定するために、現在の選択、アクティブ・ユーザ・インターフェイス要素、あるいは他のパラメータを調べるメソッドを処理しなければならない。サブクラスは、このコマンドがアクティブか否かに影響を与えることができる通知インタレストを戻すようにゲット・アクティブ・インタレストをオーバライドしなければならない。
データプレゼンテーションはテンプレートから生成され、ユーザ・インターフェイス・オブジェクト内の期間保存される。すべてのデータを有するものはシステム内ではモデルである。モデルはデータの処理を含み実行する。データ交換は、カット、コピー、ペースト動作を介して実行される。データの参照は、選択、アンカーおよびリンクにより提供される。データ・モデルは他の中に埋め込むことができる。ユーザは、関連するユーザ・インターフェイスにより提供されるプレゼンテーション(例えば、アイコン、寸描、フレーム、ウインドゥ、ダイアログ、コントロール・パネル)を介してモデルと対話する。データ・モデルはすべてのプレゼンテーションを生成し、他のオブジェクトへのアクセスメソッドを代理し、ユーザ・インターフェイスと呼ばれる。
コマンド・オブジェクトを異なる手法で用いることにより、コントロール群の2つの独立した振る舞いを制御することができる。第1は、それらが直ちにデータに影響を与えるか否か、あるいは設定が効果を上げる前に、ユーザがOKを押さなければならないか否かである。第2はそれらが互いに独立か否か、あるいは設定が原子動作を提供するか否かである。
データにすぐに影響を与えるコントロールは、リアル・モデル・データを特定する選択を含むコマンドを有する。ユーザがコントロールを処理するときコマンドはこのデータを変更する。データが変わるとき、それは変更通知を送り、データの状態に依存するビューとコントロールは正確に現在の状態を反映する。
リアル・データを変更しないよう設計されたコントロールは代わりにプロトタイプのデータに作用しなければならない。リアル・モデル・データはユーザがOKボタンを押すような他のアクションを取るまで変更されない。これは2つの手法で達成される。
互いに独立に動作するコントロールはコントロール・パネルあるいはダイアログ期間が完了した後、個々にアンドゥできるアクションを要求し表現する。これはコントロールにより実行された場合の、コマンドの通常の振る舞いである。
コントロールの他のセットは一緒に働き、原子動作としてアンドゥされ、リドゥされるように設計される。これは、ダイアログ・ボックスあるいはコントロールが開始されるときアンドゥ・スタック上にマークを置くことにより達成される。終了したとき、コントロール・パネルを解散させることによりあるいは(上記IIBのように)ユーザがOKボタンを押すときに、マークがアンドゥ・スタック上に置かれたときから実行されるコマンドのすべてが単一のコマンド群に集められる。この群は単一群としてアンドゥあるいはリドゥされることができる。
(上記IIBのように、通常OKボタンに伴う)CANCEL(キャンセル)ボタンを含むコントロール・パネルは、上記IIIBで述べた技術と同様な技術である。マークは、ダイアログ・ボックスあるいはコントロール・パネルが開始されるときアンドゥ・スタック上に置かれる。ユーザがCANCELボタンを押すと、マークがアンドゥ(Undo)・スタックに置かれる前のすべてのコマンドがアンドゥ(Undo)される。この技術はコントロールがデータに直ちに影響を与えるか否かにかかわらず働く。
他のオブジェクトあるいはデータを処理するようユーザが対話するオブジェクトはコントロールと呼ぶ。コントロールの例は、メニュー、ボタン、チェックボックス、およびラジオ・ボタンである。各コントロールはコマンドを含み、それはエンド・ユーザ・アクションを実行する。コマンドは選択オブジェクトにより特定されるデータに作用する。ユーザがコントロールを処理するとき、それはコマンド内にパラメータをセットしてそれが実行されるようにする。このようにして、データ値を変更する。
ユーザが他のオブジェクトあるいはデータを処理するように対話するオブジェクトは、コントロールと呼ばれる。コントロールの例はメニュー、ボタン、チェックボックス、ラジオ・ボタンである。各コントロールはコマンドを含み、それはエンド−ユーザのアクションを処理する。コマンドは選択オブジェクトにより特定されるデータに作用する。ユーザがコントロールを処理するときそれはコマンド内にパラメータをセットしてそれが実行されるようにする。これにより、データ値が変更される。ユーザが他のアクションを実行するまでデータが遅延して変更されることは、本発明の1つの特徴である。例えば、ダイアログ・ボックス内のコントロールはユーザがOKボタンを押すまで、データ値を変更しようとしない。
ラベルはグラフィックあるいはテキスト・ストリングを含むグラフィック・オブジェクトである。それらはウインドゥ、メニュー、ボタン、および他のコントロールを同定するために使用される。ラベルはそれらのコンテナの状態に従ってそれらの外見を変えることができる。それらは中間明度の灰色のバックグラウンド上に描かれ、特別の状態を表示する必要のないときに自然に現われる。ラベルは、非アクティブのとき、禁止されているとき、あるいは選択されたとき、その外見を変える。
ウインドゥ・タイトルはウインドゥが正面最上部でないとき非アクティブにセットされる。同様に、コントロールのラベルはコントロールが正面最上部のウインドゥあるいはコンテナ内にないとき非アクティブにセットされる。グラフィック・ラベルは、薄暗く出現させるために、非アクティブのとき55%の白と混ぜられている。テキスト・ラベルでは、非アクティブペイントはHSV カラー・モデルの飽和成分を処理することにより自然のペイントから導かれる。飽和は、非アクティブのとき0.45倍される。
コントロール・ラベルはコントロールが特定のコンテキスト中で適用しないときには薄暗くされる。グラフィック・ラベルは非アクティブのときには薄暗くするため46%の白と混ぜられている。テキスト・ラベルでは、禁止ペイントはHSVカラー・モデルの飽和成分を処理することにより自然のペイントから導かれる。飽和は、禁止のときに0.54倍される。
コントロール・ラベルはコントロールが処理されるにつれてハイライトにされる。グラフィックとテキストはそれらの自然状態で描かれ、ハイライト状態のときに白いバックグラウンド上に描かれる。
コントロールはオブジェクトあるいはデータの現在の状態を決定するためのコマンドを使用する。ユーザとの適切な対話に続いて、コントロールはコマンド・パラメータを更新してそれが実行されるようにする。例えばチェックボックスはコマンド・パラメータをオンあるいはオフにセットして、そのコマンドを実行してデータ値を変更する。コントロールはその機能を示すようにラベルを表示する。このラベルはグラフィックあるいはテキスト・ストリングを含むグラフィック・オブジェクトである。コントロールが状態を変えるとき、ラベルは、開発者が付加的なコードを書くことを要求することなく自動的にその出現を変える。これらの状態は、アクティブ/非アクティブ、イネーブル/ディスエーブルおよび選択/非選択を含む。
タイトルはその目的を示すためにウインドゥ内に表示される。例えばドキュメントを編集するためのウインドゥのためのタイトルは通常ドキュメントの名称である。ラベル・オブジェクトはタイトルの追尾を保つために使用される。このラベルはグラフィックあるいはテキスト・ストリングを含むグラフィック・オブジェクトである。ウインドゥが状態を変えると、ラベルは、開発者が付加的なコードを書くことを要求することなく、その出現を自動的に調整する。ウインドゥはアクティブあるいは非アクティブのどちらかである。スマート・ウインドゥ・ラベル処理は第16図のフローチャートで示され、その詳細論理はそれを参照して説明される。
ユーザ・インターフェイス要素の多くの視覚的測面は、多くの要素間で共通である。例としてシャドウ、境界、およびラベルがある。個々の可視的特徴はデコレーションとして参照される。デコレーションは他のグラフィックスと結合されてウインドゥとコントロールのような特定のユーザ・インターフェイス要素の可視的形状を形成する。本発明の主題は多くのことなる形式のデコレーションをサポートすることである。
他のオブジェクトの後ろに描かれるデコレーションはバックグラウンドと呼ばれる。1つの形式のバックグランドは周囲の描画面とフラッシュするように描かれる。それはフレームつきであるいはフレーム無しで描かれてもよい。他の形式のバックグランドはハイライトとシャドウつきで描かれ、それは回りの描画面から持ち上げられているように見える。最後の形式のバックグランドはハイライトとシャドウつきで描かれ、それは周囲の描画面より後退して見える。
他のオブジェクトあるいはエリアを囲むデコレーションは境界と呼ぶ。境界の例はフレームとシャドウである。フレームはリアル・ワールド内でのペイントを包み込むフレームのように他のグラフィックを囲む境界である。バックグランドのように、フレームは、周囲の描画面よりしたに後退したように、フラッシュするように、あるいはそれより持ち上がったように描くことができる。シャドウはオブジェクトの回りにシャドウを加える特定の形式の境界であり、周囲面より浮いているかのようにそれを見せる。
塗りつぶしはデコレーションの基本的カラーを表す。すべての他のペイントは塗りつぶしから導かれる。塗りつぶしはfFillPaintと呼ばれるカラー・フィールド内に管理者により格納される。塗りつぶしは通常、デコレーションが生成されるときに作成者により特定される。しかしながら、カラーが特定されないと、中間色グレーが選択される。
フレーム・ペイントはデコレーションの回りに線を描くために使用され可視的なコントラストを提供する。フレーム・ペイントはfFramePaint と呼ばれるTColorのフィールド内にデコレーションにより格納される。フレーム・ペイントはデコレーションが生成されるとき開発者により特定されてもよい。しかしながら、フレーム・ペイントが特定されないと、塗りつぶしから自動的に計算される。これはHSV カラー・モデルの飽和と値成分を処理することによりなされる。飽和は最大値が1として、4倍される。値は4で割られる。
ハイライト・ペイントは、オブジェクトが実際の3次元オブジェクトであるならば光がそのオブジェクトにあたる線を描くために使用される。ハイライト・ペイントはfHighlightPaint と呼ばれるTColorフィールド内にデコレーションにより格納される。ハイライト・ペイントはデコレーションが生成されるとき開発者により特定されてもよい。しかしながら、ハイライト・ペイントが特定されないと、塗りつぶしから自動的に計算される。これはHSV カラー・モデルの飽和と値成分を処理することによりなされる。飽和は0.8 倍される。値は最大値を1として、1.25倍される。
シャドウ・ペイントは、オブジェクトが実際の3次元オブジェクトであるならば光がそのオブジェクトにあたる線を描くために使用される。ハイライト・ペイントはfHighlightPaintと呼ばれるTColorフィールド内にデコレーションにより格納される。ハイライト・ペイントはデコレーションを生成するとき開発者が特定してもよい。しかしながら、ハイライト・ペイントが特定されないと、塗りつぶしから自動的に計算される。これはHSVカラー・モデルの飽和と値成分を処理することによりなされる。飽和は0.8倍される。値は最大値を1として、1.25倍される。
グラフィック・ユーザ・インターフェイスはマウスを動かし、それらを選択するためにオブジェクトをクリックし、移動またはコピーのためにオブジェクトをドラッグし、その後それらをオープンするためにダブル・クリックすることにより処理される。これらの操作は直接操作あるいは対話と呼ばれる。マウスをユーザが押し、動かし、離すことに対応するイベントのシーケンスは入力シンタクスと呼ばれる。あるイベント・シーケンスは、セマンティック操作と呼ばれる特定のアクションを示すために使用される。
局所化はアプリケーションを更新するプロセスであり、特定の場所のユニークな表現に従う。それは、言語の翻訳、グラフィック置換、およびインターフェイス要素の再配向を含む。例えば、ラベル、タイトル、およびメッセージの中で使用されるテキストは選択された言語に依存する。その方向と配向はメニュー、メニュー・バー・タイトル、スクロールバーあるいはツールバーの配置と配向に影響を与える。同様に、アイコンと他のグラフィックシンボルの選択は開発に依存する。不幸にも、メモリ内にユーザ・インターフェイス要素の多くの局在化されたバージョンをもつことは非常に高いものとなる。代わりに、ユーザ・インターフェイス要素の局在化バージョンは、メモリ内で要求されるまでディスク上に保たれる。
オブジェクト指向オペレーティング・システムのグラフィック・ユーザ・インターフェイスのユーザは、しばしば、マウスを動かし、オブジェクトを選択するためにクリックし、移動あるいはコピーのためにオブジェクトをドラッグし、その後オブジェクトをオープンするためにダブル・クリックする。これらの動作は直接操作あるいは対話と呼ばれる。マウスをユーザが押し、移動し、離すことに対応するイベントのシーケンスは入力シンタクスと呼ぶ。あるイベント・シーケンスが特定のアクションを示すために使用され、セマンティック動作と呼ばれる。本発明は、Select(選択),Peek(ピーク),Move(移動),AutoScroll(自動スクロール)およびDrag/Drop(Copy)(ドラッグ/ドロップ)(コピー)をサポートするオブジェクトのセマンティック動作に入力シンタクスを翻訳するための方法と装置を開示する。
(b)オプションキーが押されていなかったならば、システムは変数fInteractionTypeを定数kSelect にセットすることにより選択モードに入る。その後、選択動作が進められる。
14 RAM
16 ROM
22 インターフェースアダプタ
Claims (26)
- 一貫した方法で複数のメニュー項目の現在の状態を反映させるメニューベースのシステムであって、
(a)状態情報および少なくとも1つのメニュー項目の状態を判定する論理を有するコマンドオブジェトをカプセル化する記憶手段と、
(b)前記コマンドオブジェクト中のデータ構造から、少なくとも1つのメニュー項目を作成するオブジェクト処理手段と、
(c)少なくとも1つのメニュー項目の状態についての確定的な状態情報を更新することにより少なくとも1つのメニュー項目を初期化するオブジェクト処理手段と、
(d)前記少なくとも1つのメニュー項目がメニューから選択されたときに、システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新するためのオブジェクト処理手段と
を備えたことを特徴とするメニューベースのシステム。 - 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目の名前を含むことを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目のグラフィックを含むことを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目の現在の状態を含むことを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目のデータを含むことを特徴とする請求項1に記載のメニューベースのシステム。
- アクティブのメニュー項目のインディシア表示する表示手段を有することを特徴とする請求項1に記載のメニューベースのシステム。
- 非アクティブのメニュー項目のインディシア表示する表示手段を有することを特徴とする請求項1に記載のメニューベースのシステム。
- 前記システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新するためのオブジェクト処理手段は現在のシステムの状態を調べ、前記少なくとも1つのメニュー項目に関連する機能が現在のコンテキストにおいてアクチブであるかを確かめる手段を有することを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目はプルダウンメニューであることを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目はコントロールパネルであることを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目はラジオボタンであることを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目はスライダーバーであることを特徴とする請求項1に記載のメニューベースのシステム。
- 前記少なくとも1つのメニュー項目はチェックボックスであることを特徴とする請求項1に記載のメニューベースのシステム。
- 一貫した方法で複数のメニュー項目の現在の状態を反映し、コマンドオブジェクトを含むメニューベースのフレームワークを可能とする方法であって、
(a)状態情報および少なくとも1つのメニュー項目の状態を判定する論理を有するコマンドオブジェトをカプセル化するステップと、
(b)前記コマンドオブジェクト中のデータ構造から、少なくとも1つのメニュー項目を作成するオブジェクト処理手段と、
(c)少なくとも1つのメニュー項目の状態についての確定的な状態情報を更新することにより少なくとも1つのメニュー項目を初期化するステップと、
(d)前記少なくとも1つのメニュー項目がメニューから選択されたときに、システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新するためのステップと
を備えたことを特徴とするメニューベースのシステム。 - 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目の名前を含むことを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目のグラフィックを含むことを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目の現在の状態を含むことを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- 前記少なくとも1つのメニュー項目に関連付けられた前記オブジェクトのデータ構造は少なくとも1つのメニュー項目のデータを含むことを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- アクティブのメニュー項目のインディシア表示するステップを有することを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- 非アクティブのメニュー項目のインディシア表示するステップを有することを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
- 前記システムの状態を判定し、および前記コマンドオブジェクトの中の少なくとも1つのメニュー項目の状態情報を更新するためのオブジェクト処理手段は現在のシステムの状態を調べ、前記少なくとも1つのメニュー項目に関連する機能が現在のコンテキストにおいてアクチブであるかを確かめる手段を有することを特徴とする請求項14に記載のメニューベースのシステムのための方法。
- 前記少なくとも1つのメニュー項目はプルダウンメニューであることを特徴とする請求項14に記載のメニューベースのシステムのための方法。
- 前記少なくとも1つのメニュー項目はコントロールパネルであることを特徴とする請求項14に記載のメニューベースシステムのための方法。
- 前記少なくとも1つのメニュー項目はラジオボタンであることを特徴とする請求項14に記載のメニューベースのシステムのための方法。
- 前記少なくとも1つのメニュー項目はスライダーバーであることを特徴とする請求項1に記載のメニューベースのシステムのための方法。
- 前記少なくとも1つのメニュー項目はチェックボックスであることを特徴とする請求項14に記載のメニューベースのフレームワークを可能とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/996,775 US6259446B1 (en) | 1992-12-23 | 1992-12-23 | Menu state system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006309721A Division JP2007095090A (ja) | 1992-12-23 | 2006-11-15 | メニュー項目表示方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008146664A true JP2008146664A (ja) | 2008-06-26 |
Family
ID=25543303
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6515231A Pending JPH08505719A (ja) | 1992-12-23 | 1993-12-10 | メニュー・ステート・システム |
JP2006309721A Pending JP2007095090A (ja) | 1992-12-23 | 2006-11-15 | メニュー項目表示方法および装置 |
JP2008000213A Pending JP2008146665A (ja) | 1992-12-23 | 2008-01-04 | メニュー項目表示方法および装置 |
JP2008000212A Pending JP2008146664A (ja) | 1992-12-23 | 2008-01-04 | メニュー項目表示方法および装置 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6515231A Pending JPH08505719A (ja) | 1992-12-23 | 1993-12-10 | メニュー・ステート・システム |
JP2006309721A Pending JP2007095090A (ja) | 1992-12-23 | 2006-11-15 | メニュー項目表示方法および装置 |
JP2008000213A Pending JP2008146665A (ja) | 1992-12-23 | 2008-01-04 | メニュー項目表示方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US6259446B1 (ja) |
EP (1) | EP0664021B1 (ja) |
JP (4) | JPH08505719A (ja) |
CA (1) | CA2145676C (ja) |
DE (1) | DE69303289T2 (ja) |
WO (1) | WO1994015273A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018106480A (ja) * | 2016-12-27 | 2018-07-05 | キヤノン株式会社 | 電子機器、その制御方法およびプログラム |
US11803593B2 (en) | 2020-02-14 | 2023-10-31 | Coupang Corp. | Systems and methods for receiving and propagating efficient search updates in real time |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6100885A (en) * | 1996-07-06 | 2000-08-08 | International Business Machines Corporation | Supporting modification of properties via a computer system's user interface |
GB2315139A (en) * | 1996-07-06 | 1998-01-21 | Ibm | Selecting operations in an object-oriented user interface |
US6247011B1 (en) * | 1997-12-02 | 2001-06-12 | Digital-Net, Inc. | Computerized prepress authoring for document creation |
US7062773B1 (en) * | 1998-07-20 | 2006-06-13 | International Business Machines Corporation | System and method for providing graphical user interface control enhancers |
US6731309B1 (en) | 1998-08-28 | 2004-05-04 | Corel Corporation | Real time preview |
US6549878B1 (en) * | 1998-12-31 | 2003-04-15 | Microsoft Corporation | System and method for editing a spreadsheet via an improved editing and cell selection model |
US7233326B1 (en) * | 1999-04-29 | 2007-06-19 | Autodesk, Inc. | Three dimensional modeling and animation system using master objects and modifiers |
US6782541B1 (en) * | 1999-05-28 | 2004-08-24 | Avaya Technology Corp. | System and method of exchanging information between software modules |
US6725445B1 (en) * | 1999-07-08 | 2004-04-20 | International Business Machines Corporation | System for minimizing notifications in workflow management system |
EP1081583A3 (en) * | 1999-08-31 | 2005-07-06 | Sony Corporation | Menu display system |
EP1098244A3 (en) * | 1999-11-02 | 2001-06-13 | CANAL + Société Anonyme | Graphical user interface |
US6999973B1 (en) * | 1999-11-18 | 2006-02-14 | International Business Machines Corporation | Information gathering facility employing dictionary file containing multiple inquires |
US6507919B1 (en) * | 2000-01-11 | 2003-01-14 | Inventec Corporation | Method of automatically simulating boosting the items of a windows menu and examining the items |
FR2804231B1 (fr) * | 2000-01-25 | 2002-11-08 | Vistaprint Usa Inc | Impression centralisee de documents commerciaux en faibles volumes sur des machines auparavant limitees a des tres gros tirages |
AU2001231078A1 (en) | 2000-01-25 | 2001-08-07 | Vistaprint Usa, Inc. | Managing print jobs |
US20010024951A1 (en) * | 2000-03-22 | 2001-09-27 | Marten Rignell | Apparatus and a method for providing operational status information between subscribers in a telecommunications network |
US6983424B1 (en) * | 2000-06-23 | 2006-01-03 | International Business Machines Corporation | Automatically scaling icons to fit a display area within a data processing system |
WO2002037365A1 (en) * | 2000-10-31 | 2002-05-10 | Netscape Communications Corporation | Click-to-add, jot-it-down, and add banner |
US7050960B2 (en) | 2000-11-30 | 2006-05-23 | General Electric Company | Methods and apparatus for generating drawings from computer generated models |
JP3490395B2 (ja) * | 2000-12-11 | 2004-01-26 | ケープレックス・インク | 3次元グラフ表示装置 |
US20020149623A1 (en) * | 2001-01-26 | 2002-10-17 | Alan West | State and data driven dynamic menu and toolbar architecture |
US7392485B2 (en) * | 2001-03-30 | 2008-06-24 | Microsoft Corporation | System and method for providing a server control interface |
US20030048302A1 (en) * | 2001-08-31 | 2003-03-13 | International Business Machines Corporation | Context flags for menus, toolbars, and other UI objects |
US7747943B2 (en) * | 2001-09-07 | 2010-06-29 | Microsoft Corporation | Robust anchoring of annotations to content |
CN1591405A (zh) * | 2001-11-09 | 2005-03-09 | 无锡永中科技有限公司 | 版本兼容的数据处理系统 |
DE10244069A1 (de) | 2002-09-06 | 2004-03-11 | Volkswagen Ag | Vorrichtung und Verfahren zur Verbesserung des Rücklaufverhaltens für Fahrzeuge mit elektromechanischer Lenkung |
US7003695B2 (en) * | 2002-10-03 | 2006-02-21 | Seiko Epson Corporation | Undo/redo algorithm for a computer program |
US7611405B2 (en) * | 2002-10-15 | 2009-11-03 | Igt | Dynamic menu system |
US20040080545A1 (en) * | 2002-10-28 | 2004-04-29 | International Business Machines Corporation | Method for dynamic accessibility of a drop-down selection in a GUI combobox construct |
US20040225960A1 (en) | 2003-05-09 | 2004-11-11 | Microsoft Corporation | System for hosting graphical layout/presentation objects |
JP3964354B2 (ja) * | 2003-06-11 | 2007-08-22 | ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー | 医療診断装置 |
US7568161B2 (en) * | 2003-08-13 | 2009-07-28 | Melia Technologies, Ltd | Overcoming double-click constraints in a mark-up language environment |
US7469302B2 (en) * | 2003-08-29 | 2008-12-23 | Yahoo! Inc. | System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems |
WO2005055034A1 (en) | 2003-12-01 | 2005-06-16 | Research In Motion Limited | Previewing a new event on a small screen device |
US20050149967A1 (en) * | 2004-01-06 | 2005-07-07 | Hanley Mark G. | System and method for managing software alert messages on televisions |
US20050166177A1 (en) * | 2004-01-27 | 2005-07-28 | Ylian Saint-Hilaire | Thread module chaining |
US20050283284A1 (en) * | 2004-06-16 | 2005-12-22 | Grenier Alain H | Vehicle services manager |
US7694232B2 (en) * | 2004-08-03 | 2010-04-06 | Research In Motion Limited | Method and apparatus for providing minimal status display |
KR100678937B1 (ko) * | 2004-09-03 | 2007-02-07 | 삼성전자주식회사 | 디지털 장치에서 사용자 친화적으로 정보를 제공하는 방법및 장치 |
US7454437B1 (en) | 2004-09-22 | 2008-11-18 | Emc Corporation | Methods and apparatus for naming resources |
US20060090139A1 (en) * | 2004-10-21 | 2006-04-27 | Microsoft Corporation | Collection view objects for displaying data collection items in user interface elements |
US7657843B2 (en) * | 2005-08-15 | 2010-02-02 | At&T Intellectual Property I, L.P. | Menu promotions user interface |
US7739620B1 (en) * | 2005-09-29 | 2010-06-15 | Adobe Systems Inc. | Method of setting alternate style assignments to menu elements of an application |
US20070165615A1 (en) * | 2005-12-08 | 2007-07-19 | Shin Young M | Apparatus and method for notifying communication network event in application server capable of supporting open API based on Web services |
US8677272B2 (en) * | 2005-12-13 | 2014-03-18 | International Business Machines Corporation | Graphical user interface design utility |
US7945612B2 (en) * | 2006-03-28 | 2011-05-17 | Microsoft Corporation | Aggregating user presence across multiple endpoints |
US20070239869A1 (en) * | 2006-03-28 | 2007-10-11 | Microsoft Corporation | User interface for user presence aggregated across multiple endpoints |
WO2007118315A1 (en) * | 2006-04-17 | 2007-10-25 | Smart Technologies Ulc | Enhancing software application features and content objects |
US9241038B2 (en) * | 2006-05-23 | 2016-01-19 | Microsoft Technology Licensing, Llc | User presence aggregation at a server |
US8205189B2 (en) * | 2006-07-13 | 2012-06-19 | Oracle International Corporation | Method and system for definition control in a data repository application |
US7899798B2 (en) * | 2008-02-25 | 2011-03-01 | Microsoft Corporation | Observing and reporting changes in complex software dependencies |
US8174503B2 (en) * | 2008-05-17 | 2012-05-08 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation |
US8364123B2 (en) * | 2009-02-25 | 2013-01-29 | Apple Inc. | Managing notification messages |
US8113991B2 (en) | 2008-06-02 | 2012-02-14 | Omek Interactive, Ltd. | Method and system for interactive fitness training program |
US8630624B2 (en) | 2009-02-25 | 2014-01-14 | Apple Inc. | Managing notification messages |
US8924489B2 (en) | 2011-01-05 | 2014-12-30 | Apple Inc. | Message push notification client improvements for multi-user devices |
US9086794B2 (en) | 2011-07-14 | 2015-07-21 | Microsoft Technology Licensing, Llc | Determining gestures on context based menus |
US9946988B2 (en) * | 2011-09-28 | 2018-04-17 | International Business Machines Corporation | Management and notification of object model changes |
US8694986B2 (en) | 2011-12-15 | 2014-04-08 | Microsoft Corporation | Providing update notifications on distributed application objects |
US9367959B2 (en) * | 2012-06-05 | 2016-06-14 | Apple Inc. | Mapping application with 3D presentation |
US9052197B2 (en) | 2012-06-05 | 2015-06-09 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9482296B2 (en) | 2012-06-05 | 2016-11-01 | Apple Inc. | Rendering road signs during navigation |
US8983778B2 (en) | 2012-06-05 | 2015-03-17 | Apple Inc. | Generation of intersection information by a mapping service |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10156455B2 (en) | 2012-06-05 | 2018-12-18 | Apple Inc. | Context-aware voice guidance |
US9418672B2 (en) | 2012-06-05 | 2016-08-16 | Apple Inc. | Navigation application with adaptive instruction text |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US10176633B2 (en) | 2012-06-05 | 2019-01-08 | Apple Inc. | Integrated mapping and navigation application |
US9660993B2 (en) * | 2012-10-25 | 2017-05-23 | Facebook, Inc. | Event reporting and handling |
US9971468B2 (en) | 2013-02-21 | 2018-05-15 | Atlassian Pty Ltd | Automatically generating column layouts in electronic documents |
US10175851B2 (en) * | 2014-02-19 | 2019-01-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods, management servers, and computer program products for managing network devices |
US9910644B2 (en) * | 2015-03-03 | 2018-03-06 | Microsoft Technology Licensing, Llc | Integrated note-taking functionality for computing system entities |
US9917760B2 (en) | 2015-06-03 | 2018-03-13 | International Business Machines Corporation | Notifying original state listeners of events in a domain model |
CN104899035A (zh) * | 2015-06-08 | 2015-09-09 | 苏州西顿家用自动化有限公司 | 一种智能灶的菜谱编辑方法 |
US10664404B2 (en) * | 2016-02-04 | 2020-05-26 | Sap Se | User interface state transitions |
US10585722B2 (en) * | 2016-12-08 | 2020-03-10 | International Business Machines Corporation | Integrating heterogeneous business events in hybrid cloud environments |
US10698561B2 (en) * | 2017-06-12 | 2020-06-30 | Google Llc | Intelligent command batching in an augmented and/or virtual reality environment |
CN107748663A (zh) * | 2017-10-24 | 2018-03-02 | 东信和平科技股份有限公司 | 一种基于stk的菜单应用的开发方法、装置及介质 |
US11119985B1 (en) * | 2021-03-19 | 2021-09-14 | Atlassian Pty Ltd. | Apparatuses, methods, and computer program products for the programmatic documentation of extrinsic event based data objects in a collaborative documentation service |
US12058220B2 (en) | 2021-09-29 | 2024-08-06 | Atlassian Pty Ltd. | Multi-source event feeds with actionable inputs |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61194569A (ja) * | 1985-02-22 | 1986-08-28 | Nec Corp | メニユ−表示方法及び装置 |
JPS63228335A (ja) * | 1987-03-18 | 1988-09-22 | Fujitsu Ltd | 計算機システムにおける事象通知・受取処理方式 |
JPH02146633A (ja) * | 1988-03-17 | 1990-06-05 | Internatl Business Mach Corp <Ibm> | 表示パネル生成方法 |
EP0398646A2 (en) * | 1989-05-15 | 1990-11-22 | International Business Machines Corporation | User interface tool |
JPH04107727A (ja) * | 1990-08-29 | 1992-04-09 | Nec Corp | メニュー表示装置 |
JPH04303240A (ja) * | 1990-12-31 | 1992-10-27 | Internatl Business Mach Corp <Ibm> | オブジェクト指向インタフェース標準を与えるシステムおよび方法 |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3658427A (en) | 1969-11-28 | 1972-04-25 | Anthony B Decou | Attitude sensor, and system for controlling attitude of an object |
US3881605A (en) | 1973-06-29 | 1975-05-06 | Ibm | Object orienting device to assist robot manipulator |
US4082188A (en) | 1976-06-23 | 1978-04-04 | Hoffmann-La Roche Inc. | Apparatus for color recognition and defect detection of objects such as capsules |
US4677576A (en) | 1983-06-27 | 1987-06-30 | Grumman Aerospace Corporation | Non-edge computer image generation system |
JPS60103848A (ja) | 1983-11-08 | 1985-06-08 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 複数言語が使用できるノ−ド間メツセ−ジ伝送方法 |
US4635208A (en) | 1985-01-18 | 1987-01-06 | Hewlett-Packard Company | Computer-aided design of systems |
US4686522A (en) | 1985-02-19 | 1987-08-11 | International Business Machines Corporation | Method of editing graphic objects in an interactive draw graphic system using implicit editing actions |
US4843538A (en) | 1985-04-30 | 1989-06-27 | Prometrix Corporation | Multi-level dynamic menu which suppresses display of items previously designated as non-selectable |
US4679137A (en) | 1985-04-30 | 1987-07-07 | Prometrix Corporation | Process control interface system for designer and operator |
US4835685A (en) | 1985-05-06 | 1989-05-30 | Computer X, Inc. | Virtual single machine with message-like hardware interrupts and processor exceptions |
US4831654A (en) | 1985-09-09 | 1989-05-16 | Wang Laboratories, Inc. | Apparatus for making and editing dictionary entries in a text to speech conversion system |
US4742356A (en) | 1985-12-09 | 1988-05-03 | Mcdonnell Douglas Corporation | Method and apparatus for determining remote object orientation and position |
US4704694A (en) | 1985-12-16 | 1987-11-03 | Automation Intelligence, Inc. | Learned part system |
US4868744A (en) | 1986-03-03 | 1989-09-19 | International Business Machines Corporation | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log |
US4914568A (en) | 1986-10-24 | 1990-04-03 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US5291587A (en) | 1986-04-14 | 1994-03-01 | National Instruments, Inc. | Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs |
US5083262A (en) | 1986-04-28 | 1992-01-21 | International Business Machines Corporation | Language bindings for graphics functions to enable one application program to be used in different processing environments |
US4760386A (en) | 1986-06-13 | 1988-07-26 | International Business Machines Corporation | Automatic hiding and revealing of a pointer during keyboard activity |
US4821220A (en) | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US4885717A (en) | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
US4823283A (en) | 1986-10-14 | 1989-04-18 | Tektronix, Inc. | Status driven menu system |
US4908746A (en) | 1986-10-15 | 1990-03-13 | United States Data Corporation | Industrial control system |
US4943932A (en) | 1986-11-25 | 1990-07-24 | Cimflex Teknowledge Corporation | Architecture for composing computational modules uniformly across diverse developmental frameworks |
US5206951A (en) | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
US4939648A (en) | 1987-12-02 | 1990-07-03 | Schlumberger Technology Corporation | Apparatus and method for monitoring well logging information |
US4853843A (en) | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US5040131A (en) | 1987-12-23 | 1991-08-13 | International Business Machines Corporation | Graphical processing |
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 |
US4982344A (en) | 1988-05-18 | 1991-01-01 | Xerox Corporation | Accelerating link creation |
EP0347162A3 (en) | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US4931783A (en) * | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
CA1323702C (en) | 1988-07-27 | 1993-10-26 | Ralph Thomas Watson | Software agent used to provide instruction to a user for a plurality of computer applications |
US5008810A (en) | 1988-09-29 | 1991-04-16 | Process Modeling Investment Corp. | System for displaying different subsets of screen views, entering different amount of information, and determining correctness of input dependent upon current user input |
US5041992A (en) | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
JP3178531B2 (ja) | 1988-11-15 | 2001-06-18 | 株式会社日立製作所 | メニュー提示方法およびデータ処理装置 |
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 |
SE466029B (sv) | 1989-03-06 | 1991-12-02 | Ibm Svenska Ab | Anordning och foerfarande foer analys av naturligt spraak i ett datorbaserat informationsbehandlingssystem |
CA1326563C (en) | 1989-03-15 | 1994-01-25 | Anthony Hoeber | Method and apparatus for selecting and executing defaults in a window based display system |
US5230063A (en) | 1989-03-15 | 1993-07-20 | Sun Microsystems, Inc. | Method and apparatus for selecting button function and retaining selected optics on a display |
US5050090A (en) | 1989-03-30 | 1991-09-17 | R. J. Reynolds Tobacco Company | Object placement method and apparatus |
US5325524A (en) | 1989-04-06 | 1994-06-28 | Digital Equipment Corporation | Locating mobile objects in a distributed computer system |
US5371851A (en) | 1989-04-26 | 1994-12-06 | Credence Systems Corporation | Graphical data base editor |
US5287448A (en) | 1989-05-04 | 1994-02-15 | Apple Computer, Inc. | Method and apparatus for providing help information to users of computers |
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 |
US5129084A (en) | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Object container transfer system and method in an object based computer operating system |
US5187790A (en) | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5163130A (en) | 1989-10-11 | 1992-11-10 | Next Computer, Inc. | System and method for configuring a graphic interface |
US5313629A (en) | 1989-10-23 | 1994-05-17 | International Business Machines Corporation | Unit of work for preserving data integrity of a data-base by creating in memory a copy of all objects which are to be processed together |
NZ236299A (en) | 1989-11-30 | 1995-07-26 | Seer Technologies Inc | Software distribution from central database to computers in network |
US5181162A (en) | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
US5198802A (en) | 1989-12-15 | 1993-03-30 | International Business Machines Corp. | Combined keyboard and mouse entry |
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 |
US5228123A (en) | 1990-01-04 | 1993-07-13 | Heckel Paul C | Interface and application development management system based on a gene metaphor |
JPH0758487B2 (ja) | 1990-01-08 | 1995-06-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 表編集装置 |
US5329446A (en) | 1990-01-19 | 1994-07-12 | Sharp Kabushiki Kaisha | Translation machine |
US5237654A (en) | 1990-04-17 | 1993-08-17 | International Business Machines Corporation | Hierarchical inter-panel process flow control |
JP2757531B2 (ja) | 1990-04-20 | 1998-05-25 | ソニー株式会社 | テープカセット |
GB9105278D0 (en) | 1990-04-27 | 1991-04-24 | Sun Microsystems Inc | Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system |
US5140677A (en) | 1990-05-11 | 1992-08-18 | International Business Machines Corporation | Computer user interface with window title bar mini-icons |
US5168441A (en) | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5177685A (en) | 1990-08-09 | 1993-01-05 | Massachusetts Institute Of Technology | Automobile navigation system using real time spoken driving instructions |
US5280610A (en) | 1990-08-14 | 1994-01-18 | Digital Equipment Corporation | Methods and apparatus for implementing data bases to provide object-oriented invocation of applications |
JP2837288B2 (ja) | 1990-09-17 | 1998-12-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法 |
US5327529A (en) | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
US5313636A (en) | 1990-09-27 | 1994-05-17 | Intellicorp, Inc. | Mosaic objects and method for optimizing object representation performance in an object-oriented representation system |
US5265206A (en) | 1990-10-23 | 1993-11-23 | International Business Machines Corporation | System and method for implementing a messenger and object manager in an object oriented programming environment |
US5151987A (en) | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5315709A (en) | 1990-12-03 | 1994-05-24 | Bachman Information Systems, Inc. | Method and apparatus for transforming objects in data models |
US5276775A (en) | 1990-12-07 | 1994-01-04 | Texas Instruments Inc. | System and method for building knowledge-based applications |
US5295256A (en) | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
US5497319A (en) | 1990-12-31 | 1996-03-05 | Trans-Link International Corp. | Machine translation and telecommunications system |
US5301301A (en) | 1991-01-30 | 1994-04-05 | National Instruments Corporation | Polymorphic dataflow block diagram system and method for programming a computer |
EP0499404A3 (en) | 1991-02-15 | 1993-05-12 | Texas Instruments Incorporated | Object-oriented graphical user interface |
US5119475A (en) | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
JP2783692B2 (ja) | 1991-03-29 | 1998-08-06 | 株式会社東芝 | 図形作成装置 |
US5297284A (en) | 1991-04-09 | 1994-03-22 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language |
US5325481A (en) | 1991-04-12 | 1994-06-28 | Hewlett-Packard Company | Method for creating dynamic user panels in an iconic programming system |
US5317741A (en) | 1991-05-10 | 1994-05-31 | Siemens Corporate Research, Inc. | Computer method for identifying a misclassified software object in a cluster of internally similar software objects |
US5375199A (en) | 1991-06-04 | 1994-12-20 | Digital Equipment Corporation | System monitoring method and device including a graphical user interface to view and manipulate system information |
US5416903A (en) | 1991-08-19 | 1995-05-16 | International Business Machines Corporation | System and method for supporting multilingual translations of a windowed user interface |
US5371846A (en) | 1991-10-16 | 1994-12-06 | International Business Machines Corporation | Non-linear scroll bar |
US5297253A (en) | 1992-01-09 | 1994-03-22 | Ehrlich Associates, Inc. | Computer user interface navigational tool |
US5309566A (en) | 1992-02-04 | 1994-05-03 | International Business Machines Corporation | System and method for character translation |
US5414812A (en) | 1992-03-27 | 1995-05-09 | International Business Machines Corporation | System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem |
US5375164A (en) | 1992-05-26 | 1994-12-20 | At&T Corp. | Multiple language capability in an interactive system |
US5390314A (en) | 1992-10-09 | 1995-02-14 | American Airlines, Inc. | Method and apparatus for developing scripts that access mainframe resources that can be executed on various computer systems having different interface languages without modification |
US5339433A (en) | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
US5551055A (en) | 1992-12-23 | 1996-08-27 | Taligent, Inc. | System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order |
US5345550A (en) | 1992-12-23 | 1994-09-06 | International Business Machines Corporation | User-modifiable popup menus for object oriented behavior |
WO1994015282A1 (en) | 1992-12-23 | 1994-07-07 | Taligent, Inc. | Dialog system |
US5315703A (en) | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
JP3793226B2 (ja) | 1992-12-23 | 2006-07-05 | オブジェクト テクノロジー ライセンシング コーポレイション | アトミック・コマンド・システム |
JPH08505721A (ja) | 1992-12-23 | 1996-06-18 | タリジェント インコーポレイテッド | オブジェクト指向フレームワーク・システム |
US5530864A (en) | 1992-12-23 | 1996-06-25 | Taligent | Command object system for an object-oriented software platform |
US5550563A (en) | 1992-12-23 | 1996-08-27 | Taligent, Inc. | Interaction framework system |
US5434965A (en) | 1992-12-23 | 1995-07-18 | Taligent, Inc. | Balloon help system |
US5325533A (en) | 1993-06-28 | 1994-06-28 | Taligent, Inc. | Engineering system for modeling computer programs |
-
1992
- 1992-12-23 US US07/996,775 patent/US6259446B1/en not_active Expired - Lifetime
-
1993
- 1993-12-10 EP EP94905929A patent/EP0664021B1/en not_active Expired - Lifetime
- 1993-12-10 WO PCT/US1993/012070 patent/WO1994015273A1/en active Search and Examination
- 1993-12-10 JP JP6515231A patent/JPH08505719A/ja active Pending
- 1993-12-10 CA CA002145676A patent/CA2145676C/en not_active Expired - Lifetime
- 1993-12-10 DE DE69303289T patent/DE69303289T2/de not_active Expired - Lifetime
-
1999
- 1999-04-01 US US09/287,172 patent/US6424354B1/en not_active Expired - Fee Related
-
2006
- 2006-11-15 JP JP2006309721A patent/JP2007095090A/ja active Pending
-
2008
- 2008-01-04 JP JP2008000213A patent/JP2008146665A/ja active Pending
- 2008-01-04 JP JP2008000212A patent/JP2008146664A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61194569A (ja) * | 1985-02-22 | 1986-08-28 | Nec Corp | メニユ−表示方法及び装置 |
JPS63228335A (ja) * | 1987-03-18 | 1988-09-22 | Fujitsu Ltd | 計算機システムにおける事象通知・受取処理方式 |
JPH02146633A (ja) * | 1988-03-17 | 1990-06-05 | Internatl Business Mach Corp <Ibm> | 表示パネル生成方法 |
EP0398646A2 (en) * | 1989-05-15 | 1990-11-22 | International Business Machines Corporation | User interface tool |
JPH036651A (ja) * | 1989-05-15 | 1991-01-14 | Internatl Business Mach Corp <Ibm> | インターフエース装置および方法 |
JPH04107727A (ja) * | 1990-08-29 | 1992-04-09 | Nec Corp | メニュー表示装置 |
JPH04303240A (ja) * | 1990-12-31 | 1992-10-27 | Internatl Business Mach Corp <Ibm> | オブジェクト指向インタフェース標準を与えるシステムおよび方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018106480A (ja) * | 2016-12-27 | 2018-07-05 | キヤノン株式会社 | 電子機器、その制御方法およびプログラム |
US11803593B2 (en) | 2020-02-14 | 2023-10-31 | Coupang Corp. | Systems and methods for receiving and propagating efficient search updates in real time |
Also Published As
Publication number | Publication date |
---|---|
DE69303289D1 (de) | 1996-07-25 |
JP2008146665A (ja) | 2008-06-26 |
CA2145676C (en) | 2001-02-06 |
DE69303289T2 (de) | 1997-02-20 |
CA2145676A1 (en) | 1994-07-07 |
US6424354B1 (en) | 2002-07-23 |
EP0664021A1 (en) | 1995-07-26 |
JPH08505719A (ja) | 1996-06-18 |
WO1994015273A1 (en) | 1994-07-07 |
US6259446B1 (en) | 2001-07-10 |
EP0664021B1 (en) | 1996-06-19 |
JP2007095090A (ja) | 2007-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4393558B2 (ja) | コンピュータ・システムが実行する方法 | |
JP3793226B2 (ja) | アトミック・コマンド・システム | |
JP3839468B2 (ja) | 国際データ処理システム | |
JP3949159B2 (ja) | オブジェクト指向アプリケーション・インターフェイス | |
JP3798014B2 (ja) | バルーン・ヘルプ・システム | |
JP3565850B2 (ja) | オブジェクト指向通知フレームワークシステム | |
JP3602532B2 (ja) | 増分コマンド・オブジェクトを有する並行処理装置 | |
JP3341893B2 (ja) | 並行フレームワーク・システム | |
JP2008146664A (ja) | メニュー項目表示方法および装置 | |
EP0676067B1 (en) | Dialog system | |
US5459865A (en) | Runtime loader | |
CA2145678C (en) | Command system | |
JPH08509824A (ja) | 共同作業システム | |
EP0664020B1 (en) | Scrolling system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080617 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080818 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20090508 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100514 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20100602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100602 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100709 |