In this case, ProductVersion is an enum which Sapphire supports natively, but..
Sapphire can store any object in a value property as long as you can write serialization service for it (read/write to string). It is highly recommended (but not enforced) that the object is immutable.
I see that there is no sample showing use of a custom value type, but in short you implement ValueSerializationService. Then you either...
1. Add @ValueSerialization annotation to your property with a reference to your serializer class, or
2. Register the serializer globally by creating sapphire-extension.xml file in your plugin's META-INF directory. Make sure that you are using version 0.2 of Sapphire and that you have Sapphire SDK installed in your dev eclipse. You will get an editor that will help you edit the extension file.
> how do you see the WindowBuilder proposal, and are there potential
> synergies with Sapphire?
I was happy to see the WindowBuilder contribution. I understand that the editor framework is pretty flexible. If so, it could be a foundation on which Sapphire's future WYSIWYG editor is built on.
> Last but not leas, I'd appreciate further docs also at Eclipse.org about
> i18n and how it may fit in with Babel.
There is discussion of Sapphire's localization system in the developer guide that is part of the SDK. I have just confirmed with Babel project that they are capable of using property files from build rather than the source control system. A project that uses Sapphire would give Babel a reference to its p2 repository, rather than the source control system. Sapphire generates standard property files during build, so that should all be compatible with Babel or other translation tools.