[Users] Load combo, FeatureStore and filter values

Matt Priour mpriour at kestrelcomputer.com
Wed Nov 2 15:38:45 CET 2011


You’re going to want to use an ArrayStore for that “COUNTRY” combo box, not the feature store.
If you use the feature store and filter unique countries, you will also be filtering the grid.
Provide the array returned by the ‘collect’ method (http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-collect) on the feature store to the ArrayStore’s loadData function.
Put a listener on the combo box for the ‘select’ event that uses the selected value to filter the feature store is you want to limit feature records by that value.
If you are just looking to do linked combos, and not do any filtering or only filter after the user has made a series selections from linked combos, then you should have the ‘select’ listener for the first combo box ‘query’ (http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-query) the feature store and either directly use the returned collection in the linked child combo box(es) or further process the collection to unique values for a simple array store backed combo box

Matt Priour


From: Jorge Lopez 
Sent: Wednesday, November 02, 2011 5:22 AM
To: users at geoext.org 
Subject: [Users] Load combo, FeatureStore and filter values

Hello everyone: 



I am driving mad with this problem. I am doing a web application with OpenLayers, ExtJs and GeoExt and the simple fact to load values in a combo have become hard. 

Step1: I have defined a featurestore that stores the records from a layer in Geoserver. No problem to load these items in a GeoExt gridPanel. This store has been generated with this code:



----

store = new GeoExt.data.FeatureStore({

                        layer: wfslayer,

                        fields: [

                             {name: 'PLANT', type: 'string'},

                             {name: ‘COUNTRY’, type: ‘string’},

                            {name: ‘STATUS', type: 'string'},

                            {name: 'long', type: 'float'},                                                                  

                            {name: 'lat', type: 'float'},

                        ],

                            proxy: new GeoExt.data.ProtocolProxy({

                                    protocol: new OpenLayers.Protocol.WFS({

                                 //version: "1.0.0",

                                               srsName: 'EPSG:900913', 

                                             url: "http://localhost:8080/geoserver/wfs",

                                             featureNS: 'http://localhost:8080/wfs',

                                               featurePrefix: nomPrefix,

                                               featureType: nomLayer,

                                               geometryName: nomGeometry,

                                               schema: http://localhost:8080/geoserver/wfs?service=WFS&request=DescribeFeatureType&typename=lonlat22"

                                                                                  })

                                                           }),        

                                               autoLoad: true

                                   });

--



This store has records with fields (COUNTRY) that contains repeated values and I would like to filter that store by this field: COUNTRY. For that, I have created a ComboBox and I am trying to show only “no repeated” values but no success. 



var combo1=new Ext.form.ComboBox({  

                                               fieldLabel:'Filtro Pais',  

                                               name:'cmb-P',  

                                               forceSelection: true,  

                                               store: store,   

                                               emptyText:'Escoge un país',  

                                               triggerAction: 'all',  

                                               //allQuery: 'DISTINCT',

                                               editable:false,  

                                               displayField:'COUNTRY',  

                                               valueField: 'COUNTRY'  

                                   });  

This combo shows a list of all (repeated) values from store. This a question of ExtJS forum but I would appreciate if anyone knew how to filter it out. 



Once a country is selected from combo, I would like to be shown the STATUS associated to that selected COUNTRY. This is a question of anidated combos but I don’t know how to ‘featurefilter’ config tag would be entered in this problem. 



Any ideas? 



Thanks in advanced



Jorge



--------------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users at geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20111102/2c69cd00/attachment.htm 


More information about the Users mailing list