Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/provisional/databinding/beans/NestedUpdatableFactory.java
TreeModelDescription treeModelDescription = (TreeModelDescription) description;
			if (treeModelDescription.getRoot() != null) {
				if (treeModelDescription.getRoot() instanceof IUpdatable) {
					if (treeModelDescription.getRoot() instanceof IUpdatableTree) {
						return (IUpdatableTree) treeModelDescription
								.getRoot();
					}
					
					return new NestedUpdatableTree(
							bindingContext,
							treeModelDescription);
				} else if (treeModelDescription.getRoot() instanceof Property) {
					
					
					TreeModelDescription newDescription = new TreeModelDescription(
							bindingContext
									.createUpdatable(treeModelDescription
											.getRoot()));
					Class[] types = treeModelDescription.getTypes();
					for (int i = 0; i < types.length; i++) {
						String[] props = treeModelDescription
								.getChildrenProperties(types[i]);
						for (int j = 0; j < props.length; j++) {
							newDescription.addChildrenProperty(
									types[i], props[j]);
						}
					}
					return bindingContext
							.createUpdatable(newDescription);
				}