public List<JFieldRef> extractAnnotationFieldRefs(Element element, Res res, boolean useElementName) { return extractAnnotationFieldRefs(element, res, useElementName, DEFAULT_FIELD_NAME_VALUE, DEFAULT_FIELD_NAME_RESNAME); }
public JFieldRef extractOneAnnotationFieldRef(Element element, String annotationName, IRInnerClass rInnerClass, boolean useElementName, String idFieldName, String resFieldName) { List<JFieldRef> jFieldRefs = extractAnnotationFieldRefs(element, annotationName, rInnerClass, useElementName, idFieldName, resFieldName); if (jFieldRefs.size() == 1) { return jFieldRefs.get(0); } else { return null; } } }
@Override public void process(Element element, HasPreferences holder) throws Exception { JFieldRef preferenceId = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.XML, false).get(0); holder.getPreferenceScreenInitializationBlock().invoke("addPreferencesFromResource").arg(preferenceId); } }
@Override public void process(Element element, EComponentWithViewSupportHolder holder) throws Exception { String methodName = element.getSimpleName().toString(); List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true); for (JFieldRef idRef : idsRefs) { OnSeekBarChangeListenerHolder onSeekBarChangeListenerHolder = holder.getOnSeekBarChangeListenerHolder(idRef); JBlock methodBody = getMethodBodyToCall(onSeekBarChangeListenerHolder); IJExpression activityRef = holder.getGeneratedClass().staticRef("this"); JInvocation textChangeCall = methodBody.invoke(activityRef, methodName); ExecutableElement executableElement = (ExecutableElement) element; List<? extends VariableElement> parameters = executableElement.getParameters(); if (parameters.size() == 1) { JVar progressParameter = getMethodParamToPass(onSeekBarChangeListenerHolder); textChangeCall.arg(progressParameter); } } }
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
@Override public void process(Element element, HasPreferenceHeaders holder) throws Exception { JFieldRef headerId = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.XML, false).get(0); JBlock block = holder.getOnBuildHeadersBlock(); JVar targetParam = holder.getOnBuildHeadersTargetParam(); block.invoke("loadHeadersFromResource").arg(headerId).arg(targetParam); block.invoke(JExpr._super(), "onBuildHeaders").arg(targetParam); } }
@Override public void process(Element element, HasOptionsMenu holder) { JBlock body = holder.getOnCreateOptionsMenuMethodInflateBody(); JVar menuInflater = holder.getOnCreateOptionsMenuMenuInflaterVar(); JVar menuParam = holder.getOnCreateOptionsMenuMenuParam(); List<JFieldRef> fieldRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.MENU, false); for (JFieldRef optionsMenuRefId : fieldRefs) { body.invoke(menuInflater, "inflate").arg(optionsMenuRefId).arg(menuParam); } } }
@Override public void process(Element element, T holder) { this.holder = holder; methodName = element.getSimpleName().toString(); ExecutableElement executableElement = (ExecutableElement) element; List<? extends VariableElement> parameters = executableElement.getParameters(); TypeMirror returnType = executableElement.getReturnType(); List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, getResourceType(), true); JDefinedClass listenerAnonymousClass = getCodeModel().anonymousClass(getListenerClass(holder)); JMethod listenerMethod = createListenerMethod(listenerAnonymousClass); listenerMethod.annotate(Override.class); JBlock listenerMethodBody = listenerMethod.body(); IJExpression activityRef = holder.getGeneratedClass().staticRef("this"); JInvocation call = invoke(activityRef, methodName); makeCall(listenerMethodBody, call, returnType); processParameters(holder, listenerMethod, call, parameters); assignListeners(holder, idsRefs, listenerAnonymousClass); }
@Override public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EComponentWithViewSupportHolder holder, Element element, Element param) { TypeMirror viewType = extractViewClass(param); AbstractJClass viewClass = codeModelHelper.typeMirrorToJClass(viewType); String listName = getListName(element, param); IJExpression arrayList = instantiateArrayList(viewType, holder, "list_" + listName); List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true); for (JFieldRef idRef : idsRefs) { addViewToListIfNotNull(arrayList, viewClass, idRef, holder); } targetBlock.add(fieldRef.assign(arrayList)); }
@Override public void process(Element element, EActivityHolder holder) { JBlock onViewChangedBody = holder.getOnViewChangedBodyBeforeInjectionBlock(); JFieldRef contentViewId = annotationHelper.extractAnnotationFieldRefs(element, getTarget(), getEnvironment().getRClass().get(IRClass.Res.LAYOUT), false).get(0); JFieldRef customTitleFeature = getClasses().WINDOW.staticRef("FEATURE_CUSTOM_TITLE"); holder.getInitBodyInjectionBlock().invoke("requestWindowFeature").arg(customTitleFeature); onViewChangedBody.add(holder.getContextRef().invoke("getWindow").invoke("setFeatureInt").arg(customTitleFeature).arg(contentViewId)); } }
@Override public void process(Element element, EActivityHolder holder) { List<JFieldRef> fieldRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.LAYOUT, false); JFieldRef contentViewId = null; if (fieldRefs.size() == 1) { contentViewId = fieldRefs.get(0); } if (contentViewId == null) { return; } JBlock onCreateBody = holder.getOnCreate().body(); JMethod setContentView = holder.getSetContentViewLayout(); if (element.getAnnotation(DataBound.class) != null) { JFieldRef androidContentResId = getEnvironment().getRClass().get(IRClass.Res.ID).getIdStaticRef(android.R.id.content, getEnvironment()); JVar contentView = onCreateBody.decl(getClasses().VIEW_GROUP, "contentView", JExpr.invoke("internalFindViewById").arg(androidContentResId)); JFieldVar bindingField = holder.getDataBindingField(); onCreateBody.assign(bindingField, holder.getDataBindingInflationExpression(contentViewId, contentView, false)); onCreateBody.invoke(setContentView).arg(bindingField.invoke("getRoot")).arg(bindingField.invoke("getRoot").invoke("getLayoutParams")); holder.getOnDestroyBeforeSuperBlock().invoke(bindingField, "unbind"); } else { onCreateBody.invoke(setContentView).arg(contentViewId); } } }
public JFieldRef extractOneAnnotationFieldRef(Element element, String annotationName, IRInnerClass rInnerClass, boolean useElementName, String idFieldName, String resFieldName) { List<JFieldRef> jFieldRefs = extractAnnotationFieldRefs(element, annotationName, rInnerClass, useElementName, idFieldName, resFieldName); if (jFieldRefs.size() == 1) { return jFieldRefs.get(0); } else { return null; } } }
@Override public void process(Element element, HasOptionsMenu holder) { JBlock body = holder.getOnCreateOptionsMenuMethodInflateBody(); JVar menuInflater = holder.getOnCreateOptionsMenuMenuInflaterVar(); JVar menuParam = holder.getOnCreateOptionsMenuMenuParam(); List<JFieldRef> fieldRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.MENU, false); for (JFieldRef optionsMenuRefId : fieldRefs) { body.invoke(menuInflater, "inflate").arg(optionsMenuRefId).arg(menuParam); } } }