Be able to persist all settings from a NatTable instance to a stream.
Be able to load previously persisted settings from a stream and apply them onto a NatTable instance to configure it.
Avoid using Java class/package names (e.g. via object serialization) in the persisted form so that persisted settings are not dependent on how code is named.
Note that the settings that are saved will depend on how the NatTable instance is assembled, so that when these settings are loaded they must be applied to a similarly assembled NatTable instance.
Amend: ideally the saved settings SHOULD NOT depend on how the NatTable instance is assembled. e.g. rather than storing settings hierarchically where hierarchy == layer composition hierarchy, it would be better to store settings in some kind of flat properties structure, such as the way mozilla browser settings are saved.
Stuff to persist:
- Layer settings
- UI bindings
- Config registry settings
The trick with UI bindings & Config registry settings is that they can reference arbitrary classes. We need some declarative way of specifying these. Factory class?
Acceptance Criteria: create example that saves/loads state to a properties file. Can link save to dispose listener, load to widget creation.
Waiting for tests to be written