1 . Technical Field
The present invention is directed to software applications. More specifically, the present invention is directed to a system, apparatus and method of selecting graphical component types at runtime.
2 . Description of Related Art
A dashboard is a graphical user interface (GUI) on which selectable application instances are displayed. Every application represented on the dashboard is an instance of a specific application type. An example of an application type is “System”. An example of a System application type may be “shutdown”. When an instance of a System application type has been configured with appropriate configuration information to shut the system down, the dashboard will display a graphical component which when selected will do so.
The display of graphical components may vary. For example, a graphical component may be displayed as a menu item or menuItem widget, a tree item or treeItem widget, a toolbar widget, a drop-down menu widget, a button et cetera. A widget is a software application written in JAVA™ (ORACLE® and JAVA are registered trademarks of Oracle and/or its affiliates).
Generally, if a dashboard is configured to be menu-based, the graphical components display thereon will be menultem widgets. If the dashboard is instead configured to be tree-based, the graphical components that will be displayed on the dashboard will be treeltem widgets and so on. Further, if a dashboard is configured to be a full-fledged dashboard (i.e., the dashboard is configured to show all application instances with all their functionalities), a user will be able to access all the functionalities provided by the application instances. If, on the other hand, the dashboard is configured to be a minimalist dashboard (i.e., the dashboard is configured to show application instances with only tool tips, for example, and no functionalities), only the tool tips will be available to the user (i.e., the user should not be able to access any of the functionalities provided by the application instances).
Based on the above description, “type” in the context of the present invention will henceforth be used to refer to both the presentation of a selectable application instance or its “look and feel” (e.g., the display presentation of a shutdown graphical component or widget) on the dashboard and its behavior when selected (e.g., shutting down the system). Note that “type” used with dashboard and graphical component should not be confused with “type” used with application. “Type” used with application refers to the application program whereas “type used with dashboard and graphical component is used to refer to look, feel and behavior.
Presenting different types of graphical components while using the same data can be rather advantageous. For example, if an employee is very well accustomed with menu-driven dashboards, the dashboard used by the employee may be configured to be menu-based. If another employee is more familiar with tree-based dashboards, his/her dashboard may be configured to be tree-based. If both employees are from the same department, their dashboards, although are of different types, may nonetheless provide the same functionality. A visiting individual, on the other hand, may be provided with a minimalist dashboard for restricted functionality.
Since the same data is being used in all instances described above, there is a need to determine automatically the type of graphical components to display in each situation.
The present invention provides a system, apparatus and method of selecting graphical component types at runtime. When a graphical component is to be displayed in a GUI, which usually has a type, the type of the GUI is first determined. Type in this case is used to signify a look, feel and behavior that are to be exhibited by the graphical component. After determining the type of the GUI, the graphical component may be created based on the type of the GUI. After it has been created, the graphical component will be displayed in the GUI.
Generally, each graphical component in the GUI represents an instantiation of an application program. Hence, the program may be accessed through the graphical component. Obviously, programs that are not to be accessible to a user will not be represented on the GUI by a graphical component. Thus, the invention is ideal for situations where full accessibility to a system is to be limited and controlled.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108, 110 and 112. Clients 108, 110 and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the transmission control protocol/Internet protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to network computers 108, 110 and 112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in
Those of ordinary skill in the art will appreciate that the hardware in
As another example, data processing system 300 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 300 comprises some type of network communication interface. As a further example, data processing system 300 may be a Personal Digital Assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
The depicted example in
The present invention provides a system, apparatus and method of selecting graphical component types at runtime. The invention may be local to client systems 108, 110 and 112 of
In implementing the invention, an application catalog is used. The application catalog is an extensible Markup Language (XML) file that contains ostensibly configuration information for all applications that may be displayed on a particular dashboard. The application catalog may be referred to as a configuration file since it contains configuration information for the applications listed therein. Consequently, XML configuration file and XML application catalog will henceforth be used interchangeably. The XML configuration file may be stored on server 104. Upon being turned on or reset, a client (i.e., any one of clients 108, 110 and 112) may download the XML configuration file from server 104.
As mentioned earlier, an instance of each one of these applications may be displayed on a dashboard as a graphical component. When the “tasklist” graphical component is selected, a list of all currently open applications that are native to the operating system may be displayed. If the operating system is MICROSOFT® WINDOWS® operating system (MICROSOFT and WINDOWS are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries), for example, all open native WINDOWS applications will be displayed. In this regard, “tasklist” provides the same function as a WINDOWS task manager.
A “shutdown” graphical component, as described previously, may be used to shut the system down whereas a “logoff” or “lockup” graphical component may be used to log a user the system, or lock the system up so that no one else may use it, respectively. An “exit” graphical component may be used to exit the system in an emergency situation. A “native” graphical component gives a user access in a lockdown environment. If the access is to MICROSOFT WORD, for example, when the displayed graphical component is selected, MICROSOFT WORD will open. A “web” graphical component may open a Web browser and a “JAVA” graphical component may give a user access to the JAVA programming language.
In order not to obfuscate the disclosure of the invention, only the information in the XML configuration that is deemed pertinent for a thorough understanding of the invention will be explained. Specifically, only the information in the “tasklist” application (i.e., information on lines [002]-[013]) will be explained.
On line [002] a unique identification number (i.e., ID =100) is assigned to the application program. Unique IDs allow a system to distinguish one application program from another. Particularly, IDs are used for creating access control lists for client systems. In the example above where there are two employees working in the same department, the client systems used by both employees may be assigned the same set of IDs for accessibility. So, if applications 100, 101 and 201 were assigned to the two employees only the “tasklist”, “shutdown”, and “native” graphical components would be displayed on the dashboard displayed on their workstation.
On line [002], the application program is also assigned a name (e.g., tasklist). The configuration section starts on line [003] and ends on line [012]. On line [004] it is stated that the information that will be read from line [005] should be treated as a text block. A name or “Title” to the configuration information is assigned on line [005]. This may be used to display a text in the case of a dashboard where text is to be displayed or tool tips.
The “Title” can have two values, a default value (i.e., a German Title as called for on line [008]) or a value of a particular locale (a Japanese Title in this case as stated on line [009]). Thus, if the system fails to find a locale specific value that matches the system setting, then use the default which will have been set at the very beginning of the XML configuration file. The rest of the lines are used to close tags. In XML, each tag that is opened (e.g., <application>) must be closed (e.g., </application>).
Note that the invention is not restricted to only those two languages (i.e., Japanese and German). There can be as many languages defined in that section as needed. For example, if the system is anticipated to be used in ten countries having each a different language, there may be ten different languages defined in that section.
Note also that although in this present example the configuration file is an XML file, the invention is not limited to the use of XML files. Any other type of file may be used so long as the file contains configuration information for all application instances that may be displayed on a dashboard. Thus, the use of an XML file as the configuration file is for illustrative purposes only. In addition, note that the invention is not restricted to having the XML configuration file be stored on server 104. The XML configuration file may be stored on one or all of clients 108, 110 and 112 in conjunction to or instead of being stored on server 104. Obviously, if the XML configuration file is stored on a local system, it need not be downloaded from another system. By contrast, if the XML configuration file is stored on a peer system, instead of or in conjunction to being stored on server 104, it may be downloaded from the peer system or from either the peer system or the server 104, respectively.
In conjunction with the XML configuration file, the present invention makes use of a plurality of plug-ins. A plug-in is a software module that adds a specific feature or service to a system.
Platform plug-in 504 is used to parse the XML configuration file for configured applications. For each application listed in the XML configuration file, the platform plug-in 504 will create an applicationInstance object. As is well known in the art, the object will have the type, identification, name, icon et cetera. needed to create an instance of the application.
When a dashboard is to be displayed on the screen of the client, dashboard plug-in 506 will request the application Instance objects from platform 504. After receiving the set of application Instance objects, the dashboard plug-in 506 will parse the set of objects to determine the application type (i.e., the particular application program to call). Dashboard plug-in 506 will call each application type in order for the application program to instantiate itself. An application type is a set of classes that takes the information on the application object and uses that data for the creation of the selectable application instance. There is an application type 508 for each application program in the XML configuration file. After calling all the application types 508, Dashboard plug-in 506 will display itself on the screen.
The dashboard plug-in 506 is a class that has an overall widget “theme” or “type” (i.e., tree, menu, table, voice, etc.). The application type 508 is responsible for determining this “theme” (i.e., the type of the calling dashboard) in order to create the appropriate widget as well as set the appropriate behavior of the widget when selected. After determining the type of the calling dashboard, the application type will instantiate itself and display itself as a widget on the dashboard that will have the look and feel and behavior corresponding to the type of the dashboard.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5754173 | Hiura et al. | May 1998 | A |
| 5764226 | Consolatti et al. | Jun 1998 | A |
| 5806080 | Purple et al. | Sep 1998 | A |
| 5818445 | Sanderson et al. | Oct 1998 | A |
| 5889942 | Orenshteyn | Mar 1999 | A |
| 5905492 | Straub et al. | May 1999 | A |
| 5917487 | Ulrich | Jun 1999 | A |
| 5959624 | Johnston et al. | Sep 1999 | A |
| 6072486 | Sheldon et al. | Jun 2000 | A |
| 6105066 | Hayes, Jr. | Aug 2000 | A |
| 6128010 | Baxter et al. | Oct 2000 | A |
| 6188399 | Voas et al. | Feb 2001 | B1 |
| 6219032 | Rosenberg et al. | Apr 2001 | B1 |
| 6278448 | Brown et al. | Aug 2001 | B1 |
| 6278449 | Sugiarto et al. | Aug 2001 | B1 |
| 6327628 | Anuff et al. | Dec 2001 | B1 |
| 6342907 | Petty et al. | Jan 2002 | B1 |
| 6392671 | Glaser | May 2002 | B1 |
| 6628305 | Hong et al. | Sep 2003 | B1 |
| 6664981 | Ashe et al. | Dec 2003 | B2 |
| 6677962 | Bailey | Jan 2004 | B1 |
| 6686934 | Evans et al. | Feb 2004 | B1 |
| 6724403 | Santoro et al. | Apr 2004 | B1 |
| 6753885 | Stoakley et al. | Jun 2004 | B2 |
| 6859212 | Kumar et al. | Feb 2005 | B2 |
| 6901554 | Bahrs et al. | May 2005 | B1 |
| 6941521 | Lin et al. | Sep 2005 | B2 |
| 6968449 | Sierra et al. | Nov 2005 | B1 |
| 6990654 | Carroll, Jr. | Jan 2006 | B2 |
| 7030890 | Jouet et al. | Apr 2006 | B1 |
| 7243336 | Brockway et al. | Jul 2007 | B2 |
| 7380236 | Hawley | May 2008 | B2 |
| 7603624 | Bent et al. | Oct 2009 | B2 |
| 7657842 | Matthews et al. | Feb 2010 | B2 |
| 7681112 | Francis | Mar 2010 | B1 |
| 20010043235 | Best et al. | Nov 2001 | A1 |
| 20010045961 | Stoakley et al. | Nov 2001 | A1 |
| 20010048448 | Raiz et al. | Dec 2001 | A1 |
| 20010051907 | Kumar et al. | Dec 2001 | A1 |
| 20010051961 | Duxbury | Dec 2001 | A1 |
| 20020023122 | Polizzi et al. | Feb 2002 | A1 |
| 20020057290 | Wilkinson et al. | May 2002 | A1 |
| 20020080200 | Wong et al. | Jun 2002 | A1 |
| 20020101448 | Sanderson | Aug 2002 | A1 |
| 20020113777 | Lauderdale | Aug 2002 | A1 |
| 20020120673 | Tolson et al. | Aug 2002 | A1 |
| 20020129106 | Gutfreund | Sep 2002 | A1 |
| 20020130900 | Davis | Sep 2002 | A1 |
| 20020138331 | Hosea et al. | Sep 2002 | A1 |
| 20020149618 | Estrada et al. | Oct 2002 | A1 |
| 20020149629 | Craycroft | Oct 2002 | A1 |
| 20020188434 | Shulman et al. | Dec 2002 | A1 |
| 20030020671 | Santoro et al. | Jan 2003 | A1 |
| 20030046401 | Abbott et al. | Mar 2003 | A1 |
| 20030055878 | Fletcher et al. | Mar 2003 | A1 |
| 20030070061 | Wong et al. | Apr 2003 | A1 |
| 20030073063 | Dattaray et al. | Apr 2003 | A1 |
| 20030110448 | Haut et al. | Jun 2003 | A1 |
| 20030117437 | Cook et al. | Jun 2003 | A1 |
| 20030158975 | Frank et al. | Aug 2003 | A1 |
| 20030167315 | Chowdhry et al. | Sep 2003 | A1 |
| 20030189597 | Anderson et al. | Oct 2003 | A1 |
| 20040003096 | Willis | Jan 2004 | A1 |
| 20040003097 | Willis et al. | Jan 2004 | A1 |
| 20040006476 | Chiu | Jan 2004 | A1 |
| 20040046789 | Inanoria | Mar 2004 | A1 |
| 20040095378 | Vigue et al. | May 2004 | A1 |
| 20040107249 | Moser et al. | Jun 2004 | A1 |
| 20040113951 | Brockway | Jun 2004 | A1 |
| 20040155909 | Wagner | Aug 2004 | A1 |
| 20040183831 | Ritchy et al. | Sep 2004 | A1 |
| 20050021935 | Schillings et al. | Jan 2005 | A1 |
| 20050038868 | Spicer | Feb 2005 | A1 |
| 20050050301 | Whittle et al. | Mar 2005 | A1 |
| 20050108732 | Musson | May 2005 | A1 |
| 20050114361 | Roberts et al. | May 2005 | A1 |
| 20050193368 | Becker et al. | Sep 2005 | A1 |
| 20050193380 | Vitanov et al. | Sep 2005 | A1 |
| 20060005207 | Louch et al. | Jan 2006 | A1 |
| 20060015818 | Chaudhri et al. | Jan 2006 | A1 |
| 20060168536 | Portmann | Jul 2006 | A1 |
| 20070038934 | Fellman | Feb 2007 | A1 |
| 20070101297 | Forstall et al. | May 2007 | A1 |
| 20070106952 | Matas et al. | May 2007 | A1 |
| 20070203984 | AlHusseini et al. | Aug 2007 | A2 |
| Number | Date | Country | |
|---|---|---|---|
| 20060085754 A1 | Apr 2006 | US |