package carbon.component;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import carbon.BR;
public class DataBindingComponent<DataType> implements Component<DataType> {
private final ViewDataBinding binding;
private final View view;
private DataType data;
public DataBindingComponent(ViewGroup parent, int resId) {
binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), resId, parent, false);
view = binding.getRoot();
}
@Override
public View getView() {
return view;
}
public void bind(DataType data) {
this.data = data;
binding.setVariable(BR.data, data);
binding.executePendingBindings();
}
public DataType getData() {
return data;
}
protected ViewDataBinding getBinding() {
return binding;
}
}