Search in sources :

Example 96 with JVar

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

the class InstanceStateHandler method process.

@Override
public void process(Element element, HasInstanceState holder) {
    AbstractJClass elementClass = codeModelHelper.typeMirrorToJClass(element.asType());
    String fieldName = element.getSimpleName().toString();
    JBlock saveStateBody = holder.getSaveStateMethodBody();
    JVar saveStateBundleParam = holder.getSaveStateBundleParam();
    JMethod restoreStateMethod = holder.getRestoreStateMethod();
    JBlock restoreStateBody = holder.getRestoreStateMethodBody();
    JVar restoreStateBundleParam = holder.getRestoreStateBundleParam();
    TypeMirror type = codeModelHelper.getActualType(element, holder);
    BundleHelper bundleHelper = new BundleHelper(getEnvironment(), type);
    JFieldRef ref = ref(fieldName);
    saveStateBody.add(bundleHelper.getExpressionToSaveFromField(saveStateBundleParam, JExpr.lit(fieldName), ref));
    IJExpression restoreMethodCall = bundleHelper.getExpressionToRestoreFromBundle(elementClass, restoreStateBundleParam, JExpr.lit(fieldName), restoreStateMethod);
    restoreStateBody.assign(ref, restoreMethodCall);
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef) TypeMirror(javax.lang.model.type.TypeMirror) JBlock(com.helger.jcodemodel.JBlock) IJExpression(com.helger.jcodemodel.IJExpression) AbstractJClass(com.helger.jcodemodel.AbstractJClass) JMethod(com.helger.jcodemodel.JMethod) JVar(com.helger.jcodemodel.JVar) BundleHelper(org.androidannotations.helper.BundleHelper)

Example 97 with JVar

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

the class ContextCompatAwareResHandler method createCallWithIfGuard.

private IJExpression createCallWithIfGuard(EComponentHolder holder, JFieldRef idRef, IJAssignmentTarget fieldRef, JBlock targetBlock) {
    JVar resourcesRef = holder.getResourcesRef();
    IJExpression buildVersionCondition = getClasses().BUILD_VERSION.staticRef("SDK_INT").gte(getClasses().BUILD_VERSION_CODES.staticRef(minSdkPlatformName));
    JConditional conditional = targetBlock._if(buildVersionCondition);
    conditional._then().add(fieldRef.assign(holder.getContextRef().invoke(androidRes.getResourceMethodName()).arg(idRef)));
    conditional._else().add(fieldRef.assign(resourcesRef.invoke(androidRes.getResourceMethodName()).arg(idRef)));
    return null;
}
Also used : IJExpression(com.helger.jcodemodel.IJExpression) JConditional(com.helger.jcodemodel.JConditional) JVar(com.helger.jcodemodel.JVar)

Example 98 with JVar

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

the class FocusChangeHandler method processParameters.

@Override
protected void processParameters(EComponentWithViewSupportHolder holder, JMethod listenerMethod, JInvocation call, List<? extends VariableElement> parameters) {
    JVar viewParam = listenerMethod.param(getClasses().VIEW, "view");
    JVar hasFocusParam = listenerMethod.param(getCodeModel().BOOLEAN, "hasFocus");
    for (VariableElement parameter : parameters) {
        String parameterType = parameter.asType().toString();
        if (isTypeOrSubclass(CanonicalNameConstants.VIEW, parameter)) {
            call.arg(castArgumentIfNecessary(holder, CanonicalNameConstants.VIEW, viewParam, parameter));
        } else if (parameterType.equals(CanonicalNameConstants.BOOLEAN) || parameter.asType().getKind() == TypeKind.BOOLEAN) {
            call.arg(hasFocusParam);
        }
    }
}
Also used : VariableElement(javax.lang.model.element.VariableElement) JVar(com.helger.jcodemodel.JVar)

Example 99 with JVar

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

the class EActivityHandler method process.

@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);
    }
}
Also used : JFieldRef(com.helger.jcodemodel.JFieldRef) JFieldVar(com.helger.jcodemodel.JFieldVar) JBlock(com.helger.jcodemodel.JBlock) DataBound(org.androidannotations.annotations.DataBound) JMethod(com.helger.jcodemodel.JMethod) JVar(com.helger.jcodemodel.JVar)

Example 100 with JVar

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

the class ClickHandler method processParameters.

@Override
protected void processParameters(EComponentWithViewSupportHolder holder, JMethod listenerMethod, JInvocation call, List<? extends VariableElement> parameters) {
    boolean hasItemParameter = parameters.size() == 1;
    JVar viewParam = listenerMethod.param(getClasses().VIEW, "view");
    if (hasItemParameter) {
        call.arg(castArgumentIfNecessary(holder, CanonicalNameConstants.VIEW, viewParam, parameters.get(0)));
    }
}
Also used : JVar(com.helger.jcodemodel.JVar)

Aggregations

JVar (com.helger.jcodemodel.JVar)126 JBlock (com.helger.jcodemodel.JBlock)86 JMethod (com.helger.jcodemodel.JMethod)61 AbstractJClass (com.helger.jcodemodel.AbstractJClass)53 JInvocation (com.helger.jcodemodel.JInvocation)39 IJExpression (com.helger.jcodemodel.IJExpression)33 VariableElement (javax.lang.model.element.VariableElement)25 ExecutableElement (javax.lang.model.element.ExecutableElement)19 JFieldRef (com.helger.jcodemodel.JFieldRef)16 TypeMirror (javax.lang.model.type.TypeMirror)16 JDefinedClass (com.helger.jcodemodel.JDefinedClass)15 JFieldVar (com.helger.jcodemodel.JFieldVar)15 JConditional (com.helger.jcodemodel.JConditional)9 JTryBlock (com.helger.jcodemodel.JTryBlock)7 JCatchBlock (com.helger.jcodemodel.JCatchBlock)5 AbstractJType (com.helger.jcodemodel.AbstractJType)4 ArrayList (java.util.ArrayList)4 BundleHelper (org.androidannotations.helper.BundleHelper)4 JTypeVar (com.helger.jcodemodel.JTypeVar)3 VariableDeclaration (com.github.sviperll.adt4j.model.config.VariableDeclaration)2