I’m going to discuss briefly my thoughts on OLArchitect’s Theme / CSS system. I have not yet finished the control and panel configuration completely (but I have finished the configuration of all the basic controls), but I am far exceeding my expectations so far. My current progress occasionally encourages me to consider how I am going to implement themes. As is stands, I plan to work on custom styles / themes last, but I think it’s good to take the time to figure out more specifics as I continue programming. While having a solid project plan is essential, I do not believe that should always be strictly followed, especially if it hampers development. Thus, I’ve adjusted my plan numerous times, and while I may make a horrible project manager, I think my project as a whole is much better off. I do think I will deviate any more from my plan, and everything is going great so far – but I have not planned out in detail how I will implement custom themes, for the very reason that I am writing this post. Personally, if I plan out every detail I feel constrained, so I tend to generalize things then work out specifics as they come to me.
My themeing system is not overly complicated. I basically have my program generate CSS and appropiate classes based on a selected or user generated theme. I want the project to be extensible as possible, so every element in openlayers that can be assigned a custom class will be assigned one. Any button control should also have the option of being assigned a custom button, but I have not yet determined the best way to approach this – I think it may be best to provide the option to set the button’s graphic when the control is created, as well as when the theme is configured, but I will reserve my judgment until I get to that point. I previously posted a link to jquery’s roll your own style, and I plan to implment color selection in a similar manner.
So, the jist of this post is that I’m not a fan of having a concrete, unchangable project plan (it’s 2008, adapation is a necessary trait) and my revised project plan is as follow:
Controls – Map - Create JS / CSS – Theme – Usability
Finish control configuration (sometime next week)
Finish Map Configuration (sometime in the follow week)
Implement javascript / CSS generator, output code to create an OpenLayers map
Create Theme Configuration, tie in with CSS theme generation
Work on usability issues – polish site, add help information to configuration options, get user feedback
I plan to have the above completed by the end of Google’s Summer of Code, and I am excited to continue development, as I plan to implement a community aspect (not necessarly a facebook for GIS, but a place where these generated maps can be shared) after GSoC 2008 ends.

