[GREENFOOT-641] Greenfoot never deletes properties
The way that Greenfoot handles properties at the moment is not ideal. The GreenfootProjectFile class saves properties by loading in existing ones from disk, overwriting with any new values, then saving again. Thus, no properties ever get deleted from the file, and old properties (e.g. BlueJ properties referring to deleted classes) live on. Now that the server VM is holding the canonical copy of the Greenfoot properties, we should be able to refactor this to be more like BlueJ does it: on load, everything harvests what it needs from the property file, and unused properties are ignored. Then when saving, we reconstitute a new properties file by getting everyone involved (Project, Package, etc) to save anything relevant.
We could do this already now, but it will break everything not yet processed by Greenfoot on the server VM. So it should at least wait until we have done GREENFOOT-635 (converting class diagram), as it is the class diagram which handles most of the Greenfoot properties.
Addendum: as part of this ticket, sort out the image management for duplicate-class and import-class, which currently don't set the images for the new classes as they should do.
Issue metadata
- Issue type: Task
- Priority: Medium