class WFSQueryController implements QueryRegionListener, EventListener<ActiveDataGroupsChangedEvent>, ListDataListener<TimeSpan> {

    @Override
    public void queryRegionAdded(QueryRegion region)
    {
        Collection<WFSDataType> wfsLayers = CollectionUtilities.filterDowncast(myTypeController.getDataTypeInfo(),
                WFSDataType.class);
        for (DataTypeInfo wfsLayer : wfsLayers)
        {
            if (wfsLayer.isVisible())
            {
                Collection<? extends TimeSpan> timeSpans = myTimeManager.getLoadTimeSpans();
                if (wfsLayer.getTimeExtents() == null || wfsLayer.getTimeExtents().getExtent().isTimeless())
                {
                    timeSpans = New.list(TimeSpan.TIMELESS);
                }
                myGovernorManager.requestData(new Pair<DataTypeInfo, QueryRegion>(wfsLayer, region), timeSpans);
            }
        }
    }

    public  WFSQueryController(Toolbox toolbox);

}