Desktop productivity software applications allow users to create word processing documents, spreadsheet documents, presentation documents, and other kinds of documents. These types of productivity software applications often also provide advanced functionality for creating sophisticated graphics. For example, through the use of certain desktop presentation application programs, a user can create presentation documents that include dynamic graphics (also referred to as SmartArt™ graphics).
Dynamic graphics include a potentially infinite number of shapes that are dynamically added, positioned, and sized to accommodate specified text data. For example, one type of dynamic graphic is a flow chart diagram in which new shapes are dynamically added, sized, and positioned each time a new data element is added to the flowchart. Dynamic graphics allow users to easily create sophisticated and highly polished graphic diagrams that include textual or numeric data.
Unfortunately, the capability for creating dynamic graphics has previously been limited to desktop productivity software applications. If a user does not have a locally installed software application program capable of creating dynamic graphics, it may be a very difficult and arduous process for a user to create a professional looking graphic with text. It may be similarly difficult for a user to modify the graphic to change the content, layout, style, color, or other visual characteristics of the graphic.
It is with respect to these considerations and others that the disclosure made herein is presented.
Technologies are described herein for creating and editing dynamic graphics via a World Wide Web (“Web”) interface. In particular, through the use of the embodiments presented herein, dynamic graphics can be created and edited within a Web browser application rather than through the use of a desktop productivity software application. This allows users to create and edit dynamic graphics even when a full-featured desktop productivity software application capable of creating dynamic graphics is unavailable.
According to one aspect presented herein, a Web service is provided and exposed for generating dynamic graphics in response to Web service requests received from Web-based clients. In particular, the Web service is configured to receive a request for a dynamic graphic from a client computer. In response to such a request, the Web service generates the requested dynamic graphic and returns the graphic to the client computer.
According to other aspects, the request received by the Web service includes parameters specifying how the dynamic graphic is to be generated. For instance, in one implementation the request includes a list of text items along with data identifying a layout type for the dynamic graphic. The Web service utilizes the list of text items and data identifying the layout type to generate the requested dynamic graphic. For instance, a dynamic graphic may be generated that has shapes corresponding to the text items that are arranged according to the specified layout type. According to other aspects, the request may further include parameters that identify a visual style and a set of colors for the dynamic graphic. The Web service may utilize these parameters to generate the dynamic graphic in the visual style and colors specified by the request. A visual style is a collection of properties that define visual aspects of the dynamic graphic. For instance, a style may define a set of colors, visual effects, typefaces, and other properties for a dynamic graphic.
According to other aspects presented herein, a Web interface is provided for creating a dynamic graphic. In one implementation, a user interface is provided by way of a Web browser application program for specifying a list of text items and a layout type for a dynamic graphic. A request to generate the dynamic graphic may also be received through the user interface. In response to receiving such a request, a request for the dynamic graphic is transmitted to the Web service. The request may include parameters identifying the list of text items and the layout type. The requested dynamic graphic is then received from the Web service and displayed by way of the Web browser. The user interface may also provide functionality for specifying a visual style and color for the dynamic graphic. The dynamic graphic may also be modified through the use of the user interface.
It should be appreciated that the above-described subject matter may also be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to technologies for creating and editing dynamic graphics via a Web interface. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements throughout the several figures, technologies for creating and editing dynamic graphics via a Web interface will be described.
While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
Turning now to
In one embodiment, the client computer 102 illustrated in
According to embodiments the client computer 102 is operative to execute a presentation application 108. The presentation application 108 comprises a desktop productivity software application for creating presentation documents. For instance, in one implementation the presentation application 108 comprises the POWERPOINT presentation application from MICROSOFT CORPORATION of Redmond, Wash. The presentation application 108 also provides functionality for creating dynamic graphics for inclusion in a presentation document. As discussed briefly above, dynamic graphics are graphics that include a potentially infinite number of shapes that are dynamically added, positioned, and sized to accommodate specified textual or numeric data. Any number of text items (0 . . . N) may appear in each shape.
If the client computer 102 is not configured with the presentation application 108, it may be difficult or impossible for a user of the client computer 102 to create presentation documents that include dynamic graphics. In order to address this difficulty, the embodiments presented herein provide a presentation application companion Web site 116 (the “Web site”). The Web site 116 is a server-based application that provides companion functionality to the presentation application 108. In particular, the application provided by the Web site 116 includes functionality for creating presentation documents through the use of a standard Web browser application program 110 (“Web browser”) executing on the client computer 102. It should be appreciated that although the Web site 116 is described herein as being accessible through the public Internet, the Web site 116 may also be made available on a private internal Web site. Moreover, the Web site 116 may be accessible through a Web browser 110 as described herein or through the use of another client application capable of requesting and rendering the Web site 116.
The Web site 116 also provides functionality for creating and editing dynamic graphics within a presentation document via a Web interface. It should be appreciated that although the embodiments presented herein are discussed in the context of a Web site 116 that provides functionality for creating and editing presentation documents, the concepts and technologies presented herein for generating dynamic graphics are not limited to such an environment. Rather, the concepts and technologies presented herein for generating dynamic graphics may be utilized with any type of Web site configured for virtually any purpose or with other types of applications.
A server computer 104 provides the Web site 116 described herein. The server computer 104 comprises a standard server computer system capable of executing an operating system and one or more other programs. In particular, in the embodiments presented herein the server computer 104 executes a Web server application 114 that is configured to receive and respond to requests for the Web site 116 and its component resources. A Web service 118 also executes on the server computer 104 in conjunction with the provision of the Web site 116. As will be described in greater detail below, the Web service 118 provides functionality for generating dynamic graphics in response to requests received from the Web browser 110. In this regard, the Web browser 110 may execute client-side code 112. The client-side code 112 operates in conjunction with the Web site 116 and the Web service 118 to provide the user interface functionality described herein. The client-side code 112 may comprise JAVASCRIPT or another suitable technology for executing client-side code in conjunction with the display of a Web page. Additional details regarding the functionality provided by the Web site 116 and the Web service 118 are provided below with respect to
The slide 202 may contain virtually any type of content including, but not limited to, text, static graphics, tables, video, sound, animation, and other types of multimedia content. The user interface buttons 206A, 206B, and 206D may be selected using an appropriate user input device to insert a table, a picture, or a text box, respectively. A placeholder 210 is provided in one embodiment to define the location on the slide 202 at which a newly inserted object will be placed. According to other embodiments, new objects may be freely inserted at any location on the slide 202 without the use of the placeholder 210. The Web site 116 may also provide other suitable user interfaces not illustrated or described further herein for designing, editing, reviewing, and sharing presentation slides.
According to embodiments, the presentation slide 202 may also include dynamic graphics. In this regard, a user interface button 206C is provided which, when selected, will initiate a process for placing a new dynamic graphic at the location of the placeholder 210. For example, as shown in
Referring now to
In response to receiving a request for the available layout types, the Web service 118 returns thumbnails 302A-302F corresponding to the available layouts in one embodiment. The thumbnails 302A-302F are displayed by the Web browser 110 in a dialog box 300 and made available for user selection. The thumbnail 302A corresponds to a pyramid diagram, the thumbnails 302B-302D correspond to cycle diagrams, the thumbnail 302C corresponds to a process diagram, the thumbnail 302E corresponds to a hierarchy diagram, and the thumbnail 302F corresponds to a list diagram. Other types of layouts may also be provided.
In order to insert a dynamic graphic corresponding to one of the available layout types onto the slide 202, a user may utilize an appropriate user input device to select one of the thumbnails 302A-302F. For instance, as shown in
Referring now to
The exemplary dynamic graphic 402 shown in
According to embodiments, user interfaces may also be provided for modifying the layout of the dynamic graphic 402, for changing the colors of the dynamic graphic 402, and for modifying the visual style of the dynamic graphic 402. For instance, in one embodiment, the user interface buttons 302A-302C may be utilized to display thumbnails of the available layout types. Selection of one of the user interface buttons 302A-302C will cause the dynamic graphic 402 to be reformatted according to the layout type corresponding to the selected user interface button. A call to the Web service 118 returns the modified dynamic graphic 402.
According to other embodiments, the client-side code 112 may monitor the location of the mouse cursor 212. If the mouse cursor 212 “hovers” over one of the user interface buttons 302A-302C, a call is made to the Web service 118 for an updated dynamic graphic 402. The dynamic graphic 402 may then be displayed to the user to provide a live preview of the layouts corresponding to the user interface buttons 302A-302C. Additional details regarding modification of the layout type of the dynamic graphic 402 will be provided below with respect to
The user interface buttons 410A-410C may be utilized in a similar manner to the buttons 302A-302C to modify the visual style of the dynamic graphic 402. For instance, styles may be applied through the selection of the buttons 410A-410C for modifying the material, three-dimensional properties, outline properties, fill properties, and shadow of the dynamic graphic 402. Other visual aspects may be modified in a similar manner. A live preview of the available styles may also be provided in the manner described above. It should be appreciated that other user interface controls may also be provided to show the user a large number of available layout types and styles. A user interface button 2061 may also be provided which, when selected, will reset the dynamic graphic 402 to its original visual state. Additional details regarding modification of the visual style of the dynamic graphic 402 will be provided below with respect to
Turning now to
The user interface illustrated in
Addition of a new text item to the list 504 will cause an additional shape to be added to the dynamic graphic 402 in a visually appropriate fashion. Removal of one of the text items 406A-406C from the list 504 will cause the layout of the shapes corresponding to the remaining text items to be adjusted appropriately. Once mechanism for laying out shapes in a dynamic graphic in this manner is described in U.S. Patent Publication No. US2006/0209093A1, entitled “METHOD AND COMPUTER-READABLE MEDIUM FOR GENERATING GRAPHICS HAVING A FINITE NUMBER OF DYNAMICALLY SIZED AND POSITIONED SHAPES”, published on Sep. 21, 2006, which is assigned to the assignee of the instant patent application and expressly incorporated by reference herein in its entirety.
According to embodiments, the text items 406A-406C may be selected and edited directly to change their content. For instance, in one example illustrated in
According to other aspects, the user interface illustrated in
According to embodiments, the user interface button 206L may also be selected to add a new text item to the list 504, and the user interface button 206M may be selected to remove a text item from the list 504. As discussed above, these modifications are reflected in the dynamic graphic 402 through a Web service call to the Web service 118. In response to such a call, the Web service 118 generates a new dynamic graphic 402. Additional details regarding this process are provided below with respect to
Referring now to
In one example shown in
Turning now to
In the example shown in
Referring now to
It should be appreciated that the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as states operations, structural devices, acts, or modules. These operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should also be appreciated that more or fewer operations may be performed than shown in the figures and described herein. These operations may also be performed in a different order than those described herein.
The routine 1000 begins at operation 1002, where the Web browser 110 executing on the client computer 102 requests a page of the Web site 116 from the server computer 104. The server computer 104 receives the request at operation 1052 of the routine 1050. The server computer 104 returns the requested page to the Web browser 110 at operation 1054 of the routine 1050. The client computer 102 receives the page of the Web site 116 at operation 1004 and renders the page. The screen display provided by the Web browser 110 following the rendering of the page may appear similar to the screen display 200A described above with respect to
From operation 1004, the routine 1000 continues to operation 1006, where the Web browser 110 receives a request to insert a new dynamic graphic 402 into the slide 202. As discussed above with respect to
At operation 1010, the Web browser 110 receives the thumbnails 302A-302F and displays the dialog box 300 discussed above with reference to
At operation 1014, the Web browser 110 transmits a request to the Web service 118 for the dynamic graphic 402. According to embodiments, several parameters are included with the request. For instance, the request may include the list 502 of text items 406A-406C that are utilized to generate the dynamic graphic 402. Data identifying the selected layout type for the dynamic graphic may also be transmitted in the request. As discussed above, the Web service 118 utilizes this data to layout and render the dynamic graphic 1014 in the specified layout type, including shapes corresponding to each of the text items 406A-406C in the list 502. According to other embodiments, additional parameters may also be included with the request, including data identifying a style and a color for the dynamic graphic 402. The Web service 118 likewise uses these parameters to generate the dynamic graphic 402 in the desired visual style and color.
The Web service 118 receives the request for a dynamic graphic 402 at operation 1060 of the routine 1050. In response to receiving the request, the Web service 118 lays out and renders the dynamic graphic 402 at operation 1062 in the manner described above. The rendered dynamic graphic 402 is returned to the Web browser 110 in response to the request at operation 1064 of the routine 1050. It should be appreciated that the dynamic graphic 402 may be rendered using a standard graphic file format suitable for transmission on the Web, such as the Portable Network Graphics (“PNG”) format.
The Web browser 110 receives the dynamic graphic 402 at operation 1016 and displays the dynamic graphic 402 as described above with respect to
If, at operation 1020, it is determined that the dynamic graphic 402 has been modified, the routine 1000 continues to operation 1022 where a second request is transmitted to the Web service 118 for a dynamic graphic 402. The second request includes parameters corresponding to the modifications to the dynamic graphic 402. For instance, if the layout of the dynamic graphic 402 was modified, the request transmitted at operation 1022 would include data identifying the modified layout type for the dynamic graphic 402. Similarly, if the list 504 of text items 406A-406C, the style, or the color of the dynamic graphic 402 were modified, the request transmitted at operation 1022 would include a modified list of text items, data identifying the modified style, and/or data identifying the modified color, respectively. Such a request may be transmitted to the Web service 118 each time a modification to the dynamic graphic 402 is made. Alternatively, a sequence of modifications may be recorded and transmitted to the Web service 118 all at once to conserve network bandwidth.
The Web service 118 receives the second request for a dynamic graphic 402 at operation 1066 of the routine 1050. In response to receiving the request, the Web service 118 lays out and renders the modified dynamic graphic 402 at operation 1068 in the manner described above. The Web service 118 then returns the rendered dynamic graphic 402 to the Web browser 110 in response to the request at operation 1070 of the routine 1050. From operation 1070, the routine 1050 continues to operation 1072, where it ends.
At operation 1024 of the routine 1000, the Web browser 110 receives and displays the modified dynamic graphic. The routine 1000 then continues to operation 1026, where a determination is made as to whether additional modifications have been made to the dynamic graphic 402. If so, the routine 1000 returns to operation 1022, described above, where the modifications are processed by sending additional requests to the Web service 118 for the dynamic graphic 402. If no additional modifications have been made, the routine 1000 continues to operation 1028, where it ends.
It should be appreciated that, according to embodiments, the Web service 118 operates in a stateless mode of operation. In this mode of operation, the Web service 118 does not maintain any information regarding the state of the dynamic graphic 402. Each time the Web browser 110 transmits a request for a dynamic graphic 402, all of the parameters are provided. In this manner, the Web service 118 can remain stateless with respect to the Web browser 110.
According to other implementations, the Web service 118 operates in a stateful mode of operation wherein it maintains the state of the dynamic graphic 402. For instance, the Web service 118 may maintain data identifying the layout type, list 504 of text items 406, style, and color, for the dynamic graphic 402. In this manner, the Web browser 110 only needs to transmit changed parameters to the Web service 118 rather than all of the parameters, thereby saving network bandwidth. This mode of operation may be useful when multiple users are concurrently permitted to edit the presentation slide 202 and the dynamic graphic 402.
The computer architecture shown in
The mass storage device 1110 is connected to the CPU 1102 through a mass storage controller (not shown) connected to the bus 1104. The mass storage device 1110 and its associated computer-readable media provide non-volatile storage for the computer 1100. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available computer storage media that can be accessed by the computer 1100.
By way of example, and not limitation, computer-readable media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 1100.
According to various embodiments, the computer 1100 may operate in a networked environment using logical connections to remote computers through a network such as the network 106. The computer 1100 may connect to the network 106 through a network interface unit 1106 connected to the bus 1104. It should be appreciated that the network interface unit 1106 may also be utilized to connect to other types of networks and remote computer systems. The computer 1100 may also include an input/output controller 1112 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 1110 and RAM 1114 of the computer 1100, including an operating system 1118 suitable for controlling the operation of a networked desktop, laptop, or server computer. The mass storage device 1110 and RAM 1114 may also store one or more program modules. In particular, the mass storage device 1110 and the RAM 1114 may store the Web browser 110, client-side code 112, and the Web service 118, each of which was described in detail above with respect to
Based on the foregoing, it should be appreciated that technologies for creating and editing a dynamic graphic via a Web user interface are provided herein. It should be appreciated that the user interface controls shown in the FIGURES and described herein are merely illustrative and that any suitable user interface control or screen layout may be utilized. It should also be appreciated that other client- or server-side applications, scripts, or other program components may utilize the Web service 118 provided herein programmatically without the provision of a user interface for creating or editing the dynamic graphic. In these embodiments, a program component may call the Web service 118 in the manner described herein to generate a dynamic graphic. The program component may then utilize the dynamic graphic for any suitable purpose. Additional calls may be made to modify the dynamic graphic as presented herein. It should also be appreciated that other properties of a dynamic graphic, including properties unrelated to the visual appearance of a dynamic graphic, may be modified using the technologies and concepts presented herein.
It should also be appreciated that although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.
Number | Date | Country | |
---|---|---|---|
Parent | 11965774 | Dec 2007 | US |
Child | 14692372 | US |