Why didn't I think of using a filtered list?  Thank you.  As for the row expander, I may not have explained it well initially.  A decent analogue to what I am looking for is demonstrated by the "Summary" function of the grid used for the message listing here:

http://www.extjs.com/deploy/dev/examples/feed-viewer/view.html

Hmm - this UI seems to require a TablePane since it seems to need column spanning and possibly row spanning.
 
I think I understand what you're saying here, but I'm not quite sure I understand how the whole rendering system works well enough yet to make this happen, but I will attempt this tomorrow and see if I can get it working.  I think I may have previously confused myself by assuming that Pivot was converting my Map to a ListItem, and since the ListItem only had a text and icon property, there was no place to store a separate value property.  Based on what you said, now I realize (I think) that a ListItem is one of any object type you can put in a ButtonList, there just happens to already be a renderer for it.  If you choose to use some other Object type, then the default renderer will simply use that Object's toString() method to render each option (which is of course exactly what I saw with my List of Maps).  I think it's becoming more clear now, but correct me if I'm getting even farther off base...

No, you're spot on.  You can set the list data to be a list of anything, and the renderer is the one who needs to know how to render what's in the list.  And yes, the default renderer just calls toString() if it doesn't know how to render the item (which is what is happening to you).

 

As you can probably tell, all of my GUI experience is in HTML and JavaScript, so those are the terms I tend to think in, which will probably continue to cause me problems as I try to figure Pivot out.

No worries - sounds like you're doing a good job with the transition.

-T