@NonNull @Override public ProteusContext getContext() { return base.getContext(); }
ProteusViewHolder(@NonNull ProteusView view) { super(view.getAsView()); this.view = view; this.context = view.getViewManager().getContext(); } }
@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 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 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 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); } } }