Standardized filtering control techniques
First Claim
1. In a first computer system, a method for standardized filtering of data from an arbitrary data provider, the method comprising:
- receiving a first set of data from the arbitrary data provider, said first set of data including a plurality of data objects and a plurality of attributes associated with the data objects, wherein the data objects are constituents of the data set, and wherein the attributes describe the data objects;
displaying the first set of data, together with a plurality of labels and a plurality of filter input areas for receiving from a user of the computer system filter input that is responsive to an attribute of the first set of data, wherein;
each of the plurality of labels describes an attribute of the first data set; and
each of the plurality of filter input areas is associated with a different attribute of the first set of data;
the method further including;
receiving, from the user, filter input into one or more of the plurality of filter input areas, wherein a first filter input area accepts filter input responsive to a first attribute associated with the first filter input area;
sending the filter input to the arbitrary data provider;
receiving from the arbitrary data provider a second set of data, wherein said second set of data is derived by filtering the first data set according to the first attribute with the filter input from the user for the first attribute; and
displaying the second set of data with said plurality of labels and filter input areas.
2 Assignments
0 Petitions
Accused Products
Abstract
A standard user interface enables a user to filter an arbitrary unfamiliar data set intuitively and effectively. The illustrated interface includes a header control presenting labels, filters, and pulldown menus for each attribute of a data set, presented by an associated display control. The control communicates with a data provider through a set of APIs included in the computer'"'"'s operating system. Through these APIs the data provider indicates the labels and menus to be displayed, while the header control passes new filter criteria to the data provider as it is specified by the user. The data provider filters the data set according to the user-specified filter criteria, and returns the filtered data set for display by the display control. Desirably, new filter criteria are passed to the data provider as they are being typed by the user, allowing the data provider to return successively smaller sets of result data, thus giving the visual impression of a shrinking data set. Non-textual filtering criteria can be input using non-textual interfaces, specified by the data providers. The illustrated control is data-agnostic, allowing its standardized use across a wide variety of data types and data providers.
130 Citations
53 Claims
-
1. In a first computer system, a method for standardized filtering of data from an arbitrary data provider, the method comprising:
-
receiving a first set of data from the arbitrary data provider, said first set of data including a plurality of data objects and a plurality of attributes associated with the data objects, wherein the data objects are constituents of the data set, and wherein the attributes describe the data objects;
displaying the first set of data, together with a plurality of labels and a plurality of filter input areas for receiving from a user of the computer system filter input that is responsive to an attribute of the first set of data, wherein;
each of the plurality of labels describes an attribute of the first data set; and
each of the plurality of filter input areas is associated with a different attribute of the first set of data;
the method further including;
receiving, from the user, filter input into one or more of the plurality of filter input areas, wherein a first filter input area accepts filter input responsive to a first attribute associated with the first filter input area;
sending the filter input to the arbitrary data provider;
receiving from the arbitrary data provider a second set of data, wherein said second set of data is derived by filtering the first data set according to the first attribute with the filter input from the user for the first attribute; and
displaying the second set of data with said plurality of labels and filter input areas. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
displaying a query user interface, wherein the control is displayed within the query user interface;
receiving query input from a user of the computer system, wherein the query input is used to sort the first data set prior to the displaying of the first data set.
-
-
4. The method of claim 1 wherein the first and second data sets are row/column tables of data objects, wherein each column represents one of said attributes and each row represents a single data object.
-
5. The method of claim 1 further including:
-
timing elapsed time since filter input was last provided to the data provider; and
sending any new filter input to the data provider when said elapsed time exceeds a predefined threshold interval, or when a user explicitly initiates a sending step, whichever comes first.
-
-
6. The method of claim 5 further including receiving from the arbitrary data provider the predefined threshold interval, wherein the predefined threshold duration is set to balance user-responsiveness with time required for said arbitrary data provider to filter data.
-
7. The method of claim 1 in which at least one filter input area includes a text string, wherein the text string is displayed inside said filter input area, and wherein filter input is a change to the text string in one or more of the plurality of filter input areas.
-
8. The method of claim 1 which includes transferring filter instructions, and providing sets of data, in accordance with a predetermined applications programming interface.
-
9. The method of claim 8 wherein the applications programming interface includes functions for (a) setting a filter, (b) getting a filter, (c) showing/hiding all filters, (d) setting the parent to which notifications are sent, and (e) setting the duration of the filter timer;
- and includes function calls for (a) telling the arbitrary data provider that a filter has been changed, (b) requesting that the arbitrary data provider return a pulldown menu, (c) telling the arbitrary data provider that an operator was chosen, and (d) telling a parent that a filter has started or finished being edited.
-
10. The method of claim 1 wherein the arbitrary data provider is located in the memory or storage of the first computer system.
-
11. The method of claim 1 wherein the arbitrary data provider is located in the memory or storage of a second computer system, said second computer system being in communication with the first computer system.
-
12. In a computer system, a method for displaying on a display device a control window area used to filter data in a first data set, the method comprising:
-
receiving from an arbitrary data provider a first data set, wherein the first data set includes a plurality of data objects and a plurality of attributes associated with the data objects;
displaying the first data set in the control window area, together with a plurality of labels, a plurality of pulldown menu buttons, and a plurality of filters, wherein;
each label describes an attribute of the first data set, each label is associated with a pulldown menu button, each filter is associated with an attribute of the first data set, and at least one filter receives input used to modify the first data set according to the attribute with which said filter is associated;
in response to the actuation of a pulldown menu button next to a labeled attribute, displaying a pulldown menu whose contents are provided from the arbitrary data provider, wherein the arbitrary data provider supplies one or more attribute-specific filtering options displayed in the pulldown menu, whereby the arbitrary data provider elicits from a user of the computer system input responsive to the one or more attribute-specific filtering options for the labeled attribute;
receiving input from the user responsive to the pulldown menu;
sending said input to the arbitrary data provider;
receiving from the arbitrary data provider a second data set, wherein the second data set is derived by sorting the first data set according to the input; and
displaying the second data set. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer storage medium having instructions thereon causing a computer programmed thereby to:
-
issue a filtering command to a data provider in response to user input;
receive responsive results from the data provider;
set a timer to a batch duration value that reflects a balance between visual display response speed and data provider response performance;
display the responsive results;
accept user input and store in a batch;
forward the batched user input to the data provider when the timer expires, or when the user explicitly instructs the batched input be forwarded, whichever occurs first;
receive modified results from the data provider; and
display the modified results. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A data filtering system comprising computer executable instructions stored on a storage medium, said instructions providing:
-
means to invoke a parent window, said parent window receiving a data set for display from an arbitrary data provider;
means to invoke a generic filtering control, said generic filtering control receiving into one or more filters user input for filtering the data set; and
means for indirectly communicating between said generic filtering control and said arbitrary data provider through said parent window, said generic filtering control responding to messages that request performance of operations involving the one or more filters, said generic filtering control sending notifications describing user input events, said arbitrary data provider filtering the data set based upon the user input and according to a filtering technique selected by said arbitrary data provider.
-
-
25. In a method of querying a data provider, an improvement comprising:
-
presenting a query filter interface for facilitating filtering a data set according to a first attribute of the data set, the data set including a plurality of data objects and a plurality of attributes associated with the data objects, the first attribute including a plurality of selectable values capable of non-textual presentation to a user;
presenting a non-textual selector, said non-textual selector comprising a non-textual presentation of the plurality of selectable values for the first attribute, wherein presenting each of the plurality of selectable values occurs without presenting a textual depiction of the selectable value to the user; and
issuing search criteria to the data provider in accordance with a value for the first attribute selected by the user through said selector;
wherein said selector is provided to the query filter interface by the data provider rather than being coded into the query filter interface. - View Dependent Claims (26)
-
-
27. In a computer system having a user interface including a display and a user interface selection device, a method of formulating a query to a data provider and for presenting results of the query, comprising the steps:
-
(a) identifying a set of data attributes corresponding to said data provider;
(b) presenting labels for said attributes in first fields of the graphical user interface;
(c) receiving from a user of the computer system, in second fields adjacent to said first fields, data entry responsive to one or more of said attributes, wherein each of said second fields corresponds to a different attribute;
(d) querying the data provider to identify data objects having attributes matching said received data entry; and
(e) presenting results of said query in the user interface, organized so that labels for attributes of the identified data objects are presented in association with the first fields associated therewith. - View Dependent Claims (28, 29, 30, 31)
the first fields are arranged in a first row;
the second fields are arranged in a second row beneath the first row; and
data objects identified by said query are displayed in successive rows beneath the second row.
-
-
30. The method of claim 27 in which the identifying step includes obtaining said set of data attributes from the data provider, rather than from coding integral with said graphical user interface.
-
31. The method of claim 27 which includes issuing two or more query requests to the data provider as data entry is received in a single one of said second fields, the second of said requests being more detailed than the first.
-
32. A method of formulating a query to a data provider in a computer-based system, comprising:
-
enumerating in a unique value list plural unique values of an attribute with which the unique value list is associated, wherein for at least one of the plural unique values plural data objects have the unique value;
receiving first filter criteria from an interactive interface;
receiving second filter criteria from said interactive interface;
querying the data provider to identify data objects whose attributes match both said first and second filter criteria, wherein a logical ANDing of said first and second filter criteria is effected; and
wherein at least the first of said filter criteria comprises a plurality of criteria selected from the unique value list, said plurality of selections being logically ORed together to form said first filter criteria.
-
-
33. In a computer system, a method for displaying on a display device a control window area used to filter data in a first data set, the method comprising:
-
receiving from an arbitrary data provider a first data set, wherein the first data set includes a plurality of data objects and a plurality of attributes associated with the data objects;
displaying the first data set in the control window area, together with a plurality of labels, and a plurality of pulldown menu buttons, wherein;
each label describes an attribute of the first data set, and each label is associated with a pulldown menu button;
in response to the actuation of a pulldown menu button associated with a labeled attribute, displaying a pulldown menu whose contents are provided from the arbitrary data provider, wherein the arbitrary data provider supplies one or more attribute-specific filtering options displayed in the pulldown menu, whereby the arbitrary data provider elicits from a user of the computer system input responsive to the one or more attribute-specific filtering options for the labeled attribute;
receiving input from the user responsive to the pulldown menu;
sending said input to the arbitrary data provider;
receiving from the arbitrary data provider a second data set, wherein the second data set is derived by sorting the first data set according to the input; and
displaying the second data set. - View Dependent Claims (34, 35, 36)
-
-
37. In a computer system, a method for filtering visually displayed data, the method comprising:
-
setting a timer to a batch duration value that reflects a balance between visual display response speed and data provider response performance;
accepting user input and storing in a batch, the batched user input for a filtering command to a data provider;
forwarding the batched user input to the data provider when the timer expires, or when the user explicitly instructs the batched user input be forwarded, whichever occurs first;
receiving responsive results from the data provider; and
displaying the responsive results. - View Dependent Claims (38, 39, 40)
receiving a timing parameter from the data provider; and
setting the timer to the batch duration value in accordance with said timing parameter.
-
-
41. In a computer system, a method for batching user input so as to balance visual display response speed and data provider response performance, the method comprising:
-
setting a timer to a batch duration value that reflects a balance between visual display response speed and data provider response performance;
accepting user input and storing in a batch, the batched user input for a filtering command to the data provider;
receiving results from the data provider, the results responsive to the batched user input; and
displaying the results.
-
-
42. A computer readable medium strong instructions for performing a method for batching user input so as to balance visual display response speed and operation response performance, the method comprising:
-
setting a timer to a batch duration value that reflects a balance between visual display response speed and operation response performance;
accepting user input and storing in a batch, the batched user input for a parameter for an operation;
sending a communication to an operation provider when the timer expires or when the user explicitly instructs the batched user input be forwarded, whichever occurs first;
receiving results from the operation provider, the results responsive to the batched user input; and
displaying the results. - View Dependent Claims (44, 45, 46, 47)
resetting the timer when the communication is sent to the operation provider.
-
-
46. The computer readable medium claim 42 further comprising:
resetting the timer each time user input is accepted from a user.
-
47. The computer readable medium claim 42 further comprising:
-
receiving a timing parameter from the operation provider; and
setting the timer to the batch duration value in accordance with said timing parameter.
-
-
43. The computer readable medium 42 wherein the communication comprises a parameter change notification indicating availability of batched user input for retrieval by the operation provider.
-
48. A computer readable medium storing instructions for performing a method of presenting a custom control in a data filtering interface of a computer system, the method comprising:
-
presenting a data filtering interface that facilitates filtering a data set according to user input, the data set including a plurality of data objects, the data filtering interface providing a custom control area;
receiving custom control information from aprovider, the custom control information indicating appearance and behavior of a custom control within the custom control area; and
presenting the custom control within the custom control area based upon the received custom control information, the custom control usable to enter user input for filtering the data set, wherein the provider specifies presentation of the custom control within the custom control area provided by the data filtering interface. - View Dependent Claims (49)
-
-
50. A method of operating a generic filter control during filtering of a data set, the data set displayed in a window of a graphical user interface on a computer system, the method comprising:
-
invoking a generic filter control usable with any one of plural different types of data providers, wherein the generic filter control includes one or more filters, each filter operable to enter user input relating to filtering a data set provided by a data provider;
responding by the generic filter control to a request to perform an operation involving a value of one or more filters, the request originating from the data provider; and
sending by the generic filter control a communication that describes a user input event, the communication sent for the data provider. - View Dependent Claims (51, 52, 53)
-
Specification