/*******************************************************************************
* Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Soyatec - initial API and implementation
*******************************************************************************/
package org.eclipse.papyrus.xwt.databinding;
import org.eclipse.core.databinding.observable.IObservable;
import org.eclipse.papyrus.xwt.IDataBinding;
import org.eclipse.papyrus.xwt.IDataProvider;
import org.eclipse.papyrus.xwt.IValidationRule;
import org.eclipse.papyrus.xwt.IValueConverter;
import org.eclipse.papyrus.xwt.internal.core.Binding;
import org.eclipse.papyrus.xwt.internal.core.BindingExpressionPath;
import org.eclipse.papyrus.xwt.internal.core.UpdateSourceTrigger;
/**
*
* @author yyang (yves.yang@soyatec.com)
*/
public abstract class AbstractDataBinding implements IDataBinding {
private IDataProvider dataProvider;
private Binding binding;
private BindingExpressionPath targetPropertySegments;
public BindingExpressionPath getSourcePropertyExpression() {
return binding.getPathPropertySegments();
}
public BindingExpressionPath getTargetPropertyExpression() {
return targetPropertySegments;
}
public AbstractDataBinding(Binding binding, IDataProvider dataProvider) {
this.binding = binding;
this.dataProvider = dataProvider;
targetPropertySegments = new BindingExpressionPath(getTargetProperty());
}
/**
* @return the dataProvider
*/
public IDataProvider getDataProvider() {
return dataProvider;
}
/**
* @param dataProvider
* the dataProvider to set
*/
public void setDataProvider(IDataProvider dataProvider) {
this.dataProvider = dataProvider;
}
/**
*
*/
public BindingMode getBindingMode() {
return binding.getMode();
}
/**
* Returns the name of the data binding context this binding is associated
* with
*
* @return
*/
protected IBindingContext getDataBindingContext() {
return binding.getBindingContext();
}
/**
*
*/
public IValueConverter getConverter() {
return binding.getConverter();
}
/**
* @return the target
*/
public Object getControl() {
return binding.getControl();
}
/**
* @return the target
*/
public Object getHost() {
return binding.getHost();
}
/**
*
* @return
*/
public BindingMode getMode() {
return binding.getMode();
}
/**
*
* @param mode
*/
public void setMode(BindingMode mode) {
binding.setMode(mode);
}
/**
*
* @return
*/
protected String getSourceProperty() {
return binding.getPath();
}
/**
*
* @return
*/
protected String getTargetProperty() {
return binding.getType();
}
public IValidationRule[] getValidators() {
return binding.getValidationRules();
}
public UpdateSourceTrigger getUpdateSourceTrigger() {
return binding.getUpdateSourceTrigger();
}
protected IObservable getObservableSource() {
return binding.getObservableSource();
}
protected void setObservableSource(IObservable observableSource) {
binding.setObservableSource(observableSource);
}
}