On Fri, Nov 21, 2008 at 11:36:59AM -0500, Stephen Woodbridge wrote: > I have an idea that might be a useful extension to the Permalink control > that would allow it to support arbitrary additional parameters. It would > involve adding a callback to the control creation and adding an > additional method(s) for setting the additional argument values. > > Usage would be something like this: > > var plink = new OpenLayers.Control.Permalink( > "permalink", base, {}, mycallback); > > map.addControl(plink);
The third argument of controls is an options hash. All options hashes in OpenLayers extend the default/base object properties and methods -- any 'key' in the option hash will override the corresponding key on the class you're using. With the existing code, this means that you can do the following: * Create a new myCreateArgs function: function myCreateArgs() { var args = OpenLayers.Control.Permalink.prototype.createParams.apply( this, arguments ); args['myOption'] = myOptionSetting; } * Pass this in to the argumets hash, overriding the createParams function: var plink = new OpenLayers.Control.Permalink(null, null, {'createParams': myCreateArgs}) * When something changes, call plink.updateLink(); > And then, when the page is reinstantiated, the argParser would call: > > if (this.callback) { > this.callback(args); > } You can already create a customized ArgParser class and pass it to your Permalink, but I'm not even sure that you should be parsing these things in the argParser -- just parse them in your init() code instead, no need to do any modifications or subclassing. Regards, -- Christopher Schmidt MetaCarta _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users