From 0d417784c8aaa4224e649ed8fbdc22c2d1974f3b Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 18 Mar 2013 21:27:58 +0100 Subject: [PATCH] javafx packaging: generate fx:argument/fx:param/fx:htmlParam (cherry picked from commit dec26fc6b548ba009fe2afdfb1ab504ff0196ccb) --- .../ant/JavaFxChunkBuildExtension.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/ant/JavaFxChunkBuildExtension.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/ant/JavaFxChunkBuildExtension.java index d48cf87c8c4f..ac1838874d10 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/ant/JavaFxChunkBuildExtension.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/ant/JavaFxChunkBuildExtension.java @@ -23,6 +23,7 @@ import com.intellij.openapi.projectRoots.JavaSdkType; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.packaging.artifacts.Artifact; import com.intellij.packaging.artifacts.ArtifactManager; import com.intellij.packaging.artifacts.ArtifactType; @@ -37,9 +38,13 @@ import org.jetbrains.plugins.javaFX.packaging.JavaFxArtifactProperties; import org.jetbrains.plugins.javaFX.packaging.JavaFxArtifactPropertiesProvider; import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Properties; /** * User: anna @@ -128,6 +133,11 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension { new Pair("id", appId), new Pair("name", artifactName), new Pair("mainClass", properties.getAppClass())); + + appendValuesFromPropertiesFile(applicationTag, properties.getHtmlParamFile(), "fx:htmlParam", false); + //also loads fx:argument values + appendValuesFromPropertiesFile(applicationTag, properties.getParamFile(), "fx:param", true); + generator.add(applicationTag); //create jar task @@ -199,6 +209,40 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension { generator.add(deleteTag); } + private static void appendValuesFromPropertiesFile(final Tag applicationTag, + final String htmlParamFile, + final String paramTagName, + final boolean allowNoNamed) { + if (!StringUtil.isEmptyOrSpaces(htmlParamFile)) { + final Properties htmlProperties = new Properties(); + try { + final FileInputStream paramsInputStream = new FileInputStream(new File(htmlParamFile)); + try { + htmlProperties.load(paramsInputStream); + for (Object o : htmlProperties.keySet()) { + final String propName = (String)o; + final String propValue = htmlProperties.getProperty(propName); + if (!StringUtil.isEmptyOrSpaces(propValue)) { + applicationTag.add(new Tag(paramTagName, new Pair("name", propName), new Pair("value", propValue))); + } else if (allowNoNamed) { + applicationTag.add(new Generator() { + @Override + public void generate(PrintWriter out) throws IOException { + out.print("" + propName + ""); + } + }); + } + } + } + finally { + paramsInputStream.close(); + } + } + catch (IOException ignore) { + } + } + } + private static String artifactBasedProperty(final String property, String artifactName) { return property + "." + artifactName; }