1. Technical Field
The invention relates generally to user interfaces, and more specifically to a solution for automatically customizing a user interface based on an object, object attributes (such as state, status, etc.), and/or a user.
2. Related Art
Most user interfaces are standardized and do not differ from user to user, while some user interfaces can be customized by the user. For example, some applications allow buttons that appear on a tool bar to be manually added or removed. Further, the user can select whether the tool bar should be displayed at all. However, these changes often impact all users of the application, and require that the user take the time to specifically adjust the tool bar to appear as desired. Moreover, many users are not aware of their ability to make these customizations, forget how to perform the customization, or simply do not want to take the time to adjust the buttons. In any case, users are required to spend additional time either customizing the tool bar, or locating frequently used operations that are not present on the tool bar through, for example, one or more menus and/or dialogs. Should a user's job change, the operations frequently performed may also change. With current applications, the user would be required to customize the user interface to reflect the changed operations. Further, these user customizations impact the user interface regardless of a context (e.g., read only or read/write) of an object being displayed. The user interface always presents the customizations to the user who must then decide what actions are appropriate.
Some applications have sought to ease the use of a menu by purging options from the menu that are not frequently used. As a result, the user is presented with a smaller list that is easier to navigate. However, this solution is problematic when an option being sought has been purged. In this case, the user must perform some action to make the option reappear, causing additional frustration.
Additionally, current solutions fail to account for different users of the interface and/or different objects that may be operated on using the interface. As a result, a need exists for a method, system, and program product that automatically adjust a user interface based on a user, an object, and/or object attributes (such as state, status, etc.).
The invention provides a method, system, and program product for automatically customizing a user interface based on a user, an object, and/or a history of object operations. In one embodiment, a history of object operations is updated each time the user selects an object operation. One or more shortcuts are displayed based on the history of object operations. For example, a portion of the user interface can be reserved to display buttons that provide efficient access to object operations. Certain buttons are selected for display based on the history of object operations. As such, the buttons can be displayed based on a history of object operations selected by the user or a group of users, and/or a history of object operations performed on the object or a group of objects. When multiple shortcuts are displayed, they can be ordered such that the shortcut for the most frequently selected object operation is placed in the most convenient location.
A first aspect of the invention provides a method of customizing a user interface, the method comprising: identifying a user of the user interface; displaying an object within the user interface; and displaying a shortcut for the object based on the user and a history of object operations performed by the user.
A second aspect of the invention provides a method of customizing a user interface, the method comprising: identifying a user of the user interface; displaying an object within the user interface, wherein the object has an object attribute; recording object operations that are performed by the user on the object in a history of object operations; and displaying a shortcut for the object based on the user, the object attribute, and the history of object operations.
A third aspect of the invention provides a system for customizing a user interface, the system comprising: an identification system for identifying a user of the user interface; a display system for displaying an object in the user interface; a recording system for recording object operations that are selected by the user; and a customization system for displaying a shortcut for an object operation based on the recorded object operations and the object.
A fourth aspect of the invention provides a program product stored on a recordable medium for customizing a user interface, which when executed comprises: program code for identifying a user of the user interface; program code for displaying an object in the user interface; program code for recording object operations that are selected by the user; and program code for displaying a shortcut for an object operation based on the recorded object operations and the user.
The illustrative aspects of the present invention are designed to solve the problems herein described and other problems not discussed, which are discoverable by a skilled artisan.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
The invention provides a method, system, and program product for automatically customizing a user interface based on a user, an object, and/or a history of object operations. In one embodiment, a history of object operations is updated each time the user selects an object operation. One or more shortcuts are displayed based on the history of object operations. For example, a portion of the user interface can be reserved to display buttons that provide efficient access to object operations. Certain buttons are selected for display based on the history of object operations. As such, the buttons can be displayed based on a history of object operations selected by the user or a group of users, and/or a history of object operations performed on the object or a group of objects. When multiple shortcuts are displayed, they can be ordered such that the shortcut for the most frequently selected object operation is placed in the most convenient location.
Turning to the drawings,
As shown, computer 12 generally includes central processing unit (CPU) 14, memory 16, input/output (I/O) interface 18, bus 20, external I/O devices/resources 22, and a storage unit 24. CPU 14 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Memory 16 may comprise any known type of data storage and/or transmission media, including magnetic media, optical media, random access memory (RAM), read-only memory (ROM), a data cache, a data object, etc. Storage unit 24 may comprise any type of data storage for providing more static storage of data used in the present invention. As such, storage unit 24 may include one or more storage devices, such as a magnetic disk drive or an optical disk drive. Moreover, similar to CPU 14, memory 16 and/or storage unit 24 may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory 16 and/or storage unit 24 can include data distributed across, for example, a LAN, WAN or a storage area network (SAN) (not shown).
I/O interface 18 may comprise any system for exchanging information to/from one or more I/O devices 22. I/O devices 22 may comprise any known type of external device, including speakers, a CRT, LED screen, hand-held device, keyboard, mouse, voice recognition system, speech output system, printer, monitor/display, facsimile, pager, etc. To this extent, it should be appreciated that if computer 12 is a hand-held device, the display would be contained within computer 12, and not as an external I/O device 22 as shown.
Bus 20 provides a communication link between each of the components in computer 12 and likewise may comprise any known type of transmission link, including electrical, optical, wireless, etc. In addition, although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into computer 12.
Shown in memory 16 is a user interface system 28, and an application 38. User interface system 28 is shown including an identification system 30, a display system 32, a recording system 34, and a customization system 36. Operation of the various systems will be described below. While various systems are shown implemented as part of user interface system 28, it is understood that some or all of the systems can be implemented independently, combined, and/or stored in memory for one or more separate computers 12 that communicate over a network. In this case, the network can comprise any type of network including the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc. To this extent, communication can occur via a direct hardwired connection (e.g., serial port), or via an addressable connection in a client-server (or server-server) environment that may utilize any combination of wireline and/or wireless transmission methods. In the case of the latter, the server and client may utilize conventional network connectivity, such as Token Ring, Ethernet, WiFi or other conventional communications standards. Where the client communicates with the server via the Internet, connectivity could be provided by conventional TCP/IP sockets-based protocol. In this instance, the client would utilize an Internet service provider to establish connectivity to the server.
User interface customization system 10 automatically customizes a user interface that is rendered by user interface system 28 for user 26. The user interface is customized based on user 26, an object being displayed, and/or a history of object operations. It is understood that user interface system 28 can comprise any existing system for rendering a user interface. In this case, some or all of the functionality discussed herein can supplement the functionality provided by the existing user interface system. Alternatively, user interface system 28 can comprise a newly developed system that incorporates some or all of the functionality described herein.
To customize user interface 40, user 26 (
When multiple objects can be displayed simultaneously, user interface 40 typically includes some indication of a selected object. For example, user interface 40 could include a selection indicator 58 that indicates that system 44A is the current selection. It is understood that any solution for indicating current selection(s) can be incorporated in user interface 40. Further, user interface 40 provides a method of selecting object operations for the selected object. For example, menus 60, 61 can include a list of all possible object operations that may be performed on systems 44A-E. Depending on the selected system and its associated object properties, some of the object operations may be disabled. As a result, a user can select one or more object operations to perform on the selected object by using menus 60, 61. Further, a menu 63 can be included that allows a user to obtain help on how to use user interface 40. It is understood that various other solutions are possible. For example, user interface 40 can present a “pop up menu” when a user clicks a right mouse button.
In the present invention, one or more shortcuts for an object are displayed using customization system 36 (
After identifying the user, customization system 36 (
Shortcuts can be displayed based on the user and a history of object operations performed by the user. To this extent, selected object operations can be recorded in the history using recording system 34 (
Further, each entry can include a data field for an object 78 for which object operation 74 was selected by user 72. In this case, to determine the shortcuts to be displayed, entries having both the user 72 and selected object 78 are located, and a shortcut is displayed for the object operation 74 that has been selected most frequently by the particular user. For example, when Smith is the user, and the Payroll object is selected, only entries in which user 72 is “Smith” and object 78 is “Payroll” would be used to determine the shortcuts to be displayed. Still further, an object may have a plurality of object states. Shortcuts can be displayed based on the object state of the object. For example, an object may have a read only or read/write state. Shortcuts for object operations that require a read/write state would not be displayed when the object has a read only state. Further, each object 44A-E (
User 26 (
Additional information can be used to determine the shortcut(s) to be displayed. For example, user interface system-28 (
It is understood that numerous variations are possible. For example, some or all of the fields shown in the illustrative entries in
Further, only a subset of available object operations and/or user attributes may be recorded by recording system 34 (
While the illustrative embodiment of the invention determines shortcut(s) for display based on a user's selections and/or additional attributes, it is understood that numerous combinations of attributes and/or selections is possible. In particular, any combination of the object, object attribute(s), object state(s), application, user, user attribute(s), and/or selection history can be used to select the object operations for which to display shortcuts.
It is understood that the present invention can be realized in hardware, software, or a combination of hardware and software. Any kind of computer/server system(s)—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general-purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded in a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
The foregoing description of various embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.