From 84ee551a36609e877a8cb71b40833646f1b03b15 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 6 Oct 2014 17:29:18 +0200 Subject: [PATCH] javafx page script fixed --- .../javaFX/fxml/JavaFXQuickfixTest.java | 2 - .../JavaFxInjectPageLanguageIntention.java | 45 +++++-------------- .../quickfix/registerPageLanguage_after.fxml | 2 +- 3 files changed, 13 insertions(+), 36 deletions(-) diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java index b85da167f45d..b95b12497e7b 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java @@ -18,8 +18,6 @@ package org.jetbrains.plugins.javaFX.fxml; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.testFramework.LightProjectDescriptor; diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java index 01dc2e06e364..0cbd61f765a9 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java @@ -17,14 +17,13 @@ package org.jetbrains.plugins.javaFX.fxml.codeInsight.intentions; import com.intellij.codeInsight.FileModificationService; import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.OrderEnumerator; import com.intellij.openapi.ui.popup.JBPopupFactory; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFileFactory; import com.intellij.psi.PsiParserFacade; @@ -36,16 +35,15 @@ import com.intellij.psi.xml.XmlProlog; import com.intellij.ui.components.JBList; import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.lang.UrlClassLoader; import org.jetbrains.annotations.NotNull; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; -import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; /** * User: anna @@ -55,33 +53,14 @@ public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAc public static final Logger LOG = Logger.getInstance("#" + JavaFxInjectPageLanguageIntention.class.getName()); private static Set getAvailableLanguages(Project project) { - final List engineFactories = new ScriptEngineManager(composeUserClassLoader(project)).getEngineFactories(); + final List engineFactories = new ScriptEngineManager().getEngineFactories(); - if (engineFactories != null) { - final Set availableNames = new TreeSet(); - for (ScriptEngineFactory factory : engineFactories) { - final String engineName = (String)factory.getParameter(ScriptEngine.NAME); - availableNames.add(engineName); - } - return availableNames; + final Set availableNames = new TreeSet(); + for (ScriptEngineFactory factory : engineFactories) { + final String engineName = (String)factory.getParameter(ScriptEngine.NAME); + availableNames.add(engineName); } - - return null; - } - - private static UrlClassLoader composeUserClassLoader(Project project) { - final List urls = new ArrayList(); - final List list = OrderEnumerator.orderEntries(project).recursively().runtimeOnly().getPathsList().getPathList(); - for (String path : list) { - try { - urls.add(new File(FileUtil.toSystemIndependentName(path)).toURI().toURL()); - } - catch (MalformedURLException e1) { - LOG.info(e1); - } - } - - return UrlClassLoader.build().urls(urls).get(); + return availableNames; } @Override @@ -90,7 +69,7 @@ public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAc final XmlFile containingFile = (XmlFile)element.getContainingFile(); final Set availableLanguages = getAvailableLanguages(project); - if (availableLanguages.size() == 1) { + if (availableLanguages.size() == 1 || ApplicationManager.getApplication().isUnitTestMode()) { registerPageLanguage(project, containingFile, availableLanguages.iterator().next()); } else { final JBList list = new JBList(availableLanguages); diff --git a/plugins/javaFX/testData/quickfix/registerPageLanguage_after.fxml b/plugins/javaFX/testData/quickfix/registerPageLanguage_after.fxml index eeac829d7175..f794f91d61ba 100644 --- a/plugins/javaFX/testData/quickfix/registerPageLanguage_after.fxml +++ b/plugins/javaFX/testData/quickfix/registerPageLanguage_after.fxml @@ -1,4 +1,4 @@ - +