a graphics editor developed by Java with several design patterns