support for resource directories: enable java-specific actions only for directories...
[idea/community.git] / java / java-impl / src / com / intellij / ide / actions / JavaCreateTemplateInPackageAction.java
1 /*
2  * Copyright 2000-2010 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.ide.actions;
17
18 import com.intellij.openapi.project.DumbAware;
19 import com.intellij.openapi.util.text.StringUtil;
20 import com.intellij.psi.*;
21 import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
22
23 import javax.swing.*;
24
25 public abstract class JavaCreateTemplateInPackageAction<T extends PsiElement> extends CreateTemplateInPackageAction<T> implements
26                                                                                                                        DumbAware {
27
28   protected JavaCreateTemplateInPackageAction(String text, String description, Icon icon, boolean inSourceOnly) {
29     super(text, description, icon, inSourceOnly ? JavaModuleSourceRootTypes.SOURCES : null);
30   }
31
32   @Override
33   protected boolean checkPackageExists(PsiDirectory directory) {
34     PsiPackage pkg = JavaDirectoryService.getInstance().getPackage(directory);
35     if (pkg == null) {
36       return false;
37     }
38
39     String name = pkg.getQualifiedName();
40     return StringUtil.isEmpty(name) || JavaPsiFacade.getInstance(directory.getProject()).getNameHelper().isQualifiedName(name);
41   }
42 }