Search in sources :

Example 6 with JFieldRef

use of com.helger.jcodemodel.JFieldRef in project androidannotations by androidannotations.

the class AbstractPreferenceListenerHandler method assignListeners.

@Override
protected final void assignListeners(HasPreferences holder, List<JFieldRef> idsRefs, JDefinedClass listenerAnonymousClass) {
    for (JFieldRef idRef : idsRefs) {
        FoundPreferenceHolder foundPreferenceHolder = holder.getFoundPreferenceHolder(idRef, getListenerTargetClass(holder));
        foundPreferenceHolder.getIfNotNullBlock().invoke(foundPreferenceHolder.getRef(), getSetterName()).arg(_new(listenerAnonymousClass));
    }
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef) FoundPreferenceHolder(org.androidannotations.holder.FoundPreferenceHolder)

Example 7 with JFieldRef

use of com.helger.jcodemodel.JFieldRef in project androidannotations by androidannotations.

the class AbstractSeekBarTouchHandler method process.

@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);
        }
    }
}
Also used : OnSeekBarChangeListenerHolder(org.androidannotations.holder.OnSeekBarChangeListenerHolder) JFieldRef(com.helger.jcodemodel.JFieldRef) ExecutableElement(javax.lang.model.element.ExecutableElement) JBlock(com.helger.jcodemodel.JBlock) IJExpression(com.helger.jcodemodel.IJExpression) JInvocation(com.helger.jcodemodel.JInvocation) JVar(com.helger.jcodemodel.JVar)

Example 8 with JFieldRef

use of com.helger.jcodemodel.JFieldRef in project androidannotations by androidannotations.

the class AfterTextChangeHandler method process.

@Override
public void process(Element element, EComponentWithViewSupportHolder holder) throws Exception {
    String methodName = element.getSimpleName().toString();
    ExecutableElement executableElement = (ExecutableElement) element;
    List<? extends VariableElement> parameters = executableElement.getParameters();
    int editableParameterPosition = -1;
    int viewParameterPosition = -1;
    TypeMirror viewParameterType = null;
    for (int i = 0; i < parameters.size(); i++) {
        VariableElement parameter = parameters.get(i);
        TypeMirror parameterType = parameter.asType();
        if (CanonicalNameConstants.EDITABLE.equals(parameterType.toString())) {
            editableParameterPosition = i;
        } else {
            TypeMirror textViewType = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.TEXT_VIEW).asType();
            if (annotationHelper.isSubtype(parameterType, textViewType)) {
                viewParameterPosition = i;
                viewParameterType = parameterType;
            }
        }
    }
    List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
    for (JFieldRef idRef : idsRefs) {
        TextWatcherHolder textWatcherHolder = holder.getTextWatcherHolder(idRef, viewParameterType);
        JBlock methodBody = textWatcherHolder.getAfterTextChangedBody();
        IJExpression activityRef = holder.getGeneratedClass().staticRef("this");
        JInvocation textChangeCall = methodBody.invoke(activityRef, methodName);
        for (int i = 0; i < parameters.size(); i++) {
            if (i == editableParameterPosition) {
                JVar afterTextChangeEditableParam = textWatcherHolder.getAfterTextChangedEditableParam();
                textChangeCall.arg(afterTextChangeEditableParam);
            } else if (i == viewParameterPosition) {
                JVar viewParameter = textWatcherHolder.getTextViewVariable();
                textChangeCall.arg(viewParameter);
            }
        }
    }
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef) ExecutableElement(javax.lang.model.element.ExecutableElement) IJExpression(com.helger.jcodemodel.IJExpression) JInvocation(com.helger.jcodemodel.JInvocation) VariableElement(javax.lang.model.element.VariableElement) TextWatcherHolder(org.androidannotations.holder.TextWatcherHolder) TypeMirror(javax.lang.model.type.TypeMirror) JBlock(com.helger.jcodemodel.JBlock) JVar(com.helger.jcodemodel.JVar)

Example 9 with JFieldRef

use of com.helger.jcodemodel.JFieldRef in project androidannotations by androidannotations.

the class PageScrolledHandler method process.

@Override
public void process(Element element, EComponentWithViewSupportHolder holder) throws Exception {
    String methodName = element.getSimpleName().toString();
    ExecutableElement executableElement = (ExecutableElement) element;
    List<? extends VariableElement> parameters = executableElement.getParameters();
    int positionParameterPosition = -1;
    int positionOffsetParameterPosition = -1;
    int positionOffsetPixelsParameterPosition = -1;
    int viewPagerParameterPosition = -1;
    int numberOfIntParameters = 0;
    TypeMirror viewPagerParameterType = null;
    for (int i = 0; i < parameters.size(); i++) {
        VariableElement parameter = parameters.get(i);
        TypeMirror parameterType = parameter.asType();
        if (parameterType.getKind() == TypeKind.INT || CanonicalNameConstants.INTEGER.equals(parameterType.toString())) {
            if (numberOfIntParameters == 0 && positionOffsetParameterPosition == -1) {
                positionParameterPosition = i;
            } else {
                positionOffsetPixelsParameterPosition = i;
            }
            numberOfIntParameters++;
        } else if (parameterType.getKind() == TypeKind.FLOAT || CanonicalNameConstants.FLOAT.equals(parameterType.toString())) {
            positionOffsetParameterPosition = i;
        } else {
            TypeMirror viewPagerType = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.VIEW_PAGER).asType();
            if (annotationHelper.isSubtype(parameterType, viewPagerType)) {
                viewPagerParameterPosition = i;
                viewPagerParameterType = parameterType;
            }
        }
    }
    List<JFieldRef> idsRefs = annotationHelper.extractAnnotationFieldRefs(element, IRClass.Res.ID, true);
    for (JFieldRef idRef : idsRefs) {
        PageChangeHolder pageChangeHolder = holder.getPageChangeHolder(idRef, viewPagerParameterType, hasAddOnPageChangeListenerMethod());
        JBlock methodBody = pageChangeHolder.getPageScrolledBody();
        IJExpression activityRef = holder.getGeneratedClass().staticRef("this");
        JInvocation pageScrollCall = methodBody.invoke(activityRef, methodName);
        for (int i = 0; i < parameters.size(); i++) {
            if (i == positionParameterPosition) {
                JVar positionParam = pageChangeHolder.getPageScrolledPositionParam();
                pageScrollCall.arg(positionParam);
            } else if (i == positionOffsetParameterPosition) {
                JVar pageScrolledPositionOffsetParam = pageChangeHolder.getPageScrolledPositionOffsetParam();
                pageScrollCall.arg(pageScrolledPositionOffsetParam);
            } else if (i == positionOffsetPixelsParameterPosition) {
                JVar pageScrolledPositionOffsetPixelsParam = pageChangeHolder.getPageScrolledPositionOffsetPixelsParam();
                pageScrollCall.arg(pageScrolledPositionOffsetPixelsParam);
            } else if (i == viewPagerParameterPosition) {
                JVar viewParameter = pageChangeHolder.getViewPagerVariable();
                pageScrollCall.arg(viewParameter);
            }
        }
    }
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef) ExecutableElement(javax.lang.model.element.ExecutableElement) IJExpression(com.helger.jcodemodel.IJExpression) PageChangeHolder(org.androidannotations.holder.PageChangeHolder) JInvocation(com.helger.jcodemodel.JInvocation) VariableElement(javax.lang.model.element.VariableElement) TypeMirror(javax.lang.model.type.TypeMirror) JBlock(com.helger.jcodemodel.JBlock) JVar(com.helger.jcodemodel.JVar)

Example 10 with JFieldRef

use of com.helger.jcodemodel.JFieldRef in project androidannotations by androidannotations.

the class PreferenceScreenHandler method process.

@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);
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef)

Aggregations

JFieldRef (com.helger.jcodemodel.JFieldRef)33 JBlock (com.helger.jcodemodel.JBlock)19 IJExpression (com.helger.jcodemodel.IJExpression)15 JVar (com.helger.jcodemodel.JVar)15 TypeMirror (javax.lang.model.type.TypeMirror)15 JInvocation (com.helger.jcodemodel.JInvocation)14 ExecutableElement (javax.lang.model.element.ExecutableElement)10 VariableElement (javax.lang.model.element.VariableElement)7 AbstractJClass (com.helger.jcodemodel.AbstractJClass)6 JMethod (com.helger.jcodemodel.JMethod)5 JDefinedClass (com.helger.jcodemodel.JDefinedClass)3 PageChangeHolder (org.androidannotations.holder.PageChangeHolder)3 TextWatcherHolder (org.androidannotations.holder.TextWatcherHolder)3 IJAssignmentTarget (com.helger.jcodemodel.IJAssignmentTarget)2 JFieldVar (com.helger.jcodemodel.JFieldVar)2 DefaultRes (org.androidannotations.annotations.sharedpreferences.DefaultRes)2 DefaultString (org.androidannotations.annotations.sharedpreferences.DefaultString)2 BundleHelper (org.androidannotations.helper.BundleHelper)2 FoundPreferenceHolder (org.androidannotations.holder.FoundPreferenceHolder)2 FoundViewHolder (org.androidannotations.holder.FoundViewHolder)2