Hey- Steve Lime wrote: > Greetings: Has anyone developed alternatives to the basic toolbar controls > that are part > of OpenLayers? I'm interested in 2 or 3 state tools, being able to > enable/disable tools, context > sensitive help (e.g. "use this to ..."), being able to easily swap icon sets. > Stuff like that. > > Or can the Panel class be used to do all that? I didn't see a basic > button/tool control that would > be added to a panel in the docs so I wasn't sure. >
I think you got this answer already - but I wanted to add that I agree that you should push the Control.Panel to do what you want. If you store a reference to a control, you can always call activate/deactivate on it. If that control is part of a panel, call panel.activateControl(control). If that control is TYPE_BUTTON, it's trigger method will be called. If that control is TYPE_TOGGLE, it will be switched active/inactive depending on its current state. Otherwise (TYPE_TOOL), the control will be activated and all other tool type controls on the panel will be deactivated (one TYPE_TOOL control active per panel). The idea was that the panel class could be used to nest panels, giving you menus or nested toolbars/panels. You get your third state (hover) and icons from CSS. This is not perfect (in IE) and somewhat "hard" - largely due to poor docs. But, I think all that you want can be done. There is certainly room for improvement in the panel class - Chris/Schuyler wrote it in about 20 minutes as we sat around Chris' dinner table at about 3am one morning - but the idea is sound. In particular, you might find it handy to have accessor methods for the controls in a panel (get controls by type, by name, by state, etc.). I'd like to do this in a more generic way (see the patch for ticket 1153 if you're interested). Just as it would be handy to be able to get collections (of layers or controls) on a map based on arbitrary criteria, the same would be nice on a panel (or a vector layer - with features for example). When that ticket makes it through the review queue, if the idea has any traction, I'll apply the same to the control panel (and a few other places). Anyway, if you find shortcomings in the panel class (bugs or otherwise), create tickets - I'd like to see it made more useful and I'm happy to write patches. Tim > Thanks- Steve > > _______________________________________________ > Users mailing list > [email protected] > http://openlayers.org/mailman/listinfo/users > > !DSPAM:4033,474c8b11270181431913854! > _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
