1. Technical Field
This invention relates to the field of user interfaces and more particularly to the presentation of lists from which users will make a selection, such as drop down list and list boxes.
2. Description of the Related Art
A common method for the selection of an item in a graphical user interface (GUI) is a presentation list such as a drop-down list. The default arrangement of items in such as list is typically alphabetical. An alphabetical organization is optimal for some purposes, but not all. One situation in which an alphabetical arrangement is suboptimal is the presentation of variables in a callflow development graphical user interface (GUI), given that users can rename automatically generated variables. In such scenario, an alphabetical arrangement can be cumbersome and less than ideal.
Although there are numerous systems or methods using alphabetical or chronological arrangements, none are ideally suited where a user can rename variables or create user-named variables. Thus, a need exists for a system and method that can overcome the detriments described above.
Embodiments in accordance with the invention can enable callflow designers to work more efficiently with lists of variables in a graphical callflow builder, particularly where users can create their own variable names. In such a situation, it is better to place the user created variables at the top of the list because they are the variables that are most likely to be selected by a callflow designer. Each variable in the list can have an attribute that indicates whether the variable has an automatically generated or user generated name. The variable list is sorted first on this attribute, then on a secondary attribute such as position in an alphabetical list or generation time of the name (in a preferred embodiment, the user can select in a Preferences dialog the preferred secondary attribute). Note that this is only one way to implement the invention and it should be understood under the claims herein that any known method of achieving this front-of-screen characteristic in a presentation list is contemplated.
In a first aspect of the invention, a method for arranging user-modified variable names in a presentation list can include the steps of receiving a system request to display the variables in the presentation list, and sorting the variables by giving user-named variables greater priority over system-named variables and then sorting by a second criteria. The method can further include the step of displaying the variables when a user selects the variables using a drop-down control for example.
In a second aspect of the invention, a system for arranging variables in a presentation list can include a memory and a processor programmed to receive a system request to display the variables in the presentation list and to sort the variables by giving user named variables greater priority over system named variables and then sorting by a second criteria.
In a third aspect of the invention, a computer program has a plurality of code sections executable by a machine for causing the machine to perform certain steps as described in the method and systems above.
There are shown in the drawings embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
Embodiments in accordance with the invention can provide a solution for optimally arranging variables in a presentation list where each variable name in the list is sorted first based on whether the variable name is renamed or created by the user or is system generated, then by a secondary attribute such as position in an alphabetical list. Using this list strategy for variables, a callflow designer will be able to select variables faster, and with better accuracy.
For example, imagine a graphical callflow development system for which each element in the callflow receives an automatically generated label (for example, FOO010). The value of the variable created during that step of the callflow (if any) would be something like FOO010. An alphabetical list of these kinds of variables would look like:
These labels (and corresponding variable names) are not especially meaningful to a designer working with the variables. If the system permits designers to change variable names, a designer would very likely change the names of the key elements that he or she planned to use at later stages of the callflow. Suppose FOOO10 is the step for setting a reminder time, and the designer has renamed the label to Time. Further suppose that the designer, in a later step of the process, is feeding that time back in a system message (You have set a reminder for <Time> tomorrow. Is that correct?). The alphabetical list of variables would look like:
In this hypothetical situation, the only variable that the designer cares enough about to rename is at the bottom of the list of variables. If the system ‘knew’ that this was a user-defined variable name and used that information when creating the variable order, putting user-defined names at the top of the list, the list would look like:
This would make it much easier to work with the variables in this type of system, especially as the number of automatically generated variables becomes larger.
Referring to
Referring to
With the standard presentation method, the list of variables in a presentation list would be:
In the example above, the initial system-generated values for Date and Time were FOO10 and FOO20 respectively. The illustration shows the callflow after the user has made the indicated changes. Note that the special treatment of user-generated variables would apply to variables that the user adds to the set just as it applies to those variables that the user renames.
It should be understood that the present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can also be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software can be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention also can be embedded in a computer program product, which comprises all the 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 or application in the present context means 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; b) reproduction in a different material form.
This invention can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.