The subject matter disclosed herein relates generally to human-machine interfaces and, more specifically, to methods, computers, and computer programs for configuring and displaying a hierarchical relationship between user screens.
At least some known organizational systems arrange similar items according to each item's function and/or theme. For example, a set of items may be arranged hierarchically such that items with common functions or themes are grouped together under a common heading to form a navigation theme, such as a tree.
At least some known human-machine interfaces (HMIs) provide a navigation scheme that is configured by associating objects on displays with navigation actions. For example, at least some known HMIs enable a user to navigate through a multi-level menu such that for each item that is selected in a particular level, a new set of items is displayed within a sublevel. Each item may provide direct access to a function or logical location.
However, such navigation schemes often collapse to display only a designated root location such that navigation through the scheme requires a user to begin again at the root location and to traverse through multiple layers to reach a desired location. Moreover, traversing through such a scheme often uses considerable display space and effectively masks a current working document or image. Accordingly, it is desirable to provide a method for configuring and navigating a hierarchical navigation scheme for a HMI having a large set of user screens.
This Brief Description is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Brief Description is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In one aspect, a method is provided for displaying hierarchical information related to a plurality of user screens. The method includes generating a navigation tree including a plurality of nodes, wherein each node is at least one of a link to a user screen, a pointer to at least one parent node, and a link to a script. The method also includes generating a navigation bar including a plurality of node navigation tool buttons and a current path including at least a first node button representative of a currently selected first node, generating a child bar including at least the first node button, and displaying the navigation bar and the child bar within a user interface.
In another aspect, a computer for displaying a plurality of user screens through a human-machine interface (HMI) is provided. The computer is programmed to generate a navigation tree including a plurality of nodes, wherein each node is at least one of a link to a user screen, a pointer to at least one parent node, and a link to a script. The computer is also programmed to generate a navigation bar including a plurality of node navigation tool buttons and a current path including at least a first node button representative of a currently selected first node, generate a child bar including at least the first node button, and display the navigation bar and the child bar within a user interface.
In another aspect, a computer program is embodied on a computer readable medium for displaying a plurality of user screens through a human-machine interface (HMI). The program includes at least one code segment that generates a navigation tree including a plurality of nodes, wherein each node is at least one of a link to a user screen of the plurality of user screens, a pointer to at least one parent node, and a link to a script. The code segment also generates a navigation bar including a plurality of node navigation tool buttons and a current path including at least a first node button representative of a currently selected first node, generates a child bar including at least the first node button, and displays the navigation bar and the child bar within a user interface such that a display width of the navigation bar and a display width of the child bar are based on a number of displayed node buttons.
A computing device or computer such as described herein has one or more processors or processing units and a system memory. The computer typically has at least some form of computer readable media. By way of example and not limitation, computer readable media include computer storage media and communication media. Computer storage media include volatile and nonvolatile, 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. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Combinations of any of the above are also included within the scope of computer readable media.
Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of any aspect of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Aspects of the invention may be implemented with any number and organization of components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
As used herein, a node refers to a unit that forms a hierarchical navigation structure and includes information that identifies a user screen or a global system script.
As used herein, a processor may include any programmable system including systems and microcontrollers, reduced instruction set circuits (RISC), application specific integrated circuits (ASIC), programmable logic circuits (PLC), and any other circuit or processor capable of executing the functions described herein. The above examples are exemplary only, and thus are not intended to limit in any way the definition and/or meaning of the term processor.
As used herein, a database may include any collection of data including hierarchical databases, relational databases, flat file databases, object-relational databases, object oriented databases, and any other structured collection of records or data that is stored in a computer system The above examples are exemplary only, and thus are not intended to limit in any way the definition and/or meaning of the term database. Examples of databases include, but are not limited to only including, Oracle® Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, and PostgreSQL. However, any database may be used that enables the systems and methods described herein. (Oracle is a registered trademark of Oracle Corporation, Redwood Shores, Calif., IBM is a registered trademark of International Business Machines Corporation, Armonk, N.Y.; Microsoft is a registered trademark of Microsoft Corporation, Redmond, Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.)
Described in detail herein are exemplary embodiments of methods, computers, and computer programs that facilitate simplifying designing, configuring, and using a complex hierarchical navigation scheme for a human-machine interface (HMI) application. A simplified configuration interface facilitates time savings at system setup time. A simplified user interface facilitates additional time savings by providing a consistent and organized representation of the navigation scheme to an operator. A more consistent and organized representation of the navigation scheme facilitates faster access to any given location within the navigation scheme and may decrease the time necessary to learn the navigation functionality of the HMI.
Technical effects of the methods, computers, and computer programs described herein include at least one of (a) generating a navigation tree that includes a plurality of nodes such that each node is associated with a link to another node, a user screen, and/or a script for execution on a computer system or a machine; (b) generating a navigation bar that includes a plurality of navigation buttons, such as a back button, a forward button, a favorites list button, a recently displayed list button, and/or a path of a currently selected node; (c) generating a child bar that includes a set of sibling nodes to the currently selected node for quick access to nodes related to the selected node; (d) displaying the navigation bar and the child bar; and (e) displaying a user screen associated with the selected node or executing a script associated with the selected node.
The methods, computers, and computer programs herein are not limited to the specific embodiments described herein. For example, components of each system and/or steps of each method may be used and/or practiced independently and separately from other components and/or steps described herein. In addition, each component and/or step may also be used and/or practiced with other assembly packages and methods.
Each client system 104, including workstations 216, 218, and 220, is a personal computer having a web browser and/or a client application. Server system 102 is configured to be communicatively coupled to client systems 104 to enable server system 102 to be accessed using an Internet connection 222 provided by an Internet Service Provider (ISP). The communication in the exemplary embodiment is illustrated as being performed using the Internet, however, any other wide area network (WAN) type communication can be utilized in alternative embodiments, that is, the systems and processes are not limited to being practiced using the Internet. In addition, and rather than WAN 224, local area network 214 may be used in place of WAN 224. Furthermore, fax server 206 may communicate with remotely located client systems 104 using a telephone link.
In the exemplary embodiment, configuration interface 300 also includes a property frame 314. Property frame 314 includes, for example, a parameter column 316 that lists parameter names for a selected node 304, such as root node 308, parent node 310, or leaf node 312. Property frame 314 also includes a value column 318 that lists a parameter value for an associated parameter name in parameter column 316. Each node 304 includes one or more parameters that may be inherited from a parent node 310 or set by a user via configuration interface 300. Alternative embodiments may also include a description column (not shown) that lists a description for an associated parameter name.
Moreover, in the exemplary embodiment, configuration interface 300 includes a location frame 320 and a preview frame 322. Location frame 320 displays a user screen configuration file storage location 324 and a global system script configuration file storage location 326. When user screen configuration file storage location 324 is selected, preview frame 322 displays a thumbnail image 328 of each user screen as determined by a configuration file. Alternatively, preview frame 322 may display a list of configuration files organized by, for example, filename or date created. When a configuration file is selected from preview frame 322, properties of the associated node 304 are displayed in property frame 314 including parameter names and parameter values.
In the exemplary embodiment, navigation bar 406 includes a back button 416, a forward button 418, and a recently viewed drop down button 420. Back button 416, when selected by a user, navigates to a previously viewed user screen. Similarly, after navigating to a previously viewed user screen using back button 416, forward button 418 navigates to a subsequently viewed user screen. Both back button 416 and forward button 418 are enabled only when a node is available for the action. For example, if a user has not yet navigated to a previously viewed user screen using back button 416, then forward button 418 is not enabled. Drop down button 420 enables a user to select from a list of recently viewed user screens in display area 410 and/or recently selected nodes. Moreover, navigation bar 406 includes a favorite list drop down button 422 and an indicator 424. Favorite list drop down button 422 enables a user to select and automatically navigate to a commonly accessed node. More specifically, favorite list drop down button 422 includes a list of user-defined favorite nodes, an “Add To Favorites” function, an “Organize Favorites” function, and a “Set Default Path” function. The “Add to Favorites” function adds a currently selected node to the favorites list. The “Organize Favorites” function enables the user to modify a displayed order of nodes within the favorites list, to delete a node from the favorites list, and/or to set a particular node within the favorites list as a default node to be displayed upon initiation of user interface 400. The “Set Default Path” function sets a navigation path of a currently selected node to be a default navigation path for the currently selected node in the future. Indicator 424 is displayed on navigation bar 406 when a currently displayed user screen has not been registered with navigation tree 302 (shown in
Further, in the exemplary embodiment, navigation bar 406 includes a current path 426, which includes one or more node buttons representative of an ancestry line of parent nodes 428 of a currently selected node. Clicking any node within current path 426 invokes the user screen or global system script associated with the clicked node. Display area 410 is blank if a node is selected from current path 426 that is not associated with a user screen. Moreover, navigation bar 406 may include one or more shift buttons 430 when current path 426 is wider than a current window size of user interface 400. Using shift buttons 430 enables a user to scroll to a first, or left-most, node of current path 426 or to a last, or right-most, node of current path 426. Further, each parent node 428 in current path 426 includes a drop down button 432. Clicking drop down button 432 associated with a particular parent node 428 displays a list of all child nodes associated with parent node 428 according to navigation tree 302.
In the exemplary embodiment, child bar 408 includes one or more leaf nodes 434 of a currently selected node. If a leaf node 434 shown on child bar 408 is associated with a user screen, and one or more other nodes are associated with the same user screen, a drop down button 436 is displayed. Clicking drop down button 436 associated With leaf node 434 displays a list of other nodes that are associated with the user screen. Choosing any node within the list operates to navigate to the chosen node. Moreover, child bar 408 may include one or more shift buttons 430 when a number of leaf nodes 434 of a currently selected node is wider than the current window size of user interface 400. Using shift buttons 430 enables a user to scroll to a first, or left-most, node of child bar 408 or to a last, or right-most, node of child bar 408.
In the exemplary embodiment, display area 410 is used to display a user screen associated with a chosen node. In an alternative embodiment, display area 410 is used to display output and/or errors produced by a global system script. Moreover, user interface 400 includes a status bar 438.
In the exemplary embodiment, tool tips are used to display a description of a node. For example, when a user moves a cursor over a node, a description of the node is displayed. Such a description is also displayed in status bar 438. For nodes that do not have an assigned description, there is no description displayed in a tool tip and/or in status bar 438.
In one embodiment, a user is assigned a set of access permissions by, for example, a system administrator. The access permissions limit the user to accessing a subset of navigation tree 302. For example, the user may be limited to accessing a particular ancestry path, including a particular leaf node 434 and any parent nodes 428 of the particular leaf node 434. In an alternative embodiment, a computer is assigned a set of access permissions. Based on the assigned permissions, a user using the computer is limited to accessing a subset of navigation tree 302. In a further alternative embodiment, when a user with limited access permissions uses a computer With limited access permissions, the user is limited to accessing only those subsets of navigation tree 302 allowed by the permissions assigned to both the user and the computer.
When navigation tree 302 is generated and configured, a user may interact with navigation tree 302 using user interface 400 (shown in
Moreover, in the exemplary embodiment client system 104 determines 510 one or more sibling leaf nodes (shown in
In the exemplary embodiment, client system 104 then displays 514 navigation bar 406 and child bar 408 via user interface 400. Moreover, in the exemplary embodiment, if the selected node is associated with a user screen, client system 104 displays 516 the user screen in display area 410. Alternatively, if the selected node is associated with a global system script, client system 104 communicates with, for example, server 102 and/or a machine that executes 518 the script.
A user may select a different node from among quick access buttons, current path 426, child bar 408, recently viewed drop down 420, favorite list drop down 422, and drop down buttons 432 or 436. When a different node is selected, client system 104 determines 506 current path 426 of the newly selected node, generates 508 navigation bar 406, determines 510 sibling nodes of the newly selected node, generates 512 child bar 408, displays 514 navigation bar 406 and child bar 408, and displays 516 an associated user screen or executes 518 an associated script. In an alternative embodiment, client system 104 and/or server 102 may determine sibling nodes of a selected node prior to or concurrently with determining a current path. Similarly, client system 104 and/or server 102 may generate child bar 408 prior to or concurrently with generating navigation bar 406.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.