/** * This is a copy constructor for creating a clone of * another data context. The {@link #hasOwnProperties} * is always {@code false} for a cloned data context. * * @param dataContext the parent data context to clone from. */ public DataContext(DataContext dataContext) { this.data = dataContext.getData(); this.scope = dataContext.getScope(); this.index = dataContext.getIndex(); this.hasOwnProperties = false; }
public void handleBinding(V view, Binding value) { DataContext dataContext = ((ProteusView) view).getViewManager().getDataContext(); Value resolved = evaluate(value, view.getContext(), dataContext.getData(), dataContext.getIndex()); handleValue(view, resolved); }
@Override public boolean handleChildren(T view, Value children) { ProteusView proteusView = ((ProteusView) view); ProteusView.Manager viewManager = proteusView.getViewManager(); ProteusLayoutInflater layoutInflater = viewManager.getContext().getInflater(); ObjectValue data = viewManager.getDataContext().getData(); int dataIndex = viewManager.getDataContext().getIndex(); if (children.isArray()) { ProteusView child; Iterator<Value> iterator = children.getAsArray().iterator(); Value element; while (iterator.hasNext()) { element = iterator.next(); if (!element.isLayout()) { throw new ProteusInflateException("attribute 'children' must be an array of 'Layout' objects"); } child = layoutInflater.inflate(element.getAsLayout(), data, view, dataIndex); addView(proteusView, child); } } return true; }
Value dataset = collection.getAsBinding().evaluate(view.getContext(), dataContext.getData(), dataContext.getIndex()); if (dataset.isNull()) { return;