FilterViewer
Identifier: 
net.refractions.udig.ui.filterViewer
Since: 
1.3.2
Description: 
Extension Point for creating a custom Filter or _expression_ viewer
Configuration Markup:
<!ATTLIST extension
point CDATA #REQUIRED
id    CDATA #IMPLIED
name  CDATA #IMPLIED
>
Used to contribute additional viewers for use with the OGC Filter specification. Filter Viewers are avaialble in two flacours: FilterViewers used to select content (for use or display) ExpressionViewers used to generate a value on demand (for use when defining a Filter, or defining a Color when used in rendering).
<!ATTLIST filterViewer
id          CDATA #IMPLIED
name        CDATA #REQUIRED
class       CDATA #IMPLIED
description CDATA #IMPLIED
>
- id -
- name - Display name shown to users allowing them to select this filter viewer. Example: CQL or Include
- class -
- description - Quick description of this viewer allowing the user to choose.
<!ATTLIST expressionViewer
id          CDATA #IMPLIED
name        CDATA #REQUIRED
class       CDATA #IMPLIED
description CDATA #IMPLIED
>
- id -
- name - Display name shown to users allowing them to select this _expression_ viewer. Example: CQL or Crayons
- class -
- description - Quick description of this viewer allowing the user to choose.
Examples: 
To contribute additional viewers into your application use the extension point as shown below:
<extension id="net.refractions.udig.tutorial.viewers"
           point="net.refractions.udig.ui.filterViewer"
           name="Custom Filter Viewers">
    <filterViewer
        id="roadCondition"
        name="Road Condition"
        class="net.refractions.udig.tutorial.viewer.RoadConditionFilterViewerFactory"
        description="Filter sample road dataset using a graphical display of road condition"/>
    <expressionViewer
        id="crayons"
        name="Crayons"
        class="net.refractions.udig.tutorial.viewer.CrayonExpressionViewerFactory"
        description="Define color using all the crayons in the box"/>
</extension>
API Information: 
To contribute a filter viewer you will need to provide an implementation of IFilterViewer (used to edit a provided Filter) and FilterViewerFactory used to determine when your FilterViewer can be succcessfully applied. Several FilterViewers are available out of the box. You may use these as a starting poitn for your own implementation. IncludeFilterViewer is an easy to follow example offering two toggle buttons allowing users to enable or disable content. To contribute an _expression_ viewer you will need to implement IExpressionViewer and ExpressionViewerFactory. RGBExpressionViewer is an easy to follow example allowing the user to edit a Color using red, green and blue values.
Supplied Implementation: 
To use a FilterViewer in your own code you can either use the implementation directly; or offer the user a choice by dropping in the general purpose DefaultFilterViewer (which allows the user to switch between the avaialle implementations using a combo box).