mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
javafx packaging: generate fx:argument/fx:param/fx:htmlParam
(cherry picked from commit dec26fc6b548ba009fe2afdfb1ab504ff0196ccb)
This commit is contained in:
+44
@@ -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<String, String>("id", appId),
|
||||
new Pair<String, String>("name", artifactName),
|
||||
new Pair<String, String>("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<String, String>("name", propName), new Pair<String, String>("value", propValue)));
|
||||
} else if (allowNoNamed) {
|
||||
applicationTag.add(new Generator() {
|
||||
@Override
|
||||
public void generate(PrintWriter out) throws IOException {
|
||||
out.print("<fx:argument>" + propName + "</fx:argument>");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
paramsInputStream.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String artifactBasedProperty(final String property, String artifactName) {
|
||||
return property + "." + artifactName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user