This application claims priority to Indian provisional patent application number 201941012062, filed Mar. 27, 2019 and titled “Structured Data Jump Mechanism” and naming Chandra Sekar Rao Kudiri as inventor [Attorney Docket No. 37402-17501]. The disclosure of the foregoing application is incorporated herein by reference, in its entirety.
The present disclosure generally relates to computer user interfaces, more particularly, the invention relates to user interfaces for displaying information
Many computer-based documents include structured data. For example, a spreadsheet may have many columns and many rows. Due to limitations on the size of a computer's display screen, however, only a subset of such columns and/or rows may be simultaneously displayed on the computer screen. Thus, some columns and rows can be thought of as being off-screen to the right (or left) of, or above (or below) the columns and rows displayed on-screen at a given point in time.
To view such off-screen columns and rows, a user would commonly move one or more slider bars until the desired columns and rows come on-screen. This typically means that the originally-displayed groups move, most likely off-screen.
Moreover, in order to identify when the desired columns and rows are displayed on-screen, the user must pay attention as columns and rows come onto the screen and scroll by, and then stop the scroll when the desired columns and rows are on-screen. Thus, the slider bar approach consumes both user time and user attention.
In accordance with an illustrative embodiment, an apparatus for displaying includes a computing processor communicatively coupled to a display screen. The computing processor is configured to display, on the display screen, on-screen structured data from the data grid, as well as a set of jump buttons. Each of the jump buttons is associated with a corresponding set of off-screen structured data from the data grid.
In illustrative embodiments, the computing processor is further configured to display, on the display screen, a jump interface, and to display in the jump interface, at least one jump button from the set of jump buttons. Alternatively, or in addition, wherein the data grid includes a plurality of cells, some embodiments are configured to display, in a cell from the plurality of cells, a jump button from the set of jump buttons.
The apparatus is configured to respond to activation (by a user) of a jump button from the set of jump buttons (which may be referred-to as the “activated” jump button) by displaying, on the display screen, the (previously off-screen) set of structured data associated with the activated jump button.
The apparatus may do so in any of a variety of ways, such as by auto-scrolling data across the display screen until the structured data associated with the activated jump button are displayed on-screen, or by immediately displaying the structured data associated with the activated jump button.
For example, in some embodiments, the set of off-screen structured data corresponding to the activated jump button include a plurality of grouped off-screen data columns, and in some embodiments, the set of off-screen structured data corresponding to the activated jump button includes a plurality of grouped off-screen data rows.
In other illustrative embodiments, the set of on-screen structured data includes a first data column, and also includes a second data column, the second data column separated (in the data grid) from the first data column by a set of intervening columns. In such embodiments, the set of jump buttons includes a given jump button, and the apparatus is configured to: receive activation of the given jump button by a user and in response to said activation, and cause display, on the display screen, of the first data column immediately adjacent to the second data column without the intervening columns.
In yet other illustrative embodiments, the set of on-screen structured data includes a first data row, as well as a second data row, and the second data row is separated (in the data grid) from the first data row by a set of intervening rows. In such embodiments, the set of jump buttons includes a given jump button, and the apparatus is configured to: receive activation of the given jump button by a user and in response to said activation, and cause display, on the display screen, of the first data row immediately adjacent to the second data row without the intervening rows.
Another embodiment discloses a computer-implemented method of displaying, on a display screen, a data grid. The method includes steps of displaying, on the display screen, on-screen structured data from the data grid; as well as a set of jump buttons, each jump button associated with a corresponding set of off-screen structured data from the data grid.
The jump buttons may be displayed in a variety of ways. For example, in some embodiments, the on-screen structured data includes a plurality of cells, and displaying the set of jump buttons includes displaying, in a cell from the plurality of cells, at least one jump button from the set of jump buttons. Other embodiments display, on the display screen, a jump interface, and display, in the jump interface, a jump button from the set of jump buttons.
In response to activation of the jump button, the method displays the (previously off-screen) structured data on-screen.
In some embodiments, the set of jump buttons includes a given jump button, and the set of off-screen structured data corresponding to the given jump button includes a plurality of grouped off-screen data columns, and/or a plurality of grouped off-screen data rows.
In other illustrative embodiments, the set of on-screen structured data includes a first data column, as well as a second data column, the second data column separated in the data grid from the first data column by a set of intervening columns. In such embodiments, the set of jump buttons includes a given jump button, and the method further includes displaying, in response to activation of the given jump button, the first data column immediately adjacent to the second data column without the intervening columns.
In other illustrative embodiments, the set of on-screen structured data includes a first data row, as well as a second data row, the second data row separated in the data grid from the first data row by a set of intervening rows. In such embodiments, the set of jump buttons includes a given jump button, and the method further includes displaying on the display screen, in response to activation of the given jump button, the first data row immediately adjacent to the second data row without the intervening rows.
Yet other embodiments are directed to a tangible, computer-readable storage medium in which is non-transitorily stored program code that, when executed by a computing processor, provides one or more of the methods described above.
The foregoing features of embodiments will be more readily understood by reference to the following detailed description, taken with reference to the accompanying drawings, in which:
Various embodiments improve user to access data on a system by allowing data access more quickly than, and with less effort than required for, prior art methods and systems. For example, illustrative embodiments include a set of on-screen jump buttons, each associated with a corresponding set of off-screen data. When a user activates a jump button, the corresponding set of off-screen data is displayed on-screen. In other words, the method or system moves the corresponding set of off-screen data associated with the activated jump button from its off-screen location to on-screen, so that it is visible to the user without requiring the use to manually scroll through the data. The corresponding set of off-screen data may be, for example, one or more columns of data in a table or spreadsheet, or one or more rows of data in a table or spreadsheet.
Definitions. As used in this description and the accompanying claims, the following terms shall have the meanings indicated, unless the context otherwise requires.
A “set” includes at least one member. For example, a set of columns includes at least one column, and a set of rows includes at least one row.
A “data grid” is a matrix of data including at least one column and a plurality of rows, or at least one row and a plurality of columns, or a plurality of columns and a plurality of rows.
The term “structured data” is an ordered set of data. Non-limiting examples of structured data include a column having a plurality of rows of data in a table of a word processing document, a column having a plurality of rows of data in spreadsheet; a row having a plurality of columns of data in a table of a word processing document, and a row having a plurality of columns of data in spreadsheet.
The term “off-screen data” is structured data not presently displayed on a display screen.
The term “on-screen data” is structured data presently displayed on a display screen.
In illustrative embodiments, the display screen 111 displays a data grid 200, along with a horizontal scroll bar 112 (with slider 113) and vertical scroll bar 122 (with slider 123). Any of the embodiments described herein may include, on the display screen 111 simultaneously with a data grid 200 or a portion of a data grid 200, one or both of a horizontal scroll bar 112 and vertical scroll bar 122.
The controller interface module 151 receives, from peripheral devices such as a keyboard 120, a touch screen 111, and/or a mouse 121, inputs made by a user. The display interface 152 controls the output of a graphical user interface on a monitor 110.
The system 150 also includes a computer processor 154, as known in the art of microprocessors. The memory 153 may be a read only memory (RAM), or a tangible, computer-readable storage medium in which is non-transitorily stored (1) program code that, when executed by a computer processor, provides a method of displaying, on a display screen, a graphical user interface (GUI) of a software application, and/or (2) data, such as data populating a data grid 200.
Overview
The data grid 200 includes several columns, numbered 211, 212, 213, 221, 222, 223, and 231, 232, 233. Moreover, in this embodiment, the columns are grouped into three groupings. Columns 211, 212 and 213 are grouped under a header “Group Header 1,” columns 221, 222 and 223 are grouped under a header “Group Header 2,” and columns 231, 232 and 233 are grouped under a header “Group Header 3.” Groups of columns may be created (i.e., columns may be grouped), and in some embodiments modified, by a system developer or a user.
The data grid 200 also has several related jump buttons 251, 252, 253 and 254, labeled “GroupHeader 1,” “GroupHeader 2,” “GroupHeader 3,” and GroupHeader 4,” respectively. Jump buttons 251, 252 and 253 correspond, respectively, to one of the groups of columns.
In use, the data grid 200 may include more columns than can be displayed simultaneously on a computer screen. To view such an off-screen set of columns, a user would commonly move a slider 113 in slider bar 112 until the desired group comes on-screen. This necessarily means that the originally-displayed groups move, most likely off-screen. In order to identify when the desired group is displayed on-screen, the user must pay attention as groups come onto the screen and scroll by, and stop the scroll bar when the desired group is on-screen. Thus, the slider bar approach consumes both user time and user attention.
In this example, jump button 254 corresponds to a column or group of columns not visible in
Each intersection of a column and a row defines a cell in the data grid 200. For example, the intersection of column 211 and row 201 defines a cell 211201. Each cell may hold data or a datum, such as text and/or numerical data, and/or a mathematical formula, to name but a few examples. In illustrative embodiments, the data in a cell is editable by a user, but in other embodiments the data in a cell is fixed (i.e., not editable by the user), and is calculated as a result of an evaluation of a formula, to name but a few examples.
Based on the foregoing, and other embodiments described herein, it will be understood that the system 100 is an apparatus for displaying a data grid 200, and that the apparatus includes a computing processor communicatively coupled to a display screen. The computing processor configured to display, on the display screen, on-screen structured data from the data grid, along with a set of jump buttons. Each of the jump buttons associated with a corresponding set of off-screen structured data from the data grid. The system 100 responds to activation of jump button (which may be referred-to as the “activated jump button) displaying, on the display screen, the set of structured data associated with the activated jump button.
A Column-Based Embodiment
In illustrative embodiments, the system 100 displays (“on-screen”) structured data on the display screen 111. The on-screen structured data is part of a larger data grid 200 that also includes off-screen structured data.
The system 100 also defines, on the display screen 111, a set of column jump buttons 311-313 for each of a set of corresponding columns in a spreadsheet, and particularly for columns that are presently “off-screen” (i.e., not presently displayed on the screen). Such operation of the system 100 may be described as providing a graphical user interface (“GUI”).
Each button 311-313 has a label 321-323, respectively, that identifies, to the user, the column (or group of columns) with which the jump button is associated. In preferred embodiments, multiple jump buttons are displayed in a jump button array 310 above the spreadsheet, such as in a linear set, box, or other grouping.
In some embodiments, the displayed column (i.e., the column associated with the jump button that the user activated) is surrounded by the columns that are already its neighbors in the spreadsheet. Thus, this concept is not like a tabbed display (in which information associated with one tab disappears when it is overwritten when another tab is selected). Also, in some embodiments, the display still includes one or more scroll bars (e.g., horizontal scroll bar 112 and/or vertical scroll bar 122), so after jumping or auto-scrolling to the desired group, the user can scroll further in any direction using the one or more scroll bars.
Sometimes a user (or the system designer) may group the columns, and give a name to each group (a “group header”). In such embodiments, a jump button may be associated with such a group, so that activation of the jump button causes display of the group.
The embodiment of
In preferred embodiments, the jump interface 310 also includes a set of button labels 321, 322 and 323 associated, respectively, with the jump buttons 311, 312 and 312. Each label includes text and/or a graphic that identifies to the use the column or groups of columns associated with the jump button. For example, as schematically illustrated in
When a user activates button 313, the display screen 111 displays at least columns 241-243. A user may activate a button by, for example, clicking on the button with a computer mouse, or by pressing a key set on the keyboard, or by other actions as known in the art, to name but a few examples.
Another embodiment of a jump interface 310 is schematically illustrated in
The user interface 461 includes a button receiver 462 to receive the user's specification of the jump button that the user desires to define (step 412). The button receiver 462 may be, for example, a box in which the user enters text to specify the desired jump button, or a drop-down menu from which the user selects the desired jump button, to name but a few examples. In this illustrative example, the button receiver 462 has received from the user the specification of jump button 313.
Some embodiments of the user interface 461 also include a rename receiver 464 to receive the user's specification of the name of the specified jump button (step 413). The rename receiver 464 may be, for example, a box in which the user enters text to specify the desired name, or a drop-down menu from which the user selects the desired name, to name but a few examples. In this illustrative example, the rename receiver 464 has received from the user the specification of the name of the specified jump button 313 as “D1-3.”
The user interface 461 includes a data specification receiver 465 to receive the user's specification of the structured data to be associated with the specified jump button (step 414). The data specification receiver 465 may be, for example, a box in which the user enters text to specify the desired structured data, or a drop-down menu from which the user selects the desired structured data, to name but a few examples. In general, a user or developer may define specify, from the data grid 200, any number of columns, or any number of rows, or a sub-matrix of any size, as the structured data to be associated with the specified jump button, possibly limited only by the size of the data grid 200 and/or the size of the display screen 111.
In this illustrative example, the data specification receiver 465 has received from the user the specification of columns 241-243, however the embodiments are not limited to receiving only columns, or only consecutive columns, as the user's specification of the structured data to be associated with the specified jump button. For example, illustrative embodiments may also accept, as the user's specification of the structured data to be associated with the specified jump button, a single column, a group of columns, a set of non-consecutive columns (e.g., columns separated by one or more intervening columns), a single row, a group of rows, or a set of non-consecutive rows (e.g., rows separated by one or more intervening rows), and/or a specification of a sub-matrix of cells (e.g., sub-matrix 820 as illustrated in
It should be noted that in illustrative embodiments, a user's specification of a plurality of non-consecutive columns may include a plurality of columns in which each of the specified columns is separated from its nearest specified neighboring column by one or more intervening columns. For example, a user may specify column 213 and column 241, which are separated by intervening columns 221 - 223, and 231-233, as well as column 243 which is separated from specified column 241 by intervening column 242. Display of those specified columns may omit those intervening columns, as described in connection with
It should also be noted that in illustrative embodiments, a user's specification of a plurality of non-consecutive rows may include a plurality of rows in which each of the specified rows is separated from its nearest specified neighboring row by one or more intervening rows. For example, a user may specify row 204 and row 206, which are separated by intervening row 205, as well as row 202 which is separated from specified row 204 by intervening row 203. Display of those specified rows may omit those intervening rows.
Some embodiments of the user interface 461 also include radio buttons 466 and 467 to receive the user's specification (step 415) of whether the system 100 should, in response to selection of the specified jump button, omit intervening structured data (e.g., intervening columns or row) when displaying on the screen the structured data associated with the specified jump button. Some embodiments may include only one such button, which toggles between “yes” and “no” in response to user input.
At step 420, the system 100 displays structured data on the display screen 111. As explained in various examples described herein, the structured data may be a portion of a data grid 200, for example.
At step 430, the system 100 displays a set of jump buttons on the display screen. In preferred embodiments, the system 100 displays the set of jump buttons on the display screen 111 at the same time (e.g., simultaneously or concurrently with) as it displays the structured data in step 420.
At step 440, the system 100 receives from the user a button activation of a jump button from the set of jump buttons.
At step 450, the system 100 moves the associated column or group of columns from “off-screen” to “on-screen.” Unlike the prior art, in which a user might have used a scroll bar 112 to move the data grid from right to left until columns 241-243 came onto the screen, use of the jump button 313 causes the display screen 111 to display columns 241-243 automatically, without requiring the user to observe intervening columns (e.g., column 231, “C1”) scroll onto the screen 111 in order to stop the user's manipulation of the scroll bar 112 just at the right time and place to display columns 241-243.
Illustrative embodiments display columns 241-243 on the display screen immediately in response to activation of the jump button 313. Such embodiments provide to the user an immediate reaction. When the user activates a jump button, illustrative embodiments display the associated column (or group of columns).
Other embodiments perform an “automatic scroll” (or “auto-scroll”) in which the data grid 200 scrolls across the screen 111 until the associated column or group of columns are displayed on-screen. From the perspective of the user, the display of the data grid 200 during an automatic scroll is similar to the display of the data grid 200 during a manual scroll using a scroll bar 112 or 122, but is easier and more convenient for the user because it does not require user manipulation of a scroll bar 112 or 122, and user attention during the scroll in order to stop the scroll at the appropriate point (i.e., when the associated columns appear on-screen). Moreover, auto-scroll is beneficial to the user in that it provides to the user a sense of continuity and context of the data.
In some circumstances, a user may desire to view a column immediately adjacent to another column, even though those columns are not immediately adjacent to one another in the data grid 200. Such a circumstance may arise, for example, when the columns that the user desired to view are separated by one or more intervening columns.
As an illustrative example from
Consequently, some embodiments display, in response to the user's activation of a jump button, a plurality of columns without displaying intervening columns between that plurality of columns.
In
A Row-Based Embodiment
The embodiment of
When a user activates button 613, the display screen 111 displays at least rows 206 and 207, as illustrated in
Consequently, in response to activation of a jump button by a user, some embodiments display associated rows on-screen without displaying intervening rows between those associated rows. In
A Sub-Matrix-Based Embodiment
In some situations, a user may desire to view off-screen data that is offset from the present on-screen data in both horizontal and vertical directions. Using scroll bars (112 and 122) to manipulate a data grid is difficult because without displaying the desired row, the user cannot tell how far to move the horizontal slider 112 to reach the desired column, yet without displaying the desired column, the user cannot tell how far to move the vertical slider 123 to display the desired row.
To address that problem, some embodiments include a set of jump buttons, at least one of which, when activated by a user, causes the system to display a pre-specified sub-matrix of data. To that end,
A Cell-Based Jump Button
Disposing a jump button 911 in a cell, as in
Although embodiments described above are illustrated as column-based, row based, and sub-matrix based, that does not limit the inventive concepts disclosed herein. Any embodiment may include jump buttons that implement column-based jumps, and/or row-based jumps, and/or sub-matrix-based jumps.
As disclosed above, some embodiments are directed to an apparatus for displaying a data grid. In an illustrative embodiment the apparatus includes a computing processor 154 communicatively coupled to a display screen. The computer processor 154 is configured to display, on the display screen 111, on-screen structured data from the data grid 200, and a set of jump buttons. Each such jump button is associated with a corresponding set of off-screen structured data from the data grid. In operation, the apparatus responds to activation (by a user) of a jump button from the set of jump buttons (which button may be referred-to as the “activated” jump button) by displaying, on the display screen 111, the (previously off-screen) set of structured data associated with the activated jump button.
Moreover, some embodiments are directed to a computer-implemented method of displaying, on a display screen, a data grid. An illustrative embodiment of such a method includes steps of displaying, on the display screen 111, on-screen structured data from the data grid 200, and displaying, on the display screen 111, a set of jump buttons. Each jump button in the set of jump buttons is associated with a corresponding set of off-screen structured data. In response to activation of the jump button, the method displays the (previously off-screen) structured data on-screen 111.
Other embodiments are directed to a tangible, computer-readable storage medium in which is non-transitorily stored program code that, when executed by a computing processor, provides a method of displaying, on a display screen, a data grid, as described above.
As described above, various embodiments improve the display of data on a computer screen by enabling a user to access data quickly, with less effort than required for prior art methods and systems. Unlike the prior art, a jump button allows a user to quickly and accurately bring to the user's screen the data that the user desires, without requiring the user to continuously manipulate a scroll bar and watch as data scrolls by until the desired data appears. Moreover, some embodiments also change the relationship of two or more sets of data, for example by displaying two columns (or rows) without displaying intervening columns (or rows) between them, so that the two columns (or rows) appear immediately adjacent to one another, thereby facilitating easy viewing and comparison of their data.
Consequently, the jump buttons and jump interfaces described herein provide a simply, intuitive and practical way of facilitating access to and view of data by a user.
The following is a list of certain reference numbers used in this document.
100: Computer;
110: Computer monitor;
111: Display screen;
112: Horizontal scroll bar;
123: Vertical scroll bar;
120: Keyboard;
121: Mouse;
130: Housing (or CPU);
150: System;
151: Controller interface;
152: Display interface;
153: Memory;
154: Computer processor;
159: Bus;
160: Flute (e.g., recorder)
161: First tone hole;
162: Second tone hole;
163: Third tone hole;
164: Fourth tone hole;
200: Data grid;
201-207: Rows
211-213; 221-223; 231-233; 241-243: Columns;
310: Jump interface;
311-318: Column jump buttons;
319: Drop-down jump button menu;
321-323: Column button labels;
461: Jump button definition interface;
462: Jump button specification receiver;
464: Jump button rename receiver;
465: Jump button structured data specification receiver;
466 and 467: Intervening data omission control receivers;
611-613: Row jump buttons;
621-623: Row button labels;
811: Sub-matrix jump button;
820: Sub-matrix;
911: Cell-based jump button.
Various embodiments may be characterized by the potential claims listed in the paragraphs following this paragraph (and before the actual claims provided at the end of this application). These potential claims form a part of the written description of this application. Accordingly, subject matter of the following potential claims may be presented as actual claims in later proceedings involving this application or any application claiming priority based on this application. Inclusion of such potential claims should not be construed to mean that the actual claims do not cover the subject matter of the potential claims. Thus, a decision to not present these potential claims in later proceedings should not be construed as a donation of the subject matter to the public.
Without limitation, potential subject matter that may be claimed (prefaced with the letter “P” so as to avoid confusion with the actual claims presented below) includes:
P1. A computer-implemented method of defining a jump button on a system having a display screen, comprising:
receiving, from a user (or a developer), specification of a jump button to be defined (the specified jump button);
receiving, from the user (or the developer), specification of structured data (the specified structured data) to be associated with the specified jump button;
associating the specified structured data with the specified jump button, so that upon later activation of the specified jump button, the system displays on the display screen the specified structured data.
P2. The computer-implemented method of P1, further comprising: receiving from the user (or the developer) specification of a name (the specified name) for the specified jump button, and associating the specified name with the specified jump button, and displaying the specified jump button with the specified name.
P3. The computer-implemented method of P1 or P2, further comprising: receiving, from a user (or a developer), specification of whether to omit intervening columns and/or rows when displaying on the display screen the specified structured data.
Various embodiments of the invention may be implemented at least in part in any conventional computer programming language. For example, some embodiments may be implemented in a procedural programming language (e.g., “C”), or in an object-oriented programming language (e.g., “C++”). Other embodiments of the invention may be implemented as preprogrammed hardware elements (e.g., application specific integrated circuits, FPGAs, and digital signal processors), or other related components.
In an alternative embodiment, the disclosed apparatus and methods may be implemented as a computer program product for use with a computer system. Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a non-transient computer readable medium (e.g., a diskette, CD-ROM, ROM, FLASH memory, or fixed disk). The series of computer instructions can embody all or part of the functionality previously described herein with respect to the system.
Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies.
Among other ways, such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention are implemented as entirely hardware, or entirely software.
The embodiments of the invention described above are intended to be merely exemplary; numerous variations and modifications will be apparent to those skilled in the art. All such variations and modifications are intended to be within the scope of the present invention as defined in any appended claims.
Number | Date | Country | Kind |
---|---|---|---|
201941012062 | Mar 2019 | IN | national |