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