...
The client UI for the filtering contains a couple of new controls that were not previously available with other input forms, the slider and multi-slider. These controls are useful for layer filtering because they provide an easier way to constrain a numeric value to a certain range. But they’re also different in that they force a value to be chosen, that is a filter that uses a slider for a value will always have that value applied when displaying the layer. This can be important when the table behind the layer contains a number of “sets” of data but only one should be displayed at a time, and the column behind the parameter is used to separate out the data into the various sets. A An example of this could be the year when the data in the table was generated and the user would only want to see a single year at a time, or for a layer with flood levels and you only want to show a single depth.
...
urn:com.cohga.weave.map.filter#1.0
Tags
layer
...
Properties
Name | Type | Required | Description |
id | string | yes | Unique identifier for this filter |
label | string | yes | Text to be displayed to the user to represent this filter |
mapengine | string | yes | The identifier of the map engine the layer to filter belongs to |
layer | string | yes | The identifier of the layer in the map engine this filter applies to |
Sub-tags
Name | Type | Cardinality |
parameter | urn:com.cohga.weave.map.filter#1.0:parameter | 1..n |
parameter
...
Properties
Name | Type | Required | Default | Description |
id | string | yes | A unique identifier for the parameter | |
label | string | yes | The prompt text displayed when user input the parameter value | |
column | string | yes | The name of the column within the layer that this parameter references. | |
controlType | 'text', '‘list', 'radio', ‘check', ‘multicheck’, 'silder’, 'multislider’ | no | 'text' | The UI control to use when displaying the parameter |
dataType | 'boolean', 'float', 'integer', 'string' | no | 'string' | The data type for the parameter |
allowBlank | boolean | no | true | Give the user the choice of an empty value in the listbox (as opposed to a null value) |
value | any | no | The default value of the parameter (except multislider fields) | |
dataSet | no | Where to get the values for a listbox | ||
labelColumn | string | no | Column in the datadefinition that supplies the label of the value to show the user | |
valueColumn | string | no | Column in the datadefinition that supplies the value of the value to use in the SQL | |
scalarparametertype | string | no | 'simple' | 'simple' or 'multi-value' to determine of more than one value can be selected from a list. |
width | integer | no | Set the width of the field | |
minValue | number | yes - for slider and multislider | The minimum value allowed for a numeric field. | |
maxValue | number | yes - for slider and multislider | The maximum value allowed for a numeric field. | |
leftValue | number | no | The initial minimum value for a multislider | |
rightValue | number | no | The initial maximum value for a multislider | |
increment | number | no | The increment to use for fields that support it, the units are dependant upon the field type. | |
trueValue | any | no | The value that equates to "true" in the underlying table, only suitable for checkboxes | |
falseValue | any | no | The value that equates to "false" in the underlying table, only suitable for checkboxes | |
decimalPrecision | number | no | The precision of any numeric fields |
Sub-tags
Name | Type | Cardinality |
list | urn:com.cohga.weave.map.filter#1.0:list | 1..1 - only for radio and multicheck fields |
list
...
Properties
Name | Type | Required | Description |
value | string | yes | Value to be used in the filter |
label | string | yes | Text to be displayed to the user to represent this filter |
checked | string | no | Should this check box be initially checked. Only for list within multicheck field |
Examples
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> <config xmlns="urn:com.cohga.server.config#1.0" xmlns:filtermapfilter="urn:com.cohga.weave.map.filter#1.0" xmlns:data="urn:com.cohga.server.data.database#1.0"> <!-- provide the values for the title names list --> <data:datadefinition id="titles.names"> <datasourcedataconnection datasource="main" table="TITLES" prefix="DISTINCT"> <parameter name="title_name" label="Title Name" column="TITLENAME"/> </datasourcedataconnection> </data:datadefinition> <!-- create a simple list parameter to filter on title name --> <filter<mapfilter:layer id="titles"> <label>Titles</label> <mapengine>main</mapengine> <layer>titles</layer> <parameter id="name" label="Name" controlType="list" scalarParameterType="multi-value" dataSet="titles.names" column="TITLENAME"/> </filtermapfilter:layer> </config> |
Code Block | ||
---|---|---|
| ||
<!-- parameter examples --> <!-- a parameter representing a floating point value between 2.5 and 26 with an increment of 0.5 and default value of 13 --> <parameter id="level"> <label>Level (m)</label> <controlType>slider</controlType> <dataType>float</dataType> <column>Level_mGH</column> <minValue>2.5</minValue> <maxValue>26</maxValue> <value>13</value> <increment>0.5</increment> <decimalPrecision>1</decimalPrecision> </parameter> <!-- a parameter representing an integer value between 2011 and 2019 inclusive with a default minimum of 2015 and default maximum of 2018 --> <parameter id="study_year"> <label>Study Year</label> <controlType>multislider</controlType> <dataType>int</dataType> <column>Study_year</column> <minValue>2011</minValue> <maxValue>2019</maxValue> <leftValue>2015</leftValue> <rightValue>2018</rightValue> </parameter> <!-- multiple grouped check boxes. Note in this case all checked boxes start as checked but if none of the check boxes are checked all items would be displayed as well --> <parameter id="location"> <label>Location</label> <controlType>multicheck</controlType> <column>Location</column> <dataType>string</dataType> <list label="Catchment, Todd" value="Todd Catchment" checked="true"/> <list label="River, Adelaide" value="Adelaide River" checked="true"/> <list label="River, McArthur" value="McArthur River" checked="true"/> </parameter> <!-- single check box. Note in this case since we've set a different true value when this check box is checked the filter applied will be "Location='Adelaide River'" rather than "Location=true" as would be the case if trueValue were not set --> <parameter id="location"> <label>Adelaide River Only</label> <controlType>check</controlType> <column>Location</column> <dataType>string</dataType> <trueValue>Adelaide River</trueValue> </parameter> <!-- radio button --> <parameter id="location"> <label>Location</label> <controlType>radio</controlType> <column>Location</column> <dataType>string</dataType> <value>Adelaide River</value> <list label="Catchment, Todd" value="Todd Catchment"/> <list label="River, Adelaide" value="Adelaide River"/> <list label="River, McArthur" value="McArthur River"/> </parameter> <!-- list box --> <parameter id="location"> <label>Location</label> <controlType>list</controlType> <dataSet>locations</dataSet> <column>Location</column> <dataType>string</dataType> </parameter> <!-- a basic text box. Note this format is discouraged as the user has no way of knowing if the value they're entering is valid and may result in nothing being displayed --> <parameter id="location"> <label>Location</label> <controlType>text</controlType> <column>Location</column> <dataType>string</dataType> </parameter> |
...