Skip to content

Commit

Permalink
EventHandlers can be private, looks like it works
Browse files Browse the repository at this point in the history
  • Loading branch information
treblereel committed Mar 16, 2022
1 parent e94ef7d commit bfaf11e
Showing 1 changed file with 10 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import com.github.javaparser.ast.body.Parameter;
import com.github.javaparser.ast.expr.*;
import com.github.javaparser.ast.stmt.ExpressionStmt;
import com.github.javaparser.ast.stmt.Statement;
import com.google.auto.common.MoreElements;
import com.google.auto.common.MoreTypes;
Expand Down Expand Up @@ -151,14 +152,17 @@ void generate(ClassBuilder builder, TemplateContext templateContext,
MoreTypes.asTypeElement(eventHandlerInfo.getMethod().getParameters().get(0).asType())
.getQualifiedName().toString();

StringBuffer sb = new StringBuffer();
sb.append("e -> ");
sb.append("instance.");
sb.append(eventHandlerInfo.getMethodName());
sb.append("(e)");
Statement call = generationUtils.generateMethodCall(
eventHandlerInfo.getMethod().getEnclosingElement().asType(), eventHandlerInfo.getMethod(),
new NameExpr("event"));

LambdaExpr lambda = new LambdaExpr();
lambda.setEnclosingParameters(true);
lambda.getParameters().add(new Parameter().setName("event").setType(eventName));
lambda.setBody(call);

builder.getInitInstanceMethod().getBody().get().addAndGetStatement(
new MethodCallExpr(fieldAccessCallExpr, "addDomHandler").addArgument(sb.toString())
new MethodCallExpr(fieldAccessCallExpr, "addDomHandler").addArgument(lambda)
.addArgument(new MethodCallExpr(new NameExpr(eventName), "getType")));
}
}
Expand Down

0 comments on commit bfaf11e

Please sign in to comment.