JAVA: BUILD GUI: LOGIN, ADD CUSTOMER, PLACE ORDER

profileRainebow
BetterLayout2.zip

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 ( ->   {
             // 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 ( ->   {
            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 ( ->  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 ( ->  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