WPF Chrome Tabs Functioning

Finally, a usable custom WPF tab control.

Back on 2 March and 3 March, I wrote about the WPF tab control based on the tabs found in the Google Chrome browser that I had started in the wpfchrometabs project on GitHub.

Well, I spent some time on it, this week, to make it usable. For you.

  • Close buttons for each tab
  • A nice little add button
  • Tab reordering with graceful animations
  • A bunch of little bug fixes

Building a Web Grid - Part 5

In which I disucss the editors in grijq.

I wanted to have a “pluggable” editor system for the grid so programmers could customize the widgets that appear in the cell when editing begins. This post discusses how to create a custom editor and use it in grijq.

Building a Web Grid - Part 4

In which I disucss navigating grijq with the keyboard.

I think this is the most interesting part of the grid. This feature required two different things: the ability to focus on a grid cell and the ability to capture navigation keys to move the selected cell.

Building a Web Grid - Part 3

In which I disucss the column resizing in grijq.

Update: Last night I added a new example for grijq that demonstrates its integration with knockout.js. You can find it at Simple knockout.js integration.

I found that implementing column resizing really took a little code and some care with respecting the layout of the header contents. The following code listing shows the extracts of the JavaScript that control column resizing.

Building a Web Grid - Part 2

In which I disucss the scrolling in grijq.

Update: Last night I added a new example for grijq that demonstrates the different options available for the grijq widget. You can find it at All the options.

Mockup for scrolling functionality

Building a Web Grid - Part 1

In which I disucss the goals of grijq.

Last week I needed to convince some folks that the World Wide Web can act as a deployment platform for enterprise applications. They had some bad experiences with Web applications a couple of years ago and, since that time, felt convinced that desktop applications could only serve that niche of data-intense applications. I believe in the power of the browser and worked on a small demonstration Web application that would corroborate my beliefs.

Data-rich applications traditionally have grids. Users have grown comfortable scanning hundreds of rows of text and numbers to perform some kind of analysis. Trying to convince them that alternatives exist that could present the data in more comprehensible ways can pose challenges because these good people have adopted the Religion of the Grid.

They can have my Excel when they pry it from my cold, dead fingers.

To quell their unease, I went in search of a data grid that would meet my needs for this demo.

Interesting Browser Detection

Look at window.HTMLElement

Often, I need to change the way I apply some CSS due to the different box models that browsers employ. Some include padding, some borders, some other stuff in their calculations of widths during their layout phase. I stumbled across this interesting way of detecting the browser that the visitor to your site has decided to use.

(function() {
var htmlElementName = Object.prototype.toString.call(window.HTMLElement);

isIE8 = htmlElementName === '[object Object]';
isFF13 = htmlElementName === '[object DOMPrototype]';
isChrome19 = htmlElementName === '[object Function]';
isSafari5 = htmlElementName === '[object HTMLElementConstructor]';

Neat, eh?

I put the version numbers on those isXXX variables because those’re the versions that I used to test those values. They might work for other versions, too.

If you use this trick and find a different value or even the same value, then please post your discovery on this page and we can compile a list of very easy-to-use tests for browser detection!

TFS Not for Developers

In which I temper my enthusiasm for TFS with developer hardships.

Over the past month I have taken a deep dive into the use and customization of Team Foundation as an application lifecycle management system. I’ve looked at both the 2010 and 2012 beta versions and, for the most part, feel admiration for the systems. It really allows different team members to access information that they need to create, review, or modify within the lifecycle of the application.

Clip Art Made High-Score Boards!


Went over to openclipart.org to get some inspiration for another upload and found that “Worried Woman“ had made the Most Popular Clipart This Week and This Month’s Top 10 Downloads lists! Hooray!

First Open Clip-Art Submission!

In which I celebrate openclipart.org.

I’ve used openclipart.org for a long time, I’ve always meant to submit something of my own. Because the site has an open submission policy, you can find some less-than-nice work on the site.

Finally, I have something good enough that I wanted to make it available to the world. Here’s the clip art page over at the site from which you can download the SVG or PNG of various sizes. If you like it, go on over there and “favorite” it.

Worried Woman