The ongoing DateField component saga....
So I'm still working on building a new date entry field for out swing application. I do like have a small constrained problem like this, especially one that can be built completely out of the main development pipeline.
While as "good" developers we always want to build reusable components with fantastic public APIs that are self documenting and completely consistent, we don't often have the time to do this. My current date field project is one of those rare occasions when I find I have the time and the scope to be able to do just that. What I am finding though is that it's much harder than you would think.
How often do you, on your own, get to practice the art of producing perfectly atomic components? Well I don't know about you, but this is rare for me. You cannot rely on specific usage senarios. This is made even more difficult by the fact that this is a Swing component, inheriting off of JTextField, so I am having to consider what functionality from the super class I am going to support, and therefore have to test and maybe override to make safe for use in this context.
Whatever your feelings on this, perhaps you think that I am just stupid and that this should be a no brainer, I am finding this an amazingly useful exercise. It's setting me thinking about how I programme, in a way that is unusual for me, and really, no matter how that happens, surely that is a good thing.
On a side note, I realise that yesterdays post about Web Service interoperability went off on a bit of a tangent, but I am going through one of those phases where a concept is stuck in your head and just keeps poping up at you from all over the shop.
The idea of programming to surfaces, nebulus though that statement is, just keeps on appearing. While I wrote about the ideas of Jaron Lanier, what I also realised is that this is linked to the ideas about the brain that Steve Grand puts forth in his book that I also wrote about yesterday.
I have this annoying little itch in the back of my mind that keeps making me think that there is something important in this idea, but I just cannot figure out what. Any suggestions more than welcome, comment away.....