數(shù)據(jù)源到復(fù)合控件的綁定的制作方法
【專利說明】數(shù)據(jù)源到復(fù)合控件的綁定
[0001]
[0002]“重算文檔”是示出各種數(shù)據(jù)源和數(shù)據(jù)宿并允許數(shù)據(jù)源和數(shù)據(jù)宿之間的聲明性變換的電子文檔。對于互連各種數(shù)據(jù)源和數(shù)據(jù)宿的任何給定一組變換,數(shù)據(jù)源的輸出可由數(shù)據(jù)宿消費,或數(shù)據(jù)源的輸出可在由數(shù)據(jù)宿消費之前經(jīng)受變換。這些各種變換可被評估,造成遍及重算文檔來表示的一個或多個輸出。
[0003]用戶可以添加和編輯聲明性變換,而無需對編碼的深度知識。這樣的編輯自動使得變換被重新計算,從而造成一個或多個輸出的變化。
[0004]重算文檔的一特定示例是電子數(shù)據(jù)表文檔,它包括單元格的網(wǎng)格。任何給定單元格可能包括被求值以輸出在該單元格中顯示的特定值的表達(dá)式。表達(dá)式可以引用數(shù)據(jù)源,如一個或多個其他單元格或值。
[0005]簡要概沐
[0006]本文所述的至少一些實施例涉及數(shù)據(jù)源到復(fù)合控件的自動化綁定。復(fù)合控件的特性被標(biāo)識。此外,某一特定數(shù)據(jù)源與該復(fù)合控件相關(guān)聯(lián)。對于該復(fù)合控件的一個或多個特性中的每一個特性,關(guān)于該復(fù)合控件的信息以及所述數(shù)據(jù)源被用來標(biāo)識該特定數(shù)據(jù)源的可被綁定到該復(fù)合控件的對應(yīng)特性的一組一個或多個字段。如果該復(fù)合控件的該對應(yīng)特性已被綁定了一聲明性變換的一輸出參數(shù),則在標(biāo)識可被用來綁定到該復(fù)合控件的該對應(yīng)特性的該組一個或多個字段時,該變換的本質(zhì)也可被考慮。
[0007]該概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或基本特征,也不旨在被用來幫助確定所要求保護(hù)的主題的范圍。
[0008]附圖簡沐
[0009]為了描述可獲得以上記載的及其他好處和特征的方式,將參照附圖呈現(xiàn)各個實施例的更具體描述??梢岳斫?,這些附圖只描繪了示例實施例,并且因此不被認(rèn)為是對其范圍的限制,將通過使用附圖并利用附加特征和細(xì)節(jié)來描述和解釋各實施例,在附圖中:
[0010]圖1抽象地例示出其中可采用本文描述的一些實施例的計算系統(tǒng);
[0011]圖2例示出包括多個數(shù)據(jù)源和多個控件的環(huán)境;
[0012]圖3更詳細(xì)地例示出包括單個數(shù)據(jù)源和單個控件以及兩者之間的關(guān)聯(lián)的環(huán)境;
[0013]圖4例示出用于將數(shù)據(jù)源綁定到數(shù)據(jù)控件的方法的流程圖;
[0014]圖5例示出用于將該特定數(shù)據(jù)源與諸如復(fù)合控件之類的一控件相關(guān)聯(lián)的方法的流程圖;
[0015]圖6例示出一用戶界面,其中例示出圖庫控件以及用于綁定到該圖庫控件的可用數(shù)據(jù)源的列表;
[0016]圖7例示出與圖6的用戶界面類似的用戶界面,不同之處在于用戶選擇設(shè)備數(shù)據(jù);
[0017]圖8例示出一用戶界面,該用戶界面示出鑒于設(shè)備數(shù)據(jù)源的字段到圖庫控件的特性的默認(rèn)綁定的圖庫控件的響應(yīng);
[0018]圖9例示出一用戶界面,該用戶界面示出用戶查閱并改變與標(biāo)簽相關(guān)聯(lián)的綁定;
[0019]圖10例示出一用戶界面,該用戶界面示出包括可被用于將顏色值綁定到標(biāo)簽控件的顏色特性的顏色選擇器控件的顏色選擇器界面;
[0020]圖11示出一用戶界面,其中用戶被呈現(xiàn)了允許用戶編輯輸出用于標(biāo)簽的顏色的變換的變換編輯器;
[0021]圖12抽象地例示出示例重算用戶接口,它例示出帶有中介變換的若干數(shù)據(jù)源和數(shù)據(jù)宿,且被用作為解釋本文所述的更寬泛原理而提供的具體示例;
[0022]圖13例示出示例編譯環(huán)境,該示例編譯環(huán)境包括訪問變換鏈以及產(chǎn)生編譯代碼以及依賴關(guān)系鏈的編譯器;以及
[0023]圖14例示出用于編譯重算用戶接口的變換鏈的方法的流程圖;
[0024]圖15例示出其中可采用本發(fā)明的原理的環(huán)境,該環(huán)境包括構(gòu)造依賴于輸入數(shù)據(jù)的視圖合成的數(shù)據(jù)驅(qū)動的合成框架(composit1n framework);
[0025]圖16例示出表示圖15的環(huán)境的一個示例的流水線環(huán)境;
[0026]圖17圖示地例示出圖16的流水線的數(shù)據(jù)部分的一實施例;
[0027]圖18圖示地例示出圖16的流水線的分析部分的一實施例;以及
[0028]圖19圖示地例示出圖16的流水線的視圖部分的一實施例。
[0029]詳細(xì)描沐
[0030]本文所述的至少一些實施例涉及便于數(shù)據(jù)源到復(fù)合控件的自動化綁定。復(fù)合控件的特性被標(biāo)識。此外,某一特定數(shù)據(jù)源與該復(fù)合控件相關(guān)聯(lián)。例如,該特定數(shù)據(jù)源可能已被用戶從多個可用數(shù)據(jù)源中選出以便用來綁定到該復(fù)合控件??捎脭?shù)據(jù)源可能已通過評估關(guān)于該復(fù)合控件的信息(諸如層次、構(gòu)成特性等)以及關(guān)于所述數(shù)據(jù)源的信息(諸如模式)被自動標(biāo)識,來確定哪些數(shù)據(jù)源是用于綁定到該復(fù)合控件的最合適的匹配。
[0031]對于該復(fù)合控件的一個或多個特性中的每一個特性,關(guān)于該復(fù)合控件的信息以及所選擇的數(shù)據(jù)源被用來標(biāo)識該特定數(shù)據(jù)源的可被綁定到該復(fù)合控件的對應(yīng)特性的一組一個或多個字段。如果該復(fù)合控件的該對應(yīng)特性已被綁定了一聲明性變換的一輸出參數(shù),則在標(biāo)識可被用來綁定到該復(fù)合控件的該對應(yīng)特性的該組一個或多個字段時,該變換的本質(zhì)也可被考慮。
[0032]自動化綁定過程以及對聲明性變換的使用意味著即使是非程序員也可創(chuàng)建復(fù)雜數(shù)據(jù)與控件之間的綁定。這允許復(fù)雜控件被合理地用于諸如重算文檔之類的重算用戶接口的上下文中,其中數(shù)據(jù)源、數(shù)據(jù)宿以及控件之間的變換可被聲明性地定義,而無需使用命令式編程。
[0033]將參考圖1來描述對計算系統(tǒng)的一些介紹性討論。然后,將參考后續(xù)附圖描述復(fù)雜數(shù)據(jù)和控件的綁定的過程。
[0034]計算系統(tǒng)現(xiàn)在越來越多地采取多種多樣的形式。例如,計算系統(tǒng)可以是手持式設(shè)備、電器、膝上型計算機(jī)、臺式計算機(jī)、大型機(jī)、分布式計算系統(tǒng)或甚至常規(guī)上不被認(rèn)為是計算系統(tǒng)的設(shè)備。在本說明書以及權(quán)利要求書中,術(shù)語“計算系統(tǒng)”被廣義地定義為包括任何設(shè)備或系統(tǒng)(或其組合),該設(shè)備或系統(tǒng)包含至少一個物理有形的處理器以及其上能具有可由處理器執(zhí)行的計算機(jī)可執(zhí)行指令的物理有形的存儲器。存儲器可以采取任何形式,并可以取決于計算系統(tǒng)的性質(zhì)和形式。計算系統(tǒng)可以分布在網(wǎng)絡(luò)環(huán)境中,并可包括多個組分計算系統(tǒng)。
[0035]如圖1所示,在其最基本的配置中,計算系統(tǒng)100通常包括至少一個處理單元102和存儲器104。存儲器104可以是物理系統(tǒng)存儲器,該物理系統(tǒng)存儲器可以是易失性、非易失性、或兩者的某種組合。術(shù)語“存儲器”也可在此用來指示諸如物理存儲介質(zhì)這樣的非易失性大容量存儲器。如果計算系統(tǒng)是分布式的,則處理、存儲器和/或存儲能力也可以是分布式的。如本文中所使用的,術(shù)語“可執(zhí)行模塊”或“可執(zhí)行組件”可以指可以在計算系統(tǒng)上執(zhí)行的軟件對象、例程或方法。此處所描述的不同組件、模塊、引擎以及服務(wù)可以實現(xiàn)為在計算系統(tǒng)上執(zhí)行的對象或進(jìn)程(例如,作為分開的線程)。
[0036]在隨后的描述中,參考由一個或多個計算系統(tǒng)執(zhí)行的動作描述了各實施例。如果這樣的動作是以軟件實現(xiàn)的,則執(zhí)行動作的相關(guān)聯(lián)計算系統(tǒng)的一個或多個處理器響應(yīng)于已經(jīng)執(zhí)行了計算機(jī)可執(zhí)行指令來引導(dǎo)計算系統(tǒng)的操作。例如,這樣的計算機(jī)可執(zhí)行指令可以在形成計算機(jī)程序產(chǎn)品的一個或多個計算機(jī)可讀介質(zhì)上實現(xiàn)。這樣的操作的示例涉及對數(shù)據(jù)的操縱。計算機(jī)可執(zhí)行指令(以及被操縱的數(shù)據(jù))可被存儲在計算系統(tǒng)100的存儲器104中。計算系統(tǒng)100還可包含允許計算系統(tǒng)100例如通過網(wǎng)絡(luò)110與其他消息處理器通信的通信信道108。計算系統(tǒng)100還包括顯示器112,顯示器112可被用于向用戶顯示視覺表不。
[0037]本文中描述的各實施例可包括或利用專用或通用計算機(jī),該專用或通用計算機(jī)包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機(jī)硬件,如以下更詳細(xì)討論的。本文中描述的各實施例還包括用于承載或存儲計算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計算機(jī)可讀介質(zhì)。這樣的計算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜嬎銠C(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì)是物理存儲介質(zhì)。承載計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種顯著不同的計算機(jī)可讀介質(zhì):計算機(jī)存儲介質(zhì)和傳輸介質(zhì)。
[0038]計算機(jī)存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設(shè)備、或可用于存儲計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C(jī)訪問的任何其他有形介質(zhì)。
[0039]“網(wǎng)絡(luò)”被定義為使得電子數(shù)據(jù)能夠在計算機(jī)系統(tǒng)和/或模塊和/或其它電子設(shè)備之間傳輸?shù)囊粋€或多個數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機(jī)時,該計算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括可用于攜帶計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼裝置并可被通用或?qū)S糜嬎銠C(jī)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合應(yīng)當(dāng)也被包括在計算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0040]此外,在到達(dá)各種計算機(jī)系統(tǒng)組件之后,計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接嬎銠C(jī)存儲介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可以在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi)的RAM中被緩沖,然后最終被傳輸至計算機(jī)系統(tǒng)RAM和/或計算機(jī)系統(tǒng)處的較不易失性的計算機(jī)存儲介質(zhì)。因而,應(yīng)當(dāng)理解,計算機(jī)存儲介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計算機(jī)系統(tǒng)組件中。
[0041]計算機(jī)可執(zhí)行指令例如包括,當(dāng)在處理器處執(zhí)行時使通用計算機(jī)、專用計算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。更具體而言,上述特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。
[0042]本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計算環(huán)境中實踐,這些計算機(jī)系統(tǒng)配置包括個人計算機(jī)、臺式計算機(jī)、膝上型計算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、移動電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
[0043]圖2例示出包括多個數(shù)據(jù)源210和多個控件220的環(huán)境200。例如,數(shù)據(jù)源210被例示為包括五個數(shù)據(jù)源210A至210E。然而,省略號210F表示數(shù)據(jù)源210內(nèi)可能存在任意數(shù)量的數(shù)據(jù)源,從只有一個到無數(shù)個,因為本文所述的原理不限于環(huán)境200中可用的數(shù)據(jù)源的數(shù)量。
[0044]每個數(shù)據(jù)源包括被組織成特定模式的一個或多個字段,所述模式描述字段之間的位置關(guān)系以及還描述每個字段的類型。盡管一數(shù)據(jù)源可具有唯一模式,但模式可在兩個或更多個數(shù)據(jù)源之間共享。由于數(shù)據(jù)變得更容易豐富且存儲能力更先進(jìn),數(shù)據(jù)源可能是相當(dāng)復(fù)雜的,涉及無數(shù)的字段。
[0045]控件220被例示為包括三個控件220A、220B和220C。然而,再一次,省略號220D表示數(shù)據(jù)源210內(nèi)可能存在任意數(shù)量的數(shù)據(jù)源,從只有一個到無數(shù)個,因為本文所述的原理不限于環(huán)境200中可用的控件的數(shù)量。
[0046]控件220各自是具有它們基于其操作的布局的概念的計算機(jī)可執(zhí)行代碼。例如,在可視化控件中,對應(yīng)的可視化通常被顯示在顯示器(諸如圖1的顯示器112)上所顯示的用戶界面內(nèi)。在復(fù)合控件中,一控件可被包括