@NonNull @Override public ProteusContext getContext() { return base.getContext(); }
parentDataContext = ((ProteusView) parent).getViewManager().getDataContext();
protected void updateChildren() { if (!hasDataBoundChildren && view instanceof ViewGroup) { ViewGroup parent = (ViewGroup) view; int count = parent.getChildCount(); View child; for (int index = 0; index < count; index++) { child = parent.getChildAt(index); if (child instanceof ProteusView) { ((ProteusView) child).getViewManager().update(dataContext.getData()); } } } } }
temp = view.getChildAt(index); if (temp instanceof ProteusView) { ((ProteusView) temp).getViewManager().update(data);
@Override public void setString(final V view, String value) { if (view instanceof ProteusView) { view.setId(((ProteusView) view).getViewManager().getContext().getInflater().getUniqueViewId(value));
@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; }
@Override public void handleValue(final V view, Value value) { if (value.isDrawable()) { DrawableValue d = value.getAsDrawable(); if (null != d) { ProteusLayoutInflater.ImageLoader loader = ((ProteusView) view).getViewManager().getContext().getLoader(); d.apply((ProteusView) view, view.getContext(), loader, new DrawableValue.Callback() { @Override public void apply(Drawable drawable) { if (null != drawable) { setDrawable(view, drawable); } } }); } } else { process(view, precompile(value, view.getContext(), ((ProteusContext) view.getContext()).getFunctionManager())); } }
@Override public void setExtras(@Nullable Object extras) { base.setExtras(extras); }
@Override public void setString(V view, String value) { ProteusView.Manager viewManager = ((ProteusView) view).getViewManager(); ProteusContext context = viewManager.getContext(); Layout layout = viewManager.getLayout(); ViewTypeParser handler = context.getInflater().getParser(layout.type); String[] styleSet = value.split(ProteusConstants.STYLE_DELIMITER); for (String styleName : styleSet) { Map<String, Value> style = context.getStyle(styleName); if (null != style) { process(context.getStyle(styleName), (ProteusView) view, (handler != null ? handler : ViewParser.this)); } } }
@Override public void update(@Nullable ObjectValue data) { base.update(data); }
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); }
ProteusViewHolder(@NonNull ProteusView view) { super(view.getAsView()); this.view = view; this.context = view.getViewManager().getContext(); } }
@NonNull @Override public Layout getLayout() { return base.getLayout(); }
@Override public void onBindViewHolder(ProteusViewHolder holder, int position) { DataContext context = DataContext.create(holder.context, data, position, scope); holder.view.getViewManager().update(context.getData()); }
@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); } };
@Nullable @Override public View findViewById(@NonNull String id) { return base.findViewById(id); }
@Override public void setString(V view, String value) { if (view instanceof ProteusView) { int id = ((ProteusView) view).getViewManager().getContext().getInflater().getUniqueViewId(value); ParseHelper.addRelativeLayoutRule(view, rule, id); } } };
/** * @param event * @param value * @param view */ public void trigger(String event, Value value, ProteusView view) { ProteusLayoutInflater.Callback callback = view.getViewManager().getContext().getCallback(); if (null != callback) { callback.onEvent(event, value, view); } } }
@NonNull @Override public DataContext getDataContext() { return base.getDataContext(); }
@Nullable @Override public Object getExtras() { return base.getExtras(); }