package org.gsonformat.intellij;
import com.intellij.codeInsight.CodeInsightActionHandler;
import com.intellij.codeInsight.generation.actions.BaseGenerateAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;
import com.intellij.psi.util.PsiUtilBase;
import org.gsonformat.intellij.ui.JsonDialog;
/**
* User: dim
* Date: 14-7-4
* Time: 下午1:44
*/
public class MainAction extends BaseGenerateAction {
@SuppressWarnings("unused")
public MainAction() {
super(null);
}
@SuppressWarnings("unused")
public MainAction(CodeInsightActionHandler handler) {
super(handler);
}
@Override
protected boolean isValidForClass(final PsiClass targetClass) {
return super.isValidForClass(targetClass);
}
@Override
public boolean isValidForFile(Project project, Editor editor, PsiFile file) {
return super.isValidForFile(project, editor, file);
}
public void actionPerformed(AnActionEvent event) {
Project project = event.getData(PlatformDataKeys.PROJECT);
Editor editor = event.getData(PlatformDataKeys.EDITOR);
PsiFile mFile = PsiUtilBase.getPsiFileInEditor(editor, project);
PsiClass psiClass = getTargetClass(editor, mFile);
JsonDialog jsonD = new JsonDialog(psiClass, mFile, project);
jsonD.setClass(psiClass);
jsonD.setFile(mFile);
jsonD.setProject(project);
jsonD.setSize(600, 400);
jsonD.setLocationRelativeTo(null);
jsonD.setVisible(true);
}
}