Everybody has a personal standard. We all like to think it’s pretty good. but sometimes we do a piece of work and we feel that we excel way above those standards. Last night was one of those for me.
I was leaving work until 6:30, and my boss wanted to talk about adding some functionality to allow us to a UI that start/stops individual things, so that it could also start/stop many things. But the UI is currently tree based, so how could this be achieved…
Fortunately I’d based the UI to look very much like Windows Explorer/Control Panel and finally I had a reason to implement search, the box in the top right. This way I could search for a set of processes, and then start/stop all. Even better the UI was shared with a personal project I was working on that wanted context sensitive search too, so at 8pm I rolled my sleeves up, sat down, and everything just worked perfectly.
First I implemented something that was so close to ICommandSource, that when I came across it, it seemed a perfectly natural progression. Later I realised why ICommandSource exists but not all controls use it, so I dropped the interface and kept the intent. I was struggling to correctly watermark the search box until I came across DataTrigger and only one StackOverflow search to find out why it wasn’t working properly.
Suddenly I realised I’d taken a simple restyling of a NavigationWindow into a new control, I’d investigated and learned new features, I’d worked inside an MS framework, and had decided when was best to follow other standards that closely align but not slavishly dictate the framework where it was of no value. I’d even sorted out a nasty bug that I’ve been struggling with for days, just by glimpsing at it. I was on fire. I just need to make sure I can carry on like this to see if I can get my personal standard up even higher.
I’ll follow this up with some posts describing this UI control, but for now you can see my previous post on RedGreenRefactor to see an example of this.