A Presentation Model Component Framework for Java Desktop Applications