1. Field of the Invention
The present invention relates to navigating large spreadsheets of data tables, and more particularly, to the usage of minimap in the navigation of spreadsheets.
2. Description of the Related Art
As more and more data is being made available on the Internet, access to the data is becoming a primary concern for various applications. Data available on the Internet can be represented in different ways, such as spreadsheet, data tables, data grids, text boxes, images, etc. Data available on spreadsheets and data tables are accessed through various application tools. As the amount of data in the data tables/spreadsheets increase, it is becoming increasingly challenging to render the data from a spreadsheet in a comprehensible manner on a display device of a computer system for users to interpret the data. Some applications have tried to circumvent this problem by providing a vertical, a horizontal or both a vertical and horizontal scrollbars for navigation. The user navigates through mounds of data oftentimes rendered beyond the visual portion of the display device using these navigational scrollbars. However, using vertical and horizontal scrollbars is time consuming and cumbersome as the user may have to first navigate horizontally and then vertically or vice versa to view the data. Further, the user might not get complete perspective of the underlying data. To maximize the benefit of horizontal and vertical scrolling, the user should have prior knowledge on the layout and content of the data in the datasheet. Otherwise, the user will have to wade through all the data to determine specific data that the user is looking for.
It is in this context that the embodiments of the invention arise.
Embodiments of the present invention provide methods and system for navigation in a data grid. A first region is defined within a containment window of a display device associated with a computer system, for rendering data using a first data grid. The first data grid includes a plurality of rows and columns for rendering data. The data in the first data grid represents a portion of data in the data grid. A second region within the containment window provides a smaller, visual representation of the data in the data grid. The second region includes a two-dimensional second data grid with a plurality of data portions with each data portion corresponding to a viewable page of data in the first data grid. Each of the data portions is defined by a corresponding row and column in the first data grid. Each of the plurality of data portions in the second region is provided with preview information to identify the content contained therein. A thumb tool within the second region enables selection and navigation to a selected data portion within the second region using the two-dimensional data grid information. The selection and navigation to the selected row and column coordinates in the data portion in the second region enables rendering of the corresponding page of data in the first region starting with the selected row and column. The data in the first region is a subset of the data in the second region and the data in the second region is a subset of the data in the data grid.
The embodiments of the present invention provide navigation to any data portion in the second region by identifying the two-dimensional coordinate information associated with the selected data portion. Each of the data portions within the second region represents a viewable page of data in the data grid. By using data portions to represent pages of data in the data grid, more data can be rendered at the second region and accessed at any given time. Providing a preview of content contained within a data portion enables a user to determine the content and location of corresponding data in the data grid, prior to the actual navigation. This enables a user to make more informed decisions with reference to navigation, making this a more efficient tool for representing and navigating large amounts of data. The embodiments are not limited to spread sheets or data grids, but can be extended to navigate any large document.
It should be appreciated that the present invention can be implemented in numerous ways, such as, methods, a system and an apparatus. Several inventive embodiments of the present invention are described below.
In one embodiment, a computer readable medium with computer executable instructions stored thereon, is disclosed. The computer executable instructions when executed on a computer system display a graphical user interface that enables navigation in a data grid. The graphical user interface includes a first region to render data in a first data grid. The first data grid includes a plurality of rows and columns of data that represents a portion of the data in the data grid. A second region within the graphical user interface provides a smaller visual representation of the data in the data grid. The second region includes a second data grid with plurality of rows and columns for rendering data portions representing a portion of data in the data grid. Each of the data portions in the second data grid represents a viewable page of data from the first data grid. Each of the data portions is defined by a corresponding row and column in the first data grid. A thumb tool within the second region is used to select and navigate to a selected data portion in the second data grid. The navigation to the selected row and column coordinates in a data portion enables rendering of the corresponding page of data from the first region starting with the selected row and column. Each of the data portions in the second data grid provides a preview of data contained therein to enable a user to determine the content of the data portion prior to navigating to the selected data portion and hence to the corresponding data in the data grid. The data rendered in the first region is a subset of the data contained in the second region which, in turn, is a subset of the data in the data grid.
In another embodiment, a computer readable medium with computer executable instructions stored thereon, is disclosed. The computer executable instructions when executed on a computer system display a graphical user interface that enables navigation in a data grid. The graphical user interface (GUI) includes a minimap region for rendering at least a portion of data from the data grid in a two-dimensional grid array. The data in the data grid is associated with at least a pair of coordinates to define location of data within the data grid. The data rendered in the minimap region includes a plurality of data portions rendered in a two-dimensional array. Each of the plurality of data portions stores a page of data from the data grid that can be rendered at a viewport region in a two-dimensional grid. The GUI further includes a data relocation tool defined within the minimap region. The data relocation tool is configured to select and to provide navigation to any selected data portion rendered in the minimap region. The data relocation tool uses the coordinates of the two-dimensional array of the minimap region to identify the location of the selected data portion and to provide the navigation. The navigation to the selected coordinates of the data portion in the minimap region enables rendering of the corresponding page of data from the data grid that is associated with the selected data portion, at the viewport region starting with the selected row and column.
In yet another embodiment of the invention, a method for navigating in a data grid is disclosed. The method includes providing a minimap region within a containment window of a computing system for rendering at least a portion of data from the data grid. The data is rendered at the minimap region in a two-dimensional grid as a plurality of data portions with each data portion in the minimap region representing a viewable page of data in the data grid. The minimap provides a smaller visual representation of the data in the data grid. Each of the plurality of data portions within the minimap region is defined by a row and column in the data grid and provides a preview of data contained therein. The method further includes defining a thumb tool within the minimap region to select and navigate to a selected data portion rendered within the minimap region. The navigation to the selected data portion is based on the selected row and column coordinates. The page of data corresponding to the selected data portion in the minimap region is retrieved from the data grid and rendered at a viewport region upon selection and navigation, starting with the selected row and column of the selected data portion. The data is rendered in a two-dimensional grid and provides comprehensive information of data contained therein.
The embodiments of the invention provide an alternate way to enable navigation in a data grid. The small minimap region provides a visual representation of the underlying pages of data in the data grid enabling access to a large amount of data within a small area. Further, the two-dimensional representation of data in the minimap region enables navigation using a single action instead of navigation using two or more actions. The preview functionality built into each of the data portions in the minimap region enables determining the content of the data portion prior to navigating and rendering at the viewport region making this a more efficient tool for navigation.
Other aspects of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings.
Broadly speaking, the embodiments of the present invention provide methods and systems for navigating a data grid by defining a minimap region within a containment window of a display device of a computer system to render a portion of data from the data grid. The data in the minimap region is associated with a corresponding row and column in the data grid. A thumb tool is defined within the minimap region to select and navigate to various data portions rendered within the minimap region. The corresponding data associated with the selected row and column coordinates of the data portion within the minimap region is rendered at a viewport region defined within the containment window. The viewport region displays the page of data representing the selected data portion in the minimap region starting with the selected row and column.
Towards this end, different ways for navigating through data in a data grid is provided. The data grid includes large amounts of data represented using at least a pair of coordinates. To begin with, a portion of data from the data grid is selected for rendering at a viewport region of a containment window in a two-dimensional grid. The data in the data grid may be of any type that can be represented in a grid format and identified using at least a pair of coordinates. A minimap region is defined within the containment window to render portions of data from the data grid in a two-dimensional grid using row and column coordinates. The minimap region represents a small visual representation of the data in the data grid. A small thumb tool is defined within the minimap region for selecting and navigating to a selected data portion within the minimap region. The thumb tool uses the coordinates to identify and navigate to the location of the data portion in the minimap region and to the corresponding data in the data grid. The data for the selected data portion is retrieved from the data grid and rendered at the main viewport region of the containment window starting with the selected row and column. A preview feature available to the thumb tool and at the minimap region enables identifying contents of the data portions prior to the actual selection and navigation to any data portion within the minimap region so that a user may be able to make informed decisions while navigating through the data in the data grid.
Thus, the embodiments enable navigating through a large data grid that is represented in at least a two-dimensional data array. The preview functionality helps in determining the contents prior to the actual navigation. Additional features, such as tool tips and scrolling at the minimap region enable for faster and more precise access to large amount of data in the data grid.
It should be understood that the features of the embodiments may be in the form of a navigation tool having computer executable instructions that can be executed on a computer system. The computer executable instructions of the navigation tool do not have to be integrally coupled to the computer system but be available to the computer system. Towards this end, the various features and functionalities of the current embodiments will now be described in detail with reference to the drawings.
The minimap region 110 includes portions of data that are representative of the data in the data grid. As a result, the data in the minimap region 110 includes data portions rendered in two-dimensional array similar to the data rendered in the viewport region 100. Each of the data portion in the minimap region 110 encompasses a page of data in the data grid and is defined by a corresponding row and column in the data grid. By representing a page of data in a data portion of the minimap region 110, large amounts of data can be visually captured within a small window enabling easy access to the large amounts of data of the data grid. The two dimensional array includes a plurality of rows and columns. Each column is defined by a column header 140 and each row is defined by a row header 142. A tooltip may be used to provide identification information for the data contained within each data portion and for each column header 140 and row header 142 in the minimap region. The tooltip is a common graphical user interface (GUI) element used in conjunction with a pointer to identify any supplementary information associated with data when hovering over the data. The supplementary information associated with the data, in one embodiment, may include a label that identifies the data contained therein.
A page of data from the data grid is originally rendered at the viewport region 100. The data is rendered in a two-dimensional grid containing a plurality of rows and columns and is representative of the underlying data in the data grid. Each of the columns in the viewport region 100 includes a column header 144 and each of the rows includes a row header 146. The data rendered in the viewport region 100 corresponds to a data portion within the minimap region 110. A user may select a different data portion for rendering based on the identifying information provided at each data portion, at which time corresponding data from the data grid is rendered at the viewport region 100. Additionally, a user may use the column header 140 or row header 142 to jump to specific data portion corresponding to the selected column or row. For instance, the data grid may include data corresponding to TV channel listings with the rows corresponding to TV channels and the columns corresponding to days of the week. The user may wish to view TV show listing for a Thursday of a particular week instead of a Monday that is currently rendered at the viewport region. The user selects the column header for Thursday in the minimap region, at which time, the data from the Thursday listings will be selected using the coordinates and rendered at the viewport region 100.
The navigation tool enables storing of additional data than what can be represented in the visual portion of the minimap region 120 by defining a scrolling feature.
A thumb tool 120 identifies the data portion selected for rendering at the viewport region within the main containment window. A tooltip 130 is rendered alongside the thumb tool providing the identification information of data contained in the selected data portion that is currently rendered at the viewport region 100. In addition to the tooltip, the data rendered at the minimap region includes column headers 140, as shown in
The thumb tool 120 provides the ability to lock into a specific row and column when navigating through the various data portions in the minimap region using the row and/or column coordinates. This feature enables horizontal and vertical navigation within the minimap region. In one embodiment, engaging a shift key while activating a mouse could enable activating the locking feature. In this embodiment, upon locking to a selected row and column, the user can navigate easily along the selected row or selected column while the shift key and mouse are engaged. The locking feature can be reset by disengaging any one of the shift key, mouse or both the shift key and the mouse. It should be noted that the navigation within the minimap region can be accomplished either by dragging the thumb tool to the desired data portion, including a column header and a row header, or by clicking a mouse at the desired location. The dragging operation can be live or delayed. In a live dragging operation, as the thumb tool is engaged and dragged across data portions, the corresponding data is rendered in the viewport region within the containment window reflecting the data in the data grid corresponding to the selected data portion of the minimap region. Each location in the minimap region identifies data portions with column/row markers, such as column/row coordinates, or page markers. In a delayed dragging operation, the data in the viewport region is updated after disengaging the thumb tool. In this instance, the thumb tool is engaged, moved to a new location within the minimap region and then disengaged to indicate the selected data portion. Upon disengagement of the thumb tool the corresponding data from the selected data portion is rendered at the viewport region. Based on the amount of data to be optimized and rendering performance requirements, the thumb tool can be appropriately programmed to include either a live or a delayed option. The aforementioned embodiments have been described for textual data being represented in a two-dimensional array. However, the embodiments are not restricted to textual data but can be extended to represent an image thumbnail of the contents. In the case of image thumbnail, the different portions of the image thumbnail can be identified using a pair of coordinates.
The minimap region may also include “stabilizing” functionality in order to stabilize a click within a threshold level. When a user clicks in the background of the minimap region outside the thumb tool, depending on where the user clicks, the stabilizing functionality will determine the location the user desires to move and move the thumb tool accordingly. For instance, the data within the minimap region may be associated with TV listings and a Thursday listings may be currently selected for rendering at the viewport region. When the user clicks in the background section of the minimap region just below the thumb tool, the stabilizing functionality will recognize the click to be roughly inline with the thumb tool vertically and will effectively scroll down the data grid in the minimap region to the desired location. The stabilizing functionality may use a function, such as a “snap to grid” function, to determine a desired location of navigation and navigate the thumb tool accordingly. Additional features, such as row/column “stickiness” feature, may be used for navigating to a subsequent location within the minimap. For instance, if the stickiness feature is turned on, the thumb tool may have to be moved a certain pre-defined fixed distance from a current row or column in order to recognize the new location of the thumb tool and navigate to the new location.
The number of rows and columns in the minimap region dynamically adjust to the amount of data in the data grid based on one or more filtering options 150 available at the minimap region. For instance, when the amount of data in the data grid is large, the number of rows of data for rendering the data increases to accommodate the data from the data grid. Similarly, if there is less data available at the data grid, the number of rows rendered in the minimap region is less. The filtering options 150 may be driven by the nature of the data in the data grid and can be customized through one or more user options. For instance, with reference to the TV listings data grid illustrated in
The viewport region is part of a visual portion of the containment window and the containment window may include additional informational data, such as advertisements. The additional information rendered in the containment window may be content based or user based. In one embodiment, the size of the minimap region is fixed and does not change when the viewport region or the containment window is re-sized. Keeping the size of the minimap region constant enables the user to easily view the details of the data portion contained therein.
With the above detailed description of the various embodiments, a method for navigating a data grid will now be described with reference to
A thumb tool is defined within the minimap region to select and navigate to a data portion rendered within the minimap region, as illustrated in operation 520. The thumb tool can be defined in various different ways, such as a rectangle box or a distinct highlighted portion, to identify a selected data portion within the minimap area. The thumb tool is used to navigate to any location within and outside of a visual portion of the minimap area by using a scrolling function defined within the minimap region. The scrolling function is activated when the thumb tool is positioned at the right or left edge of the minimap region so that the data portions outside of the visual portion of the minimap may be accessed.
As the user navigates to corresponding coordinate points of the various data portions within the minimap region, the corresponding data from the selected data portions are rendered at the viewport region within the containment window starting with the corresponding row and column of the selected data portion, as illustrated in operation 530. The data from the selected data portions is rendered in a two-dimensional array reflecting the data in the data grid. The data is identified using at least a pair of coordinates, such as row marker or column marker. The row and/or column marker indicators are dynamically calculated using the row and column coordinates. The row and/or column marker indicators may be displayed in the minimap region as row/column headers during relocation of the thumb tool, may be rendered at all times or may be rendered only when the thumb tool is moved. As the thumb tool is moved/dragged across the minimap region or a location is clicked in the background section of the minimap region outside the thumb tool, the corresponding data from the selected data portions are identified based on the row and column coordinates within the minimap region and retrieved from the data grid. The clicking or selection enables location of a point within the minimap using the coordinates and the corresponding data is identified from the data grid using these coordinates. A viewable page of data is dynamically generated using the identified data which is then rendered at the viewport region starting with the corresponding row and column of the selected data portion based on the option associated with a drag operation available at the thumb tool. The options available for a drag operation include “live” or delayed drag operation. When the drag operation is live, the underlying data corresponding to the selected data portion is rendered immediately at the viewport region while the thumb tool is still engaged. When the drag operation is delayed, the corresponding data to the selected data portion is rendered at the viewport region after the thumb tool is disengaged. The drag operation option is selected based on the level of optimizing of data and rendering performance required at the viewport region.
As explained earlier, the number of rows and columns of data rendered in the minimap region is dynamically defined based on a user's preference and the amount of underlying data. For instance, in a TV listings application, the minimap region may be configured to include seven columns to accommodate the days of the week and ten rows for TV channels. Based on the amount of data corresponding to the data portion, the number of rows may dynamically adjust to accommodate the amount of TV listings for that day. For instance, the number of TV channels satisfying a filtering option for Sunday may exceed the 10 rows that are defined for the minimap region. In such case, all 10 rows of data are rendered at the minimap region and the user may be provided with an option to scroll down using the thumb tool to access the additional data available for Sunday. Similarly, if the total number of TV channels for Monday satisfying the filtering option is six, then the number of rows within the data grid in the minimap region is dynamically adjusted to represent the six channels. Thus, based on the underlying data and the filtering options defined for the underlying data, the data grid in the minimap region is dynamically adjusted to provide a proper perspective of the underlying data. The method concludes with the rendering of the data from the data grid corresponding to the selected data portion, at the viewport region of the containment window.
As can be seen, the various embodiments of the invention provide an easy and effective navigation tool to navigate a large data grid using minimap functionality. The various features defined in the minimap region enables fast and precise access to the desired data in the data grid, thereby enriching a user's navigation experience.
It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
Embodiments of the present invention may be practiced with various computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.
With the above embodiments in mind, it should be understood that the invention could employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. The computer readable medium can also be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.