From 88bb5be26084898b0683f81e7b77c5affd3bba75 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 18 Dec 2013 15:19:58 +0400 Subject: [PATCH] Translate KotlinTypeParameterFindUsagesHandler to Kotlin --- .../KotlinTypeParameterFindUsagesHandler.java | 79 ------------------- .../KotlinTypeParameterFindUsagesHandler.kt | 62 +++++++++++++++ 2 files changed, 62 insertions(+), 79 deletions(-) delete mode 100644 idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.java create mode 100644 idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.kt diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.java b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.java deleted file mode 100644 index cdb950525b3..00000000000 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2010-2013 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.findUsages.handlers; - -import com.intellij.find.findUsages.AbstractFindUsagesDialog; -import com.intellij.find.findUsages.FindUsagesOptions; -import com.intellij.openapi.actionSystem.DataContext; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.util.Computable; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiReference; -import com.intellij.usageView.UsageInfo; -import com.intellij.util.Processor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.psi.JetNamedDeclaration; -import org.jetbrains.jet.plugin.findUsages.FindUsagesPackage; -import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory; -import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinTypeParameterFindUsagesDialog; -import org.jetbrains.jet.plugin.search.usagesSearch.DefaultSearchHelper; -import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearch; -import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearchRequest; -import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearchTarget; - -public class KotlinTypeParameterFindUsagesHandler extends KotlinFindUsagesHandler { - public KotlinTypeParameterFindUsagesHandler(@NotNull JetNamedDeclaration element, @NotNull KotlinFindUsagesHandlerFactory factory) { - super(element, factory); - } - - @NotNull - @Override - public AbstractFindUsagesDialog getFindUsagesDialog(boolean isSingleFile, boolean toShowInNewTab, boolean mustOpenInNewTab) { - return new KotlinTypeParameterFindUsagesDialog( - getElement(), getProject(), getFindUsagesOptions(), toShowInNewTab, mustOpenInNewTab, isSingleFile, this - ); - } - - @Override - protected boolean searchReferences( - @NotNull final PsiElement element, @NotNull final Processor processor, @NotNull final FindUsagesOptions options - ) { - return ApplicationManager.getApplication().runReadAction( - new Computable() { - @Override - public Boolean compute() { - UsagesSearchTarget target = - FindUsagesPackage.toSearchTarget(options, (JetNamedDeclaration) element, true); - UsagesSearchRequest request = new DefaultSearchHelper().newRequest(target); - - for (PsiReference ref : UsagesSearch.instance$.search(request)) { - if (!processUsage(processor, ref)) return false; - } - - return true; - } - } - ); - } - - @NotNull - @Override - public FindUsagesOptions getFindUsagesOptions(@Nullable DataContext dataContext) { - return getFactory().getFindClassOptions(); - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.kt b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.kt new file mode 100644 index 00000000000..7a9d17d67eb --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinTypeParameterFindUsagesHandler.kt @@ -0,0 +1,62 @@ +/* + * Copyright 2010-2013 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.plugin.findUsages.handlers + +import com.intellij.find.findUsages.AbstractFindUsagesDialog +import com.intellij.find.findUsages.FindUsagesOptions +import com.intellij.openapi.actionSystem.DataContext +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.util.Computable +import com.intellij.psi.PsiElement +import com.intellij.psi.PsiReference +import com.intellij.usageView.UsageInfo +import com.intellij.util.Processor +import org.jetbrains.annotations.Nullable +import org.jetbrains.jet.lang.psi.JetNamedDeclaration +import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory +import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinTypeParameterFindUsagesDialog +import org.jetbrains.jet.plugin.search.usagesSearch.DefaultSearchHelper +import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearch +import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearchRequest +import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearchTarget +import org.jetbrains.jet.plugin.findUsages.toSearchTarget +import org.jetbrains.jet.plugin.search.usagesSearch.search + +public class KotlinTypeParameterFindUsagesHandler( + element: JetNamedDeclaration, + factory: KotlinFindUsagesHandlerFactory +) : KotlinFindUsagesHandler(element, factory) { + public override fun getFindUsagesDialog( + isSingleFile: Boolean, toShowInNewTab: Boolean, mustOpenInNewTab: Boolean + ): AbstractFindUsagesDialog { + return KotlinTypeParameterFindUsagesDialog( + getElement(), getProject(), getFindUsagesOptions(), toShowInNewTab, mustOpenInNewTab, isSingleFile, this + ) + } + + protected override fun searchReferences(element: PsiElement, processor: Processor, options: FindUsagesOptions): Boolean { + return ApplicationManager.getApplication()!!.runReadAction { + val target = options.toSearchTarget(element as JetNamedDeclaration, true) + val request = DefaultSearchHelper().newRequest(target) + request.search().all {ref -> KotlinFindUsagesHandler.processUsage(processor, ref)} + }!! + } + + public override fun getFindUsagesOptions(dataContext: DataContext?): FindUsagesOptions { + return getFactory().defaultOptions + } +}