static IObservable deepFindObservable(Widget control, Object data,
String property) {
ScopeKeeper scopeKeeper = UserData.getLocalScopeKeeper(control);
if (scopeKeeper != null) {
IObservable observable = scopeKeeper.localGetObservable(control,
data, property);
if (observable != null) {
return observable;
}
}
if (control instanceof Composite) {
Composite composite = (Composite) control;
for (Control child : composite.getChildren()) {
IObservable observable = deepFindObservable(child, data,
property);
if (observable != null) {
return observable;
}
}