mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] enable 'New Class' action in resource folders (IDEA-160694)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,8 +18,10 @@ package com.intellij.ide.actions;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class JavaCreateTemplateInPackageAction<T extends PsiElement> extends CreateTemplateInPackageAction<T> {
|
||||
|
||||
@@ -27,6 +29,13 @@ public abstract class JavaCreateTemplateInPackageAction<T extends PsiElement> ex
|
||||
super(text, description, icon, inSourceOnly ? JavaModuleSourceRootTypes.SOURCES : null);
|
||||
}
|
||||
|
||||
protected JavaCreateTemplateInPackageAction(String text,
|
||||
String description,
|
||||
Icon icon,
|
||||
Set<? extends JpsModuleSourceRootType<?>> rootTypes) {
|
||||
super(text, description, icon, rootTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean checkPackageExists(PsiDirectory directory) {
|
||||
PsiPackage pkg = JavaDirectoryService.getInstance().getPackage(directory);
|
||||
|
||||
@@ -37,8 +37,12 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import icons.JetgroovyIcons;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
import org.jetbrains.plugins.groovy.GroovyBundle;
|
||||
import org.jetbrains.plugins.groovy.GroovyFileType;
|
||||
import org.jetbrains.plugins.groovy.config.GroovyConfigUtils;
|
||||
@@ -46,11 +50,18 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
|
||||
import org.jetbrains.plugins.groovy.util.LibrariesUtil;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class NewGroovyClassAction extends JavaCreateTemplateInPackageAction<GrTypeDefinition> implements DumbAware {
|
||||
|
||||
private final static Set<? extends JpsModuleSourceRootType<?>> ROOT_TYPES = ContainerUtil.newHashSet(
|
||||
JavaSourceRootType.SOURCE, JavaSourceRootType.TEST_SOURCE,
|
||||
JavaResourceRootType.RESOURCE, JavaResourceRootType.RESOURCE
|
||||
);
|
||||
|
||||
public NewGroovyClassAction() {
|
||||
super(GroovyBundle.message("newclass.menu.action.text"), GroovyBundle.message("newclass.menu.action.description"),
|
||||
JetgroovyIcons.Groovy.Class, true);
|
||||
JetgroovyIcons.Groovy.Class, ROOT_TYPES);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -127,5 +138,4 @@ public class NewGroovyClassAction extends JavaCreateTemplateInPackageAction<GrTy
|
||||
final String description = fromTemplate.getFileType().getDescription();
|
||||
throw new IncorrectOperationException(GroovyBundle.message("groovy.file.extension.is.not.mapped.to.groovy.file.type", description));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user