JAVA: BUILD GUI: LOGIN, ADD CUSTOMER, PLACE ORDER
BetterLayout2/build.xml
Builds, tests, and runs the project ControlSizeFX.
BetterLayout2/desktop.ini
[ViewState] Mode= Vid= FolderType=Generic
BetterLayout2/manifest.mf
Manifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build
BetterLayout2/nbproject/build-impl.xml
Must set src.dir Must set test.src.dir Must set build.dir Must set dist.dir Must set build.classes.dir Must set dist.javadoc.dir Must set build.test.classes.dir Must set build.test.results.dir Must set build.classes.excludes Must set dist.jar Must set javac.includes No tests executed. Must set JVM to use for profiling in profiler.info.jvm Must set profiler agent JVM arguments in profiler.info.jvmargs.agent Must select some files in the IDE or set javac.includes To run this application from the command line without Ant, try: java -jar "${dist.jar.resolved}" Must select one file in the IDE or set run.class Must select one file in the IDE or set run.class Must select one file in the IDE or set debug.class Must select one file in the IDE or set debug.class Must set fix.includes This target only works when run from inside the NetBeans IDE. Must select one file in the IDE or set profile.class This target only works when run from inside the NetBeans IDE. This target only works when run from inside the NetBeans IDE. This target only works when run from inside the NetBeans IDE. Must select one file in the IDE or set run.class Must select some files in the IDE or set test.includes Must select one file in the IDE or set run.class Must select one file in the IDE or set applet.url Must select some files in the IDE or set javac.includes Some tests failed; see details above. Must select some files in the IDE or set test.includes Some tests failed; see details above. Must select some files in the IDE or set test.class Must select some method in the IDE or set test.method Some tests failed; see details above. Must select one file in the IDE or set test.class Must select one file in the IDE or set test.class Must select some method in the IDE or set test.method Must select one file in the IDE or set applet.url Must select one file in the IDE or set applet.url
BetterLayout2/nbproject/configs/Run_as_WebStart.properties
# Do not modify this property in this configuration. It can be re-generated. $label=Run as WebStart
BetterLayout2/nbproject/configs/Run_in_Browser.properties
# Do not modify this property in this configuration. It can be re-generated. $label=Run in Browser
BetterLayout2/nbproject/genfiles.properties
build.xml.data.CRC32=619f4edb build.xml.script.CRC32=67973d23 [email protected] # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=0d5a465b nbproject/build-impl.xml.script.CRC32=4b10dca2 nbproject/[email protected]
BetterLayout2/nbproject/jfx-impl.xml
JavaFX-specific Ant calls ${cssfileslist} self.addMappedName( (source.indexOf("jfxrt.jar") >= 0) || (source.indexOf("deploy.jar") >= 0) || (source.indexOf("javaws.jar") >= 0) || (source.indexOf("plugin.jar") >= 0) ? "" : source ); function prefix(s, len) { if(s == null || len <= 0 || s.length == 0) { return new String(""); } return new String(s.substr(0, len)); } function defined(s) { return (s != null) && (s != "null") && (s.length > 0); } var pathConvert = project.createTask("pathconvert"); pathConvert.setProperty("run.and.lib.classpath"); var classPath = new String(project.getProperty("run.classpath.without.build.classes.and.dist.dir")); var fileSeparator = new String(project.getProperty("file.separator")); if(defined(classPath)) { var classPathCopy = pathConvert.createPath(); classPathCopy.setPath(classPath); var pathArray; if(classPath.indexOf(";") != -1) { pathArray = classPath.split(";"); } else { pathArray = classPath.split(":"); } var added = new java.lang.StringBuilder(); for (var i = 0; i < pathArray.length; i++) { var index = pathArray[i].lastIndexOf(fileSeparator); if (index >= 0) { var onePath = prefix(pathArray[i], index+1).concat("lib"); var oneDir = new java.io.File(onePath); if(oneDir.exists()) { var fs = project.createDataType( "fileset" ); fs.setDir( oneDir ); fs.setIncludes("*.jar"); var ds = fs.getDirectoryScanner(project); var srcFiles = ds.getIncludedFiles(); for (var j = 0; j < srcFiles.length; j++) { if(classPath.indexOf( srcFiles[j] ) == -1 && added.indexOf( srcFiles[j] ) == -1) { var path = pathConvert.createPath(); path.setPath( onePath.concat(fileSeparator).concat(srcFiles[j]) ); added.append( srcFiles[j] ); } } } } } } pathConvert.perform(); var dir = new String(project.getProperty("pp_rebase_dir")); var fDir = new java.io.File(dir); if( fDir.exists() ) { var callTask = project.createTask("antcall"); callTask.setTarget("-rebase-libs-macro-call"); var param = callTask.createParam(); param.setName("jar.file.to.rebase"); var includes = new String(project.getProperty("pp_rebase_fs")); var fs = project.createDataType("fileset"); fs.setDir( fDir ); fs.setIncludes(includes); var ds = fs.getDirectoryScanner(project); var srcFiles = ds.getIncludedFiles(); for (var i = 0; i < srcFiles.length; i++) { param.setValue(dir.concat("${file.separator}").concat(srcFiles[i])); callTask.perform(); } } var UTF_8 = "UTF-8"; var ATTR_CLASS_PATH = "Class-Path"; var ATTR_CLASS_PATH_FX = "JavaFX-Class-Path"; function endsWith(s, suffix) { var i = s.lastIndexOf(suffix); return (i != -1) && (i == (s.length - suffix.length)); } function isSigned(manifest) { var sections = manifest.getSectionNames(); while(sections.hasMoreElements()) { var sectionname = new String(sections.nextElement()); var section = manifest.getSection(sectionname); if(section != null) { var sectionKeys = section.getAttributeKeys(); while (sectionKeys.hasMoreElements()) { var element = new String(sectionKeys.nextElement()); if (endsWith(element, "-Digest") || endsWith(element, "-digest")) { return true; } } } } return false; } var src = new String(project.getProperty("manifest.file.temp")); var srf = new java.io.File(src); var manifest; try { var fis = new java.io.FileInputStream(srf); try { var isr = new java.io.InputStreamReader(fis, UTF_8); try { manifest = new org.apache.tools.ant.taskdefs.Manifest(isr); } finally { isr.close(); } } finally { fis.close(); } } catch(e) { manifest = null; } if(manifest != null) { if(isSigned(manifest)) { print("Warning: Signed JAR can not be rebased."); } else { var mainSection = manifest.getMainSection(); var classPath = mainSection.getAttributeValue(ATTR_CLASS_PATH); var classPathAttr = null; if (classPath != null) { classPathAttr = ATTR_CLASS_PATH; } else { classPath = mainSection.getAttributeValue(ATTR_CLASS_PATH_FX); if(classPath != null) { classPathAttr = ATTR_CLASS_PATH_FX; } } if(classPath != null) { var result = new java.lang.StringBuilder(); var changed = false; var pathArray = classPath.split(" "); for (var i = 0; i < pathArray.length; i++) { if (result.length() > 0) { result.append(' '); } var index = pathArray[i].lastIndexOf('/'); if (index >= 0 && index < pathArray[i].length - 1) { pathArray[i] = pathArray[i].substring(index+1); changed = true; } result.append(pathArray[i]); } mainSection.removeAttribute(classPathAttr); mainSection.addAttributeAndCheck(new org.apache.tools.ant.taskdefs.Manifest.Attribute(classPathAttr, result.toString())); var tgt = new String(project.getProperty("manifest.file.temp.new")); var tgf = new java.io.File(tgt); try { var fos = new java.io.FileOutputStream(tgf); try { var osw = new java.io.OutputStreamWriter(fos, UTF_8); try { var manifestOut = new java.io.PrintWriter(osw); manifest.write(manifestOut); manifestOut.close(); } finally { osw.close(); } } finally { fos.close(); } } catch(e) { print("Warning: problem storing rebased manifest file."); } } } } function isTrue(prop) { return prop != null && ( prop.toLowerCase() == "true" || prop.toLowerCase() == "yes" || prop.toLowerCase() == "on" ); } function prefix(s, len) { if(s == null || len <= 0 || s.length == 0) { return new String(""); } return new String(s.substr(0, len)); } function replaceSuffix(s, os, ns) { return prefix(s, s.indexOf(os)).concat(ns); } function startsWith(s, prefix) { return (s != null) && (s.indexOf(prefix) == 0); } function endsWith(s, suffix) { var i = s.lastIndexOf(suffix); return (i != -1) && (i == (s.length - suffix.length)); } function defined(s) { return (s != null) && (s != "null") && (s.length > 0); } function contains(array, prop) { for (var i = 0; i < array.length; i++) { var s1 = new String(array[i]); var s2 = new String(prop); if( s1.toLowerCase() == s2.toLowerCase() ) { return true; } } return false; } var S = new String(java.io.File.separator); var JFXPAR = "javafx.param"; var JFXMAN = "javafx.manifest.entry"; var JFXPARN = "name"; var JFXPARV = "value"; var JFXPARH = "hidden"; var JFXLAZY = "download.mode.lazy.jar"; var withpreloader = new String(project.getProperty("app-with-preloader")); var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1")); var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2")); var fx_in_swing_app = new String(project.getProperty("fx-in-swing-app")); // get jars with lazy download mode property set function getLazyJars() { var jars = new Array(); var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXLAZY)) { var fname = new String(pn.substring(JFXLAZY.length+1)); jars.push(fname); } } return jars.length > 0 ? jars : null; } // set download mode of dependent libraries function setDownloadMode(fsEager, fsLazy, jars) { for(var i = 0; i < jars.length; i++) { fsEager.setExcludes("lib" + S + jars[i]); fsLazy.setIncludes("lib" + S + jars[i]); } } // fx:jar var jar = project.createTask("fx_jar"); jar.setProject(project); var destfile = new String(project.getProperty("pp_jar_destfile")); jar.setDestfile(destfile); // fx:application var app = jar.createApplication(); app.setProject(project); var title = new String(project.getProperty("application.title")); var mainclass; if(isTrue(fx_in_swing_app) && isTrue(fx_ant_api_1_2)) { mainclass = new String(project.getProperty("main.class")); app.setToolkit("swing"); } else { mainclass = new String(project.getProperty("javafx.main.class")); } var fallback = new String(project.getProperty("javafx.fallback.class")); app.setName(title); app.setMainClass(mainclass); app.setFallbackClass(fallback); if(isTrue(withpreloader)) { preloaderclass = new String(project.getProperty("javafx.preloader.class")); app.setPreloaderClass(preloaderclass); } var appversion = new String(project.getProperty("javafx.application.implementation.version")); if(defined(appversion)) { app.setVersion(appversion); } else { app.setVersion("1.0"); } // fx:param, fx:argument var searchHides = project.getProperties().keys(); var hides = new Array(); while(searchHides.hasMoreElements()) { // collect all hidden property names var pns = new String(searchHides.nextElement()); if(startsWith(pns, JFXPAR) && endsWith(pns, JFXPARN)) { var propns = new String(project.getProperty(pns)); var phs = replaceSuffix(pns, JFXPARN, JFXPARH); var proph = new String(project.getProperty(phs)); if(isTrue(proph)) { hides.push(propns); } } } var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXPAR) && endsWith(pn, JFXPARN)) { var propn = new String(project.getProperty(pn)); if(defined(propn) && !contains(hides, propn)) { var pv = replaceSuffix(pn, JFXPARN, JFXPARV); var propv = new String(project.getProperty(pv)); if(defined(propv)) { var par = app.createParam(); par.setName(propn); par.setValue(propv); } else { if(isTrue(fx_ant_api_1_1)) { var arg = app.createArgument(); arg.addText(propn); } else { print("Warning: Unnamed parameters not supported by this version of JavaFX SDK deployment Ant tasks. Upgrade JavaFX to 2.0.2 or higher."); } } } } } // fx:resources var res = jar.createResources(); res.setProject(project); var pdir = new String(project.getProperty("pp_jar_dir")); if(isTrue(withpreloader)) { var f1 = res.createFileSet(); f1.setProject(project); f1.setDir(new java.io.File(pdir)); var i1 = new String(project.getProperty("pp_jar_fs1")); f1.setIncludes(i1); f1.setRequiredFor("preloader"); var f2 = res.createFileSet(); f2.setProject(project); f2.setDir(new java.io.File(pdir)); var i2b = new String(project.getProperty("pp_jar_fs2")); var e2c = new String(project.getProperty("pp_jar_fs1")); f2.setIncludes(i2b); f2.setExcludes(e2c); f2.setRequiredFor("startup"); var lazyjars = getLazyJars(); if(lazyjars != null) { var f3 = res.createFileSet(); f3.setProject(project); f3.setDir(new java.io.File(pdir)); f3.setRequiredFor("runtime"); setDownloadMode(f2,f3,lazyjars); } } else { var fn = res.createFileSet(); fn.setProject(project); fn.setDir(new java.io.File(pdir)); var ib = new String(project.getProperty("pp_jar_fs2")); fn.setIncludes(ib); fn.setRequiredFor("startup"); var lazyjars = getLazyJars(); if(lazyjars != null) { var fn2 = res.createFileSet(); fn2.setProject(project); fn2.setDir(new java.io.File(pdir)); fn2.setRequiredFor("runtime"); setDownloadMode(fn,fn2,lazyjars); } } // fileset to exclude *.css or *.bss var fs = jar.createFileSet(); fs.setProject(project); var buildcls = new String(project.getProperty("pp_jar_buildclasses")); var exc = new String(project.getProperty("pp_jar_cssbss")); fs.setDir(new java.io.File(buildcls)); fs.setExcludes(exc); // manifest var man = jar.createManifest(); var userManifestPath = project.getProperty("manifest.file"); if (userManifestPath) { var userManifestFile = project.resolveFile(userManifestPath); if (userManifestFile.isFile()) { var manifestEncoding = project.getProperty("manifest.encoding"); var userManifestReader = manifestEncoding ? new java.io.InputStreamReader( new java.io.FileInputStream(userManifestFile), manifestEncoding) : new java.io.InputStreamReader( new java.io.FileInputStream(userManifestFile)); try { var userManifest = new org.apache.tools.ant.taskdefs.Manifest(userManifestReader); man.merge(userManifest); } finally { userManifestReader.close(); } } } var a1val = new String(project.getProperty("application.vendor")); var a1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a1.setName("Implementation-Vendor"); a1.setValue(a1val); man.addConfiguredAttribute(a1); var a2val = new String(project.getProperty("application.title")); var a2 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); if(defined(appversion)) { var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); a3.setValue(appversion); man.addConfiguredAttribute(a3); } var a4prop = new String(project.getProperty("javafx.deploy.disable.proxy")); if(isTrue(a4prop)) { var a4 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a4.setName("JavaFX-Feature-Proxy"); a4.setValue("None"); man.addConfiguredAttribute(a4); } // custom manifest entries var searchManifestHides = project.getProperties().keys(); var manifestHides = new Array(); while(searchManifestHides.hasMoreElements()) { // collect all hidden property names var pns = new String(searchManifestHides.nextElement()); if(startsWith(pns, JFXMAN) && endsWith(pns, JFXPARN)) { var propns = new String(project.getProperty(pns)); var phs = replaceSuffix(pns, JFXPARN, JFXPARH); var proph = new String(project.getProperty(phs)); if(isTrue(proph)) { manifestHides.push(propns); } } } var manifestKeys = project.getProperties().keys(); while(manifestKeys.hasMoreElements()) { var pn = new String(manifestKeys.nextElement()); if(startsWith(pn, JFXMAN) && endsWith(pn, JFXPARN)) { var propn = new String(project.getProperty(pn)); if(defined(propn) && !contains(manifestHides, propn)) { var propnr = propn.replace(/\s/g, "-"); var entry = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); entry.setName(propnr); var pv = replaceSuffix(pn, JFXPARN, JFXPARV); var propv = new String(project.getProperty(pv)); if(defined(propv)) { entry.setValue(propv); } else { entry.setValue(""); } man.addConfiguredAttribute(entry); } } } var profileAvailable = new String(project.getProperty("profile.available")); if (defined(profileAvailable)) { var profileAttribute = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); profileAttribute.setName("Profile"); profileAttribute.setValue(new String(project.getProperty("javac.profile"))); man.addConfiguredAttribute(profileAttribute); } var perm_elev = new String(project.getProperty("permissions.elevated")); var cust_perm = new String(project.getProperty("manifest.custom.permissions")); var cust_cb = new String(project.getProperty("manifest.custom.codebase")); var sa1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); sa1.setName("Codebase"); if(!defined(cust_cb) || cust_cb == "*") { sa1.setValue("*"); print("Warning: From JDK7u25 the Codebase manifest attribute should be used to restrict JAR repurposing."); print(" Please set manifest.custom.codebase property to override the current default non-secure value '*'."); } else { sa1.setValue(cust_cb); } man.addConfiguredAttribute(sa1); var sa2 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); sa2.setName("Permissions"); if(!defined(cust_perm)) { if(isTrue(perm_elev)) { sa2.setValue("all-permissions"); } else { sa2.setValue("sandbox"); } } else { if(cust_perm == "all-permissions") { sa2.setValue("all-permissions"); } else { sa2.setValue("sandbox"); } } man.addConfiguredAttribute(sa2); // Note: see JavaFX Jira issue #RT-25003 if attribute names are created lowercase in manifest jar.perform(); function isTrue(prop) { return prop != null && (prop.toLowerCase()=="true" || prop.toLowerCase()=="yes" || prop.toLowerCase()=="on"); } function prefix(s, len) { if(s == null || len <= 0 || s.length == 0) { return new String(""); } return new String(s.substr(0, len)); } function replaceSuffix(s, os, ns) { return prefix(s, s.indexOf(os)).concat(ns); } function startsWith(s, prefix) { return (s != null) && (s.indexOf(prefix) == 0); } function endsWith(s, suffix) { var i = s.lastIndexOf(suffix); return (i != -1) && (i == (s.length - suffix.length)); } function defined(s) { return (s != null) && (s != "null") && (s.length > 0); } function contains(array, prop) { for (var i = 0; i < array.length; i++) { var s1 = new String(array[i]); var s2 = new String(prop); if( s1.toLowerCase() == s2.toLowerCase() ) { return true; } } return false; } var S = java.io.File.separator; var JFXPAR = "javafx.param"; var JFXPARN = "name"; var JFXPARV = "value"; var JFXPARH = "hidden"; var JFXCALLB = "javafx.jscallback"; var JFXLAZY = "download.mode.lazy.jar"; var withpreloader = new String(project.getProperty("app-with-preloader")); var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1")); var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2")); var have_jdk_pre7u14 = new String(project.getProperty("have-jdk-pre7u14")); var fx_in_swing_app = new String(project.getProperty("fx-in-swing-app")); var debug_in_browser = new String(project.getProperty("project.state.debugging.in.browser")); // get jars with lazy download mode property set function getLazyJars() { var jars = new Array(); var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXLAZY)) { var fname = pn.substring(JFXLAZY.length+1); jars.push(fname); } } return jars.length > 0 ? jars : null; } // set download mode of dependent libraries function setDownloadMode(fsEager, fsLazy, jars) { for(var i = 0; i < jars.length; i++) { fsEager.setExcludes("lib" + S + jars[i]); fsLazy.setIncludes("lib" + S + jars[i]); } } // convert path to absolute if relative function derelativizePath(path) { var f = new java.io.File(path); if(!f.exists()) { f = new java.io.File(new String(project.getBaseDir()) + S + path); } if(f.exists()) { try { return f.getCanonicalPath(); } catch(err) { return path; } } return path; } // fx:deploy var deploy = project.createTask("fx_deploy"); deploy.setProject(project); var width = new String(project.getProperty("javafx.width")); var height = new String(project.getProperty("javafx.height")); var outdir = new String(project.getProperty("jfx.deployment.dir")); var embedJNLP = new String(project.getProperty("javafx.deploy.embedJNLP")); var updatemode = new String(project.getProperty("update-mode")); var outfile = new String(project.getProperty("application.title")); var includeDT = new String(project.getProperty("javafx.deploy.includeDT")); var offline = new String(project.getProperty("javafx.deploy.allowoffline")); if (width.indexOf("%") != -1) { deploy.setEmbeddedWidth(width); deploy.setWidth(800); } else { deploy.setWidth(width); } if (height.indexOf("%") != -1) { deploy.setEmbeddedHeight(height); deploy.setHeight(600); } else { deploy.setHeight(height); } deploy.setOutdir(outdir); deploy.setEmbedJNLP(isTrue(embedJNLP)); deploy.setUpdateMode(updatemode); deploy.setOutfile(outfile); deploy.setIncludeDT(isTrue(includeDT)); if(defined(offline)) { if(isTrue(fx_ant_api_1_1)) { deploy.setOfflineAllowed(isTrue(offline)); } else { print("Warning: offlineAllowed not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher."); } } // native packaging (time consuming, thus applied in explicit build only) var nativeEnabled = new String(project.getProperty("do.build.native.package")); var nativeType = new String(project.getProperty("javafx.native.bundling.type")); var projStateRun = new String(project.getProperty("project.state.running")); var projStateDbg = new String(project.getProperty("project.state.debugging")); var projStatePrf = new String(project.getProperty("project.state.profiling")); if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") { if(!isTrue(projStateRun) && !isTrue(projStateDbg) && !isTrue(projStatePrf)) { if(isTrue(fx_ant_api_1_2)) { deploy.setNativeBundles(nativeType); print("Note: To create native bundles the <fx:deploy> task may require external tools. See JavaFX 2.2+ documentation for details."); print(""); print("Launching <fx:deploy> in native packager mode..."); } else { print("Warning: Native packaging is not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK 7u6 or higher."); } } } // fx:application var app = deploy.createApplication(); app.setProject(project); var title = new String(project.getProperty("application.title")); var mainclass; if(isTrue(fx_in_swing_app) && isTrue(fx_ant_api_1_2)) { mainclass = new String(project.getProperty("main.class")); app.setToolkit("swing"); } else { mainclass = new String(project.getProperty("javafx.main.class")); } var fallback = new String(project.getProperty("javafx.fallback.class")); app.setName(title); app.setMainClass(mainclass); app.setFallbackClass(fallback); if(isTrue(withpreloader)) { preloaderclass = new String(project.getProperty("javafx.preloader.class")); app.setPreloaderClass(preloaderclass); } var appversion = new String(project.getProperty("javafx.application.implementation.version")); if(defined(appversion)) { app.setVersion(appversion); } else { app.setVersion("1.0"); } // fx:param, fx:argument var searchHides = project.getProperties().keys(); var hides = new Array(); while(searchHides.hasMoreElements()) { // collect all hidden property names var pns = new String(searchHides.nextElement()); if(startsWith(pns, JFXPAR) && endsWith(pns, JFXPARN)) { var propns = new String(project.getProperty(pns)); var phs = replaceSuffix(pns, JFXPARN, JFXPARH); var proph = new String(project.getProperty(phs)); if(isTrue(proph)) { hides.push(propns); } } } var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXPAR) && endsWith(pn, JFXPARN)) { var propn = new String(project.getProperty(pn)); if(defined(propn) && !contains(hides, propn)) { var pv = replaceSuffix(pn, JFXPARN, JFXPARV); var propv = new String(project.getProperty(pv)); if(defined(propv)) { var par = app.createParam(); par.setName(propn); par.setValue(propv); } else { if(isTrue(fx_ant_api_1_1)) { var arg = app.createArgument(); arg.addText(propn); } else { print("Warning: Unnamed parameters not supported by this version of JavaFX SDK deployment Ant tasks. Upgrade JavaFX to 2.0.2 or higher."); } } } } } // fx:resources var res = deploy.createResources(); res.setProject(project); var deploydir = new String(project.getProperty("pp_deploy_dir")); if(isTrue(withpreloader)) { var f1 = res.createFileSet(); f1.setProject(project); f1.setDir(new java.io.File(deploydir)); var i1 = new String(project.getProperty("pp_deploy_fs1")); f1.setIncludes(i1); f1.setRequiredFor("preloader"); var f2 = res.createFileSet(); f2.setProject(project); f2.setDir(new java.io.File(deploydir)); var i2a = new String(project.getProperty("jfx.deployment.jar")); var i2b = new String(project.getProperty("pp_deploy_fs2")); var e2c = new String(project.getProperty("pp_deploy_fs1")); f2.setIncludes(i2a); f2.setIncludes(i2b); f2.setExcludes(e2c); f2.setRequiredFor("startup"); var lazyjars = getLazyJars(); if(lazyjars != null) { var f3 = res.createFileSet(); f3.setProject(project); f3.setDir(new java.io.File(deploydir)); f3.setRequiredFor("runtime"); setDownloadMode(f2,f3,lazyjars); } } else { var fn = res.createFileSet(); fn.setProject(project); fn.setDir(new java.io.File(deploydir)); var ia = new String(project.getProperty("jfx.deployment.jar")); var ib = new String(project.getProperty("pp_deploy_fs2")); fn.setIncludes(ia); fn.setIncludes(ib); fn.setRequiredFor("startup"); var lazyjars = getLazyJars(); if(lazyjars != null) { var fn2 = res.createFileSet(); fn2.setProject(project); fn2.setDir(new java.io.File(deploydir)); fn2.setRequiredFor("runtime"); setDownloadMode(fn,fn2,lazyjars); } } // fx:info var info = deploy.createInfo(); info.setProject(project); var vendor = new String(project.getProperty("application.vendor")); var description = new String(project.getProperty("application.desc")); info.setTitle(title); // title known from before info.setVendor(vendor); info.setDescription(description); var splash = new String(project.getProperty("javafx.deploy.splash")); if(defined(splash)) { if(isTrue(fx_ant_api_1_1)) { var sicon = info.createSplash(); sicon.setHref(splash); sicon.setMode("any"); print("Adding splash image reference: " + splash); } else { print("Warning: Splash Image not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher."); } } if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") { var icon = new String(project.getProperty("javafx.deploy.icon.native")); if(defined(icon)) { if(isTrue(fx_ant_api_1_2) && !isTrue(have_jdk_pre7u14)) { var dicon = derelativizePath(icon); // create temporary icon copy renamed to application name (required by native packager) var baseDir = new String(project.getProperty("basedir")); var buildDir = new String(project.getProperty("build.dir")); var deployBase = new String(project.getProperty("jfx.deployment.base")); var copyTask = project.createTask("copy"); var source = new java.io.File(dicon); var sourceName = new String(source.getName()); var lastDot = sourceName.lastIndexOf("."); var sourceExt; if(lastDot >=0) { sourceExt = sourceName.substr(lastDot); } else { sourceExt = new String(""); } var target = new java.io.File(baseDir.concat(S).concat(buildDir).concat(S).concat("icon").concat(S).concat(deployBase).concat(sourceExt)); copyTask.setFile(source); copyTask.setTofile(target); copyTask.setFlatten(true); copyTask.setFailOnError(false); copyTask.perform(); var tempicon; if(target.exists()) { try { tempicon = target.getCanonicalPath(); } catch(err) { tempicon = dicon; } } else { tempicon = dicon; } var nicon = info.createIcon(); nicon.setHref(tempicon); print("Source native icon reference: " + dicon); print("Processed native icon reference: " + tempicon); } else { print("Warning: Native Package icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK7u14."); } } } else { var icon = new String(project.getProperty("javafx.deploy.icon")); if(defined(icon)) { if(isTrue(fx_ant_api_1_1)) { var iicon = info.createIcon(); iicon.setHref(icon); print("Adding WebStart icon reference: " + icon); } else { print("Warning: WebStart Icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher."); } } } // fx:permissions var perm = deploy.createPermissions(); perm.setProject(project); var elev = new String(project.getProperty("permissions.elevated")); perm.setElevated(isTrue(elev)); // fx:preferences var pref = deploy.createPreferences(); pref.setProject(project); var scut = new String(project.getProperty("javafx.deploy.adddesktopshortcut")); var instp = new String(project.getProperty("javafx.deploy.installpermanently")); var smenu = new String(project.getProperty("javafx.deploy.addstartmenushortcut")); pref.setShortcut(isTrue(scut)); pref.setInstall(isTrue(instp)); pref.setMenu(isTrue(smenu)); // fx:template var templ = new String(project.getProperty("javafx.run.htmltemplate")); var templp = new String(project.getProperty("javafx.run.htmltemplate.processed")); if(defined(templ) && defined(templp)) { var temp = deploy.createTemplate(); temp.setProject(project); temp.setFile(new java.io.File(templ)); temp.setTofile(new java.io.File(templp)); } // fx:platform var plat = deploy.createPlatform(); plat.setProject(project); var requestRT = new String(project.getProperty("javafx.deploy.request.runtime")); if(defined(requestRT)) { plat.setJavafx(requestRT); } var jvmargs = new String(project.getProperty("run.jvmargs")); if(defined(jvmargs)) { var jvmargss = jvmargs.split(" "); for(var i = 0; i < jvmargss.length; i++) { if(defined(jvmargss[i])) { var vmarg = plat.createJvmarg(); vmarg.setValue(jvmargss[i]); } } } if(isTrue(debug_in_browser)) { var vmarg = plat.createJvmarg(); vmarg.setValue(new String("-ea:javafx.browserdebug")); } if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") { if(!isTrue(projStateRun) && !isTrue(projStateDbg) && !isTrue(projStatePrf)) { if(plat.setBasedir) { var sdkdir = new String(project.getProperty("javafx.sdk")); if(defined(sdkdir)) { plat.setBasedir(sdkdir); } } else { print("Note: the current version of native packager Ant task can bundle the default JRE only."); } } } // fx:callbacks var callbs = deploy.createCallbacks(); callbs.setProject(project); var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXCALLB)) { var prop = new String(project.getProperty(pn)); if(defined(prop)) { var cname = pn.substring(JFXCALLB.length+1); var cb = callbs.createCallback(); cb.setProject(project); cb.setName(cname); cb.addText(prop); } } } deploy.perform(); function prefix(s, len) { if(s == null || len <= 0 || s.length == 0) { return new String(""); } return new String(s.substr(0, len)); } function replaceSuffix(s, os, ns) { return prefix(s, s.indexOf(os)).concat(ns); } function startsWith(s, prefix) { return (s != null) && (s.indexOf(prefix) == 0); } function endsWith(s, suffix) { var i = s.lastIndexOf(suffix); return (i != -1) && (i == (s.length - suffix.length)); } function defined(s) { return (s != null) && (s != "null") && (s.length > 0); } var JFXPAR = "javafx.param"; var JFXPARN = "name"; var JFXPARV = "value"; var params = new java.lang.StringBuilder(); var args = new java.lang.StringBuilder(); var keys = project.getProperties().keys(); while(keys.hasMoreElements()) { var pn = new String(keys.nextElement()); if(startsWith(pn, JFXPAR) && endsWith(pn, JFXPARN)) { var propn = new String(project.getProperty(pn)); if(defined(propn)) { var pv = replaceSuffix(pn, JFXPARN, JFXPARV); var propv = new String(project.getProperty(pv)); if(defined(propv)) { params.append("\n <param name=\""); params.append(propn); params.append("\" value=\""); params.append(propv); params.append("\"/>"); args.append("\n <argument>"); args.append(propn); args.append("="); args.append(propv); args.append("</argument>"); } else { params.append("\n <param name=\""); params.append(propn); params.append("\" value=\"\"/>"); args.append("\n <argument>"); args.append(propn); args.append("</argument>"); } } } } project.setProperty("applet-params-token", new String(params.toString())); project.setProperty("application-args-token", new String(args.toString())); function startsWith(s, prefix) { return (s != null) && (s.indexOf(prefix) == 0); } function defined(s) { return (s != null) && (s != "null") && (s.length > 0); } var PREF = "file:"; var doCopyIcon = new String(project.getProperty("local-icon-filename-available")); if(defined(doCopyIcon)) { var iconProp = new String(project.getProperty("javafx.deploy.icon")); if(startsWith(iconProp, PREF)) { iconProp = iconProp.slice(PREF.length); } while(iconProp.charAt(0) == "/") { iconProp = iconProp.slice(1); } var S = java.io.File.separator; var baseDir = new String(project.getProperty("basedir")); var distDir = new String(project.getProperty("dist.dir")); var copyTask = new String(project.createTask("copy")); var source = new java.io.File(iconProp); var target = new java.io.File(baseDir.concat(S).concat(distDir)); copyTask.setFile(source); copyTask.setTodir(target); copyTask.setFlatten(true); copyTask.setFailOnError(false); copyTask.perform(); } var doCopyHTMLFrom = new String(project.getProperty("html-template-available")); var doCopyHTMLTo = new String(project.getProperty("html-template-processed-available")); if(defined(doCopyHTMLFrom) && defined(doCopyHTMLTo)) { var htmlFrom = new String(project.getProperty("javafx.run.htmltemplate")); if(startsWith(htmlFrom, PREF)) { htmlFrom = htmlFrom.slice(PREF.length); } while(startsWith(htmlFrom, "/")) { htmlFrom = htmlFrom.slice(1); } var htmlTo = new String(project.getProperty("javafx.run.htmltemplate.processed")); if(startsWith(htmlTo, PREF)) { htmlTo = htmlTo.slice(PREF.length); } while(startsWith(htmlTo, "/")) { htmlTo = htmlTo.slice(1); } var copyTask = project.createTask("copy"); var source = new java.io.File(htmlFrom); var target = new java.io.File(htmlTo); copyTask.setFile(source); copyTask.setTofile(target); copyTask.setFailOnError(false); copyTask.perform(); }
BetterLayout2/nbproject/private/configs/Run_as_WebStart.properties
# Do not modify this property in this configuration. It can be re-generated. javafx.run.as=webstart
BetterLayout2/nbproject/private/configs/Run_in_Browser.properties
# Do not modify this property in this configuration. It can be re-generated. javafx.run.as=embedded javafx.run.inbrowser=<Default System Browser> javafx.run.inbrowser.path=C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe
BetterLayout2/nbproject/private/private.properties
auxiliary.org-netbeans-modules-projectapi.issue214819_5f_fx_5f_enabled=true user.properties.file=C:\\Users\\bary\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
BetterLayout2/nbproject/private/private.xml
BetterLayout2/nbproject/project.properties
annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processor.options= annotation.processing.processors.list= annotation.processing.run.all.processors=true annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output application.title=BetterLayout2 application.vendor=bary build.classes.dir=${build.dir}/classes build.classes.excludes=**/*.java,**/*.form # This directory is removed when the project is cleaned: build.dir=build build.generated.dir=${build.dir}/generated build.generated.sources.dir=${build.dir}/generated-sources # Only compile against the classpath explicitly listed here: build.sysclasspath=ignore build.test.classes.dir=${build.dir}/test/classes build.test.results.dir=${build.dir}/test/results compile.on.save=true compile.on.save.unsupported.javafx=true # Uncomment to specify the preferred debugger connection transport: #debug.transport=dt_socket debug.classpath=\ ${run.classpath} debug.test.classpath=\ ${run.test.classpath} # This directory is removed when the project is cleaned: dist.dir=dist dist.jar=${dist.dir}/BetterLayout2.jar dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= includes=** # Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects jar.archive.disabled=true jar.compress=false javac.classpath=\ ${javafx.classpath.extension} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false javac.processorpath=\ ${javac.classpath} javac.source=1.8 javac.target=1.8 javac.test.classpath=\ ${javac.classpath}:\ ${build.classes.dir} javac.test.processorpath=\ ${javac.test.classpath} javadoc.additionalparam= javadoc.author=false javadoc.encoding=${source.encoding} javadoc.noindex=false javadoc.nonavbar=false javadoc.notree=false javadoc.private=false javadoc.splitindex=true javadoc.use=true javadoc.version=false javadoc.windowtitle= javafx.application.implementation.version=1.0 javafx.binarycss=false javafx.classpath.extension=\ ${java.home}/lib/javaws.jar:\ ${java.home}/lib/deploy.jar:\ ${java.home}/lib/plugin.jar javafx.deploy.allowoffline=true # If true, application update mode is set to 'background', if false, update mode is set to 'eager' javafx.deploy.backgroundupdate=false javafx.deploy.embedJNLP=true javafx.deploy.includeDT=true # Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) javafx.disable.concurrent.runs=false # Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project javafx.enable.concurrent.external.runs=false # This is a JavaFX project javafx.enabled=true javafx.fallback.class=com.javafx.main.NoJavaFXFallback # Main class for JavaFX javafx.main.class=betterlayout2.BetterLayout2 javafx.preloader.class= # This project does not use Preloader javafx.preloader.enabled=false javafx.preloader.jar.filename= javafx.preloader.jar.path= javafx.preloader.project.path= javafx.preloader.type=none # Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. javafx.rebase.libs=false javafx.run.height=600 javafx.run.width=800 # Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects jnlp.enabled=false # Main class for Java launcher main.class=com.javafx.main.Main # For improved security specify narrower Codebase manifest attribute to prevent RIAs from being repurposed manifest.custom.codebase=* # Specify Permissions manifest attribute to override default (choices: sandbox, all-permissions) manifest.custom.permissions= manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF platform.active=default_platform run.classpath=\ ${dist.jar}:\ ${javac.classpath}:\ ${build.classes.dir} run.test.classpath=\ ${javac.test.classpath}:\ ${build.test.classes.dir} source.encoding=UTF-8 src.dir=src test.src.dir=test
BetterLayout2/nbproject/project.xml
org.netbeans.modules.java.j2seproject BetterLayout2
BetterLayout2/src/betterlayout2/BetterLayout2.java
BetterLayout2/src/betterlayout2/BetterLayout2.java
/** *******************************************************************
* BetterLayout2.java - Demonstrate VBox containing an HBox *
* *
* This example shows how to use an HBox to group items horizontally *
* so that they can be placed within a VBox. *
* *
* This example also shows how to create and use a method to reduce *
* the amount of duplicated code that otherwise would be necessary. *
* *
* This example extends the original BetterLayout program so that *
* both TextFields and ComboBoxes are supported. *
******************************************************************** */
//
package
betterlayout2
;
import
javafx
.
application
.
Application
;
import
javafx
.
geometry
.
Insets
;
import
javafx
.
geometry
.
Pos
;
import
javafx
.
scene
.
Scene
;
import
javafx
.
scene
.
control
.
Button
;
import
javafx
.
scene
.
control
.
ComboBox
;
import
javafx
.
scene
.
control
.
Control
;
import
javafx
.
scene
.
control
.
Label
;
import
javafx
.
scene
.
control
.
Menu
;
import
javafx
.
scene
.
control
.
MenuBar
;
import
javafx
.
scene
.
control
.
MenuItem
;
import
javafx
.
scene
.
control
.
TextField
;
import
javafx
.
scene
.
layout
.
HBox
;
import
javafx
.
scene
.
layout
.
VBox
;
import
javafx
.
stage
.
Stage
;
enum
ControlType
{
ATextField
,
AComboBox
};
public
class
BetterLayout2
extends
Application
{
@
Override
public
void
start
(
Stage
primaryStage
)
{
// This is where the retrieved data is displayed
Label
echoLbl
=
new
Label
(
"\nEnter text in some/all of the fields\nThen press 'Get'"
);
// Set title for the stage
primaryStage
.
setTitle
(
"BetterLayout - VBox Containing Several HBoxes"
);
// Set title for the scene
Label
titleLbl
=
new
Label
(
"More Professional Layout"
);
// Set the Style of the Label
titleLbl
.
setStyle
(
"-fx-font: normal bold 16px 'sans-serif' "
);
// Create 4 Label-TextField entries
// This can be extended to as many fields as needed
Pair
nameField
=
makeField
(
ControlType
.
ATextField
,
"name"
,
150
);
Pair
addressField
=
makeField
(
ControlType
.
ATextField
,
"address"
,
235
);
Pair
cityField
=
makeField
(
ControlType
.
ATextField
,
"city"
,
120
);
Pair
stateField
=
makeField
(
ControlType
.
AComboBox
,
"state"
,
80
);
stateField
.
getCb
().
setVisibleRowCount
(
5
);
stateField
.
getCb
().
getItems
().
addAll
(
"AL"
,
"AZ"
,
"AR"
,
"CA"
,
"CO"
,
"CT"
,
"DE"
);
// Create a button that shows how to retrieve data from the controls
Button
getBtn
=
new
Button
(
" Get "
);
getBtn
.
setOnAction
(
e
->
{
// Retrieve text from each field and trim leading/trailing whitespace
String
name
=
"Name: "
+
nameField
.
grabText
();
String
address
=
"Address: "
+
addressField
.
grabText
();
String
city
=
"City: "
+
cityField
.
grabText
();
String
state
=
"State: "
+
stateField
.
grabState
();
String
echo
=
name
+
"\n"
+
address
+
"\n"
+
city
+
"\n"
+
state
;
echoLbl
.
setText
(
echo
);
});
// Creae a button that clears all TextFields and the echo field
Button
clearBtn
=
new
Button
(
" Clear "
);
clearBtn
.
setOnAction
(
e
->
{
nameField
.
getTf
().
clear
();
addressField
.
getTf
().
clear
();
cityField
.
getTf
().
clear
();
stateField
.
getCb
().
setValue
(
"Select"
);
echoLbl
.
setText
(
""
);
});
// Create a button that causes this app to terminate
Button
quitBtn
=
new
Button
(
" Quit "
);
quitBtn
.
setOnAction
(
e
->
quitAction
(
primaryStage
));
// Lay out 3 Buttons on one horizontal row
HBox
hboxBtns
=
new
HBox
(
50
,
getBtn
,
clearBtn
,
quitBtn
);
// Lay out all the data entry fields vertically
VBox
vbox
=
new
VBox
(
15
,
titleLbl
,
nameField
.
getHb
(),
addressField
.
getHb
(),
cityField
.
getHb
(),
stateField
.
getHb
(),
new
Label
(
" "
),
hboxBtns
,
echoLbl
);
vbox
.
setPadding
(
new
Insets
(
15
,
12
,
15
,
70
));
// Create VBox for outer layer of the layout
VBox
vboxOL
=
new
VBox
(
15
,
addMenu
(
primaryStage
),
vbox
);
// Display the scene
Scene
scene
=
new
Scene
(
vboxOL
,
425
,
420
);
primaryStage
.
setScene
(
scene
);
primaryStage
.
setResizable
(
false
);
primaryStage
.
show
();
}
// end start()
// This "worker method" creates and lays out a Label-Control pair
// ctype = aTextField or aComboBox
// label = text for the label
// width = width of the control
// Using this method saves duplicating lots of code for each pair
private
Pair
makeField
(
ControlType
ctype
,
String
label
,
int
width
)
{
Label
lbl
=
new
Label
(
makeLabel
(
label
));
lbl
.
setPrefWidth
(
50
);
TextField
tf
=
new
TextField
();
ComboBox
<
String
>
cb
=
new
ComboBox
<>
();
cb
.
setValue
(
"Select"
);
tf
.
setPromptText
(
makePrompt
(
label
));
tf
.
setPrefWidth
(
width
);
Control
ctrl
=
(
ctype
==
ControlType
.
ATextField
)
?
tf
:
cb
;
HBox
hbox
=
new
HBox
(
5
,
lbl
,
ctrl
);
hbox
.
setAlignment
(
Pos
.
BASELINE_LEFT
);
return
new
Pair
(
hbox
,
ctrl
);
}
// end makeField()
// Create "Label:" from "label"
private
String
makeLabel
(
String
label
)
{
return
label
.
substring
(
0
,
1
).
toUpperCase
()
+
label
.
substring
(
1
)
+
":"
;
}
// Create a prompt string for use in a TextField
private
String
makePrompt
(
String
str
)
{
return
"Enter "
+
str
;
}
// Quit action -- terminate the app
private
void
quitAction
(
Stage
primaryStage
)
{
primaryStage
.
close
();
}
// Set up Menus (most don't do anything right now)
public
MenuBar
addMenu
(
Stage
primaryStage
)
{
Menu
menu1
=
new
Menu
(
"File"
);
MenuBar
menuBar
=
new
MenuBar
();
menuBar
.
getMenus
().
add
(
menu1
);
MenuItem
menu11
=
new
MenuItem
(
"Open"
);
MenuItem
menu12
=
new
MenuItem
(
"Quit"
);
Menu
menu2
=
new
Menu
(
"Help"
);
menuBar
.
getMenus
().
add
(
menu2
);
MenuItem
menu21
=
new
MenuItem
(
"About"
);
menu1
.
getItems
().
addAll
(
menu11
,
menu12
);
menu2
.
getItems
().
addAll
(
menu21
);
menu12
.
setOnAction
(
e
->
quitAction
(
primaryStage
));
return
menuBar
;
}
// end addMenu()
// Main method for all Java programs
// By convention, this is the last method in the class
public
static
void
main
(
String
[]
args
)
{
launch
(
args
);
}
}
// end class BetterLayout
//The Pair class contains a HBox-Control pair for convenience
class
Pair
{
private
final
HBox
hb
;
private
final
Control
ctrl
;
public
Pair
(
HBox
hb
,
Control
ctrl
)
{
this
.
hb
=
hb
;
this
.
ctrl
=
ctrl
;
}
public
HBox
getHb
()
{
return
hb
;
}
public
Control
getCtrl
()
{
return
ctrl
;
}
public
TextField
getTf
()
{
return
(
TextField
)
ctrl
;
}
public
ComboBox
<
String
>
getCb
()
{
return
(
ComboBox
)
ctrl
;
}
//Reduce the amount of typing: use this "Worker method"
public
String
grabText
()
{
return
getTf
().
getText
().
trim
();
}
//Reduce the amount of typing: use this "Worker method"
public
String
grabState
()
{
Object
st
=
getCb
().
getValue
();
return
(
st
==
null
)
?
""
:
st
+
""
;
}
}
// end class Pair