@NonNull @Override public DataContext getDataContext() { return base.getDataContext(); }
parentDataContext = ((ProteusView) parent).getViewManager().getDataContext();
@NonNull @Override public SimpleListAdapter create(@NonNull ProteusRecyclerView view, @NonNull ObjectValue config) { Layout layout = config.getAsObject().getAsLayout(ATTRIBUTE_ITEM_LAYOUT); Integer count = config.getAsObject().getAsInteger(ATTRIBUTE_ITEM_COUNT); ObjectValue data = view.getViewManager().getDataContext().getData(); ProteusContext context = (ProteusContext) view.getContext(); return new SimpleListAdapter(context.getInflater(), data, layout, count != null ? count : 0); } };
@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; }
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); }