Creating a custom reusable filtering interface with macro component: An Example"

From Documentation
Line 11: Line 11:
 
Filtering commonly augments data displaying functionality. Users can create multiple views of a single data set based on different filter criteria. As data sets become larger and larger, filtering also helps increase performance and improve usability by reducing the information shown.  
 
Filtering commonly augments data displaying functionality. Users can create multiple views of a single data set based on different filter criteria. As data sets become larger and larger, filtering also helps increase performance and improve usability by reducing the information shown.  
  
Application authors would need to design an user interface to allow users to select their filtering preferences. Take Excel for example. After filtering is enabled, each column header will include a button, when clicked,  displays the filtering configuration dialog box for the respective column. Users can then edit the condition that the data in that column must satisfy in order to be included in the final display.
+
Application authors would need to design an user interface to allow users to select their filtering preferences. Take Excel for example. After filtering is enabled, each column header will include a button, such that when clicked,  displays the filtering configuration dialog box for the respective column. Users can then edit the condition that the data in that column must satisfy in order to be included in the final display.
  
 
In this smalltalk, I created an Excel-like user interface for collecting filtering criteria. The gathered information is then used in the application to perform the actual filtering operation. For simplicity, I assume the original dataset is small enough to fit into memory entirely, and provide a sample implementation for in-memory filtering.
 
In this smalltalk, I created an Excel-like user interface for collecting filtering criteria. The gathered information is then used in the application to perform the actual filtering operation. For simplicity, I assume the original dataset is small enough to fit into memory entirely, and provide a sample implementation for in-memory filtering.

Revision as of 07:19, 17 February 2015

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!


DocumentationSmall Talks2015AprilCreating a custom reusable filtering interface with macro component: An Example
Creating a custom reusable filtering interface with macro component: An Example

Author
Neil Lee, Engineer, Potix Corporation
Date
February xx, 2015
Version
ZK 7.0.4

Introduction

Filtering commonly augments data displaying functionality. Users can create multiple views of a single data set based on different filter criteria. As data sets become larger and larger, filtering also helps increase performance and improve usability by reducing the information shown.

Application authors would need to design an user interface to allow users to select their filtering preferences. Take Excel for example. After filtering is enabled, each column header will include a button, such that when clicked, displays the filtering configuration dialog box for the respective column. Users can then edit the condition that the data in that column must satisfy in order to be included in the final display.

In this smalltalk, I created an Excel-like user interface for collecting filtering criteria. The gathered information is then used in the application to perform the actual filtering operation. For simplicity, I assume the original dataset is small enough to fit into memory entirely, and provide a sample implementation for in-memory filtering.

Live Demo

As an example, law enforcement agencies can use filtering to find trends in criminal activities. For concreteness, criminal records were taken from Sacramento in 2006 [1], which consists of 7,584 offenses. It is also interesting to mark illegal occurrences on google maps.

How it works

In the demo, I use a listbox to display the criminal records in a table. Each column heading contains a button with a filter icon. That button, together with the popup dialog box, is built as a macro component.


User Interface

  • insert FilterConfig macro component in the list header, and handle events to perform filtering
<listheader>
   <filterConfig 
        model="..."
        onFilterChanged="..."
        onFilterCleared="...".../>
</listheader>
  • provides a default template for filter config ui, replaceable by the developer
  • user can define their own template, and specify via popupTemplate argument

Application

  • retrieves available filter models from a service
  • renders filter component based on the filter models retrieved
  • listens to onFilterChanged and onFilterCleared events
  • calls service to filter data based on user choices
  • replace listmodel items to update the UI

Service

(keep brief, provide memory implementation, it should be easy to create database queries based on filter configuration)

  • provides available filter options
  • filter data based on filter configuration

Summary

Download

References

  1. Data source: spatialkey sample


Comments



Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.