Ci De?ne Mandala Fll. (Ul) 1

US008095565B2 (12) United States Patent (10) Patent N0.: (45) Date of Patent: Dengler et al. (54) (56) METADATA DRIVEN USER INTERFACE US 8,095,5...
Author: Logan Norton
3 downloads 1 Views 1MB Size
US008095565B2

(12) United States Patent

(10) Patent N0.: (45) Date of Patent:

Dengler et al. (54)

(56)

METADATA DRIVEN USER INTERFACE

US 8,095,565 B2 Jan. 10, 2012

References Cited U.S. PATENT DOCUMENTS

(75) Inventors: Patrick M. Dengler, Redmond, WA

5,257,577 A

(US); Arvind K. Krishnan, Hyderabad

(IN); Jagdish Singh, Hyderabad (IN); Lawrence M. Sanchez, Kirkland, WA

Satish Kumar Chittamuru, Hyderabad (IN); Zoltan Pekic, Redmond, WA (US); Nabarun Mondal, Hyderabad (IN); Namendra Kumar, Hyderabad (IN);

Clark ............................ .. 100/99

1/1997 Sung et al.

5,606,609 A

2/1997 Houser et a1. ..

5,848,404 A 5,893,092 A

(US); Sai Shankar, Hyderabad (IN);

11/1993

5,594,660 A

12/1998 4/1999

715/500.1

Hafner et al. .... .. Driscoll ....... ..

5,933,851 A

8/1999 Kojimaetal. .

5,960,383 A

9/1999

6,012,053 A

1/2000 Pant et al.

6,032,196 A

2/2000

Fleischer ..... ..

713/179 707/3 707/5

711/133 704/9

707/3

Monier ....................... .. 709/245

(Continued)

Ricard Roma i Dalfo, Redmond, WA

(Us)

FOREIGN PATENT DOCUMENTS EP

0950961 A2

(73) Assignee: Microsoft Corporation, Redmond, WA (Us)

10/1999

(Continued) OTHER PUBLICATIONS

Notice:

Subject to any disclaimer, the term of this patent is extended or adjusted under 35

Najork, Marc et al., “Breadth-First Crawling Yields High-Quality

U.S.C. 154(b) by 0 days.

pp. 1 14-1 18.

Pages”, ACM, Compaq Systems Research Center, Hong Kong, 2001,

(Continued)

(21) App1.No.: 11/418,829

Primary Examiner * James Trujillo

(22) Filed:

Assistant Examiner * Jorge A Casanova

May 5, 2006

(74) Attorney, Agent, or Firm * Merchant & Gould

(65)

Prior Publication Data

US 2007/0130205 A1

(57)

Jun. 7, 2007

Metadata is used to create customized user interface (UI)

Related US. Application Data

(60)

Provisional application No. 60/742,240, ?led on Dec.

5, 2005.

(51) (52) (58)

portions for an application. The metadata may be XML-based and can be interpreted and then rendered to implement a customized UI that also supports data binding betWeen data and the UI controls. Once created, the metadata is processed by a rendering engine to display the UI controls. An inter preter may be used to interpret the metadata ?le before it is sent to the rendering engine. Neither the rendering engine nor

the interpreter needs knowledge of the host application and provides support for arbitrary metadata driven U1. The meta

Int. Cl.

G06F 17/30

ABSTRACT

(2006.01)

US. Cl. ...................................... .. 707/796; 715/745

Field of Classi?cation Search ................ .. 707/ 102,

707/1041, 999.102, 999.104, 625, 796; 715/744,

data schema may include mechanisms to create custom con

trols for the UI; programmatically modify the UI controls by providing access to a code-behind assembly as Well as sup

port event handling for the UI controls.

715/745

See application ?le for complete search history.

20 Claims, 6 Drawing Sheets

[400

Ci De?ne Mandala

410

Fll. (Ul)

1 Store Mlhdlh Illa

1 Aces" Maud-la FIIO

1 Bllld Dill snllrcli

V20

US 8,095,565 B2 Page 2 Us, PATENT DOCUMENTS

2,832,523‘ 2

$888 glariildmnlet a1~

6125361 A

9,2000 cl?gkrl ital: ~t~~~~l~ ~

2005/0144162 A1 2005/0154746 A1

6/2005 7/2005

~~~~ ~~ 7038272,;

2005/0165781 A1

7/2005 Kraft etal.

~ ~ ~ ~~ 707,3

2005/0187965 A1

8/2005 Abajian ...................... .. 707/102

“1” '

Liang .............................. .. 707/3 Liuetal. .. 707/101

707/7

6,128,701 A

10,2000 M31 ‘l1

"511/133

2005/0192936 A1

9/2005 Meeketal. ..................... .. 707/3

6145003 A

11,2000 S °°m1eta~

~709/225

2005/0192955 A1

9/2005 Farrell

6,158,044 A

12,2000 Tfglglefttsi

~

717,1

2005/0240580 A1

10/2005 Zamiretal. .

.707/4

707/104.1

58823833228 2}

155882 iilgm et a1‘ "

' 38333

631823085 B1

1/2001 Eichstaedtetal. .

6,240,408 6185 558 B1 6,247,013 B1 6,285,999 B1

2/2001 5,2001 Bowman K f etal 6,2001 Mama? 9,2001 pa‘gémoo

633043864 B1

10/2001 Liddy et al

6,317,741 B1

11/2001

707/5 707,3 707,10 707,5

2006/0294509 A1* 12/2006 Mltalet 5mg 717/143 2007/0038616 A1 2/2007 Guha ............ .. 707/4 2007/0074121 A1* 3/2007 Mullenderetal. .......... .. 715/744

706/15

FOREIGN PATENT DOCUMENTS

Burrows ......................... .. 707/5

6,351,467 B1 6,351,755 B1

2/2002 Dillon ......................... .. 370/432 2/2002 Najorketal. .. . 707/501.1

6,356,933 B2*

3/2002 Mitchell et al.

6,360,215 B1 6,385,602 B1

3/2002 Judd etal. 5/2002 Tso etal.

6,389,436 B1

5/2002

6,418,433 B1

7/2002 Chakrabartietal. .

6:442:606 B1

g/ZOOZ

6,484,204 B1

11/2002

6,539,376 B1

Chakrabartie al. .

EP

707/3 707/3

JP JP

'

Rabinovich ......... ..

. 709/226

709/224

3/2003 Sundaresan et a1~

707/5

Petersonetal.

7/2003 Wiener et a1‘ “

7/100

.718/102

9/2003 Kantrowitz

707/5

6,631,497 B1*

10/2003

Jamshidietal. ............ .. 715/205

6,638,314 B1

10/2003 MeyerZon et a1. .......... .. 715/234

glaodet 31' ey

a

Broder . . . . .

. . . .. 707/7

6’883’l35 B1

400% Obata et al

7157202

4/2005

Kostoff

OTHER PUBLICATIONS

Cho et al., “Ef?cient Crawling ThroughURL Ordering”, In Proceed ings ofthe7th InternationalWorldWideWebConference,Apr. 1998, pp. 161-180.

Chakrabarti, S., “Recent Results in Automatic Web Resource Dis 1'7‘

_

_

_

_

Lam et a1., “Automatlc Document Classl?catlon Based on Probabl

listic Reasoning:ModelandPerformanceAnalysis”,IEEE, l997,pp. 2719-2723.

Lee, J,K.W. et al., “Intelligent Agents for Matching Information _

.... .. 1/1

3/2005

B2

8/2001

4/1998 11/1999

Providers and Consumers on the Worl-Wide Web”, IEEE, 1997, pp.

~~~~~~~~~~ ~-

11/2004 Moslanderetal.

6 871202 B2

6,886,010

1120717 A2

covery”, ACM Computing Surveys, vol. 31, No. 4es, Dec. 1999, pp.

6,598,051 B1

,

10/1999 11/2000

10091638 11328191

707/5

Egg 2: 3i‘ """" "

7/2003

,

0950961 A3 1050830 A2

. 715/513

6,594,682 B2

6,826,581 B2*

EP EP

. 709/203

yigigzrétegfl"; 6,622,140 B1

.707/5

.... ...

. . . ..

707/3

I159 199'

l “D

uallg et a "

.

d1

eslgn an

1

.

f

Ch.

mp were“ 0

‘1

F 11 T

“1838

u ' ext

Retrleval System Based on Probablllstlc Model”, IEEE, 1993, pp. 1090-1093

_

_



_

_

6,961,900 B1

11/2005 Sprague et a1‘

, 715/513

YuWono, Budl and Lee, D1kL., Search andRanklngAlgorlthms for

6,973,490 B1 7,016,540 B1

12/2005 Robertson et a1, , 3/2006 Gong etal.

, 709/224 . 382/225

Locating Resources on the WorldWide Web”, IEEE, 1996, pp. 164 170.

7,028,029 B2

4/2006 Kamvar et al.

7,062,502 B1*

6/2006

3,8233% 5%

$5882 $469111 ettall ~~~~~~~~~~~~~~~~~~~~~ ~~

,

,

7139 983

lange

B2*

11/2006

7,181,438 B1 7203 678 B1* 7’243’l02 B1

2/2007 4/2007 7/2007





7,246,128 B2

7/2007

7,281,002 B2

10/2007

707/5

Kesler ....... .. a.

. 707/102

2006,

.715/802

s b ................... .. 707/2 Pzllroinoulosetal. . .. 707/4 Naam et a1‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ “ 707”

-

-

-

-

U.S. Of?clal Act1on 1n U.S. Appl. No. 10/804 326 malled Oct. 16 ’

’ 2006' . . . . US. Of?clal Act1on 1n U.S. Appl. No. 10/955,462 malled Nov. 3,

.707/100

2006

, , , “ 707/3

U.S. Of?clal Act1on 1n U.S. Appl. No. 10/955,983 malled Mar. 22,

7,293,253 B1* 11/2007 Soukup . 717/108 7,328,401 B2 2/2008 Obata et al. ..................... .. 707/3

2007. U.S. Of?cial Action in US. Appl. No. 10/981,962 mailed Apr. 30,

7,472,375 B2* 2002/0078045

A1

Jordahl

2006,

U.S. Of?cial Action in US. Appl. No. 10/981,962 mailed Sep. 21,

~~~~~~~~~~~~~~~~~~~~~~ ~-

Kelts ...... ..

U.S. Of?cial Action in US. Appl. No. 10/981,962 mailed Apr. 5,

Farrell

,,,,,

12/2008 Ye etal. ...................... .. 717/106 6/2002

Durta , , , , , , , , , ,

, , , ~ 707/7

2002/0099694 A1

7/2002 Diamond etal.

2002/0100017 A1*

7/2002 Gner et a1~

588518183232 2002/0129014 :1 A1

9,2002 23225

efraf ‘1

2003/0037074

2/2003

Dworketal.

A1

2003/007436g A1

707/3

..

_

_

_

2007, U.S. Of?cial Action in US. Appl. No. 10/955,462 mailed May 11,

2007,

~ 717/120

US. Of?cial Action in US. Appl. No. 11/019,091 mailed Jun. 20,

'will 707,5

U.S. Of?cial Action in US. Appl. No. 10/955,462 mailed Sep. 10,

.707/500

4/2003 Schuetze et a1, ,,,,,,,, ,, 707/103 R Rubenczyk etal.

_

2003/0217052 A1

11/2003

2003/0221165 A1

11/2003 Young et a1,

........ .. 707/3

, 715/505

2004/0056894 A1*

3/2004 Zaika etal.

. 345/762

2004/0181515 A1

9/2004 Ullmann et al.

707/3

2007'

.

.

.

.

Us Of?clal ACtlOIl 111 US APP1~ N0~ 10/955983 mailed N0V~ 13, 200T

US. Of?cial Action in US. Appl. No. 10/804,326 mailed Dec. 11, 2007.

U.S. Of?cial Action in US. Appl. No. 11/238,906 mailed Jan. 8,

2004/0199497 A1

10/2004 Timmons .

707/3

200g,

2004/0230572 A1 2004/0254932 A1

11/2004 091918111 12/2004 Gupta etal.

707/3 707/7

U.S. Of?cial Action in US. Appl. No. 10/981,962 mailed Mar. 17, 2008‘ U.S. Of?clal Act1on 1n U.S. Appl. No. 11/019,091 malled Apr. 3,

2005/0044071

A1

2/2005

Cho etal.

t l..

707/3

2005/0055347 A9

3/2005 Ch

707/5

2005/0071328 A1 Zoos/0071741 A1 Zoos/0086192 A1

3/2005 Laigrinie 707/3 300% Acharya et a1‘ ‘ 7157500 4/2005 Kodama ““““““““““““““ “ 707/1

2008' . . EP Search Report 1n EP 00309121 malled Jul. 18, 2002. EP Exam Report in EP 003091212-1522 mailed Jul.4, 2003.

2005/0086206 A1

4/2005 Balasubramanian etal.

EPEXamRePOIIinEP00309l2l2-1527mai1edJun,16,2004,

2005/0086583 A1

4/2005 Obata et a1, ,

, 715/229

EP Search Report in EP 05105048 mailed Jan. 17, 2006.

2005/0091576 A1

4/2005 Relyea etal.

. 715/502

EP Search Report in EP 05105110 datedAug. 11, 2006.

2005/0108699 A1*

5/2005 Olanderetal. ............. .. 717/166

707/3

EP Exam Report in EP 00309121.2-1527 mailed Feb. 8, 2007.

US 8,095,565 B2 Page 3 Of?ce Action mailed Sep. 25, 2009, in Chinese Patent Application No. 2006800455212, W/Translalion. Of?ce Action mailed Apr. 13, 2010, in Chinese Patent Application No. 2006800455212, W/Translation.

Of?ce Action mailed Sep. 21, 2010, in Chinese Patent Application No. 2006800455212, w/Translarion. * Cited by examiner

US. Patent

Jan. 10, 2012

Sheet 1 of6

US 8,095,565 B2

REMOTE COMPUTING

1_2 UI (Forms)

1“

gar-3'

MONITOR

REMOTE APPLICATION PROGRAMS

v? gllllll

r

— — — — — — — — -

OPERATING SYSTEM 125

NETWORK 125

vlDEo ADAPTER

ADAPTER



APPLICATION

SYSTEM Bus

DATA MEDIA lNTERFAcEs

,

/‘''_x

104 —\

V OPERATING m

w

116



INTERPRETERm

(Ii I

W

-

-

_

__:\m _

;_

_

RENDERING ENG?

APPLICATION m

m

w PROGRAM

mails?“

m

m

"'-

W



140 112

METADATA ml

MOUSE

146











-

M

W

PRINTER

RAM *

BIOS

PROGRAM 1;; .

128

PROGRAMs — —

ROM

________4 I

KEYBOARD

136

D

139THER EvIcE(s)

Fig. 1

US. Patent

Jan. 10, 2012

Sheet 2 of6

US 8,095,565 B2

[-200 210

220 \

2


Similarly, the ‘SelectedValuePath’ attribute of the list control points to the node/attribute of the list item whose value is returned by the ‘SelectedValue’ attribute of the list. For example, suppose that the UI forms developer wants to

public delegate void ControlEventFiredHandler(object sender,

65

erty’ method on the custom control and it is up to the custom control to understand and interpret the ‘ string’ property value

that is speci?ed in the metadata which would be passed to the ‘ SetControlProperty’ method.

US 8,095,565 B2 11

12 The folloWing is an exemplary ‘lPageControlCollection’

The ‘ControlEventFired’ event is raised by the custom control When a custom event exposed by the control ?res. This is to signal the rendering engine 230 that an event has ?red on the custom control and the rendering engine needs to call the event handler (if any) for that event in the code behind

interface:

public interface IPageControlCollection : ICollection, IEnumerable

assembly 225. The rendering engine

IXaInlControl this[string name] { get; }

does not knoW at compile time What are the events (and

}

event signatures) supported by the custom control. As such, the rendering engine 23 0 requires the custom control to notify it When a custom event ?res on the custom control. The custom control creates an instance of the ‘ControlEventFire

10

The ‘lXamlControl’ interface exposes the properties for a control on the form.

dArgs’ class and passes it to the ‘ControlEventFired’ event

Which is received by the rendering engine 230. The ‘Con trolEventFiredArgs’ contains information about the name of the event Which ?red, sender and event arguments Which need to be passed to the event handler for that event. Once the rendering engine 230 has this information it can call the event handler for that event speci?ed in the code behind assembly 225. According to one embodiment, the custom controls reside in a .NET assembly at run time. The custom control assembly in the metadata may be speci?ed in the folloWing Way: In this embodi

ment, the rendering engine 230 instantiates the custom con trol through re?ection and ?rst set the basic properties of a

every control. To access speci?c properties for a control (eg lsChecked for a CheckBox control) the developer can cast the

35

control like Height, Width, Top, Left, and the like and then for

Checked The folloWing is an exemplary ‘lXamlCheckBox’ interface that derives from the ‘lXamlControl’ interface:

other properties (custom properties) the rendering engine 230 calls the ‘SetControlProperty()’ method on the custom con

trol. A mechanism Within the metadata schema alloWs the UI forms developer to access the UI controls and their properties

40

public interface IXaInlCheckBox : IXaInlControl

// CheckBox speci?c properties...

ContentAlignment TextAlignment

in the code behind assembly. The code behind class imple ments the ‘lPageCodeBehind’ interface Which is described

bool IsChecked

{get; set;}

45

beloW:

Similarly speci?c interfaces for the controls are exposed Which alloW the UI forms developer to access control speci?c

properties.

public interface IPageCodeBehind

{

string Name { get; set; } IPageControlCollection PageControls { get; set; } object Application { get; set; } object Mediator {get; set; } object ReturnValue { get; set; }

50

According to one embodiment, the rendering engine 230 generates the same .NET control from the metadata describ

ing the UI form irrespective of Whether the UI form is hosted in an IBF task pane, an OUTLOOK custom form or a dialog.

The folloWing scenarios provide example of hoW the .NET 55

control may be hosted. According to one embodiment, the IBF task pane supports

The ‘PageControls’ property is populated by the rendering

hosting any .NET control Which implements the ‘lRegion’

engine 230 When it renders the UI form and instantiates the

interface. The rendering frameWork contains a blank

(empty) .NET control Which implements the ‘lRegion’ inter

controls. The ‘Application’ property represents the host appli cation (i.e. OUTLOOK) in Which the UI forms are being rendered. According to one embodiment, the ‘Mediator’ property alloWs the code behind developer to execute IBF

60

de?ned Ul form in the IBF task pane the ‘MSlBF.Ul.ShoW Region’ custom operation is used Which displays the blank . NET host control part of the UI rendering frameWork. The

actions de?ned in metadata. ‘ ReturnValue’ is a variable Which

can be set by the code behind developer Which is passed back to the caller Who renders the form. This is used in case of modal dialogs to pass back a value from the dialog to the caller.

face and Which hosts the .NET control generated by the UI rendering engine from the UI metadata. To display a metadata

65

input passed to this ‘MSlBF.Ul.ShoWRegion’ operation is the metadata de?ning the UI form Which is to be hosted in the IBF task

US 8,095,565 B2 13

14

pane. The MSlBF.Ul.ShoWRegion’ operation instantiates the

300 includes label 305, page 310, panel 315, text box 320, check box 325, link 330, button 335, list box 340 and radio

blank host .NET control and passes the metadata de?ning the UI form as ‘Data’ to the blank host .NET control. The host

control calls the rendering engine 230 passing in the metadata de?ning the UI form and Which returns a .NET control describing the UI form and Which is then added to the host

5

control resulting in the display of the UI form in the IBF task pane. According to another embodiment, to host a .NET control

button list 345. FIG. 3B shoWs an exemplary Ul metadata ?le 360 that may be used to de?ne the UI form 300 as illustrated in FIG. 3A. The example Ul metadata ?le 360 illustrates that the proper ties of a control are speci?ed by the attributes of the corre sponding XML node. According to one embodiment, most properties have a default value and do not need to be speci?

cally speci?ed. As illustrated in FIG. 3B, indicator 362 shoWs

describing a U1 form in an OUTLOOK an ActiveX container 10 the description of the panel 310; indicator 364 shoWs the

description of the label 305; indicator 366 shoWs the descrip tion of textbox 320; indicator 368 shoWs the description of checkbox 325; indicator 370 shoWs the description of button 335; indicator 372 shoWs the description of link 330; indica tor 374 shoWs the description of the list box 340 and indicator 376 shoWs the description of the radio button list 345.

control capable of hosting .NET controls is added to the OUTLOOK form and then the .NET control is added describ ing the UI form as a child control of the container control. The ActiveX container control is a part of the UI Rendering framework. According to one embodiment, Forms 2.0 hosts the ActiveX containter Which hosts the .NET WinForms con

FIG. 4 illustrates a process for using metadata to describe a U1 form. After a start operation, the process moves to opera

trol described by metdata. Metadata de?ned forms may also be created in modal .NET Winform dialogs. In this embodiment, program code, such as that contained Within an addin calls the rendering engine 230 passing in the XAML metadata de?ning a form and the ren dering engine 230 passes back the .NET control generated from the XAML metadata Which can then be hosted either in the IBF task pane, OUTLOOK Custom Form or a dialog. The addin instantiates an instance of the ‘RenderEngine’ class

20

tion 410 Where the metadata ?le is de?ned. As discussed above, the metadata Within the ?le describes the UI and includes information on the controls, the data binding, and other relevant information relating to the user interface.

Moving to operation 420, the metadata ?le is stored. 25

According to one embodiment, the metadata ?le is stored on a computer-readable medium, such as a hard drive. The meta

data ?le may be stored locally and/or remotely from the computing device displaying the related Ul. Transitioning to operation 430, the metadata ?le is

Which implements the ‘lRenderEngine’ interface:

accessed. According to one embodiment, the metadata ?le is 30

public interface lRenderEngine

accessed by a rendering engine. Alternatively, as discussed above, an interpreter may be used to access the metadata ?le. Flowing to operation 440, Zero or more data sources may

lXaInlPage CreateXaInlForm(XmlNode pageXml);

be bound to one or more of the controls de?ned for the UI

through the metadata. Moving to operation 450, the metadata is interpreted and

The caller can call the ‘CreateXamlForm’ method passing

then rendered to display the UI. Each control of the UI form is rendered on the UI (see FIG. 5 and related discussion).

in the XAML metadata describing the form. The rendering engine 230 instantiates the necessary controls and pass back an object (‘lXamlPage’) Which represents the ‘xaml’ form.

The process then moves to an end operation and returns to

processing other actions. 40

public interface IXaInlPage

FIG. 5 shoW a process for rendering a U1 form With asso ciated metadata. After a start operation, the process moves to

operation 510 Where a control is instantiated. The control is instantiated based on the type of control (i.e. label, text box,

string Name { get; } Control NativeControl { get; } IPageControlCollection Controls { get; } object ReturnValue { get; }

45

} In this embodiment, the ‘NativeControl’ property above represents the .NET control describing the metadata Ul form Which can be hosted either in the IBF task pane, OUTLOOK custom form or a dialog. The ‘RetumValue’ property is a variable Which can be set from the code behind ?le and Would be used to return a value from a modal dialog. FIGS. 3A and 3B shoW an example Ul form that is

described by a metadata ?le. Referring to FIG. 3A, Ul form

50

and the like). Flowing to operation 520, the base properties of the control are set. For example, the properties such as the top, left, height, Width, and the like are set. Moving to operation 530 the control properties are set. The control properties that are set depend on the type of control. Next, at operation 540, the control events that are speci?ed Within the metadata are subscribed to. Flowing to operation 550 any child controls for the control are instantiated. The process then moves to an end operation and returns to pro

cessing other actions. 55

The folloWing is an exemplary schema Which may be used for de?ning a U1 form using metadata.