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);
}
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;
}
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);
}
}
}
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);
}
}
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)));
}
}
Aggregations