Yeah, I've used Administrate a bunch. All those things are possible in Administrate as it generates controllers that can be customized, so anything it doesn't do out of the box can be added easily. It's also easy to define custom input types and content types.