Wrap and configure an OpenGeo GXP QueryPanel. OpenGeo GXP are high-level GeoExt components that can be used in Heron as well. A GXP QueryPanel allows a user to construct query conditions interactively. These query conditions will be translated to WFS Filters embedded in an WFS GetFeature request. Results may be displayed in a Heron.widgets.search.FeatureGridPanel, see example configuration.
Sample code showing how to configure a Heron GXP_QueryPanel. Here within a SearchCenterPanel, through a search button (binoculars) within the MapPanel Toolbar. This Panel is mostly used in combination with the Heron.widgets.search.FeatureGridPanel in which results from a search are displayed in a grid and on the Map. Both Panels are usually bundled in a Heron.widgets.search.SearchCenterPanel that manages the search and result Panels. See config example below.
{type: "zoomprevious"},
{type: "zoomnext"},
{type: "-"},
{
type: "searchcenter",
// Options for SearchPanel window
options: {
show: true,
searchWindow: {
title: __('Query Builder'),
x: 100,
y: undefined,
layout: 'fit',
width: 380,
height: 420,
items: [
{
xtype: 'hr_searchcenterpanel',
id: 'hr-searchcenterpanel',
hropts: {
searchPanel: {
xtype: 'hr_gxpquerypanel',
header: false,
border: false,
spatialQuery: true,
attributeQuery: true,
caseInsensitiveMatch: true,
autoWildCardAttach: true
},
resultPanel: {
xtype: 'hr_featuregridpanel',
id: 'hr-featuregridpanel',
header: false,
border: false,
autoConfig: true,
exportFormats: ['XLS', 'WellKnownText'],
hropts: {
zoomOnRowDoubleClick: true,
zoomOnFeatureSelect: false,
zoomLevelPointSelect: 8,
zoomToDataExtent: true
}
}
}
}
]
}
}
}
];
mportant is to also enable your WMS Layers for WFS through the metadata object. ee the examples DefaultOptionsWorld.js, for example the USA States Layer (only ‘fromWMSLayer’ value is currently supported):
new OpenLayers.Layer.WMS(
"USA States (OpenGeo)",
'http://suite.opengeo.org/geoserver/ows?',
{layers: "states", transparent: true, format: 'image/png'},
{singleTile: true, opacity: 0.9, isBaseLayer: false, visibility: false, noLegend: false, featureInfoFormat: 'application/vnd.ogc.gml', transitionEffect: 'resize', metadata: {
wfs: {
protocol: 'fromWMSLayer',
featurePrefix: 'usa',
featureNS: 'http://usa.opengeo.org',
downloadFormats: Heron.options.wfs.downloadFormats
}
}
}
),
The downloadFormats specifies the outputFormats that the WFS supports for triggered download (via HTTP Content-disposition: attachment) that the WFS supports. Currently only GeoServer is known to support “triggered download”.
Heron.options.wfs.downloadFormats = [
{
name: 'CSV',
outputFormat: 'csv',
fileExt: '.csv'
},
{
name: 'GML (version 2.1.2)',
outputFormat: 'text/xml; subtype=gml/2.1.2',
fileExt: '.gml'
},
{
name: 'ESRI Shapefile (zipped)',
outputFormat: 'SHAPE-ZIP',
fileExt: '.zip'
},
{
name: 'GeoJSON',
outputFormat: 'json',
fileExt: '.json'
}
];
Configuration properties in addition to those listed for gxp.QueryPanel.
Boolean Should search strings (LIKE comparison only) for attribute queries always be pre/postpended with a wildcard ‘*’ character? Default is "false".
Boolean Should Comparison Filters for Strings do case insensitive matching? Default is "false".
Array Optional array of explicit download formats (mainly GeoServer-only) to set or overrule any downloadFormats in the Layer metadata.wfs properties. Default is null (taking possible values from the Layer metadata).
String How should the layer names be sorted in the selector, ‘ASC’, ‘DESC’ or null (as Map order)? default value is ‘ASC’ (Alphabetically Ascending).
Public methods in addition to those listed for gxp.QueryPanel.
Called just before Panel is destroyed.
Called when Panel has been rendered.
Called when parent Panel is hidden in Container.
Called when parent Panel is shown in Container.
Function to call when search is complete. Default is to show “Search completed” with feature count on progress label.
Called when remote search (WFS) query has started.
Issue query via GXP QueryPanel.
Cancel search in progress.