From a2b040e170f7ea704feaf22193fd57f31fb34e88 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Thu, 27 Oct 2016 14:43:53 +0300 Subject: [PATCH] Javafx: "Wrap field with JavaFx property" intention - use ArtifactManager's modification tracker for caching presence of JavaFX artifacts (IDEA-102430) --- .../JavaFxFieldToPropertyNoArtifactTest.java | 23 ++++--------------- .../javaFX/JavaFxFieldToPropertyTest.java | 8 ++++++- .../plugins/javaFX/fxml/JavaFxModuleUtil.java | 6 ++--- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java index 0c22992ea1ec..ef4633d396a9 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java @@ -1,34 +1,21 @@ package org.jetbrains.plugins.javaFX; import com.intellij.codeInsight.intention.IntentionAction; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.plugins.javaFX.fxml.AbstractJavaFXTestCase; /** * Same as the base test, but detects the presence of JavaFX using imports and FXMLs, not artifacts * @author Pavel.Dolgov */ public class JavaFxFieldToPropertyNoArtifactTest extends JavaFxFieldToPropertyTest { - public static final DefaultLightProjectDescriptor JAVA_FX_DESCRIPTOR_NO_ARTIFACT = new DefaultLightProjectDescriptor() { - @Override - public void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) { - AbstractJavaFXTestCase.addJavaFxJarAsLibrary(module, model); - super.configureModule(module, model, contentEntry); - } - }; - - @Override - protected void setUpModule() { - super.setUpModule(); - } public void testArtifactPresenceFieldToProperty() throws Exception { final IntentionAction intentionAction = getIntentionAction(getTestName(false) + ".java"); // no artifact, no fxml, no javafx.* imports: the intention shoudn't be available assertNull(intentionAction); } + + @Override + protected boolean isArtifactNeeded() { + return false; + } } diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java index 089380e0f975..f236692eba8f 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java @@ -35,7 +35,9 @@ public class JavaFxFieldToPropertyTest extends DaemonAnalyzerTestCase { protected void setUpModule() { super.setUpModule(); AbstractJavaFXTestCase.addJavaFxJarAsLibrary(getModule()); - ArtifactManager.getInstance(getProject()).addArtifact("fake-javafx", JavaFxApplicationArtifactType.getInstance(), null); + if (isArtifactNeeded()) { + ArtifactManager.getInstance(getProject()).addArtifact("fake-javafx", JavaFxApplicationArtifactType.getInstance(), null); + } } public void testIntFieldToProperty() throws Exception { @@ -98,6 +100,10 @@ public class JavaFxFieldToPropertyTest extends DaemonAnalyzerTestCase { return findIntentionAction(infos, actionName, editor, file); } + protected boolean isArtifactNeeded() { + return true; + } + @NotNull @Override protected String getTestDataPath() { diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxModuleUtil.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxModuleUtil.java index 834136fc7c2d..dc9d40b66b0a 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxModuleUtil.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxModuleUtil.java @@ -69,9 +69,9 @@ public class JavaFxModuleUtil { private static boolean hasJavaFxArtifacts(@NotNull Project project) { return CachedValuesManager.getManager(project).getCachedValue( project, () -> { - final Collection artifacts = - ArtifactManager.getInstance(project).getArtifactsByType(JavaFxApplicationArtifactType.getInstance()); - return CachedValueProvider.Result.create(!artifacts.isEmpty(), ProjectRootManager.getInstance(project)); + final ArtifactManager artifactManager = ArtifactManager.getInstance(project); + final Collection artifacts = artifactManager.getArtifactsByType(JavaFxApplicationArtifactType.getInstance()); + return CachedValueProvider.Result.create(!artifacts.isEmpty(), artifactManager.getModificationTracker()); }); }