NewKotlinFileAction: J2K
This commit is contained in:
@@ -14,83 +14,67 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.actions;
|
package org.jetbrains.kotlin.idea.actions
|
||||||
|
|
||||||
import com.intellij.ide.IdeView;
|
import com.intellij.ide.actions.CreateFileFromTemplateAction
|
||||||
import com.intellij.ide.actions.CreateFileFromTemplateAction;
|
import com.intellij.ide.actions.CreateFileFromTemplateDialog
|
||||||
import com.intellij.ide.actions.CreateFileFromTemplateDialog;
|
import com.intellij.openapi.actionSystem.DataContext
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.LangDataKeys
|
||||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
import com.intellij.openapi.actionSystem.PlatformDataKeys
|
||||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
import com.intellij.openapi.module.ModuleUtilCore
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.project.DumbAware
|
||||||
import com.intellij.openapi.module.ModuleUtilCore;
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.project.DumbAware;
|
import com.intellij.openapi.roots.ProjectRootManager
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.psi.PsiDirectory
|
||||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.openapi.roots.ProjectRootManager;
|
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||||
import com.intellij.psi.PsiDirectory;
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import com.intellij.psi.PsiFile;
|
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
import org.jetbrains.kotlin.idea.configuration.showConfigureKotlinNotificationIfNeeded
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons;
|
|
||||||
import org.jetbrains.kotlin.idea.configuration.ConfigureKotlinInProjectUtilsKt;
|
|
||||||
|
|
||||||
import java.util.Map;
|
class NewKotlinFileAction
|
||||||
|
: CreateFileFromTemplateAction(KotlinBundle.message("new.kotlin.file.action"),
|
||||||
|
"Creates new Kotlin file or class",
|
||||||
|
KotlinFileType.INSTANCE.icon),
|
||||||
|
DumbAware
|
||||||
|
{
|
||||||
|
override fun postProcess(createdElement: PsiFile?, templateName: String?, customProperties: Map<String, String>?) {
|
||||||
|
super.postProcess(createdElement, templateName, customProperties)
|
||||||
|
|
||||||
public class NewKotlinFileAction extends CreateFileFromTemplateAction implements DumbAware {
|
val module = ModuleUtilCore.findModuleForPsiElement(createdElement!!)
|
||||||
public NewKotlinFileAction() {
|
|
||||||
super(KotlinBundle.message("new.kotlin.file.action"), "Creates new Kotlin file or class", KotlinFileType.INSTANCE.getIcon());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void postProcess(PsiFile createdElement, String templateName, Map<String, String> customProperties) {
|
|
||||||
super.postProcess(createdElement, templateName, customProperties);
|
|
||||||
|
|
||||||
Module module = ModuleUtilCore.findModuleForPsiElement(createdElement);
|
|
||||||
if (module != null) {
|
if (module != null) {
|
||||||
ConfigureKotlinInProjectUtilsKt.showConfigureKotlinNotificationIfNeeded(module);
|
showConfigureKotlinNotificationIfNeeded(module)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) {
|
||||||
protected void buildDialog(Project project, PsiDirectory directory, CreateFileFromTemplateDialog.Builder builder) {
|
builder.setTitle("New Kotlin File/Class")
|
||||||
builder
|
.addKind("File", KotlinFileType.INSTANCE.icon, "Kotlin File")
|
||||||
.setTitle("New Kotlin File/Class")
|
|
||||||
.addKind("File", KotlinFileType.INSTANCE.getIcon(), "Kotlin File")
|
|
||||||
.addKind("Class", KotlinIcons.CLASS, "Kotlin Class")
|
.addKind("Class", KotlinIcons.CLASS, "Kotlin Class")
|
||||||
.addKind("Interface", KotlinIcons.INTERFACE, "Kotlin Interface")
|
.addKind("Interface", KotlinIcons.INTERFACE, "Kotlin Interface")
|
||||||
.addKind("Enum class", KotlinIcons.ENUM, "Kotlin Enum")
|
.addKind("Enum class", KotlinIcons.ENUM, "Kotlin Enum")
|
||||||
.addKind("Object", KotlinIcons.OBJECT, "Kotlin Object");
|
.addKind("Object", KotlinIcons.OBJECT, "Kotlin Object")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getActionName(directory: PsiDirectory, newName: String, templateName: String): String {
|
||||||
protected String getActionName(PsiDirectory directory, String newName, String templateName) {
|
return KotlinBundle.message("new.kotlin.file.action")
|
||||||
return KotlinBundle.message("new.kotlin.file.action");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun isAvailable(dataContext: DataContext): Boolean {
|
||||||
protected boolean isAvailable(DataContext dataContext) {
|
|
||||||
if (super.isAvailable(dataContext)) {
|
if (super.isAvailable(dataContext)) {
|
||||||
IdeView ideView = LangDataKeys.IDE_VIEW.getData(dataContext);
|
val ideView = LangDataKeys.IDE_VIEW.getData(dataContext)!!
|
||||||
Project project = PlatformDataKeys.PROJECT.getData(dataContext);
|
val project = PlatformDataKeys.PROJECT.getData(dataContext)!!
|
||||||
assert ideView != null && project != null;
|
val projectFileIndex = ProjectRootManager.getInstance(project).fileIndex
|
||||||
ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(project).getFileIndex();
|
return ideView.directories.any { projectFileIndex.isInSourceContent(it.virtualFile) }
|
||||||
for (PsiDirectory dir : ideView.getDirectories()) {
|
|
||||||
if (projectFileIndex.isInSourceContent(dir.getVirtualFile())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun hashCode(): Int {
|
||||||
public int hashCode() {
|
return 0
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun equals(obj: Any?): Boolean {
|
||||||
public boolean equals(Object obj) {
|
return obj is NewKotlinFileAction
|
||||||
return obj instanceof NewKotlinFileAction;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user