Christopher Schmidt wrote: > On Thu, Jan 17, 2008 at 02:46:04PM +1100, Roald de Wit wrote: > > >> - Control.SelectFeature adds the feature to the array of >> layer.selectedFeatures, it then calls layer.drawFeature(feature) >> - layer.drawFeature checks if the feature is in the list of >> selectedFeatures. If so, it fetches feature.style.select. If not, it >> takes feature.style.default. >> - when layer.drawFeature is called with a second parameter, that can be >> a style object or a name describing the render intent that is used to >> lookup the style from the hash. >> > > Alternatively, Control.SelectFeature -- since it knows that the feature > is being selected -- is the one to check whether the feature has a > 'feature.style.select', and draws it (using drawFeature) with that > style, rather than checking it in drawFeature. The end result is the > same, I think. I prefer for drawFeature to not depend on > selectedFeatures -- in my mind, that array is 'managed' by the > SelectFeature control, so it should be the one doing the logic there. > >
I was thinking about other classes that also draw features, like Control.ModifyFeature. Many of them currently use layer.drawFeature. In the future, they could all use renderer.drawFeature, and just pass the renderIntent. In that case, we could probably avoid code duplication when doing fallback checks in renderer.drawFeature instead of every other class that needs to draw features. Legacy support for style hashes and OpenLayers.Style without a style map should be done in Control.SelectFeature, Control.ModifyFeature etc., because if there is no style map, a style instead of a renderIntent string would be passed to renderer.drawFeature, and those classes might have a style property (like selectStyle in Control.SelectFeature). Does this make sense? Regards, Andreas. _______________________________________________ Dev mailing list [email protected] http://openlayers.org/mailman/listinfo/dev
