Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/NestedUpdatableCellProvider.java
}
	private boolean updating = false;
	private ReadableSetWrapper readableSet = new ReadableSetWrapper();
	
	private IChangeListener innerSetChangeListener = new InnerChangeListener(readableSet);
	private IChangeListener innerCellChangeListener = new InnerChangeListener(this);
	private Object currentOuterValue;
	private IUpdatableCellProvider innerUpdatableCellProvider;
	private IDataBindingContext databindingContext;
	private TableModelDescription tableModelDescription;
	/**
	 *
	 * @param databindingContext
	 * @param outerUpdatableValue The master part of the master/detail relationship handled by this NestedUpdatable
	 * @param feature
	 * @param elementType 
	 */
	public NestedUpdatableCellProvider(IDataBindingContext databindingContext,
			final IUpdatableValue outerUpdatableValue, TableModelDescription tableModelDescription) {
		this.databindingContext = databindingContext;
		this.tableModelDescription = tableModelDescription;
		updateInnerUpdatable(outerUpdatableValue);
		IChangeListener outerChangeListener = new IChangeListener() {
			public void handleChange(ChangeEvent changeEvent) {
				
				if ((changeEvent.getChangeType() &  (ChangeEvent.CHANGE | ChangeEvent.ADD | ChangeEvent.ADD_MANY | ChangeEvent.REMOVE | ChangeEvent.REMOVE_MANY)) != 0) {
					updateInnerUpdatable(outerUpdatableValue);
					readableSet.fireEvent(ChangeEvent.CHANGE, null, null, null, ChangeEvent.POSITION_UNKNOWN);
				}
			}