Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdatableTree.java
}
	}
	public void setElement(final Object parentElement, final int index, final Object value) {	
		AsyncRunnable runnable = new AsyncRunnable() {
			public void run() {
				if (hasChildren(parentElement)) {
					TreeNode parentNode = getTreeNode(parentElement);
					List children = parentNode.getChildren();
					Object oldValue = children.get(index);
					if (oldValue.equals(value)) {
						updateViewer(new Runnable() {
							public void run() {
								viewer.update(value, null);
							}
						});
					} else {
						removeElement(parentElement, index, false);
						addElement(parentElement, index, value, false);
					}
					fireChangeEvent(ChangeEvent.CHANGE, oldValue, value,
							parentElement, index);
				}
				
			}
		};
		runnable.runOn(viewer.getTree().getDisplay());
	}
	public void setElements(final Object parentElement, final Object[] values) {
		SyncRunnable runnable = new SyncRunnable() {
			public Object run() {