Hi mailing list!

I'm trying to build my own control to enable the user to query some  
information depending on where he clicked.
Now I'd like to add this control to my panel and change between  
normal navigation and query mode.

Unfortunately there are two problems with it:
The first is that the class for the control element in my panel  
doesn't change to olControlODAQueryItemActive when I click it,  
although the
event is registered.
The second is that I don't really know how to unregister it so that  
normal navigation is possible again.

Oh, okay, there's just another problem that came to my mind:
I'd also like it to unregister all default mouse handlers upon  
activation, so that you can't navigate in query mode.

Thank you in advance!


Regards,

Pascal



This is the code of my control:
// Query Control
var query_control = new OpenLayers.Control();
OpenLayers.Util.extend(query_control, {
        displayClass: 'olControlODAQuery',
        type: 3,
        activate: function() {
                map.events.registerPriority("click", map, function(e) {
                        alert("This is the click event handler!");
                        
                        var lonlat = map.getLonLatFromViewPortPx(e.xy);
                        if (map.getZoom() < 3)
                                var url = 
'http://odamap.hacksrus.net/gidbylatlon.rb? 
query=province&lat=' + lonlat.lat + '&lon=' + lonlat.lon;
                        else
                                var url = 
'http://odamap.hacksrus.net/gidbylatlon.rb? 
query=district&lat=' + lonlat.lat + '&lon=' + lonlat.lon;

                        new OpenLayers.Ajax.Request(url, {
                          method: 'get',
                          onSuccess: function(transport) {
                                        if (transport.responseText == '') {
                                                alert("Please select a region 
within Mozambique!");
                                        }       else {
                                                var district = 
transport.responseText;

                                        
window.open('http://www.odamoz.org.mz/reports/ 
rpt_district1.asp?district='+ district + '&DONOR=',
                                                        "ODAmoz Query Results",
                                                        
"menubar=no,width=800,height=600,toolbar=no,scrollbars=yes");
                                }
                                },

                                onFailure: function(transport) {
                                        alert("Could not get information from 
database. Please try again  
later.");
                                }
                        });
                        return true;
                });
        },
        
        draw: function() {
        },
                                                                
        CLASS_NAME: "OpenLayers.Control.ODAQuery"
});


_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to