Eu tinha esperança de poder dar uma melhorada no código antes de mostrar para alguém, mas não deu tempo. Então aí vai os códigos da aplicação de exemplo que fiz.

Se servir para alguém fico feliz.