package com.wang.okhttpparamsget; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; import com.wang.okhttpparamsget.builder.BuilderFactory; import com.wang.okhttpparamsget.builder.IBuilder; import org.jetbrains.annotations.NotNull; /** * Created by wang on 2017/3/7. */ public class GetParamsAction extends AnAction { @Override public void actionPerformed(@NotNull AnActionEvent e) { PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE); Project project = e.getProject(); Editor editor = e.getData(PlatformDataKeys.EDITOR); TypePickDialog dialog = new TypePickDialog(); dialog.setListener(type -> {build(type, psiFile, project, editor);}); dialog.pack(); dialog.setVisible(true); } private void build(int type, PsiFile psiFile, Project project, Editor editor) { IBuilder builder = BuilderFactory.getParamsBuilder(type, psiFile); if (builder != null){ builder.build(psiFile, project, editor); } } }