collection and shelf detail previews (bug 1035445)

I think we could live without this extra logic since those cast statements don't hurt