Eclipse Rich Client Platform: Designing, Coding, and Packaging Java Applications