JP2005301993A - コマンドバインディングを実行するためのデータバインディング機構のアプリケーション - Google Patents

コマンドバインディングを実行するためのデータバインディング機構のアプリケーション Download PDF

Info

Publication number
JP2005301993A
JP2005301993A JP2005045562A JP2005045562A JP2005301993A JP 2005301993 A JP2005301993 A JP 2005301993A JP 2005045562 A JP2005045562 A JP 2005045562A JP 2005045562 A JP2005045562 A JP 2005045562A JP 2005301993 A JP2005301993 A JP 2005301993A
Authority
JP
Japan
Prior art keywords
command
binding
target
computer
data
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
JP2005045562A
Other languages
English (en)
Inventor
David J Jenni
ジェイ.ジェニ デビッド
Kenneth B Cooper
ビー.クーパー ケネス
Lutz Roder
ローダー ラッツ
Namita Gupta
グプタ ナミタ
Samuel W Bent
ダブリュ.ベント サミュエル
Ted A Peters
エー.ピーターズ テッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005301993A publication Critical patent/JP2005301993A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/445Program loading or initiating

Abstract

【課題】 データバインディングエンジンを使用してコマンドバインディングを行う。
【解決手段】 データバインディングエンジンは、ボタン、メニュー、リストボックスなどのユーザインターフェイスコントロールをアプリケーションモデルに提示されたコマンドにバインドする。データソースおよびデータバインディングパスは、コマンドがどのようにUI要素にバインドされるかを定義するマークアップ言語で指定することができる。
【選択図】 図5

Description

本発明はコンピュータ処理に関し、より詳細にはデータバインディング(data binding)機構を使用したコマンドバインディング(command binding)に関する。
アプリケーションプログラムのコードは、ユーザインタラクションの層、つまり1組の「ビュー」(views)またはユーザインターフェイス(UI)、およびしばしば1組の「モデル」によって実現される、内部のアプリケーションロジックおよびデータ管理を実装する層に分けられることが多い。ユーザインターフェイスは一般に、モデルに実装された機能を呼び出すメニュー項目および他のUI要素を含む。
一般に、グラフィックデザイナーは、ユーザインターフェイスの外見を設計し、開発者は、ユーザインターフェイスおよび/または基礎を成すモデルを実装するコードを書く。グラフィックデザインおよびソフトウェア開発は、非常に異なる2つの専門分野であり、デザイナーおよび開発者が生産的にいっしょに働くことは難しいことが多い。一般に、デザイナーは、Adobe(登録商標) Photoshop(登録商標)、およびAdobe(登録商標) Illustrator(登録商標)などのグラフィックツールを使用して、ユーザインターフェイス(UI)の原寸大の模型を作成し、次いで開発者は、UIをコードで再実装する。元のグラフィックデザイン要素は、一般に最後の実装では再利用されず、時として設計の一部がその過程で失われることがある。というのは、開発者は、設計をコードで容易に作成し直すことができない、またはその設計を完全には理解できないからである。設計が変更された場合、デザイナーは、UIを作成し直すことが求められ、開発者は、設計に一致させるためにコードの一部を書き直す必要がある可能性がある。一言で言えばこのプロセスは要領が悪い。
こうしたアプリケーションを構築するときに直面する別の問題は、機能、つまりコマンドをどのように提示(expose)し、その機能をどのようにUIの要素にマッピングし、またはバインド(bind)するかである。例えば、テキスト処理アプリケーションは、選択されたテキストを切り取る機能を提示することができる。例えば文書は「切り取り」コマンドを呼び出す方法を提示するなど、この機能が「コマンド」として提示される。プログラムコードは、UIで何が起こるかと基礎を成すデータに何が起こるかとの間の関係を結び付ける、つまりコマンドをメニュー項目にどのようにバインドするかを定義することが求められる。
従来、イベントハンドラまたはコマンドルーティングを使用してこのタスクを行っていた。イベントハンドラは、コードおよびUI要素をバインドする直接的な方法を提供する。UI要素は、イベント宣言、例えばメニュー項目の「クリック」などを提示し、モデルはイベント宣言の署名に一致するメソッド、例えばイベントハンドラなどを実装することができる。しかしこの機能は、柔軟性があまり高くない。上記の例でのアクティブな文書など、アクティブなデータモデルの変更、または「切り取り」コマンドが非アクティブまたは使用不可になるなどのコマンド状態の変更は、一般に、イベントハンドラを結び付け、切り離し、ユーザインターフェイスの状態を更新するために、開発者によって追加のコードが書かかれる必要がある。
コマンド処理における柔軟性を必要とする高度なアプリケーションは、一般に、UI要素に関連付けられているコマンドごとに識別子(ID)を割り当てる。こうしたシステムは、通常、コマンドIDを現在アクティブなコマンドの実装にマッピングする、時としてコマンドマネージャとも呼ばれる中央サービスを有する。コマンドマネージャは、1組のアクティブなコマンドターゲット、すなわちコマンドを提示する1組のモデルを処理する。コマンドを実行するために、識別子がUIからコマンドマネージャに送信され、コマンドマネージャは、受信されたIDに関するコマンドを処理しているコマンドターゲットを見つけ、そのターゲットのコマンドを呼び出す。残念ながらこの機構はかえって複雑で、習得するのが難しい。
アプリケーションモデルに提示されるコマンドにUI要素を結び付ける簡単で柔軟性が高い方法があれば有用となる。また、デザイナーおよび開発者にとってソフトウェア開発処理を簡単に行うことができるようになる場合は有用となる。
データバインディングエンジンを使用してコマンドバインディングを行う。データバインディングエンジンは、ボタン、メニュー、リストボックスなどのユーザインターフェイスコントロールを、アプリケーションモデル上に提示されたコマンドにバインドする。本発明の一部の実施形態では、コマンドバインディングは、マークアップ言語で宣言的に指定される。データバインディングパスおよびデータソースは、コマンドがUI要素にどのようにバインドされるかを定義するマークアップで指定することができる。
上記の概要、および次の実施形態例の詳細な説明は、添付の図面と併せ読めばよりよく理解される。本発明を説明するために本発明の構成例を図面に示しているが、本発明は、開示された特定の方法および手段に限定されない。
(概要)
テキスト処理アプリケーションは、選択されたテキストを切り取る機能を提示するいくつかの文書オブジェクトを処理すると仮定する。アプリケーションは、「編集」メニュー上の「切り取り」とラベル付けされたメニュー項目を備え得る。アプリケーションは、「切り取り」コマンドがどのようにメニュー項目、およびアクティブな文書にバインドされるかを定義する必要がある。コマンドバインディングの従来の方法は複雑で、デザイナー/開発者の対話に固有の問題に拍車をかける。本発明の一部の実施形態によれば、コマンドバインディングは、データバインディングコマンドパスをユーザインターフェイスの要素または構成要素に宣言的に関連付け、コマンドプロパティが変わったときに変更通知を送信し、オブジェクトバインディング機構によって自動的にターゲットを更新することによって達成され、それによって複雑度、およびコマンドバインディングおよびルーティングの技術的な専門知識の必要性を低減する。
(コンピューティング環境例)
図1および次の説明は、本発明を実施するのに適したコンピューティング環境の簡単な概説を提供するためのものである。しかし、本発明とともに使用するためにあらゆる種類のハンドヘルド、ポータブル、および他のコンピューティング装置が含まれることを理解されたい。以下では汎用コンピュータについて説明しているが、これは一例であり、本発明が必要とするのは、ネットワークサーバの相互運用性および対話を有するシンクライアント(thin client)のみである。したがって本発明は、ほんのわずかの、または最低限のクライアントリソースが関与するネットワーク式ホストサービス(networked hosted services)の環境、例えばクライアント装置が単にブラウザまたはインターフェイスとしてWWWにサービスを提供するネットワーク式環境などで使用することができる。
必須ではないが、本発明は、開発者による使用のためにアプリケーションプログラミングインターフェイス(API)を介して実施され、かつ/またはネットワークブラウジングソフトウェア内に含めることができる。これについては、クライアントワークステーション、サーバ、または他の装置など1つまたは複数のコンピュータによって実行されるプログラムモジュールなどコンピュータ実行可能命令の一般の文脈で説明する。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラムモジュールの機能を、様々な実施形態で必要に応じて結合し、分散することができる。さらに、本発明を他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。本発明との使用に適したよく知られている他のコンピューティングシステム、環境、および/または構成の例には、それだけには限定されないが、パーソナルコンピュータ(PC)、現金自動預入支払機、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどがある。また、本発明は、タスクが通信ネットワークまたは他のデータ通信媒体によってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。
したがって図1は、本発明を実施するのに適したコンピューティングシステム環境100の一例を示しているが、上記で明らかにしたように、コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関して制限を示唆するものではない。また、コンピューティング環境100を、動作環境100の例に示した構成要素のいずれか1つ、またはその組み合わせに関連する依存性または必要条件を有しているものと解釈すべきではない。
図1を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ110の形で含んでいる。コンピュータ110の構成要素は、それだけには限定されないが、処理ユニット120、システムメモリ130、およびシステムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121を含み得る。システムバス121は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかの種類のバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子装置規格化協会(VESA)ローカルバス、およびメザニンバスとしても知られている周辺部品相互接続(PCI)バスなどがある。
コンピュータ110は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、脱着式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の脱着式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ110からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように1つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム133(BIOS)は、例えば起動中など、コンピュータ110内の要素間での情報の転送を助ける基本ルーチンを含み、一般にROM131に格納されている。RAM132は一般に、処理ユニット120から直接アクセス可能な、かつ/または処理ユニット120が現在処理しているデータおよび/またはプログラムモジュールを含む。図1は、それだけには限定されないが一例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
コンピュータ110は、他の脱着式/固定式、揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図1は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ141、脱着式不揮発性磁気ディスク152から読み取り、あるいはそこに書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体など、脱着式不揮発性光ディスク156から読み取り、あるいはそこに書き込む光ディスクドライブ155を示している。動作環境の例で使用できる他の脱着式/固定式、揮発性/不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどがある。ハードディスクドライブ141は一般に、インターフェイス140などの固定式メモリインターフェイスを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェイス150などの脱着式メモリインターフェイスによってシステムバス121に接続される。
上述し、図1に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110の他のデータの記憶を提供する。図1では例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示されている。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置161などの入力装置を介してコマンドおよび情報をコンピュータ110に入力することができる。図には示していないが他の入力装置には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバス121に結合されているユーザ入力インターフェイス160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインターフェイスおよびバス構造で接続してもよい。
モニタ191または他のタイプの表示装置もまた、ビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続される。Northbridgeなどのグラフィックインターフェイス182をシステムバス121に接続してもよい。Northbridgeは、CPUまたはホスト処理ユニット120と通信するチップセットであり、高速グラフィックポート(AGP)通信の役割を担う。1つまたは複数のグラフィック処理ユニット(GPU)184はグラフィックインターフェイス182と通信することができる。この点で、GPU184は一般に、レジスタ記憶装置などのオンチップメモリ記憶装置を含み、ビデオメモリ186と通信する。しかし、GPU184はコプロセッサの一例にすぎず、したがって様々なコプロセッシング装置をコンピュータ110に含めることができる。モニタ191または他のタイプの表示装置もまた、ビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続される。ビデオインターフェイスは、ビデオメモリ186と通信する。コンピュータは、モニタ191に加えて、出力周辺インターフェイス195を介して接続できるスピーカ197、プリンタ196などの他の周辺出力装置を含むこともできる。
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ110に関連して上述した多くまたはすべての要素を含むが、図1にはメモリ記憶装置181のみを示している。図1に示した論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、他のネットワークを含んでいてもよい。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
LANネットワーキング環境で使用する場合、コンピュータ110は、ネットワークインターフェイスまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は一般に、モデム172、またはインターネットなどWAN173を介して通信を確立する他の手段を含む。モデム172は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェイス160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク式環境では、コンピュータ110に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図1は、それだけには限定されないが一例として、リモートアプリケーションプログラム185をメモリ装置181上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
コンピュータ110または他のクライアント装置をコンピュータネットワークの一部として配置できることを当業者であれば理解できよう。この点で、本発明は、任意の数のメモリまたは記憶ユニット、および任意の数の記憶ユニットまたはボリュームにわたって行われる任意の数のアプリケーションおよびプロセスを有する任意のコンピュータシステムに関連する。本発明は、リモートまたはローカルの記憶装置を有する、ネットワーク環境で配置されたサーバコンピュータおよびクライアントコンピュータを含む環境に適用し得る。また本発明は、プログラミング言語機能、解釈機能、および実行機能を有するスタンドアロンコンピューティング装置にも適用し得る。
(データバインディング機構を使用してコマンドバインディングを行うためのシステムおよび方法)
図2は、本発明の一部の実施形態によるデータバインディング機構を使用してコマンドバインディングを行うためのシステム例を示している。こうしたシステムは、図2のコンピュータ例202など、全部または一部、1つまたは複数のコンピュータに存在し得る。コンピュータ202は、図1に関して説明したコンピュータ110などのコンピュータを含み得る。データバインディングエンジンを使用してコマンドを経路指定するシステムは、データバインディング構成要素208、ソース206、およびターゲット203の要素のうちの1つまたは複数を含み得る。
本発明の一部の実施形態では、データバインディング構成要素208は、ソースオブジェクト例210a、210bなどのソースオブジェクトのコマンドオブジェクト212aの、ターゲットオブジェクト例204a、204bなどのターゲットオブジェクトへの動的なバインディングを可能にするデータバインディングエンジン208である。データバインディングエンジンは、ソースオブジェクトコマンドプロパティへの変更が関連のターゲットオブジェクトプロパティに自動的に反映されるように、オブジェクトのプロパティ変更通知をリッスンすることができる。データバインディングエンジンは、ソースオブジェクト非コマンドプロパティへの変更が関連のターゲットオブジェクトプロパティに自動的に反映されるように、オブジェクトのプロパティ変更通知をリッスンすることができ、またその逆も可能である。ターゲットオブジェクトは、データソースに関連付けることができ、ターゲットオブジェクトがバインドされるソースを識別する。データバインディングエンジンは、プロパティパスの評価をサポートして、ターゲットの特定の部分をソースの特定の部分にバインドすることができる。本発明の一部の実施形態では、ターゲットオブジェクトプロパティのソースオブジェクトコマンドプロパティへのバインドは、HTML(ハイパーテキストマークアップ言語)、XML(拡張可能マークアップ言語)、XAML(eXtensible Application Markup Language)、または他の適したマークアップ言語などのマークアップ言語で宣言的に行うことができる。データバインディングエンジンは、ターゲットオブジェクトのデータソースのソースオブジェクトコマンドプロパティを検索し、適切な更新を行うことができる。
本発明の一部の実施形態では、1つ、一部、またはすべてのオブジェクトが他のオブジェクトを指すオブジェクト指向オブジェクトのグラフが生成され、グラフにおける1つのオブジェクトから別のオブジェクトを指す各矢印がプロパティを表す。図6にオブジェクト指向オブジェクトのグラフ例を示している。図6では、オブジェクト602は、文書マネージャオブジェクトを表し、オブジェクト604および606は文書オブジェクトを表し、オブジェクト608は「切り取り」コマンドを表す。図6で、アクティブな文書は、文書オブジェクト606であり、ActiveDocumentプロパティを表す実線603で示している。本発明の範囲はこうしたオブジェクトおよびコマンドに限定されるものではないことを理解されたい。適した任意のオブジェクトおよびコマンドが作用を受け得る。実際に、本発明の範囲は、オブジェクト指向プログラミング言語環境でのオブジェクトに限定されず、任意のデータソースおよびプロパティの階層に等しく適用することができる。本発明の一部の実施形態では、データバインディングエンジン208は、オブジェクト602などのデータソース、およびオブジェクト602からオブジェクト606、さらにオブジェクト608へのパスを表す「ActiveDocument.CutCommand」などのプロパティパスの指定を可能にする。データバインディングエンジン208は、稼働中のプログラム内の「生きている」(live)オブジェクトを表すオブジェクトグラフに向けてクエリを行って、どのオブジェクトがパス「ActiveDocument.CutCommand」で表されるかを動的に決定することができる。この場合はオブジェクト608である。
再度図2を参照すると、ソース206は、ソースオブジェクト210a、210bなどによって表される1つまたは複数のソースオブジェクトを含み得る。ソースオブジェクト210a、210bなどは、ソースコマンドオブジェクト210aなどによって図2に示した1つまたは複数のソースコマンドオブジェクトと関連付けることができる。本発明の一部の実施形態では、ソース206はモデルを表し得る。本発明の一部の実施形態のモデルは、基礎を成す状態の集まりを表す基礎を成すアプリケーションロジックである。例えば、ユーザがファイルシステムを探索することができるアプリケーションを考える。この場合のアプリケーションのモデルは、ファイルシステム、つまり選択されたディレクトリのフォルダ、およびフォルダ内のファイルの組とすることができる。いくつかのビューを1つのモデルにバインドすることができる。モデルにバインドされたビューは、モデルに依存し得る。しかし、本発明の一部の実施形態では、モデルはビューに依存しない。モデルは、そのオブジェクトのうちの1つのプロパティが変わった場合、または状態の変更が行われた場合に変更通知を送信することができる。例えば、新しいファイルがフォルダに追加された場合、変更通知が送信され得る。
ソースオブジェクト210a、210bなどを、ソースコマンドオブジェクト212aなどによって表される1つまたは複数のコマンドオブジェクトに関連付けることができる。本発明の一部の実施形態では、コマンドオブジェクトは、実行メソッドに関連付けられているオブジェクト、すなわちコマンドオブジェクトは実行可能オブジェクトであり、状態を有する。本発明の一部の実施形態で、コマンドオブジェクトに関連付けられている状態は、コマンドを実行することができるかどうかを表す、つまりコマンドがアクティブ(使用可能)か非アクティブ(使用不可)かを表すブール値である。コマンドの例には、それだけには限定されないが、「文書を開く」、「選択したテキストを切り取る」などがある。
ターゲット203は、ターゲットオブジェクト204a、204bなどによって図2で表される1つまたは複数のターゲットオブジェクトを含み得る。本発明の一部の実施形態では、ターゲットは、ビューまたはユーザインターフェイスとすることができる。1つまたは複数のビューは、モデルにバインドされ、基礎を成すモデルの状態を表示することができる。本発明の一部の実施形態では、ビューまたはユーザインターフェイスは、ユーザインターフェイスの外見が定義され、ユーザインターフェイスの要素および構成要素が定義されるHTML(ハイパーテキストマークアップ言語)、XML(拡張可能マークアップ言語)、XAML(eXtensible Application Markup Language)、または他の適したマークアップ言語などのマークアップ言語で定義される。ターゲットオブジェクトは、それだけには限定されないが、メニュー項目、ボタン、またはリストボックスなどのユーザインターフェイス要素またはコントロールとすることができる。上述したファイルシステムの例では、ユーザインターフェイスの例は、選択されたディレクトリのフォルダ内の現在のファイルのリストを表示することができる。
ユーザインターフェイスを、基礎を成すモデルにバインドするために、本発明の一部の実施形態では、イベントハンドラを使用してバインディングを明示的に定義する、またはIDの割当、およびコマンドマネージャの呼出を介して基礎を成すモデルにユーザインターフェイス構成要素を間接的に関連付ける代わりに、図6に関して上述したように、データソースオブジェクトおよびクエリパスを指定することによってユーザインターフェイス構成要素を表すオブジェクトが基礎を成すモデルオブジェクトにバインドされる。クエリの任意の部分が変更された場合、オブジェクトによって変更通知が送信され、データバインディングエンジンは、変更通知を検出し、適切なオブジェクトを更新する。クエリが行われる対象は、稼働中のプロジェクト内の生きているオブジェクトであることを理解されたい。
図3は、図2のシステムのより詳細なブロック図である。図3では、データバインディングエンジン320は、モデル324の一部であるソースオブジェクトのコマンドプロパティ322をUI構成要素330などのターゲットオブジェクトのプロパティにバインドすることができる。データバインディングエンジン320は、プロパティ変更通知、ここではモデルプロパティ322の通知326、UIプロパティ334の通知328をリッスンし、ソース324およびターゲット330を自動的に同期する。UI構成要素などのターゲット330を、ターゲット330がバインドされるソースとして働くデータソース332に関連付けることができる。
本発明の一部の実施形態では、バインドすべきUIプロパティ334は、コマンドオブジェクトのシンクまたはターゲットプロパティであり、バインドすべきモデルプロパティ322はモデルのコマンドプロパティである。非限定のターゲットプロパティ例は、例えば「ClickCommand」とすることができる。本発明の一部の実施形態では、コマンドバインディングは、モデル324をデータソースとして割り当て、UI構成要素334のプロパティをモデル322のコマンドプロパティにデータバインディングすることによって達成される。一部の実施形態では、バインドは、任意のプログラムコードの必要無く、宣言的に達成することができる。宣言ステートメントの例は、
<MenuItem ClickCommand="*Bind(DataSource=model,
Path=DocumentManager.ActiveDocument.CutCommand)"/>
とすることができる。
このステートメントは、メニュー項目「ClickCommand」に関連付けられているデータソースはオブジェクト「model」であり、ClickCommandに関連付けられるべきオブジェクトはActive DocumentのCut Commandプロパティであることを意味する。UIは、コードを書くことなくUIデザイナーツール内、またはデザイナーツールの外部で、マークアップで作成することができる。あるいは、プログラムコードを書くことによって同じ結果を達成することができる。
本発明の一部の実施形態では、コマンドオブジェクトを、プロパティとして提示された追加の状態に関連付けることができる。例には、それだけには限定されないが、IsEnabled、ユーザに対して表されるテキスト名、キーバインディングまたはアイコンなどがある。状態は、開発者によって明示的に提供され得る、またはアプリケーションの他のプロパティから算出または導出され得る。本発明の一部の実施形態では、例えばメニュー項目はその使用可能状態をコマンドオブジェクトのIsEnabledプロパティに設定し、その可視の外観を更新する、メニュー項目はユーザに対して表されるテキストをコマンドオブジェクトのテキストプロパティに更新するなど、ターゲットオブジェクトは、これらのプロパティをどのように処理するかがわかる。コマンドオブジェクトは、こうしたプロパティの変更通知を提供する。ターゲットオブジェクトは、変更通知をリッスンし、変更通知の場合にそのプロパティおよび外観を更新する。コマンドオブジェクトのすべてのプロパティをターゲットオブジェクトがわかっている必要はない。
本発明の一部の実施形態では、ターゲットオブジェクトは一部の状態プロパティの暗黙的な処理を行わない。この場合、データバインディングを使用して、コマンドオブジェクトの既知のプロパティをターゲットオブジェクトの既知のプロパティにバインドする。
<MenuItem
Text="*Bind(Path=DocumentManager.ActiveDocument.CutCommand.Text"/>
本発明の一部の実施形態では、コマンドオブジェクトは、状態を持たず、プロパティをまったく備えていない。状態プロパティは、依然としてモデルによって提供され、データバインディングを使用してターゲット要素にバインドされ得る。
本発明の一部の実施形態では、状態を持たないコマンドは、モデルにメソッドを提供し、コマンドオブジェクトの代わりにそのメソッドをバインドすることによって達成することができる。
<MenuItem Click="*Bind(Path=ActiveDocument.Copy)"
Enabled="*Bind(Path=ActiveDocument.CanCopy)"/>
この場合、コマンドオブジェクトは必要ない。CanCopy状態はモデルによって提供され、Copy()メソッドはデータバインディングを使用してバインドされる。
図4は、本発明の一部の実施形態によるコマンドバインディングのためのシステムを使用できる一般のシナリオを示している。複数の文書のうちの1つ、すなわち文書410がアクティブである、複数の文書408、410などを処理するアプリケーションを考える。モデルの一部である文書マネージャ404は、アクティブ文書のプロパティを提示する。モデルの一部である文書オブジェクト408、410などは、コマンドオブジェクト412など、編集コマンドをプロパティとして提示することができ、これは選択可能である。一部の実施形態では、プロパティパスを使用して、まずアクティブな文書410のアドレスを指定し、次いでユーザインターフェイス402上のボタンを介してアクティブな文書の編集コマンドを選択することによって宣言バインディング(declarative binding)を達成することができる。宣言バインディングステートメントの例は
<MenuItem ClickCommand=
"*Bind(Path=DocumentManager.ActiveDecument.CutCommand)"/>
または
<MenuItem ClickCommand=
"*Bind(Path=DocumentManager.ActiveDecument.CopyCommand)"/>
または
<MenuItem ClickCommand=
"*Bind(Path=DocumentManager.ActiveDecument.PasteCommand)"/>
などである。一部の実施形態では、文書マネージャ404は、例えばユーザがアクティブの文書を変更するなど、アクティブの文書410のプロパティに対する任意の変更の変更通知を提供することができる。変更通知は、データバインディングエンジン406によって検出され、コマンドは、アクティブの文書に再度バインドされる。本発明の一部の実施形態では、上記の結果はプログラムコードを書くことなく宣言的に達成されたことに留意されたい。コマンド管理のサービスは不要である。
本発明の一部の実施形態では、コマンドプロパティではない任意のプロパティをメニュー項目にバインドすることができる。例えば、あるモデルのブールプロパティをチェックボックスメニュー項目にバインドすることができる。本発明の一部の実施形態では、チェックボックスUI構成要素は、ターゲットプロパティとして使用できる「IsChecked」などのプロパティを提示することができる。同様に、オブジェクトのリストを特殊リストボックスメニュー項目にバインドして、それだけには限定されないが、「最近使用された」ファイルリストなどのシナリオに対処することができる。
図5は、本発明の一実施形態によるコマンドバインディングを指定し、実行する方法のフロー図例を示している。方法の1つまたは複数のステップは任意選択である。図5では、ステップ502で、ソース定義が受信される。これは、モデルまたはアプリケーションのコード化および/またはインスタンス化を伴い得る。例えば、開発者は、それにバインドすべき1つまたは複数のプロパティを提示するモデルを実装することができる。ステップ504で、ターゲット定義が受信される。これは、ユーザインターフェイスおよび/またはユーザインターフェイスのインスタンス化などのターゲットのコードまたはマークアップでの指定を伴い得る。例えばデザイナーは、マークアップ言語でユーザインターフェイスを作成でき、開発者はコードでユーザインターフェイスを作成することができる。ステップ506で、コマンドバインディングステートメントが受信される。これは、上述したように、開発者によるターゲットとソースとのデータ接続のコード化、またはデザイナーによるコマンドバインディングステートメントのマークアップでの指定を伴い得る。本発明の一部の実施形態では、コマンドバインディングステートメントの指定は、ステップ504のターゲットの定義に組み込むことができる。
ステップ508で、モデルおよびユーザインターフェイスを含むアプリケーションを生成し、かつ/またはインスタンス化することができる。バインディングエンジンは、モデルのパスをリッスンし、コマンドバインディングステートメントを評価することができる。コマンドバインディングステートメントの評価が成功した場合、ターゲットおよびモデルは、上述したように同期され得る。本発明の一実施形態では、1つまたは複数のコマンドバインディングステートメントが提供され得る。コマンドバインディングは、上述したように、1つまたは複数のデータバインディングコマンドパスおよびデータソースをソースに宣言的に割り当てることによって達成することができる。本発明の一部の実施形態では、コマンドパスおよびデータソースは、HTML、XML、XAML、または他の適したマークアップ言語などのマークアップ言語で宣言的に定義される。モデルのパスを、変更通知について連続的に監視することができる。コマンドプロパティが変更されたことを示す変更通知がコマンドオブジェクトから受信される。本発明の一部の実施形態では、変更通知は、コマンドオブジェクトによって送信され、データバインディングエンジンによって検出される。変更通知が受信されると、コマンドバインディングステートメントは再評価され、上述したように、ソースおよびターゲットが同期される。一部の実施形態では、データバインディングエンジンは、オブジェクトグラフに向けてクエリを行ってデータソースおよびデータパスによって示されるオブジェクトを探し、データバインディングエンジンは、一般のオブジェクトバインディング機構によってターゲットを自動的に更新する。
本明細書に記載した様々な技術は、ハードウェアまたはソフトウェアとともに、または適切な場合はその両方の組み合わせで実施することができる。したがって本発明の方法および装置、またはそのいくつかの態様またはその一部は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、または他の任意の機械可読記憶媒体などの有形の媒体に埋め込まれるプログラムコード、すなわち命令の形をとることができ、プログラムコードがコンピュータなどの機械にロードされ、それによって実行されると、機械は本発明を実施する装置となる。プログラム可能コンピュータでプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、揮発性、不揮発性メモリおよび/または記憶要素などを含むプロセッサによって読み取り可能な記憶媒体、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えばデータ処理APIなどの使用を介して本発明の態様のドメイン固有のプログラミングモジュールの作成および/または実装を使用し得る1つまたは複数のプログラムは、コンピュータシステムと通信するために、高レベルの手続き型またはオブジェクト指向プログラミング言語で完全に実施される。しかし、プログラムは、必要に応じてアセンブリまたは機械言語で実施することができる。どんな場合でも、言語は、コンパイラ型、またはインタープリタ型言語とすることができ、ハードウェア実装と組み合わせることができる。
本発明を様々な形状の好ましい実施形態とともに説明してきたが、他の同様の実施形態を使用することができ、または変更および追加を記載した実施形態に加えて、本発明から逸脱することなく本発明の同じ機能を実行することができることを理解されたい。したがって本発明は、任意の単一の実施形態に限定されるものではなく、むしろ添付の特許請求の範囲による幅および範囲内に含まれるものとする。
本発明の態様を実施できるコンピューティング環境例を示すブロック図である。 本発明の一実施形態によるコマンドバインディングのシステム例を示すブロック図である。 本発明の一実施形態による図2のより詳細なブロック図である。 本発明の一実施形態による図3のコマンドバインディングシステムの使用例を示すブロック図である。 本発明の一実施形態によるコマンドバインディングの方法例を示すフロー図である。 本発明の一態様によるオブジェクトを示すブロック図である。
符号の説明
100 コンピューティング環境
120 処理ユニット
121 システムバス
130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定式不揮発性メモリインターフェイス
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 脱着式不揮発性メモリインターフェイス
160 ユーザ入力インターフェイス
161 マウス
162 キーボード
170 ネットワークインターフェイス
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
182 グラフィックスインターフェイス
185 リモートアプリケーションプログラム
186 ビデオメモリ
190 ビデオインターフェイス
191 モニタ
195 出力周辺インターフェイス
196 プリンタ
197 スピーカ
202 コンピュータ
203 ターゲット
206 ソース
208 データバインディングエンジン
320 データバインディングエンジン
322 バインドするコマンドオブジェクト
324 モデル(ソース)
330 UI構成要素(ターゲット)
332 データソースプロパティ
334 ターゲットプロパティ
402 UI要素(ボタンなど)
404 文書マネージャ
406 データバインディングエンジン
408 文書
410 文書
412 コマンドオブジェクト
602 文書マネージャオブジェクト
603 プロパティ
604 文書オブジェクト1
606 文書オブジェクト2
608 プロパティ

Claims (38)

  1. コマンドをターゲットの要素にマッピングする少なくとも1つのバインディングステートメントを受信し、前記少なくとも1つのバインディングステートメントを評価し、前記ターゲット要素を前記コマンドに関連付けられている値に更新するデータバインディングエンジンを含むことを特徴とするソースとターゲットとの間の前記コマンドをバインドするシステム。
  2. 前記コマンドはコマンドオブジェクトであることを特徴とする請求項1に記載のシステム。
  3. 前記コマンドは状態に関連付けられていることを特徴とする請求項1に記載のシステム。
  4. 前記コマンド状態は前記ソースから導出されることを特徴とする請求項3に記載のシステム。
  5. 前記コマンド状態は実行可能に関連付けられていることを特徴とする請求項3に記載のシステム。
  6. 前記コマンド状態は実行不可に関連付けられていることを特徴とする請求項3に記載のシステム。
  7. 前記コマンドは状態を持たないことを特徴とする請求項1に記載のシステム。
  8. 前記コマンドはメソッドであることを特徴とする請求項1に記載のシステム。
  9. 前記少なくとも1つのバインディングステートメントは宣言マークアップ言語によるステートメントを含むことを特徴とする請求項1に記載のシステム。
  10. 前記宣言マークアップ言語はHTML、XML、またはXAMLを含むことを特徴とする請求項9に記載のシステム。
  11. 前記少なくとも1つのバインディングステートメントはデータソースの指示を含むことを特徴とする請求項1に記載のシステム。
  12. 前記少なくとも1つのバインディングステートメントはバインディングパスを含むことを特徴とする請求項1に記載のシステム。
  13. 前記データバインディングエンジンは、少なくとも第1のオブジェクトおよび第2のオブジェクトを含むオブジェクトのグラフに向けてクエリを行い、前記第1のオブジェクトは前記第2のオブジェクトを指すことを特徴とする請求項1に記載のシステム。
  14. 前記第2のオブジェクトはコマンドオブジェクトであることを特徴とする請求項13に記載のシステム。
  15. 前記コマンドは実行可能メソッドに関連付けられているオブジェクト、および実行すべき前記コマンドオブジェクトに関連付けられている実行メソッドの実行可能または実行不可に関連付けられているブール状態を含むことを特徴とする請求項1に記載のシステム。
  16. 前記ターゲットはユーザインターフェイスであることを特徴とする請求項1に記載のシステム。
  17. 前記ソースは基礎を成すアプリケーションの状態の集まりであることを特徴とする請求項1に記載のシステム。
  18. 前記コマンドと前記ターゲットとの間のマッピングを定義する少なくとも1つのバインディングステートメントを受信するステップと、
    前記コマンドの値を決定するステップと、
    前記ターゲットを前記コマンドの前記値に更新するステップと
    を含むことを特徴とするコマンドをターゲットにマッピングする方法。
  19. 前記少なくとも1つのバインディングステートメントを評価できないとの決定に応答して、前記コマンドの前記値はnullに設定されることを特徴とする請求項18に記載の方法。
  20. 前記少なくとも1つのバインディングステートメントを評価できないとの決定に応答して、前記コマンドの前記値はデフォルトの値に設定されることを特徴とする請求項18に記載の方法。
  21. 前記コマンドの前記値がnullであるとの決定に応答して、前記ターゲットは使用不可であることを特徴とする請求項18に記載の方法。
  22. 前記コマンドは状態に関連付けられているオブジェクトであることを特徴とする請求項18に記載の方法。
  23. 前記コマンド状態はデータソースから導出されることを特徴とする請求項22に記載の方法。
  24. 前記コマンド状態は実行可能に関連付けられていることを特徴とする請求項22に記載の方法。
  25. 前記コマンドは状態を持たないことを特徴とする請求項18に記載の方法。
  26. 前記コマンドはメソッドであることを特徴とする請求項18に記載の方法。
  27. データソースを含むオブジェクトの集まりを変更通知について監視するステップをさらに含むことを特徴とする請求項18に記載の方法。
  28. 前記変更通知の検出に応答して、前記データソースのオブジェクトのグラフに向けてクエリを行って前記コマンドの更新された値を決定するステップをさらに含むことを特徴とする請求項27に記載の方法。
  29. 前記コマンドにマッピングされた前記ターゲットを前記コマンドの前記更新された値に更新するステップをさらに含むことを特徴とする請求項28に記載の方法。
  30. 前記少なくとも1つのバインディングステートメントはマークアップ言語による宣言ステートメントを含むことを特徴とする請求項18に記載の方法。
  31. 前記マークアップ言語はHTMLであることを特徴とする請求項30に記載のシステム。
  32. 前記マークアップ言語はXMLであることを特徴とする請求項30に記載のシステム。
  33. 前記マークアップ言語はXAMLであることを特徴とする請求項30に記載のシステム。
  34. 前記ターゲットはユーザインターフェイスの要素であることを特徴とする請求項18に記載のシステム。
  35. データソースのコマンドとユーザインターフェイスの要素との間のマッピングを定義する少なくとも1つのバインディングステートメントを受信し、
    前記コマンドの値を決定し、
    前記ユーザインターフェイスの前記要素を前記コマンドの前記値に更新する
    コンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
  36. 前記データソースを含むオブジェクトの集まりを変更通知について監視するコンピュータ実行可能命令をさらに含むことを特徴とする請求項35に記載のコンピュータ可読媒体。
  37. 前記変更通知を検出し、
    前記データソースのオブジェクトのグラフに向けてクエリを行って前記コマンドの更新された値を決定する
    コンピュータ実行可能命令をさらに含むことを特徴とする請求項36に記載のコンピュータ可読媒体。
  38. 前記コマンドに関連付けられている前記ユーザインターフェイス要素を前記コマンドの前記更新された値に更新するコンピュータ実行可能命令をさらに含むことを特徴とする請求項37に記載のコンピュータ可読媒体。
JP2005045562A 2004-04-13 2005-02-22 コマンドバインディングを実行するためのデータバインディング機構のアプリケーション Pending JP2005301993A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/822,910 US7653880B2 (en) 2004-04-13 2004-04-13 Application of data-binding mechanism to perform command binding

Publications (1)

Publication Number Publication Date
JP2005301993A true JP2005301993A (ja) 2005-10-27

Family

ID=34939141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005045562A Pending JP2005301993A (ja) 2004-04-13 2005-02-22 コマンドバインディングを実行するためのデータバインディング機構のアプリケーション

Country Status (11)

Country Link
US (1) US7653880B2 (ja)
EP (1) EP1586994B1 (ja)
JP (1) JP2005301993A (ja)
KR (1) KR100986415B1 (ja)
CN (1) CN1684034A (ja)
AU (1) AU2005200700B2 (ja)
BR (1) BRPI0500787A (ja)
CA (1) CA2498695A1 (ja)
ES (1) ES2676739T3 (ja)
MX (1) MXPA05002947A (ja)
RU (1) RU2398266C2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831918B2 (en) * 2005-09-12 2010-11-09 Microsoft Corporation Content based user interface design
US8566781B2 (en) * 2007-04-23 2013-10-22 Siemens Aktiengesellschaft Model-based view parts and reusable data source configurations
US7950027B2 (en) * 2007-06-15 2011-05-24 Microsoft Corporation Mutable application experience and user interface
US20080320408A1 (en) * 2007-06-21 2008-12-25 Dziezanowski Joseph J Devices, Systems, and Methods Regarding Machine Vision User Interfaces
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US20090320004A1 (en) * 2007-11-02 2009-12-24 Kirk Fertitta Test Instrument Graphical User Interface
US20090199112A1 (en) * 2008-02-04 2009-08-06 Deserranno Allen Simplified opc to wpf xaml binding method
US9619304B2 (en) * 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8407661B2 (en) * 2008-07-28 2013-03-26 Abb Research Ltd. Method and system for creating HMI applications for an automation process
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US9141403B2 (en) * 2011-02-15 2015-09-22 Microsoft Technology Licensing, Llc Data-driven schema for describing and executing management tasks in a graphical user interface
US8887074B2 (en) * 2011-02-16 2014-11-11 Apple Inc. Rigging parameters to create effects and animation
US20130055200A1 (en) * 2011-08-30 2013-02-28 Microsoft Corporation Application interface for object build information
US8499122B2 (en) * 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
US9015608B2 (en) * 2012-07-16 2015-04-21 Sap Se Regenerating a user interface area
US8924848B2 (en) * 2012-07-16 2014-12-30 Sap Se Synchronizing a user interface area
EP2951687A4 (en) * 2013-02-01 2016-08-03 Hewlett Packard Entpr Dev Lp TEST STRIP GENERATION BASED ON ABSTRACT USER TESTING
US9715372B2 (en) * 2013-03-13 2017-07-25 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models
CN105334808A (zh) * 2014-06-26 2016-02-17 北京北方微电子基地设备工艺研究中心有限责任公司 半导体设备的数据处理方法及系统
US10359914B2 (en) 2014-11-25 2019-07-23 Sap Se Dynamic data source binding
US9984105B2 (en) * 2014-12-04 2018-05-29 International Business Machines Corporation Automatic discovery of code and data stores that populate a user interface element
CN107430590B (zh) * 2015-01-12 2020-12-08 微福斯有限责任公司 用于数据比较的系统和方法
US9483240B1 (en) 2015-05-27 2016-11-01 Google Inc. Data binding dependency analysis
CN105302552B (zh) * 2015-10-21 2018-09-07 浪潮(北京)电子信息产业有限公司 一种用户界面视图扩展方法和装置
CN108427689A (zh) * 2017-02-15 2018-08-21 北京国双科技有限公司 信息获取方法和装置
CN107479982B (zh) * 2017-07-03 2020-01-31 福建网龙计算机网络信息技术有限公司 一种数据同步的方法及终端
US10394627B2 (en) * 2017-12-28 2019-08-27 Schneider Electric Software, Llc Asynchronous C#-JS data binding bridge
CN109840088A (zh) * 2018-12-29 2019-06-04 深圳市梦域科技有限公司 一种开发框架设计的方法及装置
US10705893B1 (en) 2019-02-22 2020-07-07 Hewlett Packard Enterprise Development Lp Command line interface modifications
US11055073B2 (en) * 2019-04-08 2021-07-06 Citrix Systems, Inc. Transforming validated user interface layouts using inter-platform design mapping data
CN112817779A (zh) * 2021-01-29 2021-05-18 京东方科技集团股份有限公司 组件化应用程序通信方法、装置、设备及介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5255356A (en) 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
US5396587A (en) 1990-04-11 1995-03-07 501 Lotus Development Corp. Asynchronous, minimal update display system
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
CA2099918C (en) 1992-07-06 2002-11-19 Robert G. Atkinson Method and system for naming and binding objects
US5452459A (en) 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5706505A (en) 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US6167455A (en) * 1995-05-05 2000-12-26 Apple Computer, Inc. Method and system for synchronous operation of linked command objects
US5872973A (en) 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US5835904A (en) 1995-10-31 1998-11-10 Microsoft Corporation System and method for implementing database cursors in a client/server environment
US6401099B1 (en) 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6826759B2 (en) * 1997-04-01 2004-11-30 Sun Microsystems, Inc. Method and apparatus for discovering and activating software components
US6262729B1 (en) 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6378004B1 (en) 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
US6330006B1 (en) 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6463442B1 (en) 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6438618B1 (en) 1998-12-16 2002-08-20 Intel Corporation Method and device for filtering events in an event notification service
US6429882B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. User interface component
US6571253B1 (en) 2000-04-28 2003-05-27 International Business Machines Corporation Hierarchical view of data binding between display elements that are organized in a hierarchical structure to a data store that is also organized in a hierarchical structure
US7099958B2 (en) * 2000-08-15 2006-08-29 Fujitsu Limited System for designing and performing web application

Also Published As

Publication number Publication date
AU2005200700B2 (en) 2010-02-18
KR20060043087A (ko) 2006-05-15
CA2498695A1 (en) 2005-10-13
KR100986415B1 (ko) 2010-10-08
US20050229190A1 (en) 2005-10-13
BRPI0500787A (pt) 2005-11-16
EP1586994A2 (en) 2005-10-19
MXPA05002947A (es) 2005-10-17
CN1684034A (zh) 2005-10-19
EP1586994A3 (en) 2007-10-10
US7653880B2 (en) 2010-01-26
ES2676739T3 (es) 2018-07-24
AU2005200700A1 (en) 2005-10-27
RU2398266C2 (ru) 2010-08-27
EP1586994B1 (en) 2018-05-23
RU2005105754A (ru) 2006-08-10

Similar Documents

Publication Publication Date Title
JP2005301993A (ja) コマンドバインディングを実行するためのデータバインディング機構のアプリケーション
US8762936B2 (en) Dynamic design-time extensions support in an integrated development environment
JP5026415B2 (ja) データセントリックワークフロー
KR101795844B1 (ko) 런타임 시스템
JP5021211B2 (ja) デジタル装置メニューエディタのための方法およびシステム
AU2005200697B2 (en) Priority binding
US6633313B1 (en) Event routing mechanism in a computer system
US20060225053A1 (en) Programming language improvements
JPH0836493A (ja) オブジェクト集合方法及びシステム
US8271622B2 (en) Method and apparatus for a system management tool to adapt command interface and behavior based on installed features
JP2005346722A (ja) フォームタイプを使用してフォームを生成する方法および装置
US20080127055A1 (en) Application proxy
US6779172B1 (en) Bean scripting framework
US10949220B2 (en) Object-oriented programming system and library
US9038071B2 (en) Operating system context isolation of application execution
US9311111B2 (en) Programming environment with support for handle and non-handle user-created classes
EP1471422B1 (en) Runtime Polymorphism
US20040249813A1 (en) Open component alliance
US9058339B2 (en) Source control inheritance locking
Pearman et al. Simulation Environment Tool: NMock

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120420