Computer graphics processing and selective visual display system – Display driving control circuitry – Controlling the condition of display elements
Reexamination Certificate
2000-06-02
2003-11-25
Cabeca, John (Department: 2173)
Computer graphics processing and selective visual display system
Display driving control circuitry
Controlling the condition of display elements
C345S168000, C345S172000, C345S215000, C345S215000
Reexamination Certificate
active
06654038
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The invention relates to windowing toolkits for computers.
2. Background Art
The basic functionality of a computer is dictated both by the hardware of the computer and by the type of operating system it uses. Various operating systems exist in the marketplace, including Solaris from Sun Microsystems, Mac OS from Apple Computer, the “Windows” operating systems, e.g., Windows 95/98 and Windows NT, from Microsoft, and Linux. A given combination of computer hardware, an operating system, and a windowing system will be referred to herein as a “platform”. Prior to the popularity of the Internet, software developers wrote programs specifically designed for individual platforms. Thus, a program written for one platform could not be run on another. However, the advent of the Internet made cross-platform compatibility a necessity.
Prior art
FIG. 1
illustrates a conceptional arrangement wherein a first computer
3
running the Solaris platform and a second computer
5
running the Windows 98 platform are connected to a server
9
via the Internet
7
. A resource provider using the server
9
might be any type of business, governmental, or educational institution. The resource provider has a need to be able to provide its resources to both the user of the Solaris platform and the user of the Windows 98 platform, but does not have the luxury of being able to custom-design its content for the individual platforms.
The Java™ programming language was developed by Sun Microsystems to address this problem. The Java™ programming language was designed to be simple for the programmer to use, yet to be able to run securely over a network and work on a wide range of platforms.
Referring to
FIG. 2
, in order to create a Java™ application, the developer first writes the application in human-readable Java™ source code. As used herein, the term “application” refers to both true Java™ applications and Java™ “applets” which are essentially small applications usually embedded in a web page. In the example shown, the application “Program”
11
is created as a human-readable text file. The name of this text file is given the required character extension “Java”.
A Java™ compiler such as Sun Microsystem's “javac”
13
is used to compile the source code into a machine-readable binary file
15
. The text file will contain Java™ language commands, e.g., “import java.awt.Frame”. A discussion of the Java™ language itself is beyond the scope of this document. However, complete information regarding the Java™ program language is available from Sun Microsystems both in print and via the Internet at java.sun.com. The resulting binary file
15
will automatically receive the same file name as the source text file, but will use “.class” as the trailing extension. The Java™ runtime environment incorporates a Java™ “virtual machine” (JVM)
16
to convert the “.class” byte codes into actual machine executions
17
. The machine executions (like drawing windows, buttons, and user prompt fields) will occur in accordance to the application developer's code instructions. Because Sun Microsystems specifically designed the JVM to run on different platforms, a single set of “.class” byte codes will execute on any platform where a JVM has been installed. An Internet browser such as Netscape Navigator and Microsoft Explorer that incorporates a JVM is called a “Java™ enabled” browser.
The cross-platform architecture of the Java™ programming language is illustrated in
FIG. 3
, which shows how the Java™ language enables cross-platform applications over the Internet. In the figure, the computer
3
running the Solaris platform and the computer
5
running the Windows 98 platform are each provided with a Java™ virtual machine
21
. The resource provider creates a Java™ application using the Java™ software development kit (“SDK”)
23
and makes the complied Java™ byte codes available on the server
9
, which in this example is running on a Windows NT platform. Through standard Internet protocols, both the computer
3
and the computer
5
may obtain a copy of the same byte codes and, despite the difference in platforms, execute the byte codes through their respective JVM.
FIG. 4
illustrates an exemplary display on a screen
31
including top-level windows
33
,
34
, and
35
. Each window includes a title bar
37
for displaying the title of the window and, if applicable, a menu bar
39
containing a number of pull down menu buttons defined by the developer. In this example, window
34
is the “active” window, as indicated by the darkened title bar. Windows
33
and
35
are inactive as indicated by the grayed out title bar. The window
33
includes a number of typical components, including “radio buttons”
41
which in this case allow the user to select a prefix, a text field
43
for entering a name, and an address field
45
for entering an address. Component
47
is a “chooser”, allowing the user to choose a state. Components
49
are check boxes that allow the user to check one or all of the options that apply. Associated with these check boxes are additional radio buttons
51
and
53
that allow the user to select a desired means of transmission. If the “quote” check box
49
is selected and the telephone radio button is selected, the window
34
appears allowing the user to enter telephone numbers. An additional text area
57
is associated with the “other” check box
49
. Finally, “submit” and “reset” buttons
59
are provided to allow the user to either submit the form or reset it.
When developing a graphical user interface (GUI) such as the example shown in
FIG. 4
, one issue for consideration by the application developer is the concept of “focus”. Traditionally, the “focus owner” is the component that, at a given time, receives keyboard input generated by the application user. The user, of course, has the ability to transfer focus between components. The primary method for changing focus is by clicking on a new component using a mouse. However, an alternate way of changing focus is by using the keyboard. Using the keyboard to change focus is referred to as “focus traversal”. Typically, focus traversal is achieved using pre-defined keys on the keyboard (for example, the TAB key) or some equivalent device in an accessible environment. For example, referring again to
FIG. 4
, a cursor
61
(which would be blinking) is shown in the “home phone” text field
62
. This means component
62
is the focus owner, and keyboard input generated by the user would be sent to that field. Typically, the user may then move to the next component (“cell phone”) without using the mouse by simply hitting the TAB key, or return to the previous component (“work number”) by hitting SHIFT-TAB. This is referred to as forward and backward focus traversal, respectively. In addition to user-initiated traversal, client code can also initiate traversal programmatically.
SUMMARY OF THE INVENTION
In one aspect, the invention relates to a method for keyboard navigation in a graphical user interface, comprising: defining a key event dispatcher configured to recognize a special mode entry character and a special mode exit character; upon entry of the special mode entry character by a user, entering a special mode wherein subsequent key events are manipulated by the key event dispatcher while a current focus owner is maintained; and exiting the special mode upon entry of the special mode exit character by the user. In some embodiments, the special mode comprises an input method mode, and wherein manipulation of subsequent key events comprises diverting key events to an input method object.
In some embodiments, the special mode comprises an accessible navigation mode, and wherein manipulation of subsequent key events comprises using the key events to navigate the graphical user interface in accordance with an accessible navigation policy.
In some embodiments, the special mode comprises a window navigation mode, and wherein manipulation of subsequent key events comprises using the key events to navigate
Albers Michael C.
Gajewska Hania
Korn Peter A.
Mendenhall David P
Monsanto Lynn
Bautista X. L.
Cabeca John
Rosenthal & Osha L.L.P.
Sun Microsystems Inc.
LandOfFree
Keyboard navigation of non-focusable components does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Keyboard navigation of non-focusable components, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Keyboard navigation of non-focusable components will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3131082