TableViewer addressViewer = ...
ObservableListContentProvider cp = new ObservableListContentProvider();
final IObservableMap[] maps = BeansObservables.observeMaps(
cp.getKnownElements,
Address.class,
new String[] {"street", "street2", "city", "province", "code" } );
addressViewer.setLabelProvider(new ObservableMapLabelProvider(maps));
MultiValidator addressValidator = new MultiValidator(realm) {
protected IStatus validate() {
Set addresses = maps[0].keySet();
IStatus status = ValidationStatus.ok();
for (Iterator it = addresses.iterator(); it.hasNext(); ) {
Address address = (Address) it.next();
// validate address, update status variable if more severe
// than current value
}
return status;
}
}