Search in sources :

Example 1 with JSPackage

use of com.intellij.lang.javascript.psi.ecmal4.JSPackage in project intellij-plugins by JetBrains.

the class FlexUnitRunConfiguration method getRefactoringElementListener.

@Override
public RefactoringElementListener getRefactoringElementListener(final PsiElement element) {
    final FlexUnitRunnerParameters params = getRunnerParameters();
    final Module module = ModuleManager.getInstance(getProject()).findModuleByName(params.getModuleName());
    if (!(element instanceof PsiDirectoryContainer) && !(element instanceof JSPackage) && !(element instanceof JSPackageStatement) && (module == null || !module.equals(ModuleUtilCore.findModuleForPsiElement(element)))) {
        return null;
    }
    switch(params.getScope()) {
        case Method:
            if (element instanceof JSFunction) {
                final PsiElement parent = element.getParent();
                if (parent instanceof JSClass && Comparing.strEqual(((JSClass) parent).getQualifiedName(), params.getClassName()) && Comparing.strEqual(((JSFunction) element).getName(), params.getMethodName())) {
                    return new FlexRunConfigRefactoringListener.JSFunctionRefactoringListener(this);
                }
            }
        // no break here!
        case Class:
            if (element instanceof PsiDirectory && FlashRunConfiguration.containsClass(module, ((PsiDirectory) element), params.getClassName())) {
                return new FlexRunConfigRefactoringListener.PsiDirectoryRefactoringListener(this);
            }
            final JSClass jsClass = FlexRefactoringListenerProvider.getJSClass(element);
            if (jsClass != null && Comparing.strEqual(jsClass.getQualifiedName(), params.getClassName())) {
                return new FlexRunConfigRefactoringListener.JSClassRefactoringListener(this);
            }
        // no break here!
        case Package:
            final String currentPackage = params.getScope() == FlexUnitRunnerParameters.Scope.Package ? params.getPackageName() : StringUtil.getPackageName(params.getClassName());
            if ((element instanceof PsiDirectoryContainer || element instanceof JSPackage || element instanceof JSPackageStatement) && Comparing.strEqual(FlexRefactoringListenerProvider.getPackageName(element), currentPackage)) {
                return new FlexRunConfigRefactoringListener.PackageRefactoringListener(this);
            }
    }
    return null;
}
Also used : JSPackageStatement(com.intellij.lang.javascript.psi.ecmal4.JSPackageStatement) JSFunction(com.intellij.lang.javascript.psi.JSFunction) PsiDirectory(com.intellij.psi.PsiDirectory) PsiDirectoryContainer(com.intellij.psi.PsiDirectoryContainer) JSPackage(com.intellij.lang.javascript.psi.ecmal4.JSPackage) Module(com.intellij.openapi.module.Module) JSClass(com.intellij.lang.javascript.psi.ecmal4.JSClass) PsiElement(com.intellij.psi.PsiElement)

Example 2 with JSPackage

use of com.intellij.lang.javascript.psi.ecmal4.JSPackage in project intellij-plugins by JetBrains.

the class FlashRunConfiguration method getRefactoringElementListener.

@Override
public RefactoringElementListener getRefactoringElementListener(final PsiElement element) {
    if (!myRunnerParameters.isOverrideMainClass()) {
        return null;
    }
    final Module module = ModuleManager.getInstance(getProject()).findModuleByName(myRunnerParameters.getModuleName());
    if (!(element instanceof PsiDirectoryContainer) && !(element instanceof JSPackage) && !(element instanceof JSPackageStatement) && (module == null || !module.equals(ModuleUtilCore.findModuleForPsiElement(element)))) {
        return null;
    }
    final String currentPackage = StringUtil.getPackageName(myRunnerParameters.getOverriddenMainClass());
    if ((element instanceof PsiDirectoryContainer || element instanceof JSPackage || element instanceof JSPackageStatement) && Comparing.strEqual(FlexRefactoringListenerProvider.getPackageName(element), currentPackage)) {
        return new FlexRunConfigRefactoringListener.PackageRefactoringListener(this);
    }
    if (element instanceof PsiDirectory && containsClass(module, ((PsiDirectory) element), myRunnerParameters.getOverriddenMainClass())) {
        return new FlexRunConfigRefactoringListener.PsiDirectoryRefactoringListener(this);
    }
    final JSClass jsClass = FlexRefactoringListenerProvider.getJSClass(element);
    if (jsClass != null && Comparing.strEqual(jsClass.getQualifiedName(), myRunnerParameters.getOverriddenMainClass())) {
        return new FlexRunConfigRefactoringListener.JSClassRefactoringListener(this);
    }
    return null;
}
Also used : JSPackageStatement(com.intellij.lang.javascript.psi.ecmal4.JSPackageStatement) PsiDirectory(com.intellij.psi.PsiDirectory) PsiDirectoryContainer(com.intellij.psi.PsiDirectoryContainer) JSPackage(com.intellij.lang.javascript.psi.ecmal4.JSPackage) Module(com.intellij.openapi.module.Module) JSClass(com.intellij.lang.javascript.psi.ecmal4.JSClass)

Aggregations

JSClass (com.intellij.lang.javascript.psi.ecmal4.JSClass)2 JSPackage (com.intellij.lang.javascript.psi.ecmal4.JSPackage)2 JSPackageStatement (com.intellij.lang.javascript.psi.ecmal4.JSPackageStatement)2 Module (com.intellij.openapi.module.Module)2 PsiDirectory (com.intellij.psi.PsiDirectory)2 PsiDirectoryContainer (com.intellij.psi.PsiDirectoryContainer)2 JSFunction (com.intellij.lang.javascript.psi.JSFunction)1 PsiElement (com.intellij.psi.PsiElement)1