`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SNAP EXHIBIT 1026
`Snap Inc. v. Palo Alto Research Center Inc.
`IPR2021-00987
`
`Page 1 of 11
`
`
`
`suoqeayddy
`
`
`
`
`
`ea)—/__s1owenypuroghey
`
`Feb. 15, 2011
`
`Sheet 1 of 4
`
`US 7,890,865 B2
`
`
`aileeeeeeetaineeeaeWmrnansniaaani
`
`OL}st:sng!:oct:|sweiBolg}‘tniE,|eoee¥uopeaddy
`:||jexeudued
`
`a3vilyur)Busssoo1g
`
`og)-—”FEL
`
`ndjncsyn@in@washBujeedo
`
`
`seinpow1SeBUE}U]BIDENBEG,MBIAPRO)ES
`
`as===an
`
`U.S. Patent
`
`Zeb
`
`Page 2 of 11
`
`_(@BP
`
`Page 2 of 11
`
`
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Feb. 15, 2011
`
`
`
`
`Sheet 2 of 4
`
`
`
`US 7,890,865 B2
`
`
`
`
`
`
`
`Please enter an integer
`
`
`between 1 and 12
`
`
`
`rae 4
`
`Month? [ ws 208
`L 206
`
`
`
`
`
`
`
`
`
`_ @ Field is mandatory.
`
`
`
`
`
`
`
`
`You must enter a value for 'Open Build’,
`
`
`
`be
`
`228
`
`
`
`
`
`
`Page 3 of 11
`
`Page 3 of 11
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Feb. 15, 2011
`
`
`
`
`Sheet 3 of 4
`
`
`
`US 7,890,865 B2
`
`
`300
`
`
`
`
`
`
`Display at least one userinput portion
`
`
`
`
`within a graphical user interface
`
`
`
`
`
`
`
`
`
`
`Receive userinput
`
`
`
`
`
`
`
`
`
`Determine an input validation moment
`
`
`
`
`
`
`
`
`
`
`
`
`
`302
`
`
`
`304
`
`
`
`306
`
`
`
`
`
`
` Was
`
`
`
`
`
`
`Receive userinput
`userinput
`
`required?
`
`
`
`
`
`associated with the user input portion
`
`
`
`
`
`Display
`
`
`
`Any
`information
`
`
`
`
`Was
`
`
`
`
`non-modal
`about the user
`
`
`
`
`
`
`
`
`
`
`
`messages
`input portion
`:
`
`
`received:
`using a non-
`open?
`.
`
`
`
`
`
`
`
`modal message
`
`
`
`
`
`
`
`
`
`?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Close any open
`
`
`
`
`Close non-modal
`
`non-modal
`
`
`
`message(s)
`
`
`
`message(s)
`
`
`- 312
`
`
`
`318
`
`
`
`316
`
`
`
`
`
`
`
`Page 4 of 11
`
`Page 4 of 11
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Feb. 15, 2011
`
`
`
`
`Sheet 4 of 4
`
`
`
`US 7,890,865 B2
`
`
`
`
`
`
`Valid user input
`
`information
`
`
`
`
`
`
`Processor
`
`
`
`Display
`
`416
`
`
`
`
`|!
`
`
`Guidance
`
`message
`information
`
`
`Logic
`
`
`Error message
`
`information
`
`
`
`
`
`
`400 \
`
`Page 5 of 11
`
`Page 5 of 11
`
`
`
`
`
`US 7,890,865 B2
`
`
`1
`METHODS AND APPARATUSES FOR
`
`
`
`
`PROVIDING MESSAGE INFORMATIONIN
`
`
`
`GRAPHICAL USER INTERFACES BASED ON
`
`
`
`
`USER INPUTS
`
`
`
`TECHNICAL FIELD
`
`
`
`
`
`
`
`
`
`
`
`This invention relates to computers and software, and more
`
`
`
`
`
`
`particularly to methods and apparatuses for providing infor-
`
`
`
`
`
`
`mation in a graphical user interface (GUI) computing envi-
`
`
`
`
`ronment using non-modal messages.
`
`
`
`
`
`
`
`BACKGROUND
`
`
`
`
`2
`
`
`
`
`
`
`
`
`Education, Inc. of Cambridge, Mass. This application uses
`
`
`
`
`
`
`painted graphic messages to indicate mathematical errors or
`
`
`
`
`
`
`
`undefined variables inside the mathematical equation dis-
`
`
`
`
`
`
`
`
`
`played by the application. Here, all errors are displayed
`
`
`
`
`
`
`
`
`together at the same time. However, the user is required to
`
`
`
`
`
`
`
`
`
`then manually place the focus of the GUI appropriately
`
`
`
`
`
`
`
`
`
`within the equation before any changesto the equation can be
`
`
`
`made based ontheerror(s).
`
`
`
`
`
`
`
`
`Consequently, for the above stated reasons and others it
`
`
`
`
`
`
`
`would be advantageous to have improved methods and appa-
`
`
`
`
`
`
`
`
`ratuses that display non-modal messages relating to user
`
`
`
`
`
`
`
`
`input portions of a GUIat the appropriate time and location,
`
`
`
`
`
`
`
`
`
`and that remain displayed for an adequate amountoftime for
`
`
`
`
`
`
`
`
`the user to act upon the message information. Additionally,
`
`
`
`
`
`
`
`
`
`there is a need for more user friendly error and/or guidance
`
`
`
`
`
`
`
`
`messagesthat allow for expedited user entry/re-entry ofvalid
`
`
`
`
`
`
`
`information without requiring manual adjustment of the
`focus of the GUI.
`
`
`
`SUMMARY
`
`
`
`
`
`
`
`
`
`
`
`
`
`Traditional computing devices, and in particular the
`
`
`
`
`
`
`graphical user interfaces (GUIs) provided by the computing
`
`
`
`
`
`
`
`
`devices have relied on the use of message boxes to commu-
`nicate to the user that an error has occurred or to otherwise
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`inform the user about some matter. Typically, such pop-up
`
`
`
`
`
`
`
`
`
`message boxes are modal in that they require the user to
`
`
`
`
`
`
`
`
`
`actively dismiss them, for example, by hitting either an
`
`
`
`
`
`
`
`
`“Okay” or “Cancel” button within the message box. Often,
`
`
`
`
`
`
`
`Improved methods and apparatuses are provided for deter-
`
`
`
`
`
`
`
`
`
`
`the user needs to dismiss the message boxpriorto taking any
`
`
`
`
`
`
`mining when and/or how to display non-modal messages
`
`
`
`
`
`
`
`corrective action and/or otherwise continuing on with what-
`
`
`
`
`
`
`relating to user input portions of a graphical user interface
`evertask is at hand.
`
`
`
`
`(GUD.
`
`
`
`
`
`
`
`There are other drawbacks to such traditional message
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for
`The above stated needs and others are satisfied,
`boxes too. By way of example, modal message boxes can be
`
`
`
`
`
`
`
`
`
`
`
`
`example, by a method in accordance with certain aspects of
`distracting to the user, and/or unintentionally/prematurely
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the present invention that includes displaying at least one user
`dismissed. For example, if the user is busy typing orclicking
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`input portion within a GUIand determiningif the user input
`elsewhere when the box appears, they might accidentally
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`portion is in an invalid state by determining that valid user
`dismiss the modal message box before having a chance to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`input associated with the user input portion has not been
`read it. Furthermore, a typical modal message box does not
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`received. The method further includes displaying a non-
`graphically indicate the source of an error and/or problem,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`modal message within the GUI. The non-modal messageis
`should it be visible within the GUI. For example,if the user
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`visibly graphically associated with the user input portion. The
`entered the wrong information in a user inputfield presented
`
`
`
`
`
`
`
`
`
`method also includes automatically applying a focus of the
`by the GUI.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GUIon theuserinput portion. As long as the focus ofthe GUI
`For these and other reasons, more recent operating systems
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`remains on the user input portion, the method includesdis-
`and applications have introducedthe use ofa non-modalerror
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`playing the non-modal messageuntil the user input portionis
`message within a GUI. One exemplary type of non-modal
`determined to be in a validstate.
`
`
`
`
`
`
`
`
`
`
`message is a pop-up error message. Balloon error messages
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`In accordance with certain other exemplary aspects of the
`improve the way that error information is presented to the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`present invention, a computer-readable medium is provided,
`user by replacing the usual modal message box with a pop-up
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`which has computer-executable instructions for causing a
`error messagethat is not modal and thus does not need to be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GUI having at least one user input portion to be displayed,
`dismissed by the user before the error can be corrected. A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`45
`selectively causing a focus of the GUI to be applied on the
`typical pop-up error messagehasthe additional advantage of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`user input portionif valid user input associated with said user
`being strategically located to help identify the location within
`
`
`
`
`
`
`
`
`
`the GUIthat is associated with the error. This allows the user
`
`
`
`
`
`
`
`
`
`
`input portion has not been received, and displaying a non-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`modal message within the GUIthatis visibly connected to the
`to quickly identify where corrections may be needed.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`user input portion until the user input portion is determined to
`A further exemplary drawback to conventional modal mes-
`beina valid state or the focus of said GUIis removedfrom the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`sage boxesis that the message box needsto be dismissed by
`
`
`
`
`
`
`
`
`
`
`
`
`user input portion.
`the user before the user is allowed to make any corrections.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Similarly, conventional pop-up error message techniques
`In accordance withstill other aspects of the present inven-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`may remove the pop-up error message automatically after
`tion, an apparatus is provided. The apparatus includeslogic,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`having displayed it for a period of time and/or removing the
`memory, at least oneuser input device and atleast one display
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`balloon error message from the display whenthe user begins
`device. The logic is configured to cause a GUIto bevisibly
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`making applicable corrections. Thus, if the modal message
`presented via the display device. The GUI includes at least
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`box or pop-up error message includes information that may
`one user input portion. The logic is further configured to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`be beneficial during subsequent input by the user, then the
`determine if the user input portion is in an invalid state by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`user will need to remember or perhaps write down such
`determining that valid user input associated with the user
`
`
`
`
`
`
`
`
`
`
`
`information.
`
`input portion has not been received. The logic will then cause
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a non-modal message to be presented within the GUI. Here,
`While conventional pop-up error messages usually help
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the non-modal message is visibly associated with the user
`locate an error within the GUI, one shortcomingis that the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`input portion. The logic applies a user input focus of the GUI
`user is required to manually place or otherwise associate(e.g.,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`on the user input portion. As long as the focus ofthe GUIis on
`using a cursor, entry point, etc.) the focus of the GUI on the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the user input portion, the logic will continue presenting the
`data field being pointed too, if they have not done so previ-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`non-modal message until the user input portion is determined
`ously. One example is the current version of an application
`
`
`
`
`
`
`to be inavalid state.
`
`
`
`named MathCad available from MathSoft Engineering &
`
`
`
`20
`
`25
`
`
`
`30
`
`
`
`
`
`40
`
`
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`Page 6 of 11
`
`Page 6 of 11
`
`
`
`
`
`US 7,890,865 B2
`
`5
`
`
`
`10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`
`
`
`
`
`Turning to the drawings, wherein like reference numerals
`
`
`
`
`
`
`
`refer to like elements, the invention is illustrated as being
`
`
`
`
`implementedin a suitable computing environment.
`
`
`
`
`
`
`
`Although not required, the invention will be described in
`
`
`
`
`
`
`the general context ofcomputer-executable instructions, such
`
`
`
`
`
`
`
`as program modules, being executed by a personal computer.
`
`
`
`
`
`
`Generally, program modules include routines, programs,
`
`
`
`
`
`
`
`
`objects, components, data structures, etc. that perform par-
`
`
`
`
`
`
`
`ticular tasks or implementparticular abstract data types.
`
`
`
`
`
`
`
`
`
`Moreover, those skilled in the art will appreciate that the
`
`
`
`
`
`
`
`
`invention may be practiced with other computer system con-
`
`
`
`
`
`figurations,
`including hand-held devices, multi-processor
`
`
`
`
`
`systems, microprocessor based or programmable consumer
`
`
`
`
`
`
`electronics, network PCs, minicomputers, mainframe com-
`
`
`
`
`
`
`
`
`
`puters, and the like. The invention mayalso be practiced in
`
`
`
`
`
`
`
`distributed computing environments where tasks are per-
`
`
`
`
`
`
`
`
`formed by remote processing devices that are linked through
`
`
`
`
`
`
`a communications network.In a distributed computing envi-
`
`
`
`
`
`
`
`
`ronment, program modules may belocated in both local and
`
`
`
`
`remote memory storage devices.
`
`
`
`
`
`
`FIG.1 illustrates an example of a suitable computing envi-
`
`
`
`
`
`
`
`ronment 120 on which the subsequently described methods
`
`
`
`
`
`
`and apparatuses may be implemented. Exemplary computing
`
`
`
`
`
`
`
`environment 120 is only one example ofa suitable computing
`
`
`
`
`
`
`
`environmentandis not intended to suggest any limitation as
`
`
`
`
`
`
`
`to the scope of use or functionality of the improved methods
`
`
`
`
`
`
`
`and systems described herein. Neither should computing
`
`
`
`
`
`
`environment 120 be interpreted as having any dependency or
`
`
`
`
`
`
`requirement relating to any one or combination of compo-
`
`
`
`
`
`nents illustrated in computing environment 120.
`
`
`
`
`
`
`
`
`The improved methods and apparatuses herein are opera-
`
`
`
`
`
`
`
`
`tional with numerous other general purpose or special pur-
`
`
`
`
`
`
`pose computing system environments or configurations.
`
`
`
`
`
`
`Examples of well known computing systems, environments,
`
`
`
`
`
`
`
`
`
`and/or configurations that may be suitable include, but are not
`
`
`
`
`
`
`
`limited to, personal computers, server computers, thin clients,
`
`
`
`
`
`
`
`thick clients, handheld or laptop devices, multiprocessor sys-
`
`
`
`
`
`
`
`tems, microprocessor-based systems, set top boxes, program-
`
`
`
`
`
`
`mable consumerelectronics, network PCs, minicomputers,
`
`
`
`
`
`mainframe computers, distributed computing environments
`
`
`
`
`
`
`
`
`that include any ofthe above systemsor devices, and the like.
`
`
`
`
`
`
`
`As shown in FIG. 1, computing environment 120 includes
`
`
`
`
`
`
`
`a general-purpose computing device in the form of a com-
`
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`
`
`
`
`
`A more complete understanding of the various exemplary
`
`
`
`
`
`
`
`methods and apparatuses ofthe present invention may be had
`
`
`
`
`
`
`
`
`by reference to the following detailed description when taken
`
`
`
`
`
`
`
`in conjunction with the accompanying drawings wherein:
`
`
`
`
`
`
`FIG. 1 is a block diagram depicting a computer system/
`environment suitable for use in accordance with certain
`
`
`
`
`
`
`
`
`
`
`
`exemplary implementationsof the present invention.
`
`
`
`
`
`
`FIG.2 depicts illustrative representations of graphical user
`
`
`
`
`
`
`
`
`interfaces (GUIs) having user input portions and information
`
`
`
`
`
`
`being displayed in non-modal messages, in accordance with
`
`
`
`
`
`certain exemplary implementations of the present invention.
`
`
`
`
`
`
`
`FIG.3 is a flow diagram depicting a process for displaying
`
`
`
`
`
`
`
`information associated with user input portions of a GUI, in
`
`
`
`
`
`accordance with certain exemplary implementations of the
`
`
`present invention.
`
`
`
`
`
`
`FIG.4 is a block diagram depicting a device configured to
`
`
`
`
`
`
`
`display information associated with user input portions of a
`
`
`
`
`
`
`
`GUI, in accordance with certain further exemplary imple-
`
`
`
`
`mentations of the present invention.
`
`DETAILED DESCRIPTION
`
`
`
`
`Page 7 of 11
`
`
`4
`
`
`
`
`
`
`
`
`puter 130. The components of computer 130 may include one
`
`
`
`
`
`
`
`or more processors or processing units 132, a system memory
`
`
`
`
`
`
`
`
`134, and a bus 136 that couples various system components
`
`
`
`
`
`
`including system memory 134 to processor 132.
`
`
`
`
`
`
`
`
`Bus 136 represents one or more of any of several types of
`
`
`
`
`
`
`busstructures, including a memory bus or memory controller,
`
`
`
`
`
`
`
`
`a peripheral bus, an accelerated graphics port, and a processor
`
`
`
`
`
`
`
`
`
`or local bus using any ofa variety ofbus architectures. By way
`
`
`
`
`
`
`
`
`of example, and not limitation, such architectures include
`
`
`
`
`
`
`
`Industry Standard Architecture (ISA) bus, Micro Channel
`
`
`
`
`
`
`
`
`Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video
`
`
`
`
`
`
`
`Electronics Standards Association (VESA) local bus, and
`
`
`
`
`
`
`
`Peripheral ComponentInterconnects (PCI) bus also known as
`Mezzanine bus.
`
`
`
`
`
`
`
`
`
`Computer 130 typically includes a variety of computer
`
`
`
`
`
`
`
`
`
`readable media. Such media may be any available media that
`
`
`
`
`
`
`
`
`is accessible by computer 130, and it includes both volatile
`
`
`
`
`
`
`and non-volatile media,
`removable and non-removable
`media.
`
`
`
`
`
`
`
`
`
`In FIG. 1, system memory 134 includes computer readable
`
`
`
`
`
`
`
`
`mediain the form of volatile memory, such as random access
`
`
`
`
`
`
`
`memory (RAM) 140, and/or nonvolatile memory, such as
`
`
`
`
`
`
`
`
`read only memory (ROM) 138. A basic input/output system
`
`
`
`
`
`
`
`
`
`(BIOS)142, containingthe basic routinesthathelp to transfer
`
`
`
`
`
`
`
`information between elements within computer 130, such as
`
`
`
`
`
`
`during start-up, is stored in ROM 138. RAM 140 typically
`
`
`
`
`
`
`
`
`contains data and/or program modules that are immediately
`
`
`
`
`
`
`accessible to and/or presently being operated on by processor
`132.
`
`
`
`
`
`
`
`
`Computer 130 may further include other removable/non-
`
`
`
`
`
`
`removable, volatile/non-volatile computer storage media. For
`
`
`
`
`
`
`
`
`
`example, FIG.1 illustrates a hard disk drive 144 for reading
`
`
`
`
`
`
`from and writing to a non-removable, non-volatile magnetic
`
`
`
`
`
`
`
`
`media (not shown and typically called a “hard drive”), a
`
`
`
`
`
`
`
`
`
`magnetic disk drive 146 for reading from and writing to a
`
`
`
`
`
`
`
`removable, non-volatile magnetic disk 148 (e.g., a “floppy
`
`
`
`
`
`
`
`
`
`disk”), and an optical disk drive 150 for reading from or
`
`
`
`
`
`
`
`writing to a removable, non-volatile optical disk 152 such as
`
`
`
`
`a CD-ROM/R/RW, DVD-ROM/R/RW/+R/RAM or other
`
`
`
`
`
`
`
`
`
`
`optical media. Hard disk drive 144, magnetic disk drive 146
`
`
`
`
`
`
`
`
`
`
`and optical disk drive 150 are each connected to bus 136 by
`one or moreinterfaces 154.
`
`
`
`
`
`
`
`
`
`
`
`The drives and associated computer-readable media pro-
`
`
`
`
`
`
`vide nonvolatile storage of computer readable instructions,
`
`
`
`
`
`
`
`
`
`data structures, program modules, and other data for com-
`
`
`
`
`
`
`
`puter 130. Although the exemplary environment described
`
`
`
`
`
`
`
`
`herein employs a hard disk, a removable magnetic disk 148
`
`
`
`
`
`
`
`and a removable optical disk 152, it should be appreciated by
`
`
`
`
`
`
`
`
`
`those skilled in the art that other types of computer readable
`
`
`
`
`
`
`
`
`media which canstore data that is accessible by a computer,
`
`
`
`
`
`
`
`
`such as magnetic cassettes, flash memory cards, digital video
`
`
`
`
`
`
`
`
`disks, random access memories (RAMs), read only memories
`
`
`
`
`
`
`
`
`
`
`(ROM), and the like, may also be used in the exemplary
`
`
`operating environment.
`
`
`
`
`
`
`
`A numberof program modules maybe stored on the hard
`
`
`
`
`
`
`
`
`disk, magnetic disk 148, optical disk 152, ROM 138, or RAM
`
`
`
`
`
`
`
`140, including, e.g., an operating system 158, one or more
`
`
`
`
`
`
`
`application programs 160, other program modules 162, and
`
`
`
`program data 164.
`
`
`
`
`
`
`
`The improved methods and systems described herein may
`
`
`
`
`
`
`
`be implemented within operating system 158, one or more
`
`
`
`
`
`
`
`application programs 160, other program modules 162, and/
`
`
`
`
`or program data 164.
`
`
`
`
`
`
`
`
`A user may provide commandsand information into com-
`
`
`
`
`
`
`
`
`
`puter 130 through input devices such as keyboard 166 and
`
`
`
`
`
`
`
`
`pointing device 168 (such as a “mouse’’). Other input devices
`
`
`
`
`
`
`
`
`(not shown) may include a microphone, joystick, game pad,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 7 of 11
`
`
`
`
`
`US 7,890,865 B2
`
`
`5
`
`
`
`
`
`
`
`
`
`satellite dish, serial port, scanner, camera, etc. These and
`
`
`
`
`
`
`
`
`
`other input devices are connected to the processing unit 132
`
`
`
`
`
`
`
`
`
`through a user input interface 170 that is coupled to bus 136,
`
`
`
`
`
`
`
`
`but may be connected by other interface and busstructures,
`
`
`
`
`
`
`
`
`
`such as a parallel port, game port, or a universal serial bus
`
`(USB).
`
`
`
`
`
`
`
`
`A monitor 172 or other type of display device is also
`
`
`
`
`
`
`
`
`connected to bus 136 via an interface, such as a video adapter
`
`
`
`
`
`
`
`174. In addition to monitor 172, personal computers typically
`
`
`
`
`
`
`
`
`include other peripheral output devices (not shown), such as
`
`
`
`
`
`
`
`
`speakers and printers, which may be connected through out-
`
`
`
`
`put peripheral interface 175.
`
`
`
`
`
`
`Computer 130 may operate in a networked environment
`
`
`
`
`
`
`
`using logical connections to one or more remote computers,
`
`
`
`
`
`
`
`
`such as a remote computer 182. Remote computer 182 may
`
`
`
`
`
`
`
`include manyorall of the elements and features described
`
`
`
`
`herein relative to computer 130.
`
`
`
`
`
`
`
`
`Logical connections shown in FIG.1 are a local area net-
`
`
`
`
`
`
`
`
`
`work (LAN) 177 and a general wide area network (WAN)
`
`
`
`
`
`
`179. Such networking environments are commonplace in
`
`
`
`
`
`
`offices, enterprise-wide computer networks, intranets, and
`the Internet.
`
`
`
`
`
`
`
`
`When used in a LAN networking environment, computer
`
`
`
`
`
`
`130 is connected to LAN 177 via networkinterface or adapter
`
`
`
`
`
`
`
`186. When used in a WAN networking environment, the
`
`
`
`
`
`
`
`computer typically includes a modem 178 or other means for
`
`
`
`
`
`
`establishing communications over WAN 179. Modem 178,
`
`
`
`
`
`
`
`which maybeinternal or external, may be connected to sys-
`
`
`
`
`
`
`
`
`
`
`
`tem bus 136 via the user input interface 170 or other appro-
`30
`
`
`priate mechanism.
`
`
`
`
`
`Depicted in FIG.1, is a specific implementation of a WAN
`
`
`
`
`
`
`
`
`
`via the Internet. Here, computer 130 employs modem 178 to
`
`
`
`
`
`
`
`establish communications with at least one remote computer
`182 via the Internet 180.
`
`
`
`
`
`
`
`
`
`
`In a networked environment, program modules depicted
`
`
`
`
`
`
`
`relative to computer 130, or portionsthereof, may be stored in
`
`
`
`
`
`
`
`
`a remote memory storage device. Thus, e.g., as depicted in
`
`
`
`
`
`
`
`FIG. 1, remote application programs 189 may reside on a
`
`
`
`
`
`
`
`memory device of remote computer 182. It will be appreci-
`ated that the network connections shown and described are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`exemplary and other meansofestablishing a communications
`
`
`
`
`
`
`link between the computers may be used.
`
`
`
`
`
`
`
`Reference is now to FIG. 2, which depictsillustrative rep-
`
`
`
`
`
`
`
`resentations of graphical user interfaces (GUIs) having user
`
`
`
`
`
`
`
`input portions and information being displayed in non-modal
`
`
`
`
`
`
`messages, in accordance with certain exemplary implemen-
`
`
`
`tations of the present invention.
`
`
`
`
`
`
`
`By way of example, a GUI 202 is represented as being
`
`
`
`
`
`
`
`displayed by a display device (dashed-line box) 200. Within
`
`
`
`
`
`
`
`
`GUI 202is a plurality of user input portions 204a-n and 208.
`
`
`
`
`
`
`
`
`Incertain implementations, user input portions 204a-n and/or
`
`
`
`
`
`
`
`
`
`
`
`208 take the form of a data entry field suitable for the user to
`
`
`
`
`
`
`
`type or otherwise enter alphanumeric character strings and
`
`
`
`
`
`
`
`
`
`
`the like. Thus, for example, user input portion 208 is illus-
`55
`
`
`
`
`
`
`
`
`
`trated as being a userinput field designedto allow the user to
`
`
`
`
`
`
`enter a numerical numberrelating to a month of the year. A
`
`
`
`
`
`
`
`prompt 206 is shownassoliciting such user input.
`
`
`
`
`
`
`
`
`In other implementations, for example, user input portions
`
`
`
`
`
`
`
`204a-n may include user selectable/activated buttons, knobs,
`
`
`
`
`
`
`
`
`sliders, or other like graphically displayed user input mecha-
`
`
`
`
`
`
`
`nisms. It should be recognized,therefore, that the rectangular
`
`
`
`
`
`
`
`
`shaped dashed-line boxes defining user inputportions in FIG.
`
`
`
`
`
`
`
`
`
`
`2 are merely representative shapes and that the user input
`
`
`
`
`
`
`
`
`
`portions maytake on any applicable shape,pattern, color, etc.
`
`
`
`
`
`
`
`
`
`Moreover, certain GUIs may only have a single user input
`
`
`
`
`
`
`
`
`portion, while other implementations have many user input
`
`portions.
`
`
`6
`
`
`
`
`
`
`
`
`
`Asillustrated, user input portion 208 includes a user input
`
`
`
`
`
`
`
`
`
`(data) of “15”. In accordance with certain aspects of the
`
`
`
`
`
`
`
`
`
`present invention, this user input value has been determined
`
`
`
`
`
`
`
`
`to represent an invalid entry since prompt 206 is requesting
`that the user enter a numerical identifier for a month of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`year and only integers between 1 and 12 are valid entries.
`
`
`
`
`
`Accordingly, at a determined validation moment associated
`
`
`
`
`
`
`
`
`
`
`
`with GUI 202 and/or user input portion 208, the user input
`
`
`
`
`
`
`
`data (or lack thereof) is analyzed to determineif it is valid or
`
`
`
`
`
`
`
`
`
`invalid. If the user input data is determined to be valid, then
`
`
`
`
`
`
`
`
`the process associated with and/or supported by user input
`
`
`
`
`
`
`
`
`portion 208 is allowed to continue in some manner.Ifthe user
`
`
`
`
`
`
`
`input data is determined to be invalid, then a non-modal
`
`
`
`
`
`
`
`message 210 is generated and displayed. In the example in
`
`
`
`
`
`
`
`
`FIG.2, non-modal message 210 takes the shape of a balloon
`
`
`
`
`
`
`message having a tip pointing to or otherwise directing the
`
`
`
`
`
`
`
`
`
`userto user portion 208 which currently contains invalid user
`
`
`
`
`
`
`
`
`
`inputdata (i.e., the number“15”’). Includedin this exemplary
`
`
`
`
`
`
`
`visible graphical non-modal message 210 is message infor-
`
`
`
`
`
`
`
`
`
`mationthat reads “Please enter an integer between 1 and 12”.
`
`
`
`
`
`
`
`In accordancewith certain aspectsofthe present invention,
`
`
`
`
`
`
`
`
`when non-modal message 210 is displayed the “focus” of
`
`
`
`
`
`
`
`GUI 202 is placed, moved or otherwise applied to user input
`
`
`
`
`
`
`
`
`field 208. Thus, for example, in certain implementations user
`
`
`
`
`
`
`
`
`
`input portion 208 or the current data therein may be high-
`
`
`
`
`
`
`
`
`lighted or changed in somevisible mannerto help the user to
`
`
`
`
`
`
`
`
`identify the user input portion associated with non-modal
`
`
`
`
`
`
`message 210. In certain exemplary implementations, a cursor
`
`
`
`
`
`
`
`
`
`
`
`or like visible item can be placed in user input portion 208 and
`
`
`
`
`
`
`
`logic supporting GUI 202 operatively configured to receive
`
`
`
`
`new/revised user input data.
`
`
`
`
`
`
`
`
`
`To better serve the user during this non-modal message
`
`
`
`
`
`
`
`
`guided user input process, non-modal message 210 is main-
`
`
`
`
`
`
`
`
`tained/displayed until a valid user input has been provided
`and/or the focus of GUI 202 is moved/removed from user
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`input portion 208. Unlike conventional non-modal messages
`
`
`
`
`
`
`
`
`
`the message information remains visible while the user pro-
`
`
`
`
`
`
`
`
`
`
`vides new input(s) and until the user provides valid user
`
`
`
`
`
`
`
`inputs. Non-modal message 210 is no longer displayed once
`
`
`
`
`
`
`
`
`
`
`
`the user has input valid user input. If the user decides to
`
`
`
`
`
`
`
`
`
`redirect the focus of GUI 202, then non-modal message 210
`
`
`
`
`
`
`
`
`
`will stop being displayed. However, if the user has failed to
`
`
`
`
`
`
`
`
`provide requisite valid user inputs, then non-modal message
`
`
`
`
`
`
`
`
`
`210 will be displayed again. The user can change or move the
`
`
`
`
`
`
`
`focus of GUI 202 by selectively moving and/or activating a
`
`
`
`
`
`
`
`pointing device such as a mouse, touch-pad,trackball, or the
`
`
`
`
`
`
`
`
`like, and/or striking one or more input keys on a keyboard or
`
`
`
`
`
`
`
`other like mechanism. For example, in certain implementa-
`
`
`
`
`
`
`
`
`tions, the user may hit a “tab” key to selectively move the
`
`
`
`
`
`
`focus of GUI 202 to another user input portion.
`
`
`
`
`
`
`
`
`In still other implementations, the focus of GUI 202 can be
`
`
`
`
`
`
`
`
`automatically moved to another portion within GUI 202. For
`
`
`
`
`
`
`
`
`
`example, the focus of GUI 202 may changeafter the passage
`
`
`
`
`
`
`
`
`of a certain amount of time. Non-modal message 210 may
`
`
`
`
`
`
`
`also time out in some manner as maybe needed.
`
`
`
`
`
`
`
`FIG.2 also includes a portion of an exemplary GUI 220
`
`
`
`
`
`
`
`further illustrating certain features associated with certain
`
`
`
`
`
`
`implementations of a non-modal message 224 that is dis-
`
`
`
`
`
`
`
`
`played in reference to user input field 222. Here, at an appli-
`
`
`
`
`
`
`
`
`cable validation moment, it was determined that the user
`
`
`
`
`
`
`
`
`
`failed to provide requisite valid user input to user inputfield
`
`
`
`
`
`
`
`
`222. Hence, non-modal message 224 has been displayed. In
`
`
`
`
`
`
`
`this example, non-modal message 224 includes a graphical
`
`
`
`
`
`
`
`
`icon 226, an identifier 228 and message information 230.
`
`
`
`
`
`
`
`
`Graphical icon 226 in this example visibly identifies that an
`
`
`
`
`
`
`
`
`error has occurred. Identifier 228 providesa title or summary,
`
`
`
`
`
`
`
`for example, of the error (here, e.g., “Field is mandatory.”).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`20
`
`25
`
`40
`
`45
`
`50
`
`60
`
`65
`
`Page 8 of 11
`
`Page 8 of 11
`
`
`
`
`7
`
`
`
`
`
`
`
`Message information 230 in this example further elaborates
`
`
`
`
`
`
`
`
`
`
`on the error by stating that ““You mustenter a value for Open
`
`
`
`
`
`
`
`
`Build” Although not visually illustrated by the screen shot of
`
`
`
`
`
`
`
`
`
`GUI 220, the focus of GUI 220 is user inputfield 222.
`
`
`
`
`
`
`
`Attention is now drawn to FIG. 3, whichis a flow diagram
`
`
`
`
`
`
`depicting a process 300 for displaying information associated
`
`
`
`
`
`
`
`
`with user input portions of a GUI, in accordance with certain
`
`
`
`
`exemplary implementationsof the present invention.
`
`
`
`
`
`
`
`
`
`In step 302, at least one user input portion is displayed
`
`
`
`
`
`
`
`
`
`
`within a GUL. In step 304, user input associated with the user
`
`
`
`
`
`
`
`input portion is received. In step 306, a determination is made
`
`
`
`
`
`
`
`
`that an input validation moment associated with the GUI
`
`
`
`
`
`
`
`
`
`and/or user input portion has been reached. For example, an
`
`
`
`
`
`
`
`
`input validation moment maybereachedafter the passage of
`
`
`
`
`
`
`
`
`
`a period of time with or without user inputs received in step
`
`
`
`
`
`
`
`
`304. An input validation moment may be associated with the
`
`
`
`
`
`
`
`
`user selecting a particular GUI mechanism, such as, for
`
`
`
`
`
`
`
`example, a form “complete” button, an “enter” button, a
`
`
`
`
`
`
`
`
`
`“submit” button, a “send”button, etc. Note that process 300
`
`
`
`
`
`
`
`
`
`
`
`m