Abstract:
A method ( 10 ) for arranging user-modified variable names in a presentation list such as a drop-down list can include the steps of receiving ( 12 ) a system request to display the variables in the drop-down list, and sorting ( 14 ) 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 ( 16 ) the variables when a user selects the variables using a drop-down control.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Technical Field  
         [0002]     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.  
         [0003]     2. Description of the Related Art  
         [0004]     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.  
         [0005]     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.  
       SUMMARY OF THE INVENTION  
       [0006]     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.  
         [0007]     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.  
         [0008]     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.  
         [0009]     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. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]     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.  
         [0011]      FIG. 1  is a flow diagram illustrating a method or arranging user generated and built-in criteria accordance with the present invention.  
         [0012]      FIG. 2  is an exemplary instantiation of a callflow GUI with system and user-generated labels for callflow elements and illustrating an associated variable presentation list in accordance with the present invention.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0013]     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.  
         [0014]     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: 
    FOOO10     FOOO20     FOOO30     FOOO40     FOOO50    
 
         [0020]     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 &lt;Time&gt; tomorrow. Is that correct?). The alphabetical list of variables would look like: 
    FOOO20     FOOO30     FOOO40     FOOO50     Time    
 
         [0026]     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: 
    Time     FOOO20     FOOO30     FOOO40     FOOO50    
 
         [0032]     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.  
         [0033]     Referring to  FIG. 1 , a high-level flowchart of a method  10  of optimally arranging variables or variable names in a presentation list such as a drop-down list in accordance with the present invention is shown. The method  10  can include the step of receiving a system request to display variables in a presentation list at step  12 . At step  14 , the variables can be sorted by user-defined class versus system-defined class first and then by other criteria such as a secondary attribute such as alphabetical order or chronological order. Once a user clicks a drop-down control, the variables can be displayed at step  16  in an order that distinguishes between user defined and system defined classes. The distinction can be achieved in any number of ways including, for example, labeling or by having different types of text formatting (such as italics, color, or bolding).  
         [0034]     Referring to  FIG. 2 , a possible instantiation of a callflow GUI with system- and user-generated labels for callflow elements, and a depiction of the associated variable presentation list is shown in accordance with the present invention. In particular, the callflow GUI  20  illustrates a reminder system where callflow element  22  welcomes the user to the system. Callflow element  24  determines a particular date using user defined variable “Date” or date.jsgf. Callflow element  26  confirms an entry for the date. Callflow element  28  determines a time using user defined variable “time” or time.jsgf. Callflow element  30  then confirms the entry from the time. Callflow element  32  then prompts the user to record at the tone and callflow element  34  prompts the user to determine if another reminder is desired. If no further reminders are to be set, then the callflow element  36  provides a goodbye greeting.  
         [0035]     With the standard presentation method, the list of variables in a presentation list would be: 
    Date     COO10     COO20     FOO30     FOO40     Time 
 
 Using the proposed optimization method, the list would be: 
    Date     Time     COO10     COO20     FOO30     FOO40    
 
         [0049]     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.  
         [0050]     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.  
         [0051]     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.  
         [0052]     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.