1. Statement of the Technical Field
The present invention relates to the field of user interface rendering and more particularly to table rendering and navigation within devices having highly constrained display functionality.
2. Description of the Related Art
The conventional graphical user interface (GUI) has been widely used for many years. The primary function of the GUI includes providing user interface controls with which the end-user can interact with an underlying application. The common GUI includes many stock user interface controls, most of which, when combined, can accommodate most computer-human interactions required by an application. For example, the static text box control can be used to present text to the end-user while an edit box can permit the user to provide textual input to the application. A radio button control can provide for the exclusive selection of an element from among a field of elements, while a table can provide visual structure for organizing data within the GUI.
When user interface controls are displayed in a GUI, one must compromise between the amount of information which can be displayed within the display, and the amount of displayable space within the display in which a preferred amount of information can be presented. Where the display area must be reduced due to dimensional constraints, information that otherwise might be easily grouped and viewed within a larger display space often cannot be presented as a single set of cohesive and interrelated controls. This circumstance has been known to arise in the use of pervasive devices, including handheld computers and portable cellular telephones.
Modern network distributed applications enjoy a user interface typically defined within a markup language based document. Commercially ubiquitous content browsers interpret and render markup to produce the user interface within the display region of the content browser. In this way, the complexity and extent of a user interface defined within markup can be limited only by the display region of the device hosting the content browser. In particular, in the circumstance of a pervasive device, any user interface defined through markup can be somewhat constrained.
Intent based markup languages offer application developers a way to define a set of user interactions within a user interface in a manner which can be characterized as platform, device and application container independent. Tools that assist application developers in creating intent based markup language based documents generally encourage the application developer to capitalize upon a rich set of user interface controls and layouts in order to achieve a desirable user interface on a device capable of rendering a complex user interface. Pervasive devices, however, often are not considered capable of rendering a complex user interface.
Nevertheless, it remains possible to build an application based upon an intent based markup language wherein the user interface of the application can be hosted within both rich client platforms and constrained client devices, such as the personal digital assistant or a cellular telephone. Currently most applications utilize separate Java™ server pages and extensible style sheets to achieve device appropriate renderings. In particular, separate JSP and XSL logic can be defined to appropriately render content in a manner appropriate for a specific target platform and target device. Thus, while the use of JSP and XSL technology can eliminate the requirement to produce duplicate business logic for different platforms and devices, separate JSP and XSL logic still will be required to suitably render and manage an interface within different platforms and devices.
Rendering tables within constrained client devices can be particularly difficult where it is desirable to maintain only a single base markup language document defining the table. Conventional techniques for rendering a table within a constrained environment include removing unnecessary rows and columns from the table as described in U.S. Pat. No. 6,523,040 to Lo et al. Other conventional techniques can include the display of a row in a table as a column to accommodate the vertically oriented displays of cellular telephones, as described in U.S. Patent Application Publication No. 2002/0013165 by Ostergaard. Most rendering techniques involve the default display of a limited number of rows and columns of a table at one time as in U.S. Patent Application Publication 2002/0038384 by Kahn et al. Yet, none of the foregoing references address the problem of managing the navigation of a complex table within a constrained environment.
The present invention addresses the deficiencies of the art in respect to rendering and managing the navigation of a complex table within a limited display and provides a novel and non-obvious method, system and apparatus for enabling complex table navigation, filtering and selecting with the display of a constrained device. A complex table rendering and navigation system which has been configured in accordance with the present invention can include one or more row range views, one or more row views, and one or more record views. Each of the row views can have an association with one of the row range views. Each of the record views can have an association with one of the row views.
A complex table processor can be coupled to an application server and programmed to reduce a complex table into the row range views, the row views and the record views. Moreover, a controller can be configured to map selected events and triggers originating within the views to others of the views. The controller can be further configured to map additional selected events and triggers originating within the views to the complex table. Notably, in a preferred aspect of the invention, a filter management view further can be provided for filtering the rows presented based upon one or more filtering criteria.
A method of enabling complex table navigation in a highly constrained device can include reducing a complex table defined in markup to a row range view, a set of row views and a set of record views. Individual ones of the record views can be navigably linked to selected ones of the row views, and individual ones of the row views can be further navigably linked to selected row ranges disposed in the row range view. Finally, the row range view can be presented responsive to a request to render the complex table in the highly constrained device.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The accompanying drawings, which are incorporated in and constitute part of the this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
The present invention is a table management and navigation system, method and apparatus in which elements of a large, filterable, sortable table can be reduced to manageable, navigable chunks for display and manipulation within the display of a highly constrained device. Notably, the table can be reduced without requiring the modification of the underlying application. The table can be reduced in this manner by introducing a number of new views which collectively represent a consolidated view of the table, and a corresponding controller to handle navigation between the new views. By reducing the table into the manageable, navigable chunks, an end user can effectively navigate the table through the new views in a manner which remains transparent to the underlying application.
A complex table process 120 can be communicatively coupled to the application server 110 so that markup served by the application server 110, and more particularly, the complex table view 150, can be processed within the complex table process 120 prior to the delivery of the complex table view 150 to the limited display device 130. In this regard, the complex table process 120 can reduce the complex table view 150 to a set of progressive table component views 160. Each table component view 160 can be selectively rendered in the limited display device 130 at the command of the end user. Events generated through the interaction with the table component view 160 can be processed first in the complex table process 120. Where the event 170 is unique to the table component view 160 and bear no operable relation to the complex table view 150 such as the navigation between table component views 160, the event 170 can be processed within the complex table process 120. Otherwise, the screened event 180 can be passed to the application server 110 for processing as if the event had arisen through a singular rendering of the complex table view 150.
Importantly, by reducing the complex table view 150 into a set of reduced table component views 160 between which an end user can navigate, the complex table view 150 can be rendered in a way so as to facilitate the management and navigation of the complex table view 150 as a whole. In more particular illustration,
Specifically, the table reduction process 220 can reduce the table defined by the markup language table representation 210 into a view of row ranges, a set of row range views, each row range view reflecting only those rows within a selected ranges, and individual record views. The views can be presented to the end user in a logical order wherein the views can be navigably coupled to one another through a table navigation process 240 so that the end user can navigate from an initial row range view, to a row view corresponding to a selected range, to a record view of a selected row from the row view. Additionally, the presentation of ranges, rows and records can be limited by a table filtration process 250. Finally, a table selection process 260 can provide a mechanism for performing conventional table selection functions upon the rows and records of the table represented in the table component views 230A, 230B, 230n.
To further illustrate the process by which an end user can navigate the table component views 230A, 230B, 230n of
Upon selecting a range of rows in
Notably, in addition to the basic navigation between the component views of the complex table as shown in
In this regard,
Significantly, to achieve the same event model within the application despite the reduction of the complex table into the component views, a controller for the complex table must be enhanced to handle the navigation between the views while remaining transparent to the underlying application. To that end, those events which are unique to the component views and the navigation there between can be processed in the controller and those events which are intended for the complex table are processed accordingly.
The present invention can be realized in hardware, software, or a combination of hardware and software. An implementation of the method and system of the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system, or other apparatus adapted for carrying out the methods described herein, is suited to perform the functions described herein.
A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in a computer system is able to carry out these methods.
Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form. Significantly, this invention can be embodied in other specific forms without departing from the spirit or essential attributes thereof, and accordingly, reference should be had to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.