changeset 8858:537f7640d63c 8u60-b06

Automated merge with http://hg.openjdk.java.net/openjfx/8u40/rt
author kcr
date Mon, 09 Mar 2015 11:07:15 -0700
parents e00e97499831 5362b530f56d
children b501bae0eca1 9f708b15aca8
files .hgtags modules/controls/src/main/dt/javafx/scene/control/ControlDesignInfo.java modules/controls/src/main/dt/javafx/scene/control/SplitPaneDesignInfo.java modules/controls/src/main/dt/javafx/scene/control/resources.properties modules/designTime/.classpath modules/designTime/.project modules/designTime/src/main/java/com/sun/javafx/beans/design/DisplayItem.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/AbstractDesignInfo.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/BeanCreateInfo.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/BeanCreateInfoSet.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/CheckedDisplayAction.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/Customizer.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/CustomizerResult.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/DesignInfo.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/DisplayAction.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/DisplayActionSet.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/LayoutDesignInfo.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/PropertyEditor.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/Result.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/ResultMessage.java modules/designTime/src/main/java/com/sun/javafx/beans/design/author/ResultMessageType.java modules/designTime/src/main/java/com/sun/javafx/beans/design/package.html modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/ContextField.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/ContextMember.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/ContextMethod.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignBean.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignBeanListener.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignContext.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignContextListener.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignEvent.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignProject.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/DesignProperty.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/LinearPosition.java modules/designTime/src/main/java/com/sun/javafx/beans/design/tool/Position.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/Bean.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/BeanMetaData.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/Callback.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/CallbackMetaData.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/Event.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/EventMetaData.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/MetaData.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/MetaDataAnnotation.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/Property.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/PropertyMetaData.java modules/designTime/src/main/java/com/sun/javafx/beans/metadata/package.html modules/designTime/src/main/java/javafx/scene/ParentDesignInfo.java modules/designTime/src/main/java/javafx/scene/layout/GridPaneDesignInfo.java modules/designTime/src/main/java/javafx/scene/layout/PaneDesignInfo.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/BeanMetaDataTest.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/MetaDataTest.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/PropertyMetaDataTest.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/MultiWordWidget.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/MultiWordWidget2.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/Widget.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/Widget2.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/Widget3.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/displayname/Apple.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/displayname/Carrot.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/displayname/Orange.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/displayname/Pear.java modules/designTime/src/test/java/com/sun/javafx/beans/metadata/widgets/displayname/Radish.java modules/designTime/src/test/java/javafx/scene/layout/GridPaneDesignInfoTest.java modules/designTime/src/test/java/javafx/scene/layout/MockResizable.java modules/designTime/src/test/resources/com/sun/javafx/beans/metadata/widgets/displayname/CarrotResources.properties modules/designTime/src/test/resources/com/sun/javafx/beans/metadata/widgets/displayname/OrangeResources.properties modules/designTime/src/test/resources/com/sun/javafx/beans/metadata/widgets/displayname/PearResources.properties modules/designTime/src/test/resources/com/sun/javafx/beans/metadata/widgets/displayname/resources.properties modules/graphics/src/main/java/com/sun/javafx/Logging.java modules/graphics/src/main/java/com/sun/javafx/TempState.java modules/graphics/src/main/java/com/sun/javafx/Utils.java modules/graphics/src/main/java/com/sun/javafx/WeakReferenceQueue.java modules/graphics/src/main/java/com/sun/webkit/dom/JSObject.java modules/graphics/src/main/java/javafx/scene/layout/CornerRadiiConverter.java modules/graphics/src/test/java/com/sun/javafx/UtilsTest.java modules/graphics/src/test/java/com/sun/javafx/Utils_getScreenForPoint_Test.java modules/graphics/src/test/java/com/sun/javafx/Utils_getScreenForRectangle_Test.java modules/graphics/src/test/java/com/sun/javafx/WeakReferenceQueueTest.java modules/web/src/main/java/com/sun/javafx/sg/prism/NGWebView.java modules/web/src/main/java/com/sun/webkit/dom/AttrImpl.java modules/web/src/main/java/com/sun/webkit/dom/CDATASectionImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSCharsetRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSFontFaceRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSImportRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSMediaRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSPageRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSPrimitiveValueImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSRuleListImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSStyleDeclarationImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSStyleRuleImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSStyleSheetImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSValueImpl.java modules/web/src/main/java/com/sun/webkit/dom/CSSValueListImpl.java modules/web/src/main/java/com/sun/webkit/dom/CharacterDataImpl.java modules/web/src/main/java/com/sun/webkit/dom/CommentImpl.java modules/web/src/main/java/com/sun/webkit/dom/CounterImpl.java modules/web/src/main/java/com/sun/webkit/dom/DOMImplementationImpl.java modules/web/src/main/java/com/sun/webkit/dom/DOMSelectionImpl.java modules/web/src/main/java/com/sun/webkit/dom/DOMStringListImpl.java modules/web/src/main/java/com/sun/webkit/dom/DOMWindowImpl.java modules/web/src/main/java/com/sun/webkit/dom/DocumentFragmentImpl.java modules/web/src/main/java/com/sun/webkit/dom/DocumentImpl.java modules/web/src/main/java/com/sun/webkit/dom/DocumentTypeImpl.java modules/web/src/main/java/com/sun/webkit/dom/ElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/EntityImpl.java modules/web/src/main/java/com/sun/webkit/dom/EntityReferenceImpl.java modules/web/src/main/java/com/sun/webkit/dom/EventImpl.java modules/web/src/main/java/com/sun/webkit/dom/EventListenerImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLAnchorElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLAppletElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLAreaElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLBRElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLBaseElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLBaseFontElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLBodyElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLButtonElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLCollectionImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLDListElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLDirectoryElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLDivElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLDocumentImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLFieldSetElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLFontElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLFormElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLFrameElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLFrameSetElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLHRElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLHeadElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLHeadingElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLHtmlElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLIFrameElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLImageElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLInputElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLLIElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLLabelElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLLegendElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLLinkElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLMapElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLMenuElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLMetaElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLModElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLOListElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLObjectElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLOptGroupElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLOptionElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLOptionsCollectionImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLParagraphElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLParamElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLPreElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLQuoteElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLScriptElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLSelectElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLStyleElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableCaptionElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableCellElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableColElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableRowElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTableSectionElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTextAreaElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLTitleElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/HTMLUListElementImpl.java modules/web/src/main/java/com/sun/webkit/dom/KeyboardEventImpl.java modules/web/src/main/java/com/sun/webkit/dom/MediaListImpl.java modules/web/src/main/java/com/sun/webkit/dom/MouseEventImpl.java modules/web/src/main/java/com/sun/webkit/dom/MutationEventImpl.java modules/web/src/main/java/com/sun/webkit/dom/NamedNodeMapImpl.java modules/web/src/main/java/com/sun/webkit/dom/NodeFilterImpl.java modules/web/src/main/java/com/sun/webkit/dom/NodeImpl.java modules/web/src/main/java/com/sun/webkit/dom/NodeIteratorImpl.java modules/web/src/main/java/com/sun/webkit/dom/NodeListImpl.java modules/web/src/main/java/com/sun/webkit/dom/NotationImpl.java modules/web/src/main/java/com/sun/webkit/dom/ProcessingInstructionImpl.java modules/web/src/main/java/com/sun/webkit/dom/RGBColorImpl.java modules/web/src/main/java/com/sun/webkit/dom/RangeImpl.java modules/web/src/main/java/com/sun/webkit/dom/RectImpl.java modules/web/src/main/java/com/sun/webkit/dom/StyleSheetImpl.java modules/web/src/main/java/com/sun/webkit/dom/StyleSheetListImpl.java modules/web/src/main/java/com/sun/webkit/dom/TextImpl.java modules/web/src/main/java/com/sun/webkit/dom/TreeWalkerImpl.java modules/web/src/main/java/com/sun/webkit/dom/UIEventImpl.java modules/web/src/main/java/com/sun/webkit/dom/WheelEventImpl.java modules/web/src/main/java/com/sun/webkit/dom/XPathExpressionImpl.java modules/web/src/main/java/com/sun/webkit/dom/XPathNSResolverImpl.java modules/web/src/main/java/com/sun/webkit/dom/XPathResultImpl.java netbeans/appsToys/FX8-3DFeatures/build.xml netbeans/appsToys/FX8-3DFeatures/manifest.mf netbeans/appsToys/FX8-3DFeatures/nbproject/build-impl.xml netbeans/appsToys/FX8-3DFeatures/nbproject/genfiles.properties netbeans/appsToys/FX8-3DFeatures/nbproject/project.properties netbeans/appsToys/FX8-3DFeatures/nbproject/project.xml netbeans/appsToys/ShapeT3D/build.xml netbeans/appsToys/ShapeT3D/manifest.mf netbeans/appsToys/ShapeT3D/nbproject/build-impl.xml netbeans/appsToys/ShapeT3D/nbproject/genfiles.properties netbeans/appsToys/ShapeT3D/nbproject/project.properties netbeans/appsToys/ShapeT3D/nbproject/project.xml netbeans/designTime/build.xml netbeans/designTime/manifest.mf netbeans/designTime/nbproject/build-impl.xml netbeans/designTime/nbproject/genfiles.properties netbeans/designTime/nbproject/project.properties netbeans/designTime/nbproject/project.xml tests/app-lifecycle/ClassLoaderApp/build.xml tests/app-lifecycle/ClassLoaderApp/manifest.mf tests/app-lifecycle/ClassLoaderApp/nbproject/build-impl.xml tests/app-lifecycle/ClassLoaderApp/nbproject/genfiles.properties tests/app-lifecycle/ClassLoaderApp/nbproject/project.properties tests/app-lifecycle/ClassLoaderApp/nbproject/project.xml tests/app-lifecycle/ClassLoaderApp/src/classloader/TestApp1.java tests/app-lifecycle/ClassLoaderApp/src/classloader/TestApp2.java tests/app-lifecycle/ClassLoaderTest/build.xml tests/app-lifecycle/ClassLoaderTest/manifest.mf tests/app-lifecycle/ClassLoaderTest/nbproject/build-impl.xml tests/app-lifecycle/ClassLoaderTest/nbproject/genfiles.properties tests/app-lifecycle/ClassLoaderTest/nbproject/project.properties tests/app-lifecycle/ClassLoaderTest/nbproject/project.xml tests/app-lifecycle/ClassLoaderTest/test/classloader/ClassLoader1Test.java tests/app-lifecycle/ClassLoaderTest/test/classloader/ClassLoader2Test.java tests/app-lifecycle/ClassLoaderTest/test/classloader/ClassLoaderCommon.java tests/golden-image-suite/Modena.iml tests/golden-image-suite/build.xml tests/golden-image-suite/manifest.mf tests/golden-image-suite/nbproject/build-impl.xml tests/golden-image-suite/nbproject/configs/modena.properties tests/golden-image-suite/nbproject/configs/modena_sw_lcdtext_off.properties tests/golden-image-suite/nbproject/genfiles.properties tests/golden-image-suite/nbproject/project.properties tests/golden-image-suite/nbproject/project.xml tests/golden-image-suite/src/modena/CombinationTest.fxml tests/golden-image-suite/src/modena/Modena.java tests/golden-image-suite/src/modena/SameHeightTest.fxml tests/golden-image-suite/src/modena/SameHeightTestController.java tests/golden-image-suite/src/modena/SamplePage.java tests/golden-image-suite/src/modena/SamplePageChartHelper.java tests/golden-image-suite/src/modena/SamplePageHelpers.java tests/golden-image-suite/src/modena/SamplePageNavigation.java tests/golden-image-suite/src/modena/SamplePageTableHelper.java tests/golden-image-suite/src/modena/SamplePageTreeHelper.java tests/golden-image-suite/src/modena/SamplePageTreeTableHelper.java tests/golden-image-suite/src/modena/ScottSelvia.fxml tests/golden-image-suite/src/modena/SimpleWindowPage.java tests/golden-image-suite/src/modena/TestApp.css tests/golden-image-suite/src/modena/mac-window-frame.png tests/golden-image-suite/src/modena/recorder-icon-48.png tests/golden-image-suite/src/modena/reload_12x14.png tests/golden-image-suite/src/modena/simple-window.fxml tests/golden-image-suite/src/modena/ubuntu-window-frame.png tests/golden-image-suite/src/modena/ui-mosaic.fxml tests/golden-image-suite/src/modena/windows7-window-frame.png tests/golden-image-suite/src/modena/windows8-window-frame.png tests/golden-image-suite/test/modenatest/ModenaTest.java
diffstat 823 files changed, 58189 insertions(+), 57253 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Sat Mar 07 18:20:31 2015 -0800
+++ b/.hgtags	Mon Mar 09 11:07:15 2015 -0700
@@ -228,6 +228,12 @@
 f1388961b89fc39dc86992e0b9a8ffab8c75d1e5 8u31-b13
 fed0a08c47e9b9be421eb49dabc7bc872a6f7de8 8u40-b22
 2c8e07ca29f358c98c2040c28cd1726d3dc6facb 8u40-b23
+a69f48b048e5a687fd683f22328418f9ae2eaf28 8u60-b01
 fee546b5171799a21cd7b2dc0f5cc3447176c104 8u40-b24
+56f28bdec0491d0bd04eb6744ada1b7a5bf78ac0 8u60-b01
 6cc08ec1ea825b4bd1273e522e61e1b9efda4172 8u40-b25
+adae30a7fe1ec2eb45de08ba3c58a276a60a73bf 8u60-b02
 298ec4ec6b354f2eb74a200b3415bc4566ddc1a7 8u40-b26
+13970a967383d6fa104858157d327c78077fe3b9 8u60-b03
+b76562e466d6e8b47e1d7b2cdb64eb53578eae7b 8u60-b04
+5fc0ddb4277679b69970d2993fefcda1fb711ae7 8u60-b05
--- a/.idea/controls.iml	Sat Mar 07 18:20:31 2015 -0800
+++ b/.idea/controls.iml	Mon Mar 09 11:07:15 2015 -0700
@@ -15,7 +15,6 @@
     </content>
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="base" exported="" />
-    <orderEntry type="module" module-name="designTime" exported="" />
     <orderEntry type="module" module-name="graphics" exported="" />
     <orderEntry type="inheritedJdk" />
   </component>
--- a/.idea/modules.xml	Sat Mar 07 18:20:31 2015 -0800
+++ b/.idea/modules.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -26,7 +26,6 @@
       <module fileurl="file://$PROJECT_DIR$/.idea/builders.iml" filepath="$PROJECT_DIR$/.idea/builders.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/controls.iml" filepath="$PROJECT_DIR$/.idea/controls.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/deploy.iml" filepath="$PROJECT_DIR$/.idea/deploy.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/designTime.iml" filepath="$PROJECT_DIR$/.idea/designTime.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/fxml.iml" filepath="$PROJECT_DIR$/.idea/fxml.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/fxpackager.iml" filepath="$PROJECT_DIR$/.idea/fxpackager.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/graphics.iml" filepath="$PROJECT_DIR$/.idea/graphics.iml" />
--- a/.idea/tests.iml	Sat Mar 07 18:20:31 2015 -0800
+++ b/.idea/tests.iml	Mon Mar 09 11:07:15 2015 -0700
@@ -4,13 +4,10 @@
     <output url="file://$MODULE_DIR$/tests/bin" />
     <exclude-output />
     <content url="file://$MODULE_DIR$/tests">
-      <sourceFolder url="file://$MODULE_DIR$/tests/app-lifecycle/ClassLoaderApp/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/tests/manual/printing" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/tests/performance/VMPerformance/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/tests/system/src/test/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/tests/app-lifecycle/ClassLoaderTest/test" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/tests/system/src/test/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/tests/golden-image-suite/src" isTestSource="false" />
     </content>
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="rt" />
--- a/.idea/web.iml	Sat Mar 07 18:20:31 2015 -0800
+++ b/.idea/web.iml	Mon Mar 09 11:07:15 2015 -0700
@@ -7,6 +7,7 @@
       <sourceFolder url="file://$MODULE_DIR$/modules/web/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/modules/web/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/modules/web/src/test/resources" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/modules/web/src/main/java-wrappers" isTestSource="false" />
       <excludeFolder url="file://$MODULE_DIR$/modules/web/build" />
     </content>
     <orderEntry type="sourceFolder" forTests="false" />
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PageContainer.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PageContainer.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -38,7 +38,7 @@
 import javafx.animation.Interpolator;
 import javafx.animation.KeyFrame;
 import javafx.animation.KeyValue;
-import javafx.animation.TimelineBuilder;
+import javafx.animation.Timeline;
 import javafx.application.Platform;
 import javafx.collections.FXCollections;
 import javafx.collections.ListChangeListener;
@@ -145,9 +145,8 @@
         if (currentPage != null && animate) {
             final Label currentTitlelabel = titlesMap.get(currentPage);
             final Bounds currentPageTitleBounds = currentTitlelabel.getBoundsInParent();
-            TimelineBuilder.create()
-                .keyFrames(
-                    new KeyFrame(Duration.ZERO, 
+            TimeLine timeL = new Timeline(
+                    new KeyFrame(Duration.ZERO,
                         new KeyValue(selectionBox.xProperty(), currentPageTitleBounds.getMinX()),
                         new KeyValue(selectionBox.yProperty(), currentPageTitleBounds.getMinY()),
                         new KeyValue(selectionBox.widthProperty(), currentPageTitleBounds.getWidth()),
@@ -165,8 +164,8 @@
                         new KeyValue(currentTitlelabel.textFillProperty(), DARK_GREY, Interpolator.EASE_BOTH),
                         new KeyValue(headerArrow.layoutXProperty(), newPageTitleBounds.getMinX() + (newPageTitleBounds.getWidth()/2) - 6, Interpolator.EASE_BOTH)
                     )
-                )
-                .build().play();
+                );
+            timeL.play();
             // hide current page
             currentPage.setVisible(false);
         } else {
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SocialPage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SocialPage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -51,7 +51,6 @@
 import javafx.geometry.VPos;
 import javafx.scene.Node;
 import javafx.scene.control.Button;
-import javafx.scene.control.ButtonBuilder;
 import javafx.scene.control.Hyperlink;
 import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
@@ -60,15 +59,12 @@
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.HBox;
-import javafx.scene.layout.HBoxBuilder;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.Region;
-import javafx.scene.layout.RegionBuilder;
 import javafx.scene.layout.VBox;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Rectangle;
 import javafx.scene.text.Text;
-import javafx.scene.text.TextBuilder;
 import javafx.util.Callback;
 
 public class SocialPage extends Page {
@@ -103,85 +99,59 @@
         box.setAlignment(Pos.CENTER);
 
         VBox recentBox = new VBox(12);
-        recentBox.getChildren().addAll(
-            HBoxBuilder.create()
-                .spacing(12)
-                .alignment(Pos.CENTER)
-                .children(
-                    TextBuilder.create()
-                        .text(dataService.getTwitterSearch())
-                        .font(HUGE_FONT)
-                        .fill(BLUE)
-                        .build(),
-                    TextBuilder.create()
-                        .text("Recent")
-                        .font(HUGE_FONT)
-                        .fill(VLIGHT_GRAY)
-                        .build(),
-                    spacer1 = RegionBuilder.create()
-                        .build(),
-                    refreshButton1 = ButtonBuilder.create()
-                        .text(null)
-                        .id("refresh-button")
-                        .prefWidth(162)
-                        .prefHeight(48)
-                        .minWidth(162)
-                        .minHeight(48)
-                        .onMouseClicked(recentListPopulator)
-                        .build()
-                )
-                .build(),
-            recentTweetsList
-        );
+        HBox hb = new HBox(12);
+        hb.setAlignment(Pos.CENTER);
+        Text t1 = new Text(dataService.getTwitterSearch());
+        t1.setFont(HUGE_FONT);
+        t1.setFill(BLUE);
+        Text t2 = new Text("Recent");
+        t2.setFont(HUGE_FONT);
+        t2.setFill(VLIGHT_GRAY);
+        spacer1 = new Region();
+        refreshButton1 = new Button();
+        refreshButton1.setId("refresh-button");
+        refreshButton1.setPrefWidth(162);
+        refreshButton1.setPrefHeight(48);
+        refreshButton1.setminWidth(162);
+        refreshButton1.setMinHeight(48);
+        refreshButton1.setOnMouseClicked(recentListPopulator);
+
+        hb.getChildren().addAll(t1, t2, spacer1, refreshButton1);
+        recentBox.getChildren().addAll(hb, recentTweetsList);
         VBox.setVgrow(recentTweetsList, Priority.ALWAYS);
-
-        VBox localBox = new VBox(12);
-        localBox.getChildren().addAll(
-            HBoxBuilder.create()
-                .spacing(12)
-                .alignment(Pos.CENTER)
-                .children(
-                    TextBuilder.create()
-                        .text(dataService.getTwitterSearch())
-                        .font(HUGE_FONT)
-                        .fill(PINK)
-                        .build(),
-                    TextBuilder.create()
-                        .text("Local")
-                        .font(HUGE_FONT)
-                        .fill(VLIGHT_GRAY)
-                        .build(),
-                    spacer2 = RegionBuilder.create()
-                        .build(),
-                    refreshButton2 = ButtonBuilder.create()
-                        .text(null)
-                        .id("refresh-button")
-                        .prefWidth(162)
-                        .prefHeight(48)
-                        .minWidth(162)
-                        .minHeight(48)
-                        .onMouseClicked(popularListPopulator)
-                        .build()
-                )
-                .build(),
-            popularTweetsList
-        );
+        HBox hb = new HBox(12);
+        hb.setAlignment(Pos.CENTER);
+        Text t3 = new Text(dataService.getTwitterSearch());
+        t3.setFont(HUGE_FONT);
+        t3.setFill(PINK);
+        Text t4 = new Text("Local");
+        t4.setFont(HUGE_FONT);
+        t4.setFill(VLIGHT_GRAY);
+        spacer2 = new Region();
+        refreshButton2 = new Button();
+        refreshButton2.setId("refresh-button");
+        refreshButton2.setPrefWidth(162);
+        refreshButton2.setPrefHeight(48);
+        refreshButton2.setMinWidth(162);
+        refreshButton2.setMinHeight(48);
+        refreshButton2.setOnMouseClicked(popularListPopulator);
+        hb.getChildren().addAll(t3, t4, spacer2, refreshButton2);
+        VBox localBox = new VBox(12, hb, popularTweetsList);
         VBox.setVgrow(popularTweetsList, Priority.ALWAYS);
 
         box.getChildren().addAll(recentBox, localBox);
         if (PlatformIntegration.supportsSendingTweets()) {
-            tweetButton = ButtonBuilder.create()
-                .text(null)
-                .id("tweet-button")
-                .prefWidth(162)
-                .prefHeight(48)
-                .minHeight(48)
-                .onMouseClicked(new EventHandler<MouseEvent>() {
-                    @Override public void handle(MouseEvent t) {
-                        PlatformIntegration.tweet("#javaone ");
-                    }
-                })
-                .build();
+            tweetButton = new Button();
+            tweetButton.setId("tweet-button");
+            tweetButton.setPrefWidth(162);
+            tweetButton.setPrefHeight(48);
+            tweetButton.setMinHeight(48);
+            tweetButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
+                @Override
+                public void handle(MouseEvent t) {
+                    PlatformIntegration.tweet("#javaone ");
+                }
+            });
             tweetButton.getStyleClass().clear();
             box.getChildren().add(tweetButton);
         }
--- a/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorTheme.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorTheme.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 package com.javafx.experiments.dukepad.calculator;
 
 import com.javafx.experiments.dukepad.core.Fonts;
-import com.sun.javafx.Utils;
+import com.sun.javafx.util.Utils;
 import com.sun.javafx.scene.control.skin.ButtonSkin;
 import com.sun.javafx.scene.control.skin.TextFieldSkin;
 import javafx.beans.value.ChangeListener;
--- a/apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/OldTestViewer.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/OldTestViewer.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -57,14 +57,13 @@
 import javafx.scene.PointLight;
 import javafx.scene.Scene;
 import javafx.scene.control.Button;
-import javafx.scene.control.ButtonBuilder;
 import javafx.scene.control.ColorPicker;
 import javafx.scene.control.Label;
-import javafx.scene.control.LabelBuilder;
 import javafx.scene.input.KeyEvent;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.VBoxBuilder;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
 import javafx.scene.paint.Color;
 import javafx.scene.paint.Paint;
 import javafx.scene.paint.PhongMaterial;
@@ -86,10 +85,6 @@
 import com.javafx.experiments.importers.obj.ObjImporter;
 import com.sun.javafx.geom.Vec3d;
 
-
-/**
- *
- */
 public class OldTestViewer extends Application {
     public static final String PATH_PROPERTY = "file";
 
@@ -239,8 +234,6 @@
         spheresGroup.getChildren().addAll(box1, cylinder1, sphere1);
         spheresGroup.setRotateX(180.0);
 
-
-
         /*
         // red
         final Sphere redPos = new Sphere(4);
@@ -515,7 +508,7 @@
         Button light3zeroXYZButton;
         Button light3show;
         Button light3hide;
-        
+
         /*
         Button backButton;
         Button stopButton;
@@ -621,42 +614,27 @@
             }
         };
 
-        borderPane.setCenter(VBoxBuilder.create()
-            .id("center")
-            .spacing(0)
-            .alignment(Pos.TOP_CENTER)
-            .children(
-                lightColorPicker,
-                backColorPicker,
-                fovLabel = LabelBuilder.create()
-                    .id("fov-label")
-                    .text("fov")
-                    .build(),
-                nearLabel = LabelBuilder.create()
-                    .id("near-label")
-                    .text("Near Clip")
-                    .build(),
-                farLabel = LabelBuilder.create()
-                    .id("far-label")
-                    .text("Far Clip")
-                    .build(),
-                resetFovButton = ButtonBuilder.create()
-                    .id("resetFov-button")
-                    .text("reset FOV")
-                    .onAction(resetFovAction)
-                    .build(),
-                resetNearButton = ButtonBuilder.create()
-                    .id("resetNear-button")
-                    .text("reset near")
-                    .onAction(resetNearAction)
-                    .build(),
-                resetFarButton = ButtonBuilder.create()
-                    .id("resetFar-button")
-                    .text("reset far")
-                    .onAction(resetFarAction)
-                    .build()
-                )
-            .build());
+        fovLabel = new Label("fov");
+        fovLabel.setId("fov-label");
+        nearLabel = new Label("Near Clip");
+        nearLabel.setId("near-label");
+        farLabel = new Label("Far Clip");
+        farLabel.setId("far-label");
+        resetFovButton = new Button("reset FOV");
+        resetFovButton.setId("resetFov-button");
+        resetFovButton.setOnAction(resetFovAction);
+        resetNearButton = new Button("reset near");
+        resetNearButton.setId("resetNear-button");
+        resetNearButton.setOnAction(resetNearAction);
+        resetFarButton = new Button("reset far");
+        resetFarButton.setId("resetFar-button");
+        resetFarButton.setOnAction(resetFarAction);
+
+        VBox vbox = new VBox(0, lightColorPicker, backColorPicker, fovLabel, nearLabel, farLabel,
+                resetFovButton, resetNearButton, resetFarButton);
+        vbox.setId("center");
+        vbox.setAlignment(Pos.TOP_CENTER);
+        borderPane.setCenter(vbox);
         
         handleMouse2(fovLabel);
         handleMouse2(nearLabel);
@@ -715,50 +693,31 @@
             }
         });
 
-        borderPane.setLeft(VBoxBuilder.create()
-            .id("left")
-            .spacing(0)
-            .alignment(Pos.TOP_CENTER)
-            .children(
-                light2ColorPicker,
-                light2Label = LabelBuilder.create()
-                    .id("light2-label")
-                    .text("light2")
-                    .build(),
-                light2xyLabel = LabelBuilder.create()
-                    .id("light2xy-label")
-                    .text("light2 XY")
-                    .build(),
-                light2xzLabel = LabelBuilder.create()
-                    .id("light2xz-label")
-                    .text("light2 XZ")
-                    .build(),
-                light2yzLabel = LabelBuilder.create()
-                    .id("light2yz-label")
-                    .text("light2 YZ")
-                    .build(),
-                light2resetXYZButton = ButtonBuilder.create()
-                    .id("light2-resetXYZ")
-                    .text("reset XYZ")
-                    .onAction(light2resetXYZAction)
-                    .build(),
-                light2zeroXYZButton = ButtonBuilder.create()
-                    .id("light2-zeroXYZ")
-                    .text("zero XYZ")
-                    .onAction(light2zeroXYZAction)
-                    .build(),
-                light2show = ButtonBuilder.create()
-                    .id("light2-show")
-                    .text("show")
-                    .onAction(light2showAction)
-                    .build(),
-                light2hide = ButtonBuilder.create()
-                    .id("light2-hide")
-                    .text("hide")
-                    .onAction(light2hideAction)
-                    .build()
-                )
-            .build());
+        light2Label = new Label("light2");
+        light2Label.setId("light2-label");
+        light2xyLabel = new Label("light2 XY");
+        light2xyLabel.setId("light2xy-label");
+        light2xzLabel = new Label("light2 XZ");
+        light2xzLabel.setId("light2xz-label");
+        light2yzLabel = new Label("light2 YZ");
+        light2yzLabel.setId("light2yz-label");
+        light2resetXYZButton = new Button("reset XYZ");
+        light2resetXYZButton.setId("light2-resetXYZ");
+        light2resetXYZButton.setOnAction(light2resetXYZAction);
+        light2zeroXYZButton = new Button("zero XYZ");
+        light2zeroXYZButton.setId("light2-zeroXYZ");
+        light2zeroXYZButton.setOnAction(light2zeroXYZAction);
+        light2show = new Button("show");
+        light2show.setId("light2-show");
+        light2show.setOnAction(light2showAction);
+        light2hide = new Button("hide");
+        light2hide.setId("light2-hide");
+        light2hide.setOnAction(light2hideAction);
+        VBox vbox2 = new VBox(0, light2ColorPicker, light2Label, light2xyLabel, light2xzLabel, light2yzLabel,
+                light2resetXYZButton, light2zeroXYZButton, light2show, light2hide);
+        vbox2.setId("left");
+        vbox2.setAlignment(Pos.TOP_CENTER);
+        borderPane.setLeft(vbox2);
 
         handleMouse2(light2Label);
         handleMouse2(light2xyLabel);
@@ -818,93 +777,59 @@
             }
         });
 
-        borderPane.setRight(VBoxBuilder.create()
-            .id("right")
-            .spacing(0)
-            .alignment(Pos.TOP_CENTER)
-            .children(
-                light3ColorPicker,
-                light3Label = LabelBuilder.create()
-                    .id("light3-label")
-                    .text("light3")
-                    .build(),
-                light3xyLabel = LabelBuilder.create()
-                    .id("light3xy-label")
-                    .text("light3 XY")
-                    .build(),
-                light3xzLabel = LabelBuilder.create()
-                    .id("light3xz-label")
-                    .text("light3 XZ")
-                    .build(),
-                light3yzLabel = LabelBuilder.create()
-                    .id("light3yz-label")
-                    .text("light3 YZ")
-                    .build(),
-                light3resetXYZButton = ButtonBuilder.create()
-                    .id("light3-resetXYZ")
-                    .text("reset XYZ")
-                    .onAction(light3resetXYZAction)
-                    .build(),
-                light3zeroXYZButton = ButtonBuilder.create()
-                    .id("light3-zeroXYZ")
-                    .text("zero XYZ")
-                    .onAction(light3zeroXYZAction)
-                    .build(),
-                light3show = ButtonBuilder.create()
-                    .id("light3-show")
-                    .text("show")
-                    .onAction(light3showAction)
-                    .build(),
-                light3hide = ButtonBuilder.create()
-                    .id("light3-hide")
-                    .text("hide")
-                    .onAction(light3hideAction)
-                    .build()
-                )
-            .build());
+        light3Label = new Label("light3");
+        light3Label.setId("light3-label");
+        light3xyLabel = new Label("light3 XY");
+        light3xyLabel.setId("light3xy-label");
+        light3xzLabel = new Label("light3 XZ");
+        light3xzLabel.setId("light3xz-label");
+        light3yzLabel = new Label("light3 YZ");
+        light3yzLabel.setId("light3yz-label");
+        light3resetXYZButton = new Button("reset XYZ");
+        light3resetXYZButton.setId("light3-resetXYZ");
+        light3resetXYZButton.setOnAction(light3resetXYZAction);
+        light3zeroXYZButton = new Button("zero XYZ");
+        light3zeroXYZButton.setId("light3-zeroXYZ");
+        light3zeroXYZButton.setOnAction(light3zeroXYZAction);
+        light3show = new Button("show");
+        light3show.setId("light3-show");
+        light3show.setOnAction(light3showAction);
+        light3hide = new Button("hide");
+        light3hide.setId("light3-hide");
+        light3hide.setOnAction(light3hideAction);
+
+        VBox vbox3 = new VBox(0, light3ColorPicker, light3Label, light3xyLabel, light3xzLabel, light3yzLabel,
+                light3resetXYZButton, light3zeroXYZButton, light3show, light3hide);
+        vbox3.setId("right");
+        vbox3.setAlignment(Pos.TOP_CENTER);
+        borderPane.setRight(vbox3);
 
         handleMouse2(light3Label);
         handleMouse2(light3xyLabel);
         handleMouse2(light3xzLabel);
         handleMouse2(light3yzLabel);
+/*
+        backButton = new Button("<-");
+        backButton.setId("back-button");
+        backButton.setOnAction(backAction);
+        stopButton = new Button("Stop");
+        stopButton.setId("stop-button");
+        stopButton.setOnAction(stopAction);
+        playButton = new Button("Play");
+        playButton.setId("play-button");
+        playButton.setOnAction(playAction);
+        pauseButton = new Button("Pause");
+        pauseButton.setId("pause-button");
+        pauseButton.setOnAction(pauseAction);
+        forwardButton = new Button("->");
+        forwardButton.setId("forward-button");
+        forwardButton.setOnAction(forwardAction);
 
-
-
-/*
-        borderPane.setBottom(HBoxBuilder.create()
-            .id("bottom")
-            .spacing(0)
-            .alignment(Pos.CENTER)
-            .children(
-                backButton = ButtonBuilder.create()
-                    .id("back-button")
-                    .text("<-")
-                    .onAction(backAction)
-                    .build(),
-                stopButton = ButtonBuilder.create()
-                    .id("stop-button")
-                    .text("Stop")
-                    .onAction(stopAction)
-                    .build(),
-                playButton = ButtonBuilder.create()
-                    .id("play-button")
-                    .text("Play")
-                    .onAction(playAction)
-                    .build(),
-                pauseButton = ButtonBuilder.create()
-                    .id("pause-button")
-                    .text("Pause")
-                    .onAction(pauseAction)
-                    .build(),
-                forwardButton = ButtonBuilder.create()
-                    .id("forward-button")
-                    .text("->")
-                    .onAction(forwardAction)
-                    .build()
-                )
-            .build());
-            */
-        
+        HBox hbox = new HBox(0, backButton, stopButton, playButton, pauseButton, forwardButton);
+        hbox.setId("bottom");
+        hbox.setAlignment(Pos.CENTER);
+        borderPane.setBottom(hbox);
+*/
         stage.show();
     }
     
@@ -1074,9 +999,7 @@
 
         });
     }
-    
- 
-    
+
     //=============================================================================
     // start
     //=============================================================================
--- a/apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SessionManager.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SessionManager.java	Mon Mar 09 11:07:15 2015 -0700
@@ -98,6 +98,7 @@
         if (ENABLE_SAVE_SESSION) {
             try {
                 props.store(new FileWriter(SESSION_PROPERTIES_FILENAME), name + " session properties");
+            } catch (FileNotFoundException ignored) {
             } catch (IOException ex) {
                 Logger.getLogger(SessionManager.class.getName()).
                         log(Level.SEVERE, null, ex);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/DocsPage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/DocsPage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -114,11 +114,11 @@
     
     private void updateSidebar(String url) {
         String key = url;
-        if (key.startsWith("http://download.java.net/jdk8/jfxdocs/")) {
-            key = key.substring("http://download.java.net/jdk8/jfxdocs/".length(), key.lastIndexOf('.'));
+        if (key.startsWith("https://docs.oracle.com/javase/8/javafx/api/")) {
+            key = key.substring("https://docs.oracle.com/javase/8/javafx/api/".length(), key.lastIndexOf('.'));
             key = key.replaceAll("/", ".");
-        } else if (key.startsWith("http://download.java.net/jdk8/docs/api/")) {
-            key = key.substring("http://download.java.net/jdk8/docs/api/".length(), key.lastIndexOf('.'));
+        } else if (key.startsWith("https://docs.oracle.com/javase/8/docs/api/")) {
+            key = key.substring("https://docs.oracle.com/javase/8/docs/api/".length(), key.lastIndexOf('.'));
             key = key.replaceAll("/", ".");
         } 
         SampleInfo[] samples = Samples.getSamplesForDoc(key);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -38,8 +38,6 @@
 import javafx.beans.value.ObservableValue;
 import javafx.css.PseudoClass;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-import javafx.geometry.Bounds;
 import javafx.geometry.Pos;
 import javafx.scene.Node;
 import javafx.scene.control.Button;
@@ -48,16 +46,9 @@
 import javafx.scene.control.ListView;
 import javafx.scene.control.Pagination;
 import javafx.scene.control.Skin;
-import javafx.scene.effect.BlendBuilder;
-import javafx.scene.effect.BlurType;
-import javafx.scene.effect.DropShadowBuilder;
-import javafx.scene.effect.Effect;
-import javafx.scene.effect.InnerShadowBuilder;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.layout.HBox;
-import javafx.scene.layout.Region;
-import javafx.scene.paint.Color;
 import javafx.scene.text.Text;
 import javafx.util.Callback;
 import java.lang.ref.Reference;
--- a/apps/samples/Ensemble8/src/app/java/ensemble/ScrollEventSynthesizer.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/ScrollEventSynthesizer.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -213,11 +213,11 @@
             };
 
             // animate a slow down from current velocity to zero
-            inertiaTimeline = TimelineBuilder.create()
-                .keyFrames(
+            inertiaTimeline = new Timeline(
                     new KeyFrame(Duration.ZERO, new KeyValue(animatePosition, 0)),
-                    new KeyFrame(Duration.millis(INERTIA_DURATION), new KeyValue(animatePosition, 1d, Interpolator.SPLINE(0.0513, 0.1131, 0.1368, 1.0000)))
-                ).build();
+                    new KeyFrame(Duration.millis(INERTIA_DURATION), new KeyValue(animatePosition, 1d,
+                            Interpolator.SPLINE(0.0513, 0.1131, 0.1368, 1.0000)))
+            );
             inertiaTimeline.play();
         }
     }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -37,9 +37,7 @@
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleDoubleProperty;
 import javafx.beans.property.SimpleObjectProperty;
-import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
-import javafx.event.EventHandler;
 import javafx.geometry.HPos;
 import javafx.geometry.Point2D;
 import javafx.geometry.VPos;
@@ -47,7 +45,6 @@
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.Region;
 import javafx.scene.shape.Path;
-import javafx.scene.shape.PathBuilder;
 import javafx.util.Duration;
 import static ensemble.control.BendingPages.State.*;
 import static ensemble.control.BendingPages.AnimationState.*;
@@ -58,16 +55,9 @@
 public class BendingPages extends Region {
 
     private BookBend bookBend;
-    private Path frontPageBack = PathBuilder.create()
-        .stroke(null)
-        .id("frontPageBack")
-        .build();
+    private Path frontPageBack = new Path();
 
-    private Path shadow = PathBuilder.create()
-        .stroke(null)
-        .id("frontPageShadow")
-        .mouseTransparent(true)
-        .build();
+    private Path shadow = new Path();
 
     private ObjectProperty<Node> frontPage = new SimpleObjectProperty<Node>(new Region());
     
@@ -185,6 +175,11 @@
     private Timeline animation;
 
     public BendingPages() {
+        frontPageBack.setStroke(null);
+        frontPageBack.setId("frontPageBack");
+        shadow.setStroke(null);
+        shadow.setId("frontPageShadow");
+        shadow.setMouseTransparent(true);
         getChildren().setAll(backPage.get(), frontPage.get(), frontPageBack, shadow);
         
         backPage.addListener((ObservableValue<? extends Node> arg0, Node arg1, Node arg2) -> {
@@ -332,12 +327,12 @@
         t.addListener((ObservableValue<? extends Number> arg0, Number arg1, Number t1) -> {
             bookBend.update(fx + (targetX - fx) * t1.doubleValue(), fy + (targetY - fy) * t1.doubleValue());
         });
-        animation = TimelineBuilder.create()
-                .keyFrames(new KeyFrame(Duration.millis(200), (ActionEvent arg0) -> {
-                    animState = NO_ANIMATION;
-        },
-                    new KeyValue(t, 1, Interpolator.EASE_OUT)))
-                .build();
+
+        Timeline animation = new Timeline(
+                new KeyFrame(Duration.millis(200), (ActionEvent arg0) -> { animState = NO_ANIMATION; },
+                new KeyValue(t, 1, Interpolator.EASE_OUT))
+        );
+
         animation.play();
         animState = ANIMATION;
         fixMouseTransparency();
--- a/apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -292,25 +292,26 @@
                 new Stop(0, pathColor), 
                 new Stop((xC - xF) / (xO - xF), bendStartColor), 
                 new Stop((xB - xF) / (xO - xF), bendEndColor)));
-        
+
+        ArcTo arcTo1 = new ArcTo();
+        arcTo1.setXAxisRotation(Math.toDegrees(-ANGLE));
+        arcTo1.setRadiusX(bE_a);
+        arcTo1.setRadiusY(bE_b);
+        arcTo1.setX(BP1.getX());
+        arcTo1.setY(BP1.getY());
+        ArcTo arcTo2 = new ArcTo();
+        arcTo2.setXAxisRotation(Math.toDegrees(-ANGLE));
+        arcTo2.setRadiusX(rE_a);
+        arcTo2.setRadiusY(rE_b);
+        arcTo2.setX(RP4.getX());
+        arcTo2.setY(RP4.getY());
+
         p.getElements().setAll(
                 new MoveTo(BP4.getX(), BP4.getY()),
-                ArcToBuilder.create()
-                    .XAxisRotation(Math.toDegrees(-ANGLE))
-                    .radiusX(bE_a)
-                    .radiusY(bE_b)
-                    .x(BP1.getX())
-                    .y(BP1.getY())
-                    .build(),
+                arcTo1,
                 new LineTo(xF, yF), 
                 new LineTo(RP1.getX(), RP1.getY()),
-                ArcToBuilder.create()
-                    .XAxisRotation(Math.toDegrees(-ANGLE))
-                    .radiusX(rE_a)
-                    .radiusY(rE_b)
-                    .x(RP4.getX())
-                    .y(RP4.getY())
-                    .build(),
+                arcTo2,
                 new ClosePath());
 
         if (shadow != null) {
@@ -321,26 +322,27 @@
                     new Stop(level0 * 0.3 + level1 * 0.7, Color.rgb(0, 0, 0, 0.25)), 
                     new Stop(level1, Color.rgb(0, 0, 0, 0.0)), 
                     new Stop(1, Color.rgb(0, 0, 0, 0))));
-            
+
+            ArcTo arcTo3 = new ArcTo();
+            arcTo3.setXAxisRotation(Math.toDegrees(-ANGLE));
+            arcTo3.setRadiusX(rE_a);
+            arcTo3.setRadiusY(rE_b);
+            arcTo3.setX(RP4.getX());
+            arcTo3.setY(RP4.getY());
+            arcTo3.setSweepFlag(true);
+            ArcTo arcTo4 = new ArcTo();
+            arcTo4.setXAxisRotation(Math.toDegrees(-ANGLE));
+            arcTo4.setRadiusX(bE_a);
+            arcTo4.setRadiusY(bE_b);
+            arcTo4.setX(BP3.getX());
+            arcTo4.setY(BP3.getY());
+            arcTo4.setSweepFlag(true);
+
             shadow.getElements().setAll(
                     new MoveTo(RP3.getX(), RP3.getY()),
-                    ArcToBuilder.create()
-                        .XAxisRotation(Math.toDegrees(-ANGLE))
-                        .radiusX(rE_a)
-                        .radiusY(rE_b)
-                        .x(RP4.getX())
-                        .y(RP4.getY())
-                        .sweepFlag(true)
-                        .build(),
-                    new LineTo(BP4.getX(), BP4.getY()), 
-                    ArcToBuilder.create()
-                        .XAxisRotation(Math.toDegrees(-ANGLE))
-                        .radiusX(bE_a)
-                        .radiusY(bE_b)
-                        .x(BP3.getX())
-                        .y(BP3.getY())
-                        .sweepFlag(true)
-                        .build(),
+                    arcTo3,
+                    new LineTo(BP4.getX(), BP4.getY()),
+                    arcTo4,
                     new LineTo(xO, yO),
                     new ClosePath());
         }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PieChartDataVisualizer.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PieChartDataVisualizer.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -33,7 +33,6 @@
 
 
 import ensemble.samples.charts.pie.chart.PieChartApp;
-import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
@@ -41,8 +40,8 @@
 import javafx.scene.Node;
 import javafx.scene.chart.PieChart;
 import javafx.scene.chart.PieChart.Data;
-import javafx.scene.control.ContextMenuBuilder;
-import javafx.scene.control.MenuItemBuilder;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.MenuItem;
 import javafx.scene.control.TableCell;
 import javafx.scene.control.TableView;
 import javafx.scene.control.TableColumn;
@@ -50,7 +49,6 @@
 import javafx.scene.control.TableRow;
 import javafx.scene.control.cell.TextFieldTableCell;
 import javafx.scene.input.ContextMenuEvent;
-import javafx.util.Callback;
 import javafx.util.StringConverter;
 
 
@@ -119,50 +117,39 @@
             }
         });
 
-        setContextMenu(ContextMenuBuilder.create()
-                .items(
-                    MenuItemBuilder.create()
-                        .text("Insert item")
-//                        .accelerator(new KeyCodeCombination(KeyCode.INSERT, KeyCombination.CONTROL_DOWN))
-                        .onAction(new EventHandler<ActionEvent>() {
-                            
-                            long itemIndex = 0;
+        MenuItem item1 = new MenuItem("Insert item");
+        item1.setOnAction(new EventHandler<ActionEvent>() {
+            long itemIndex = 0;
+            @Override
+            public void handle(ActionEvent t) {
+                int index = getSelectionModel().getSelectedIndex();
+                if (index < 0 || index >= chart.getData().size()) {
+                    index = chart.getData().size();
+                }
+                chart.getData().add(index, new Data("Item " + (++itemIndex), Math.random() * 100));
+                getSelectionModel().select(index);
+            }
+        });
 
-                            @Override
-                            public void handle(ActionEvent t) {
-                                int index = getSelectionModel().getSelectedIndex();
-                                if (index < 0 || index >= chart.getData().size()) {
-                                    index = chart.getData().size();
-                                }
-                                chart.getData().add(index, new Data("Item " + (++itemIndex), Math.random() * 100));
-                                getSelectionModel().select(index);
-                            }
-                        })
-                        .build(),
-                    MenuItemBuilder.create()
-                        .text("Delete item")
-//                        .accelerator(new KeyCodeCombination(KeyCode.DELETE, KeyCombination.CONTROL_DOWN))
-                        .onAction((ActionEvent t) -> {
-                            int index = getSelectionModel().getSelectedIndex();
-                            if (index >= 0 && index < chart.getData().size()) {
-                                chart.getData().remove(index);
-                            }
-        })
-                        .build(),
-                    MenuItemBuilder.create()
-                        .text("Clear data")
-                        .onAction((ActionEvent t) -> {
-                            chart.getData().clear();
-        })
-                        .build(),
-                    MenuItemBuilder.create()
-                        .text("Set new data")
-                        .onAction((ActionEvent t) -> {
-                            chart.setData(PieChartApp.generateData());
-        })
-                        .build())
-                .build());
-        
+        MenuItem item2 = new MenuItem("Delete item");
+        item2.setOnAction((ActionEvent t) -> {
+            int index = getSelectionModel().getSelectedIndex();
+            if (index >= 0 && index < chart.getData().size()) {
+                chart.getData().remove(index);
+            }
+        });
+
+        MenuItem item3 = new MenuItem("Clear data");
+        item3.setOnAction((ActionEvent t) -> {
+            chart.getData().clear();
+        });
+
+        MenuItem item4 = new MenuItem("Set new data");
+        item4.setOnAction((ActionEvent t) -> {
+            chart.setData(PieChartApp.generateData());
+        });
+
+        setContextMenu(new ContextMenu(item1, item2, item3, item4));
         getColumns().setAll(nameColumn, pieValueColumn);
     }
 }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -108,9 +108,9 @@
     String apiClassToUrl(String classname) {
         String urlEnd = classname.replaceAll("\\.([a-z])", "/$1").replaceFirst("\\.([A-Z])", "/$1");
         if (classname.startsWith("javafx")) {
-            return "http://download.java.net/jdk8/jfxdocs/"+urlEnd+".html";
+            return "https://docs.oracle.com/javase/8/javafx/api/"+urlEnd+".html";
         } else {
-            return "http://download.java.net/jdk8/docs/api/"+urlEnd+".html";
+            return "https://docs.oracle.com/javase/8/docs/api/"+urlEnd+".html";
         }
     }
 
--- a/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -87,7 +87,7 @@
             indexDir.mkdirs();
             BuildEnsembleSearchIndex.buildSearchIndex(
                 allSamples, 
-                "http://download.java.net/jdk8/jfxdocs/",
+                "https://docs.oracle.com/javase/8/javafx/api/",
                 "https://docs.oracle.com/javafx/index.html",
                 indexDir);
         }
--- a/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,6 +1,6 @@
 /*
      * @param args command line arguments
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -109,7 +109,7 @@
         hbox.setAlignment(Pos.CENTER);
         hbox.getChildren().add(datePickerText);
         
-        createDatePicker();
+        datePicker = createDatePicker();
         
         VBox vbox = new VBox(22);
         vbox.getChildren().addAll(datePickerMenuBar, hbox);
@@ -118,13 +118,13 @@
         return vbox;
     }
 
-    private void createDatePicker() {
+    private DatePicker createDatePicker() {
         hbox.getChildren().remove(datePicker);
         LocalDate value = null;
         if (datePicker != null) {
             value = datePicker.getValue();
         }
-        datePicker = new DatePicker();       
+        DatePicker picker = new DatePicker();
         // day cell factory
         final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
             @Override
@@ -147,8 +147,8 @@
         //Create the menubar to experiment with the DatePicker
         datePickerMenuBar = createMenuBar(dayCellFactory);
         // Listen for DatePicker actions
-        datePicker.setOnAction((ActionEvent t) -> {
-            LocalDate isoDate = datePicker.getValue();
+        picker.setOnAction((ActionEvent t) -> {
+            LocalDate isoDate = picker.getValue();
             if ((isoDate != null) && (!isoDate.equals(LocalDate.now()))) {
                 for (Menu menu : datePickerMenuBar.getMenus()) {
                     if (menu.getText().equals("Options for Locale")) {
@@ -163,10 +163,11 @@
                 }
             }
         });
-        hbox.getChildren().add(datePicker);
+        hbox.getChildren().add(picker);
         if (value != null) {
-            datePicker.setValue(value);
+            picker.setValue(value);
         }
+        return picker;
     }
 
     private MenuBar createMenuBar(final Callback<DatePicker, DateCell> dayCellFac) {
@@ -183,7 +184,9 @@
 
         Menu optionsMenu = new Menu("Options for Locale");
         //Style DatePicker with cell factory
-        final CheckMenuItem cellFactoryMenuItem = new CheckMenuItem("Use cell factory to color past days and add tooltip to tomorrow");
+        // XXX - localize
+        final String MSG = "Use cell factory to color past days and add tooltip to tomorrow";
+        final CheckMenuItem cellFactoryMenuItem = new CheckMenuItem(MSG);
         optionsMenu.getItems().add(cellFactoryMenuItem);
         cellFactoryMenuItem.setOnAction((ActionEvent t) -> {
             if (cellFactoryMenuItem.isSelected()) {
@@ -209,12 +212,14 @@
             datePicker.setShowWeekNumbers(showWeekNumMenuItem.isSelected());
         });        
         
-        localeToggleGroup.selectedToggleProperty().addListener((ObservableValue<? extends Toggle> ov, Toggle oldToggle, Toggle newToggle) -> {
+        localeToggleGroup.selectedToggleProperty().addListener((ObservableValue<? extends Toggle> ov,
+                                                                Toggle oldToggle, Toggle newToggle) -> {
             if (localeToggleGroup.getSelectedToggle() != null) {
                 String selectedLocale = ((RadioMenuItem) localeToggleGroup.getSelectedToggle()).getText();
                 Locale locale = Locale.forLanguageTag(selectedLocale.replace('_', '-'));
                 Locale.setDefault(locale);
-                createDatePicker();
+                datePicker = createDatePicker();
+                datePicker.setShowWeekNumbers(showWeekNumMenuItem.isSelected());
             }
         });       
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/hyperlink/HyperLinkApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/hyperlink/HyperLinkApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -38,6 +38,7 @@
 import javafx.scene.control.Hyperlink;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
+import javafx.scene.layout.HBox;
 import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
 
@@ -54,11 +55,14 @@
     private static final Image ICON_48 = new Image(HyperLinkApp.class.getResourceAsStream("/ensemble/samples/shared-resources/icon-48x48.png"));
 
     public Parent createContent() {
-        ImageView iv = new ImageView(ICON_48);
+        HBox hbox = new HBox(18);
+        hbox.setAlignment(Pos.CENTER);
+        
         VBox vbox = new VBox();
         vbox.setSpacing(5);
         vbox.setAlignment(Pos.CENTER_LEFT);
 
+        ImageView iv = new ImageView(ICON_48);
         Hyperlink h1 = new Hyperlink("Hyperlink");
         h1.setPrefWidth(80);
         h1.setMinWidth(Hyperlink.USE_PREF_SIZE);
@@ -69,7 +73,9 @@
         h2.setGraphic(iv);
 
         vbox.getChildren().addAll(h1, h2);
-        return vbox;
+        hbox.getChildren().add(vbox);
+        
+        return hbox;
     }
 
     @Override
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/radiobutton/RadioButtonApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/radiobutton/RadioButtonApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -32,10 +32,12 @@
 package ensemble.samples.controls.radiobutton;
 
 import javafx.application.Application;
+import javafx.geometry.Pos;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.RadioButton;
 import javafx.scene.control.ToggleGroup;
+import javafx.scene.layout.HBox;
 import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
 
@@ -51,9 +53,13 @@
 public class RadioButtonApp extends Application {
 
     public Parent createContent() {
-        ToggleGroup tg = new ToggleGroup();
+        HBox hbox = new HBox(18);
+        hbox.setAlignment(Pos.CENTER);
         VBox vbox = new VBox();
         vbox.setSpacing(5);
+        vbox.setAlignment(Pos.CENTER_LEFT);
+        
+        ToggleGroup tg = new ToggleGroup();
         RadioButton rb1 = new RadioButton("Hello");
         rb1.setToggleGroup(tg);
 
@@ -67,7 +73,9 @@
         rb3.setDisable(true);
 
         vbox.getChildren().addAll(rb1, rb2, rb3);
-        return vbox;
+        hbox.getChildren().add(vbox);
+        
+        return hbox;
     }
 
     @Override
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java	Mon Mar 09 11:07:15 2015 -0700
@@ -216,7 +216,7 @@
         });
 
         listeningNode.setOnRotate((RotateEvent event) -> {
-            rec.setRotate(listeningNode.getRotate() + event.getAngle());
+            rec.setRotate(rec.getRotate() + event.getAngle());
             showOnConsole(msgPrefix + "Rotate event");
             event.consume();
         });
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java	Mon Mar 09 11:07:15 2015 -0700
@@ -80,15 +80,15 @@
             startScale = getScaleX();
         });
         addEventHandler(ZoomEvent.ZOOM, (ZoomEvent event) -> {
-            setScaleX(event.getTotalZoomFactor());
-            setScaleY(event.getTotalZoomFactor());
+            setScaleX(startScale * event.getTotalZoomFactor());
+            setScaleY(startScale * event.getTotalZoomFactor());
         });
         addEventHandler(RotateEvent.ROTATION_STARTED, (RotateEvent event) -> {
             startRotate = getRotate();
         });
         addEventHandler(RotateEvent.ROTATE, (RotateEvent event) -> {
-            setRotate(event.getTotalAngle());
+            setRotate(startRotate + event.getTotalAngle());
         });
 
     }
-}
\ No newline at end of file
+}
--- a/apps/samples/Modena/src/main/java/modena/Modena.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Modena/src/main/java/modena/Modena.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -61,7 +61,7 @@
 import javafx.scene.Node;
 import javafx.scene.Scene;
 import javafx.scene.SnapshotParameters;
-import javafx.scene.control.ButtonBuilder;
+import javafx.scene.control.Button;
 import javafx.scene.control.ChoiceBox;
 import javafx.scene.control.ColorPicker;
 import javafx.scene.control.ComboBox;
@@ -69,13 +69,11 @@
 import javafx.scene.control.Menu;
 import javafx.scene.control.MenuBar;
 import javafx.scene.control.RadioMenuItem;
-import javafx.scene.control.RadioMenuItemBuilder;
-import javafx.scene.control.ScrollPaneBuilder;
+import javafx.scene.control.ScrollPane;
 import javafx.scene.control.Separator;
-import javafx.scene.control.TabBuilder;
+import javafx.scene.control.Tab;
 import javafx.scene.control.TabPane;
 import javafx.scene.control.ToggleButton;
-import javafx.scene.control.ToggleButtonBuilder;
 import javafx.scene.control.ToggleGroup;
 import javafx.scene.control.ToolBar;
 import javafx.scene.control.Tooltip;
@@ -83,7 +81,7 @@
 import javafx.scene.image.ImageView;
 import javafx.scene.image.WritableImage;
 import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.HBoxBuilder;
+import javafx.scene.layout.HBox;
 import javafx.scene.layout.Pane;
 import javafx.scene.paint.Color;
 import javafx.scene.transform.Scale;
@@ -309,35 +307,28 @@
             samplePage = samplePageNavigation.getSamplePage();
             // Create Content Area
             contentTabs = new TabPane();
-            contentTabs.getTabs().addAll(
-                TabBuilder.create().text("All Controls").content( samplePageNavigation ).build(),
-                TabBuilder.create().text("UI Mosaic").content(
-                    ScrollPaneBuilder.create().content(
-                        mosaic = (Node)FXMLLoader.load(Modena.class.getResource("ui-mosaic.fxml"))
-                    ).build()
-                ).build(),
-                TabBuilder.create().text("Alignment Test").content(
-                    ScrollPaneBuilder.create().content(
-                        heightTest = (Node)FXMLLoader.load(Modena.class.getResource("SameHeightTest.fxml"))
-                    ).build()
-                ).build(),
-                TabBuilder.create().text("Simple Windows").content(
-                    ScrollPaneBuilder.create().content(
-                        simpleWindows = new SimpleWindowPage()
-                    ).build()
-                ).build(),
-                TabBuilder.create().text("Combinations").content(
-                    ScrollPaneBuilder.create().content(
-                        combinationsTest = (Node)FXMLLoader.load(Modena.class.getResource("CombinationTest.fxml"))
-                    ).build()
-                ).build(),
-                // Customer example from bug report http://javafx-jira.kenai.com/browse/DTL-5561
-                TabBuilder.create().text("Customer Example").content(
-                    ScrollPaneBuilder.create().content(
-                        customerTest = (Node)FXMLLoader.load(Modena.class.getResource("ScottSelvia.fxml"))
-                    ).build()
-                ).build()
-            );
+            Tab tab1 = new Tab("All Controls");
+            tab1.setContent(samplePageNavigation);
+            Tab tab2 = new Tab("UI Mosaic");
+            tab2.setContent(new ScrollPane(mosaic = (Node)FXMLLoader.load(Modena.class.getResource("ui-mosaic.fxml"))));
+
+            Tab tab3 = new Tab("Alignment Test");
+            tab3.setContent(new ScrollPane(heightTest =
+                    (Node)FXMLLoader.load(Modena.class.getResource("SameHeightTest.fxml"))));
+
+            Tab tab4 = new Tab("Simple Windows");
+            tab4.setContent(new ScrollPane(simpleWindows = new SimpleWindowPage()));
+
+            Tab tab5 = new Tab("Combinations");
+            tab5.setContent(new ScrollPane(combinationsTest =
+                    (Node)FXMLLoader.load(Modena.class.getResource("CombinationTest.fxml"))));
+
+            // Customer example from bug report http://javafx-jira.kenai.com/browse/DTL-5561
+            Tab tab6 = new Tab("Customer Example");
+            tab6.setContent(new ScrollPane(customerTest =
+                    (Node)FXMLLoader.load(Modena.class.getResource("ScottSelvia.fxml"))));
+
+            contentTabs.getTabs().addAll(tab1, tab2, tab3, tab4, tab5, tab6);
             contentTabs.getSelectionModel().select(selectedTab);
             samplePage.setMouseTransparent(test);
             // height test set selection for 
@@ -350,64 +341,54 @@
                 }
             });
             // Create Toolbar
-            retinaButton = ToggleButtonBuilder.create()
-                .text("@2x")
-                .selected(retina)
-                .onAction(event -> {
-                    ToggleButton btn = (ToggleButton)event.getSource();
-                    setRetinaMode(btn.isSelected());
-                })
-                .build();
+            retinaButton = new ToggleButton("@2x");
+            retinaButton.setSelected(retina);
+            retinaButton.setOnAction(event -> {
+                ToggleButton btn = (ToggleButton)event.getSource();
+                setRetinaMode(btn.isSelected());
+            });
             ToggleGroup themesToggleGroup = new ToggleGroup();
-            ToolBar toolBar = new ToolBar(
-                HBoxBuilder.create()
-                    .children(
-                        modenaButton = ToggleButtonBuilder.create()
-                            .text("Modena")
-                            .toggleGroup(themesToggleGroup)
-                            .selected(modena)
-                            .onAction(rebuild)
-                            .styleClass("left-pill")
-                            .build(),
-                        ToggleButtonBuilder.create()
-                            .text("Caspian")
-                            .toggleGroup(themesToggleGroup)
-                            .selected(!modena)
-                            .onAction(rebuild)
-                            .styleClass("right-pill")
-                            .build()
-                    )
-                    .build(),
-                ButtonBuilder.create()
-                    .graphic(new ImageView(new Image(Modena.class.getResource("reload_12x14.png").toString())))
-                    .onAction(rebuild)
-                    .build(),
-                rtlButton = ToggleButtonBuilder.create()
-                    .text("RTL")
-                    .onAction(event -> root.setNodeOrientation(rtlButton.isSelected() ? 
-                            NodeOrientation.RIGHT_TO_LEFT : NodeOrientation.LEFT_TO_RIGHT))
-                    .build(),
-                embeddedPerformanceButton = ToggleButtonBuilder.create()
-                    .text("EP")
-                    .selected(embeddedPerformanceMode)
-                    .tooltip(new Tooltip("Apply Embedded Performance extra stylesheet"))
-                    .onAction(event -> {
-                        embeddedPerformanceMode = embeddedPerformanceButton.isSelected();
-                        rebuild.handle(event);
-                    })
-                    .build(),
-                new Separator(),
-                retinaButton,
-                new Label("Base:"),
-                createBaseColorPicker(),
-                new Label("Background:"),
-                createBackgroundColorPicker(),
-                new Label("Accent:"),
-                createAccentColorPicker(),
-                new Separator(),
-                ButtonBuilder.create().text("Save...").onAction(saveBtnHandler).build(),
-                ButtonBuilder.create().text("Restart").onAction(event -> restart()).build()
-            );
+            modenaButton = new ToggleButton("Modena");
+            modenaButton.setToggleGroup(themesToggleGroup);
+            modenaButton.setSelected(modena);
+            modenaButton.setOnAction(rebuild);
+            modenaButton.getStyleClass().add("left-pill:");
+            ToggleButton caspianButton = new ToggleButton("Caspian");
+            caspianButton.setToggleGroup(themesToggleGroup);
+            caspianButton.setSelected(!modena);
+            caspianButton.setOnAction(rebuild);
+            caspianButton.getStyleClass().add("right-pill");
+            Button reloadButton = new Button("", new ImageView(new Image(Modena.class.getResource("reload_12x14.png").toString())));
+            reloadButton.setOnAction(rebuild);
+
+            rtlButton = new ToggleButton("RTL");
+            rtlButton.setOnAction(event -> root.setNodeOrientation(rtlButton.isSelected() ?
+                    NodeOrientation.RIGHT_TO_LEFT : NodeOrientation.LEFT_TO_RIGHT));
+
+            embeddedPerformanceButton = new ToggleButton("EP");
+            embeddedPerformanceButton.setSelected(embeddedPerformanceMode);
+            embeddedPerformanceButton.setTooltip(new Tooltip("Apply Embedded Performance extra stylesheet"));
+            embeddedPerformanceButton.setOnAction(event -> {
+                embeddedPerformanceMode = embeddedPerformanceButton.isSelected();
+                rebuild.handle(event);
+            });
+
+            Button saveButton = new Button("Save...");
+            saveButton.setOnAction(saveBtnHandler);
+
+            Button restartButton = new Button("Restart");
+            retinaButton.setOnAction(event -> restart());
+
+            ToolBar toolBar = new ToolBar(new HBox(modenaButton, caspianButton), reloadButton, rtlButton,
+                    embeddedPerformanceButton, new Separator(), retinaButton,
+                    new Label("Base:"),
+                    createBaseColorPicker(),
+                    new Label("Background:"),
+                    createBackgroundColorPicker(),
+                    new Label("Accent:"),
+                    createAccentColorPicker(),
+                    new Separator(), saveButton, restartButton
+                    );
             toolBar.setId("TestAppToolbar");
             // Create content group used for scaleing @2x
             final Pane contentGroup = new Pane() {
@@ -444,7 +425,11 @@
     }
 
     public RadioMenuItem buildFontRadioMenuItem(String name, final String in_fontName, final int in_fontSize, ToggleGroup tg) {
-        return RadioMenuItemBuilder.create().text(name).onAction(event -> setFont(in_fontName, in_fontSize)).style("-fx-font: " + in_fontSize + "px \"" + in_fontName + "\";").toggleGroup(tg).build();
+        RadioMenuItem rmItem = new RadioMenuItem(name);
+        rmItem.setOnAction(event -> setFont(in_fontName, in_fontSize));
+        rmItem.setStyle("-fx-font: " + in_fontSize + "px \"" + in_fontName + "\";");
+        rmItem.setToggleGroup(tg);
+        return rmItem;
     }
     
     public void setFont(String in_fontName, int in_fontSize) {
--- a/apps/samples/Modena/src/main/java/modena/SamplePage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Modena/src/main/java/modena/SamplePage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -46,10 +46,8 @@
 import javafx.scene.control.*;
 import javafx.scene.layout.GridPane;
 import javafx.scene.layout.HBox;
-import javafx.scene.layout.HBoxBuilder;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.VBox;
-import javafx.scene.layout.VBoxBuilder;
 import javafx.scene.paint.Color;
 import javafx.scene.web.HTMLEditor;
 
@@ -82,20 +80,27 @@
                 withState(new Button("Focused & Hover"), "focused, hover"),
                 withState(new Button("Focused & Armed"), "focused, armed"),
                 withState(new Button("Disabled"), "disabled"));
+        Button defaultButton = new Button("Button");
+        defaultButton.setDefaultButton(true);
         newSection("Default Button:",
-                ButtonBuilder.create().text("Button").defaultButton(true).build(),
+                defaultButton,
                 withState(new Button("Hover"), "default, hover"),
                 withState(new Button("Armed"), "default, armed"),
                 withState(new Button("Focused"), "default, focused"),
                 withState(new Button("Focused & Hover"), "default, focused, hover"),
                 withState(new Button("Focused & Armed"), "default, focused, armed"),
                 withState(new Button("Disabled"), "default, disabled"));
-        newSection("Nice Colors:",
-                ButtonBuilder.create().text("Button").style("-fx-base: #f3622d;").build(),
-                ButtonBuilder.create().text("Button").style("-fx-base: #fba71b;").build(),
-                ButtonBuilder.create().text("Button").style("-fx-base: #57b757;").build(),
-                ButtonBuilder.create().text("Button").style("-fx-base: #41a9c9;").build(),
-                ButtonBuilder.create().text("Button").style("-fx-base: #888;").build());
+        Button b1 = new Button("Button");
+        b1.setStyle("-fx-base: #f3622d;");
+        Button b2 = new Button("Button");
+        b2.setStyle("-fx-base: #fba71b;");
+        Button b3 = new Button("Button");
+        b3.setStyle("-fx-base: #57b757;");
+        Button b4 = new Button("Button");
+        b4.setStyle("-fx-base: #41a9c9;");
+        Button b5 = new Button("Button");
+        b5.setStyle("-fx-base: #888;");
+        newSection("Nice Colors:", b1, b2, b3, b4, b5);
         newSection("Greys:",0,
                 createGreyButton(0),
                 createGreyButton(0.1),
@@ -112,89 +117,150 @@
         ToggleGroup tg2 = new ToggleGroup();
         ToggleGroup tg3 = new ToggleGroup();
         ToggleGroup tg4 = new ToggleGroup();
+
+        ToggleButton left1 = new ToggleButton("Left");
+        left1.getStyleClass().add("left-pill");
+        left1.setToggleGroup(tg1);
+        ToggleButton center1 = new ToggleButton("Center");
+        center1.getStyleClass().add("center-pill");
+        center1.setToggleGroup(tg1);
+        ToggleButton right1 = new ToggleButton("Right");
+        right1.getStyleClass().add("right-pill");
+        right1.setToggleGroup(tg1);
+
+        ToggleButton left2 = new ToggleButton("Left");
+        left2.getStyleClass().add("left-pill");
+        left2.setToggleGroup(tg2);
+        left2.setSelected(true);
+        ToggleButton center2 = new ToggleButton("Center");
+        center2.getStyleClass().add("center-pill");
+        center2.setToggleGroup(tg2);
+        ToggleButton right2 = new ToggleButton("Right");
+        right2.getStyleClass().add("right-pill");
+        right2.setToggleGroup(tg2);
+
+        ToggleButton left3 = new ToggleButton("Left");
+        left3.getStyleClass().add("left-pill");
+        left3.setToggleGroup(tg3);
+        ToggleButton center3 = new ToggleButton("Center");
+        center3.getStyleClass().add("center-pill");
+        center3.setToggleGroup(tg3);
+        center3.setSelected(true);
+        ToggleButton right3 = new ToggleButton("Right");
+        right3.getStyleClass().add("right-pill");
+        right3.setToggleGroup(tg3);
+
+        ToggleButton left4 = new ToggleButton("Left");
+        left4.getStyleClass().add("left-pill");
+        left4.setToggleGroup(tg4);
+        ToggleButton center4 = new ToggleButton("Center");
+        center4.getStyleClass().add("center-pill");
+        center4.setToggleGroup(tg4);
+        ToggleButton right4 = new ToggleButton("Right");
+        right4.getStyleClass().add("right-pill");
+        right4.setToggleGroup(tg4);
+        right4.setSelected(true);
+
         newSection("Pill Toggle\nButtons:",
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("Left").styleClass("left-pill").toggleGroup(tg1).build(),
-                        ToggleButtonBuilder.create().text("Center").styleClass("center-pill").toggleGroup(tg1).build(),
-                        ToggleButtonBuilder.create().text("Right").styleClass("right-pill").toggleGroup(tg1).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("Left").styleClass("left-pill").toggleGroup(tg2).selected(true).build(),
-                        ToggleButtonBuilder.create().text("Center").styleClass("center-pill").toggleGroup(tg2).build(),
-                        ToggleButtonBuilder.create().text("Right").styleClass("right-pill").toggleGroup(tg2).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("Left").styleClass("left-pill").toggleGroup(tg3).build(),
-                        ToggleButtonBuilder.create().text("Center").styleClass("center-pill").toggleGroup(tg3).selected(true).build(),
-                        ToggleButtonBuilder.create().text("Right").styleClass("right-pill").toggleGroup(tg3).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("Left").styleClass("left-pill").toggleGroup(tg4).build(),
-                        ToggleButtonBuilder.create().text("Center").styleClass("center-pill").toggleGroup(tg4).build(),
-                        ToggleButtonBuilder.create().text("Right").styleClass("right-pill").toggleGroup(tg4).selected(true).build()
-                    )
-                    .build());
+                new HBox(left1, center1, right1),
+                new HBox(left2, center2, right2),
+                new HBox(left3, center3, right3),
+                new HBox(left4, center4, right4)
+        );
+
         ToggleGroup tg5 = new ToggleGroup();
         ToggleGroup tg6 = new ToggleGroup();
         ToggleGroup tg7 = new ToggleGroup();
         ToggleGroup tg8 = new ToggleGroup();
+
+        ToggleButton left5 = new ToggleButton("#");
+        left5.getStyleClass().add("left-pill");
+        left5.setToggleGroup(tg5);
+        ToggleButton center5 = new ToggleButton("#");
+        center5.getStyleClass().add("center-pill");
+        center5.setToggleGroup(tg5);
+        ToggleButton right5 = new ToggleButton("#");
+        right5.getStyleClass().add("right-pill");
+        right5.setToggleGroup(tg5);
+
+        ToggleButton left5_1 = new ToggleButton("L");
+        left5_1.getStyleClass().add("left-pill");
+        left5_1.setToggleGroup(tg5);
+        withState(left5_1, "focused");
+        ToggleButton center5_1 = new ToggleButton("C");
+        center5_1.getStyleClass().add("center-pill");
+        center5_1.setToggleGroup(tg5);
+        ToggleButton right5_1 = new ToggleButton("R");
+        right5_1.getStyleClass().add("right-pill");
+        right5_1.setToggleGroup(tg5);
+
+        ToggleButton left5_2 = new ToggleButton("L");
+        left5_2.getStyleClass().add("left-pill");
+        left5_2.setToggleGroup(tg5);
+        ToggleButton center5_2 = new ToggleButton("C");
+        center5_2.getStyleClass().add("center-pill");
+        center5_2.setToggleGroup(tg5);
+        withState(center5_2, "focused");
+        ToggleButton right5_2 = new ToggleButton("R");
+        right5_2.getStyleClass().add("right-pill");
+        right5_2.setToggleGroup(tg5);
+
+        ToggleButton left5_3 = new ToggleButton("L");
+        left5_3.getStyleClass().add("left-pill");
+        left5_3.setToggleGroup(tg5);
+        ToggleButton center5_3 = new ToggleButton("C");
+        center5_3.getStyleClass().add("center-pill");
+        center5_3.setToggleGroup(tg5);
+        ToggleButton right5_3 = new ToggleButton("R");
+        right5_3.getStyleClass().add("right-pill");
+        right5_3.setToggleGroup(tg5);
+        withState(right5_3, "focused");
+
+        ToggleButton left6 = new ToggleButton("L");
+        left6.getStyleClass().add("left-pill");
+        left6.setToggleGroup(tg6);
+        left6.setSelected(true);
+        withState(left6, "focused");
+        ToggleButton center6 = new ToggleButton("C");
+        center6.getStyleClass().add("center-pill");
+        center6.setToggleGroup(tg6);
+        ToggleButton right6 = new ToggleButton("R");
+        right6.getStyleClass().add("right-pill");
+        right6.setToggleGroup(tg6);
+
+        ToggleButton left7 = new ToggleButton("L");
+        left7.getStyleClass().add("left-pill");
+        left7.setToggleGroup(tg7);
+        ToggleButton center7 = new ToggleButton("C");
+        center7.getStyleClass().add("center-pill");
+        center7.setToggleGroup(tg7);
+        center7.setSelected(true);
+        withState(center7, "focused");
+        ToggleButton right7 = new ToggleButton("R");
+        right7.getStyleClass().add("right-pill");
+        right7.setToggleGroup(tg7);
+
+        ToggleButton left8 = new ToggleButton("L");
+        left8.getStyleClass().add("left-pill");
+        left8.setToggleGroup(tg8);
+        ToggleButton center8 = new ToggleButton("C");
+        center8.getStyleClass().add("center-pill");
+        center8.setToggleGroup(tg8);
+        ToggleButton right8 = new ToggleButton("R");
+        right8.getStyleClass().add("right-pill");
+        right8.setToggleGroup(tg8);
+        right8.setSelected(true);
+        withState(right8, "focused");
+
         newSection("Pill Toggle\nButtons\nFocused:",
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("#").styleClass("left-pill").toggleGroup(tg5).build(),
-                        ToggleButtonBuilder.create().text("#").styleClass("center-pill").toggleGroup(tg5).build(),
-                        ToggleButtonBuilder.create().text("#").styleClass("right-pill").toggleGroup(tg5).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        withState(ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg5).build(),"focused"),
-                        ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg5).build(),
-                        ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg5).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg5).build(),
-                        withState(ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg5).build(),"focused"),
-                        ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg5).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg5).build(),
-                        ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg5).build(),
-                        withState(ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg5).build(),"focused")
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        withState(ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg6).selected(true).build(),"focused"),
-                        ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg6).build(),
-                        ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg6).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg7).build(),
-                        withState(ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg7).selected(true).build(),"focused"),
-                        ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg7).build()
-                    )
-                    .build(),
-                HBoxBuilder.create()
-                    .children(
-                        ToggleButtonBuilder.create().text("L").styleClass("left-pill").toggleGroup(tg8).build(),
-                        ToggleButtonBuilder.create().text("C").styleClass("center-pill").toggleGroup(tg8).build(),
-                        withState(ToggleButtonBuilder.create().text("R").styleClass("right-pill").toggleGroup(tg8).selected(true).build(),"focused")
-                    )
-                    .build());
+                new HBox(left5, center5, right5),
+                new HBox(left5_1, center5_1, right5_1),
+                new HBox(left5_2, center5_2, right5_2),
+                new HBox(left5_3, center5_3, right5_3),
+                new HBox(left6, center6, right6),
+                new HBox(left7, center7, right7),
+                new HBox(left8, center8, right8)
+        );
         newSection("ToggleButton:",
                 new ToggleButton("Button"),
                 withState(new ToggleButton("Hover"), "hover"),
@@ -227,8 +293,13 @@
                 withState(new CheckBox("Focused & Hover"), "selected, focused, hover"),
                 withState(new CheckBox("Focused & Armed"), "selected, focused, armed"),
                 withState(new CheckBox("Disabled"), "selected, disabled"));
+
+        CheckBox checkB = new CheckBox("CheckBox");
+        checkB.setSelected(true);
+        checkB.setIndeterminate(true);
+        checkB.setAllowIndeterminate(true);
         newSection("CheckBox\nIndeterminate:",
-                CheckBoxBuilder.create().text("CheckBox").selected(true).indeterminate(true).allowIndeterminate(true).build(),
+                checkB,
                 withState(new CheckBox("Hover"), "indeterminate, selected, hover"),
                 withState(new CheckBox("Armed"), "indeterminate, selected, armed"),
                 withState(new CheckBox("Focused"), "indeterminate, selected, focused"),
@@ -263,36 +334,68 @@
                 withState(new Hyperlink("Disabled"), "disabled"));
         ObservableList<String> choiceBoxLongList = sampleItems(200);
         choiceBoxLongList.add(100, "Long List");
+        ChoiceBox<String> cb1 = new ChoiceBox<String>(sampleItems());
+        cb1.setValue("Item A");
+        ChoiceBox<String> cb2 = new ChoiceBox<String>(choiceBoxLongList);
+        cb2.setValue("Long List");
+        ChoiceBox<String> cb3 = new ChoiceBox<String>(sampleItems());
+        cb3.setValue("Item B");
+        ChoiceBox<String> cb4 = new ChoiceBox<String>(sampleItems());
+        cb4.setValue("Item B");
+        ChoiceBox<String> cb5 = new ChoiceBox<String>(sampleItems());
+        cb5.setValue("Item B");
+        ChoiceBox<String> cb6 = new ChoiceBox<String>(sampleItems());
+        cb6.setValue("Item C");
+        cb6.setDisable(true);
         newSection(
-                "ChoiceBox:",
-                ChoiceBoxBuilder.<String>create().items(sampleItems()).value("Item A").build(),
-                ChoiceBoxBuilder.<String>create().items(choiceBoxLongList).value("Long List").build(),
-                withState(ChoiceBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "hover"),
-                withState(ChoiceBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "showing"),
-                withState(ChoiceBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "focused"),
-                ChoiceBoxBuilder.<String>create().items(sampleItems()).value("Item C").disable(true).build()
-        );
+                "ChoiceBox:", cb1, cb2,
+                withState(cb3, "hover"),
+                withState(cb4,"showing"),
+                withState(cb5,"focused"),
+                cb6);
+        ChoiceBox<String> c1 = new ChoiceBox<String>(sampleItems());
+        c1.setValue("Item A");
+        ChoiceBox<String> c2 = new ChoiceBox<String>(choiceBoxLongList);
+        c2.setValue("Long List");
+        ChoiceBox<String> c3 = new ChoiceBox<String>(sampleItems());
+        c3.setValue("Item B");
+        ChoiceBox<String> c4 = new ChoiceBox<String>(sampleItems());
+        c4.setValue("Item B");
+        ChoiceBox<String> c5 = new ChoiceBox<String>(sampleItems());
+        c5.setValue("Item B");
+        ChoiceBox<String> c6 = new ChoiceBox<String>(sampleItems());
+        c6.setValue("Item C");
+        c6.setDisable(true);
         newSection(
-                "ComboBox:",
-                ComboBoxBuilder.<String>create().items(sampleItems()).value("Item A").build(),
-                ComboBoxBuilder.<String>create().items(choiceBoxLongList).value("Long List").build(),
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "hover"),
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "showing"),
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").build(), "focused"),
-                ComboBoxBuilder.<String>create().items(sampleItems()).value("Item C").disable(true).build()
-                );
+                "ChoiceBox:", c1, c2,
+                withState(c3, "hover"),
+                withState(c4, "showing"),
+                withState(c5,"focused"),
+                c6);
+        ComboBox<String> com1 = new ComboBox<String>(sampleItems());
+        com1.setValue("Item A");
+        com1.setEditable(true);
+        ComboBox<String> com2 = new ComboBox<String>(sampleItems());
+        com2.setValue("Item B");
+        com2.setEditable(true);
+        ComboBox<String> com3 = new ComboBox<String>(sampleItems());
+        com3.setValue("Item B");
+        com3.setEditable(true);
         newSection(
-                "ComboBox\nEditable:",
-                ComboBoxBuilder.<String>create().items(sampleItems()).value("Item A").editable(true).build(),
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").editable(true).build(), "editable", ".arrow-button", "hover"),
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").editable(true).build(), "editable", ".arrow-button", "pressed")
-                );
+                "ComboBox\nEditable:", com1,
+                withState(com2, "editable", ".arrow-button", "hover"),
+                withState(com3, "editable", ".arrow-button", "pressed"));
+        ComboBox<String> co1 = new ComboBox<String>(sampleItems());
+        co1.setValue("Item B");
+        co1.setEditable(true);
+        ComboBox<String> co2 = new ComboBox<String>(sampleItems());
+        co2.setValue("Item C");
+        co2.setEditable(true);
+        co2.setDisable(true);
         newSection(
                 "ComboBox\nEditable\n(More):",
-                withState(ComboBoxBuilder.<String>create().items(sampleItems()).value("Item B").editable(true).build(), "editable,contains-focus", ".text-field", "focused"),
-                ComboBoxBuilder.<String>create().items(sampleItems()).value("Item C").editable(true).disable(true).build()
-                );
-
+                withState(co1, "editable,contains-focus", ".text-field", "focused"),
+                co2);
         String[] spinnerStyles = new String[] {
                 "default",
                 Spinner.STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL,
@@ -316,149 +419,266 @@
                     spinners[2]
             );
         }
-
+        newSection("Color Picker:", new ColorPicker(Color.RED), withState(new ColorPicker(Color.RED), "hover"),
+                withState(new ColorPicker(Color.RED), "showing"), withState(new ColorPicker(Color.RED), "focused"),
+                withState(new ColorPicker(Color.RED), "disabled"));
+        ColorPicker cp1 = new ColorPicker(Color.RED);
+        cp1.getStyleClass().add(ColorPicker.STYLE_CLASS_SPLIT_BUTTON);
+        ColorPicker cp2 = new ColorPicker(Color.RED);
+        cp2.getStyleClass().add(ColorPicker.STYLE_CLASS_SPLIT_BUTTON);
+        ColorPicker cp3 = new ColorPicker(Color.RED);
+        cp3.getStyleClass().add(ColorPicker.STYLE_CLASS_SPLIT_BUTTON);
+        ColorPicker cp4 = new ColorPicker(Color.RED);
+        cp4.getStyleClass().add(ColorPicker.STYLE_CLASS_SPLIT_BUTTON);
+        ColorPicker cp5 = new ColorPicker(Color.RED);
+        cp5.getStyleClass().add(ColorPicker.STYLE_CLASS_SPLIT_BUTTON);
         newSection(
-                "Color Picker:",
-                ColorPickerBuilder.create().value(Color.RED).build(),
-                withState(ColorPickerBuilder.create().value(Color.RED).build(), "hover"),
-                withState(ColorPickerBuilder.create().value(Color.RED).build(), "showing"),
-                withState(ColorPickerBuilder.create().value(Color.RED).build(), "focused"),
-                withState(ColorPickerBuilder.create().value(Color.RED).build(), "disabled")
-                );
+                "Color Picker\n Split Button:", cp1,
+                withState(cp2, "hover"),
+                withState(cp3,"showing"),
+                withState(cp4, "focused"),
+                withState(cp5,"disabled"));
+        MenuButton mb1 = new MenuButton();
+        mb1.getItems().addAll(createMenuItems(20));
+        mb1.setText("right");
+        mb1.setPopupSide(Side.RIGHT);
+        MenuButton mb2 = new MenuButton();
+        mb2.getItems().addAll(createMenuItems(20));
+        mb2.setText("normal");
+        MenuButton mb3 = new MenuButton();
+        mb3.getItems().addAll(createMenuItems(20));
+        mb3.setText("hover");
+        MenuButton mb4 = new MenuButton();
+        mb4.getItems().addAll(createMenuItems(20));
+        mb4.setText("armed");
+        MenuButton mb5 = new MenuButton();
+        mb5.getItems().addAll(createMenuItems(20));
+        mb5.setText("focused");
+        MenuButton mb6 = new MenuButton();
+        mb6.getItems().addAll(createMenuItems(20));
+        mb6.setText("disabled");
+        newSection("MenuButton:", mb1, mb2,
+                withState(mb3, "openvertically, hover"),
+                withState(mb4, "openvertically, armed"),
+                withState(mb5, "openvertically, focused"),
+                withState(mb6, "openvertically, disabled"));
+        SplitMenuButton splitmb1 = new SplitMenuButton(createMenuItems(20));
+        splitmb1.setText("right");
+        splitmb1.setPopupSide(Side.RIGHT);
+        SplitMenuButton splitmb2 = new SplitMenuButton(createMenuItems(20));
+        splitmb2.setText("normal");
+        SplitMenuButton splitmb3 = new SplitMenuButton(createMenuItems(20));
+        splitmb3.setText("hover");
+        SplitMenuButton splitmb4 = new SplitMenuButton(createMenuItems(20));
+        splitmb4.setText("armed");
         newSection(
-                "Color Picker\n Split Button:",
-                ColorPickerBuilder.create().value(Color.RED).styleClass(ColorPicker.STYLE_CLASS_SPLIT_BUTTON).build(),
-                withState(ColorPickerBuilder.create().value(Color.RED).styleClass(ColorPicker.STYLE_CLASS_SPLIT_BUTTON).build(), "hover"),
-                withState(ColorPickerBuilder.create().value(Color.RED).styleClass(ColorPicker.STYLE_CLASS_SPLIT_BUTTON).build(), "showing"),
-                withState(ColorPickerBuilder.create().value(Color.RED).styleClass(ColorPicker.STYLE_CLASS_SPLIT_BUTTON).build(), "focused"),
-                withState(ColorPickerBuilder.create().value(Color.RED).styleClass(ColorPicker.STYLE_CLASS_SPLIT_BUTTON).build(), "disabled")
-                );
+                "SplitMenuButton:", splitmb1, splitmb2,
+                withState(splitmb3, "openvertically",".label", "hover"),
+                withState(splitmb4,"armed,openvertically",".label", "armed"));
+        SplitMenuButton splitmb_m1 = new SplitMenuButton(createMenuItems(20));
+        splitmb_m1.setText("arrow hover");
+        SplitMenuButton splitmb_m2 = new SplitMenuButton(createMenuItems(20));
+        splitmb_m2.setText("showing");
+        SplitMenuButton splitmb_m3 = new SplitMenuButton(createMenuItems(20));
+        splitmb_m3.setText("focused");
+        SplitMenuButton splitmb_m4 = new SplitMenuButton(createMenuItems(20));
+        splitmb_m4.setText("disabled");
         newSection(
-                "MenuButton:",
-                MenuButtonBuilder.create().items(createMenuItems(20)).text("right").popupSide(Side.RIGHT).build(),
-                MenuButtonBuilder.create().items(createMenuItems(20)).text("normal").build(),
-                withState(MenuButtonBuilder.create().items(createMenuItems(20)).text("hover").build(), "openvertically,hover"),
-                withState(MenuButtonBuilder.create().items(createMenuItems(20)).text("armed").build(), "openvertically,armed"),
-                withState(MenuButtonBuilder.create().items(createMenuItems(20)).text("focused").build(), "openvertically,focused"),
-                withState(MenuButtonBuilder.create().items(createMenuItems(20)).text("disabled").build(), "openvertically,disabled")
-                );
-        newSection(
-                "SplitMenuButton:",
-                SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("right").popupSide(Side.RIGHT).build(),
-                SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("normal").build(),
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("hover").build(),"openvertically",".label", "hover"),
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("armed").build(),"armed,openvertically",".label", "armed")
-                );
-        newSection(
-                "SplitMenuButton\nMore:",
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("arrow hover").build(), "openvertically", ".arrow-button", "hover"),
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("showing").build(), "openvertically,showing"),
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("focused").build(), "openvertically,focused"),
-                withState(SplitMenuButtonBuilder.create().items(createMenuItems(20)).text("disabled").build(), "openvertically,disabled")
-                );
+                "SplitMenuButton\nnMore:",
+                withState(splitmb_m1, "openvertically", ".arrow-button", "hover"),
+                withState(splitmb_m2, "openvertically,showing"),
+                withState(splitmb_m3, "openvertically,focused"),
+                withState(splitmb_m4, "openvertically,disabled"));
         newSection(
                 "DatePicker:",
                 new DatePicker(),
                 withState(new DatePicker(),"hover"),
                 withState(new DatePicker(), "showing"),
                 withState(new DatePicker(), "focused"),
-                withState(new DatePicker(), "disabled")
-                );
+                withState(new DatePicker(), "disabled"));
+        Slider s1 = new Slider(0, 100, 50);
+        s1.setMaxWidth(90);
+        Slider s2 = new Slider(0, 100, 50);
+        s2.setMaxWidth(90);
+        Slider s3 = new Slider(0, 100, 50);
+        s3.setMaxWidth(90);
+        Slider s4 = new Slider(0, 100, 50);
+        s4.setMaxWidth(90);
+        Slider s5 = new Slider(0, 100, 50);
+        s5.setShowTickLabels(true);
+        s5.setShowTickMarks(true);
         newDetailedSection(
                 new String[]{"Slider (H):", "normal", "hover", "pressed", "disabled", "tickmarks"},
-                withState(SliderBuilder.create().maxWidth(90).min(0).max(100).value(50).build(), null),
-                withState(SliderBuilder.create().maxWidth(90).min(0).max(100).value(50).build(), null, ".thumb", "hover"),
-                withState(SliderBuilder.create().maxWidth(90).min(0).max(100).value(50).build(), null, ".thumb", "hover, pressed"),
-                withState(SliderBuilder.create().maxWidth(90).min(0).max(100).value(50).build(), "disabled"),
-                SliderBuilder.create().min(0).max(100).value(50).showTickMarks(true).showTickLabels(true).build());
+                withState(s1, null),
+                withState(s2, null, ".thumb", "hover"),
+                withState(s3, null, ".thumb", "hover, pressed"),
+                withState(s4, "disabled"),
+                s5);
         newDetailedSection(
                 new String[]{"Slider (H) Focused:", "normal", "hover", "pressed"},
                 withState(new Slider(0, 100, 50), "focused"),
                 withState(new Slider(0, 100, 50), "focused", ".thumb", "hover"),
                 withState(new Slider(0, 100, 50), "focused", ".thumb", "hover, pressed"));
+        Slider s_v1 = new Slider(0, 100, 50);
+        s_v1.setOrientation(Orientation.VERTICAL);
+        Slider s_v2 = new Slider(0, 100, 50);
+        s_v2.setOrientation(Orientation.VERTICAL);
+        Slider s_v3 = new Slider(0, 100, 50);
+        s_v3.setOrientation(Orientation.VERTICAL);
+        Slider s_v4 = new Slider(0, 100, 50);
+        s_v4.setOrientation(Orientation.VERTICAL);
+        Slider s_v5 = new Slider(0, 100, 50);
+        s_v5.setOrientation(Orientation.VERTICAL);
+        s_v5.setShowTickLabels(true);
+        s_v5.setShowTickMarks(true);
         newSection("Slider - V:",
-                SliderBuilder.create().min(0).max(100).value(50).orientation(Orientation.VERTICAL).build(),
-                withState(SliderBuilder.create().min(0).max(100).value(50).orientation(Orientation.VERTICAL).build(), null, ".thumb", "hover"),
-                withState(SliderBuilder.create().min(0).max(100).value(50).orientation(Orientation.VERTICAL).build(), null, ".thumb", "hover, pressed"),
-                withState(SliderBuilder.create().min(0).max(100).value(50).orientation(Orientation.VERTICAL).build(), "disabled"),
-                SliderBuilder.create().min(0).max(100).value(50).showTickMarks(true).showTickLabels(true).orientation(Orientation.VERTICAL).build());
+                s_v1,
+                withState(s_v2, null, ".thumb", "hover"),
+                withState(s_v3, null, ".thumb", "hover, pressed"),
+                withState(s_v4, "disabled"),
+                s_v5);
+        ScrollBar sb1 = new ScrollBar();
+        sb1.setMinWidth(30);
+        sb1.setPrefWidth(30);
+        ScrollBar sb2 = new ScrollBar();
+        sb2.setVisibleAmount(60);
+        sb1.setMax(100);
         newDetailedSection(
-                new String[] {"Scrollbar - H: ", "normal", "focused", "small", "big thumb"},
+                new String[]{"Scrollbar - H: ", "normal", "focused", "small", "big thumb"},
                 new ScrollBar(),
-                withState(ScrollBarBuilder.create().build(), "focused"),
-                ScrollBarBuilder.create().minWidth(30).prefWidth(30).build(),
-                ScrollBarBuilder.create().visibleAmount(60).max(100).build()
-                );
+                withState(new ScrollBar(), "focused"), sb1, sb2);
+        ScrollBar sb3 = new ScrollBar();
+        sb3.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb4 = new ScrollBar();
+        sb4.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb5 = new ScrollBar();
+        sb5.setMinHeight(30);
+        sb5.setPrefHeight(30);
+        sb5.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb6 = new ScrollBar();
+        sb6.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb7 = new ScrollBar();
+        sb7.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb8 = new ScrollBar();
+        sb8.setOrientation(Orientation.VERTICAL);
+        ScrollBar sb9 = new ScrollBar();
+        sb9.setOrientation(Orientation.VERTICAL);
         newDetailedSection(
-                new String[] {"Scrollbar - V: ", "normal", "focused", "small", "btn hover", "btn pressed", ".thumb hover", ".thumb pressed"},
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "vertical"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "focused"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).minHeight(30).prefHeight(30).build(), "vertical"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "vertical", ".decrement-button", "hover"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "vertical", ".decrement-button", "pressed"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "vertical", ".thumb", "hover"),
-                withState(ScrollBarBuilder.create().orientation(Orientation.VERTICAL).build(), "vertical", ".thumb", "pressed")
-                );
+                new String[]{"Scrollbar - V: ", "normal", "focused", "small", "btn hover", "btn pressed", ".thumb hover", ".thumb pressed"},
+                withState(sb3, "vertical"),
+                withState(sb4, "focused"),
+                withState(sb5, "vertical"),
+                withState(sb6, "vertical", ".decrement-button", "hover"),
+                withState(sb7, "vertical", ".decrement-button", "pressed"),
+                withState(sb8, "vertical", ".thumb", "hover"),
+                withState(sb9, "vertical", ".thumb", "pressed")
+        );
+        ScrollPane scrollPane = new ScrollPane(scrollPaneContent());
+        scrollPane.setMinWidth(40);
+        scrollPane.setPrefWidth(40);
+        scrollPane.setMinHeight(40);
+        scrollPane.setPrefHeight(40);
         newDetailedSection(
                 new String[] {"ScrollPane: ", "normal", "small", "focused", "empty"},
-                ScrollPaneBuilder.create().content(scrollPaneContent()).build(),
-                ScrollPaneBuilder.create().content(scrollPaneContent()).minWidth(40).prefWidth(40).minHeight(40).prefHeight(40).build(),
-                withState(ScrollPaneBuilder.create().content(scrollPaneContent()).build(), "focused"),
-                ScrollPaneBuilder.create().build()
-                );
+                new ScrollPane(scrollPaneContent()),
+                scrollPane,
+                withState(new ScrollPane(scrollPaneContent()), "focused"),
+                new ScrollPane()
+        );
+        ScrollPane scrollPaneVbar = new ScrollPane(scrollPaneContent());
+        scrollPaneVbar.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
+        ScrollPane scrollPaneHbar = new ScrollPane(scrollPaneContent());
+        scrollPaneHbar.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
         newDetailedSection(
                 new String[] {"ScrollPane H/V: ", "H Bar", "V bar"},
-                ScrollPaneBuilder.create().content(scrollPaneContent()).vbarPolicy(ScrollPane.ScrollBarPolicy.NEVER).build(),
-                ScrollPaneBuilder.create().content(scrollPaneContent()).hbarPolicy(ScrollPane.ScrollBarPolicy.NEVER).build()
-                );
+                scrollPaneVbar,
+                scrollPaneHbar);
+        Separator sep1 = new Separator();
+        sep1.setPrefWidth(100);
+        Separator sep2 = new Separator(Orientation.VERTICAL);
+        sep2.setPrefHeight(50);
         newDetailedSection(
-                new String[] {"Separator: ", "horizontal", "vertical"},
-                SeparatorBuilder.create().prefWidth(100).build(),
-                SeparatorBuilder.create().orientation(Orientation.VERTICAL).prefHeight(50).build()
-                );
+                new String[]{"Separator: ", "horizontal", "vertical"},
+                sep1, sep2);
+        ProgressBar pb1 = new ProgressBar(0.6);
+        pb1.setPrefWidth(200);
+        ProgressBar pb2 = new ProgressBar(0.2);
+        pb2.setPrefWidth(200);
+        ProgressBar pb3 = new ProgressBar(-1);
+        pb3.setPrefWidth(200);
         newDetailedSection(
                 new String[] {"ProgressBar: ", "normal", "disabled", "indeterminate"},
-                ProgressBarBuilder.create().progress(0.6).prefWidth(200).build(),
-                withState(ProgressBarBuilder.create().progress(0.2).prefWidth(200).build(), "disabled"),
-                ProgressBarBuilder.create().progress(-1).prefWidth(200).build()
-                );
+                pb1,
+                withState(pb2, "disabled"),
+                pb3);
         newDetailedSection(
                 new String[] {"ProgressIndicator: ", "normal 0%", "normal 60%", "normal 100%", "disabled"},
                 new ProgressIndicator(0),
                 new ProgressIndicator(0.6),
                 new ProgressIndicator(1),
-                withState(new ProgressIndicator(0.5), "disabled")
-                );
+                withState(new ProgressIndicator(0.5), "disabled"));
+        ProgressIndicator pi1 = new ProgressIndicator(-1);
+        pi1.setMaxWidth(USE_PREF_SIZE);
+        pi1.setMaxHeight(USE_PREF_SIZE);
+        ProgressIndicator pi2 = new ProgressIndicator(-1);
+        pi2.setPrefWidth(30);
+        pi2.setPrefHeight(30);
+        ProgressIndicator pi3 = new ProgressIndicator(-1);
+        pi3.setPrefWidth(60);
+        pi3.setPrefHeight(60);
+        ProgressIndicator pi4 = new ProgressIndicator(-1);
+        pi4.setMaxWidth(USE_PREF_SIZE);
+        pi4.setMaxHeight(USE_PREF_SIZE);
+        pi4.setDisable(true);
         newDetailedSection(
-                new String[] {"ProgressIndicator\nIndeterminate: ", "normal", "small", "large", "disabled"},
-                ProgressIndicatorBuilder.create().progress(-1).maxWidth(USE_PREF_SIZE).maxHeight(USE_PREF_SIZE).build(),
-                ProgressIndicatorBuilder.create().progress(-1).prefWidth(30).prefHeight(30).build(),
-                ProgressIndicatorBuilder.create().progress(-1).prefWidth(60).prefHeight(60).build(),
-                ProgressIndicatorBuilder.create().progress(-1).maxWidth(USE_PREF_SIZE).maxHeight(USE_PREF_SIZE).disable(true).build()
-                );
+                new String[]{"ProgressIndicator\nIndeterminate: ", "normal", "small", "large", "disabled"},
+                pi1, pi2, pi3, pi4);
+        TextField textF = new TextField();
+        textF.setPromptText("Prompt Text");
         newSection(
                 "TextField:",
                 new TextField("TextField"),
-                TextFieldBuilder.create().promptText("Prompt Text").build(),
+                textF,
                 withState(new TextField("Focused"), "focused"),
-                withState(new TextField("Disabled"), "disabled")
-        );
+                withState(new TextField("Disabled"), "disabled"));
+        PasswordField pField1 = new PasswordField();
+        pField1.setText("Password");
+        PasswordField pField2 = new PasswordField();
+        pField2.setPromptText("Prompt Text");
+        PasswordField pField3 = new PasswordField();
+        pField3.setText("Password");
+        PasswordField pField4 = new PasswordField();
+        pField4.setText("Password");
         newSection(
                 "PasswordField:",
-                PasswordFieldBuilder.create().text("Password").build(),
-                PasswordFieldBuilder.create().promptText("Prompt Text").build(),
-                withState(PasswordFieldBuilder.create().text("Password").build(), "focused"),
-                withState(PasswordFieldBuilder.create().text("Password").build(), "disabled")
-        );
+                pField1,
+                pField2,
+                withState(pField3, "focused"),
+                withState(pField4, "disabled"));
+        TextArea tArea1 = new TextArea("TextArea");
+        tArea1.setPrefColumnCount(10);
+        tArea1.setPrefRowCount(2);
+        TextArea tArea2 = new TextArea("Many Lines of\nText.\n#3\n#4\n#5\n#6\n#7\n#8\n#9\n#10");
+        tArea2.setPrefColumnCount(10);
+        tArea2.setPrefRowCount(5);
+        TextArea tArea3 = new TextArea("Many Lines of\nText.\n#3\n#4\n#5\n#6\n#7\n#8\n#9\n#10");
+        tArea3.setPrefColumnCount(6);
+        tArea3.setPrefRowCount(5);
+        TextArea tArea4 = new TextArea("Prompt Text");
+        tArea4.setPrefColumnCount(10);
+        tArea4.setPrefRowCount(2);
+
+        TextArea tArea5 = new TextArea("Focused");
+        tArea5.setPrefColumnCount(7);
+        tArea5.setPrefRowCount(2);
+        TextArea tArea6 = new TextArea("Disabled");
+        tArea6.setPrefColumnCount(8);
+        tArea6.setPrefRowCount(2);
         newSection(
                 "TextArea:",
-                TextAreaBuilder.create().text("TextArea").prefColumnCount(10).prefRowCount(2).build(),
-                TextAreaBuilder.create().text("Many Lines of\nText.\n#3\n#4\n#5\n#6\n#7\n#8\n#9\n#10").prefColumnCount(10).prefRowCount(5).build(),
-                TextAreaBuilder.create().text("Many Lines of\nText.\n#3\n#4\n#5\n#6\n#7\n#8\n#9\n#10").prefColumnCount(6).prefRowCount(5).build(),
-                TextAreaBuilder.create().promptText("Prompt Text").prefColumnCount(10).prefRowCount(2).build(),
-                withState(TextAreaBuilder.create().text("Focused").prefColumnCount(7).prefRowCount(2).build(), "focused"),
-                withState(TextAreaBuilder.create().text("Disabled").prefColumnCount(8).prefRowCount(2).build(), "disabled")
-        );
+                tArea1, tArea2, tArea3, tArea4,
+                withState(tArea5, "focused"),
+                withState(tArea6, "disabled"));
         newSection(
                 "HTMLEditor:",
                 new HTMLEditor() {{
@@ -543,14 +763,16 @@
                 createTabPane(4, 250, 250, null, true, false, Side.RIGHT),
                 withState(createTabPane(5, 200, 250, "Tab Disabled &\nMany Tabs", true, true, Side.RIGHT), null, ".tab", "disabled"),
                 withState(createTabPane(5, 200, 250, "Disabled", true, false, Side.RIGHT), "disabled")
-                );
+        );
+        TitledPane tPane = new TitledPane("Not Collapsible", new Label("Content\nLine2."));
+        tPane.setCollapsible(false);
         newDetailedSection(
-                new String[] { "TitledPane:", "normal", "not collapsible", "hover", "focused", "disabled" },
-                TitledPaneBuilder.create().text("Title").content(new Label("Content\nLine2.")).build(),
-                TitledPaneBuilder.create().text("Not Collapsible").content(new Label("Content\nLine2.")).collapsible(false).build(),
-                withState(TitledPaneBuilder.create().text("Title").content(new Label("Content\nLine2.")).build(), "hover"),
-                withState(TitledPaneBuilder.create().text("Title").content(new Label("Content\nLine2.")).build(), "focused"),
-                withState(TitledPaneBuilder.create().text("Title").content(new Label("Content\nLine2.")).build(), "disabled")
+                new String[]{"TitledPane:", "normal", "not collapsible", "hover", "focused", "disabled"},
+                new TitledPane("Title", new Label("Content\nLine2.")),
+                tPane,
+                withState(new TitledPane("Title", new Label("Content\nLine2.")), "hover"),
+                withState(new TitledPane("Title", new Label("Content\nLine2.")), "focused"),
+                withState(new TitledPane("Title", new Label("Content\nLine2.")), "disabled")
         );
         newDetailedSection(
                 new String[] {"Accordion:", "normal", "hover", "focused", "disabled"},
@@ -639,25 +861,40 @@
                 createTreeTableView(550, true),
                 withState(createTreeTableView(200, true), "focused")
                 );
+        ListView<String> lv = new ListView<>();
+        lv.setPrefWidth(150);
+        lv.setPrefHeight(100);
+        TableView tv = new TableView();
+        tv.setPrefWidth(150);
+        tv.setPrefHeight(100);
+        TreeView treev = new TreeView();
+        treev.setPrefWidth(150);
+        treev.setPrefHeight(100);
         newDetailedSection(
-                new String[] {"Empty:", "ListView", "TableView", "TreeView", "TreeTableView"},
-                ListViewBuilder.<String>create().prefWidth(150).prefHeight(100).build(),
-                TableViewBuilder.create().prefWidth(150).prefHeight(100).build(),
-                TreeViewBuilder.create().prefWidth(150).prefHeight(100).build(),
+                new String[]{"Empty:", "ListView", "TableView", "TreeView", "TreeTableView"},
+                lv, tv, treev,
                 new TreeTableView() {{
                     setPrefSize(150, 100);
-                }}
-                );
+                }});
+        Label label1 = new Label("This is a simple Tooltip.");
+        label1.getStyleClass().add("tooltip");
+        Label label2 = new Label("This is a simple Tooltip\nwith graphic.", createGraphic());
+        label2.getStyleClass().add("tooltip");
+        VBox vb = new VBox(4);
+        vb.setFillWidth(true);
+        Button button1 = new Button("Hover over me");
+        button1.setTooltip(new Tooltip("This is a simple Tooltip."));
+        Button button2 = new Button("me too");
+        button2.setTooltip(new Tooltip("This is a simple Tooltip\nwith more than one line."));
+        Button button3 = new Button("or me");
+        Tooltip tip = new Tooltip("This is a simple Tooltip\nwith graphic.");
+        tip.setGraphic(createGraphic());
+        button3.setTooltip(tip);
+        vb.getChildren().addAll(button1, button2, button3);
+
         newDetailedSection(
-                new String[] {"ToolTip:","inline","inline + graphic", "popup"},
-                LabelBuilder.create().text("This is a simple Tooltip.").styleClass("tooltip").build(),
-                LabelBuilder.create().text("This is a simple Tooltip\nwith graphic.").graphic(createGraphic()).styleClass("tooltip").build(),
-                VBoxBuilder.create().fillWidth(true).spacing(4).children(
-                    ButtonBuilder.create().text("Hover over me").tooltip(new Tooltip("This is a simple Tooltip.")).build(),
-                    ButtonBuilder.create().text("me too").tooltip(new Tooltip("This is a simple Tooltip\nwith more than one line.")).build(),
-                    ButtonBuilder.create().text("or me").tooltip(TooltipBuilder.create().text("This is a simple Tooltip\nwith graphic.").graphic(createGraphic()).build()).build()
-                ).build()
-                );
+                new String[]{"ToolTip:", "inline", "inline + graphic", "popup"},
+                label1, label2, vb);
         newSection(
                 "MenuBar & ContextMenu:",
                 createMenuBar(),
--- a/apps/samples/Modena/src/main/java/modena/SamplePageHelpers.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/Modena/src/main/java/modena/SamplePageHelpers.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -42,29 +42,27 @@
 import javafx.geometry.Orientation;
 import javafx.geometry.Pos;
 import javafx.geometry.Side;
-import javafx.scene.GroupBuilder;
+import javafx.scene.Group;
 import javafx.scene.Node;
 import javafx.scene.control.Accordion;
 import javafx.scene.control.Button;
-import javafx.scene.control.ButtonBuilder;
 import javafx.scene.control.CheckMenuItem;
-import javafx.scene.control.CheckMenuItemBuilder;
 import javafx.scene.control.ContextMenu;
 import javafx.scene.control.Label;
 import javafx.scene.control.ListView;
 import javafx.scene.control.Menu;
 import javafx.scene.control.MenuBar;
 import javafx.scene.control.MenuItem;
+import javafx.scene.control.RadioMenuItem;
 import javafx.scene.control.Pagination;
-import javafx.scene.control.RadioMenuItemBuilder;
 import javafx.scene.control.SelectionMode;
 import javafx.scene.control.Separator;
 import javafx.scene.control.SeparatorMenuItem;
 import javafx.scene.control.SplitPane;
-import javafx.scene.control.TabBuilder;
 import javafx.scene.control.TabPane;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TitledPane;
 import javafx.scene.control.TextField;
-import javafx.scene.control.TitledPaneBuilder;
 import javafx.scene.control.ToolBar;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
@@ -72,10 +70,9 @@
 import javafx.scene.input.KeyCombination;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.StackPane;
-import javafx.scene.layout.StackPaneBuilder;
 import javafx.scene.paint.Color;
-import javafx.scene.shape.LineBuilder;
-import javafx.scene.shape.RectangleBuilder;
+import javafx.scene.shape.Line;
+import javafx.scene.shape.Rectangle;
 
 /**
  * Helper static methods for Sample Page
@@ -123,11 +120,16 @@
     }
     
     static Node scrollPaneContent() {
-        return GroupBuilder.create().children(
-                RectangleBuilder.create().width(200).height(200).fill(Color.PALETURQUOISE).build(),
-                LineBuilder.create().endX(200).endY(200).stroke(Color.DODGERBLUE).build(),
-                LineBuilder.create().startX(200).endX(0).endY(200).stroke(Color.DODGERBLUE).build()
-            ).build();
+        Line l1 = new Line();
+        l1.setEndX(200);
+        l1.setEndY(200);
+        l1.setStroke(Color.DODGERBLUE);
+        Line l2 = new Line();
+        l2.setStartX(200);
+        l2.setStartY(0);
+        l2.setEndY(200);
+        l2.setStroke(Color.DODGERBLUE);
+        return new Group(new Rectangle(200, 200, Color.PALETURQUOISE), l1, l2);
     }
     
     static Node createTabPane(int numOfTabs, int prefWidth, int prefHeight, String firstTabText, boolean floating, boolean disableFirst, Side side) {
@@ -135,13 +137,10 @@
         tabPane.setSide(side);
         if (floating) tabPane.getStyleClass().add("floating");
         for (int i=1; i<=numOfTabs; i++) {
-            tabPane.getTabs().add(
-                TabBuilder.create()
-                    .text("Tab "+i)
-                    .disable(i==1 && disableFirst)
-                    .content(new Label((i==1 && firstTabText!=null)? firstTabText :"Tab "+i+" Content"))
-                    .build()
-            );
+            Tab tab = new Tab("Tab "+i);
+            tab.setDisable(i==1 && disableFirst);
+            tab.setContent(new Label((i==1 && firstTabText!=null)? firstTabText :"Tab "+i+" Content"));
+            tabPane.getTabs().add(tab);
         }
         if (disableFirst) tabPane.getSelectionModel().select(1);
         tabPane.setPrefWidth(prefWidth);
@@ -150,8 +149,9 @@
     }
     
     static Node wrapBdr(Node node) {
-        return StackPaneBuilder.create().children(node)
-                .style("-fx-border-color: black; -fx-border-width: 3;").build();
+        StackPane sp = new StackPane(node);
+        sp.setStyle("-fx-border-color: black; -fx-border-width: 3;");
+        return sp;
     }
     
     static ToolBar createToolBar(Side side, boolean overFlow, boolean disabled) {
@@ -190,9 +190,9 @@
     static Accordion createAccordion() {
         Accordion accordian = new Accordion();
         accordian.getPanes().addAll(
-            TitledPaneBuilder.create().text("Title 1").content(new Label("Content\nLine2.")).build(),
-            TitledPaneBuilder.create().text("Title 2").content(new Label("Content\nLine2.")).build(),
-            TitledPaneBuilder.create().text("Title 3").content(new Label("Content\nLine2.")).build()
+                new TitledPane("Title 1", new Label("Content\nLine2.")),
+                new TitledPane("Title 2", new Label("Content\nLine2.")),
+                new TitledPane("Title 3", new Label("Content\nLine2."))
         );
         return accordian;
     }
@@ -321,11 +321,16 @@
         menuItems.add(menu13);
         menuItems.add(menu16);
         menuItems.add(new SeparatorMenuItem());
-        menuItems.add(CheckMenuItemBuilder.create().text("Check").build());
-        menuItems.add(CheckMenuItemBuilder.create().text("Check Selected").selected(true).build());
+
+        menuItems.add(new CheckMenuItem("Check"));
+        CheckMenuItem checkMenuItem = new CheckMenuItem("Check Selected");
+        checkMenuItem.setSelected(true);
+        menuItems.add(checkMenuItem);
         menuItems.add(new SeparatorMenuItem());
-        menuItems.add(RadioMenuItemBuilder.create().text("Radio").build());
-        menuItems.add(RadioMenuItemBuilder.create().text("Radio Selected").selected(true).build());
+        menuItems.add(new RadioMenuItem("Radio"));
+        RadioMenuItem radioMenuItem = new RadioMenuItem("Radio Selected");
+        radioMenuItem.setSelected(true);
+        menuItems.add(radioMenuItem);
         menuItems.add(new SeparatorMenuItem());
         menuItems.add(menu15);
 
@@ -360,7 +365,7 @@
         StackPane sp = new StackPane();
         sp.setStyle("-fx-base: rgba("+grey+","+grey+","+grey+",1); -fx-background-color: -fx-background;");
         sp.setPadding(new Insets(8));
-        sp.getChildren().add(ButtonBuilder.create().text(percentage+"%").build());
+        sp.getChildren().add(new Button(percentage+"%"));
         return sp;
     }
 }
--- a/apps/samples/samples_readme.txt	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/samples/samples_readme.txt	Mon Mar 09 11:07:15 2015 -0700
@@ -138,4 +138,4 @@
 
 
 --------------------------------------------------------------------
-Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorPlatform.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/JavaLanguage.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/JavaLanguage.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/gradientpicker/GradientPickerStop.java	Mon Mar 09 11:07:15 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -34,7 +34,6 @@
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker.Mode;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPickerController;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.colorpicker.ColorPicker;
-import com.sun.javafx.Utils;
 
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
@@ -88,6 +87,15 @@
     private final double edgeMargin = 2.0;
     private final GradientPicker gradientPicker;
 
+    /*
+     * Clamp value to be between min and max.
+     */
+    private static double clamp(double min, double value, double max) {
+        if (value < min) return min;
+        if (value > max) return max;
+        return value;
+    }
+
     public GradientPickerStop(GradientPicker ge, double mini, double maxi, double val, Color c) {
         gradientPicker = ge;
         min = mini;
@@ -98,7 +106,7 @@
     }
 
     public void setOffset(double val) {
-        offset = Utils.clamp(min, val, max);
+        offset = clamp(min, val, max);
         valueToPixels();
     }
 
@@ -224,7 +232,7 @@
         double dragValue = event.getSceneX() - startDragX;
         double deltaX = origX + dragValue;
         double trackWidth = getParent().getBoundsInLocal().getWidth();
-        final Double newX = Utils.clamp(edgeMargin, deltaX, (trackWidth - (getWidth() + edgeMargin)));
+        final Double newX = clamp(edgeMargin, deltaX, (trackWidth - (getWidth() + edgeMargin)));
         setLayoutX(newX);
 //        showHUD();
         pixelsToValue();
@@ -246,7 +254,7 @@
     }
 
     private void valueToPixels() {
-        double stopValue = Utils.clamp(min, offset, max);
+        double stopValue = clamp(min, offset, max);
         double availablePixels = getParent().getLayoutBounds().getWidth() - (thumbWidth + edgeMargin);
         double range = max - min;
         double pixelPosition = ((availablePixels / range) * stopValue);
--- a/apps/scenebuilder/samples/samples_readme.txt	Sat Mar 07 18:20:31 2015 -0800
+++ b/apps/scenebuilder/samples/samples_readme.txt	Mon Mar 09 11:07:15 2015 -0700
@@ -189,5 +189,5 @@
 
 
 -------------------------------------------------------------------- 
-Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/build.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="ColorCube" default="default" basedir=".">
+    <description>Builds, tests, and runs the project ColorCube.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties
+      -post-init:                called after initialization of project properties
+      -pre-compile:              called before javac compilation
+      -post-compile:             called after javac compilation
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-jar:                  called before JAR building
+      -post-jar:                 called after JAR building
+      -post-clean:               called after cleaning build products
+
+    (Targets beginning with '-' are not intended to be called on their own.)
+
+    Example of inserting an obfuscator after compilation could look like this:
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Another way to customize the build is by overriding existing main targets.
+    The targets of interest are: 
+
+      -init-macrodef-javac:     defines macro for javac compilation
+      -init-macrodef-junit:     defines macro for junit execution
+      -init-macrodef-debug:     defines macro for class debugging
+      -init-macrodef-java:      defines macro for class execution
+      -do-jar:                  JAR building
+      run:                      execution of project 
+      -javadoc-build:           Javadoc generation
+      test-report:              JUnit report generation
+
+    An example of overriding the target for project execution could look like this:
+
+        <target name="run" depends="ColorCube-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that the overridden target depends on the jar target and not only on 
+    the compile target as the regular run target does. Again, for a list of available 
+    properties which you can use, check the target you are overriding in the
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/manifest.mf	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/nbproject/build-impl.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,1413 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+  - initialization
+  - compilation
+  - jar
+  - execution
+  - debugging
+  - javadoc
+  - test compilation
+  - test execution
+  - test debugging
+  - applet
+  - cleanup
+
+        -->
+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="ColorCube-impl">
+    <fail message="Please build using Ant 1.8.0 or higher.">
+        <condition>
+            <not>
+                <antversion atleast="1.8.0"/>
+            </not>
+        </condition>
+    </fail>
+    <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+    <!-- 
+                ======================
+                INITIALIZATION SECTION 
+                ======================
+            -->
+    <target name="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init" name="-init-private">
+        <property file="nbproject/private/config.properties"/>
+        <property file="nbproject/private/configs/${config}.properties"/>
+        <property file="nbproject/private/private.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private" name="-init-user">
+        <property file="${user.properties.file}"/>
+        <!-- The two properties below are usually overridden -->
+        <!-- by the active platform. Just a fallback. -->
+        <property name="default.javac.source" value="1.4"/>
+        <property name="default.javac.target" value="1.4"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+        <property file="nbproject/configs/${config}.properties"/>
+        <property file="nbproject/project.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <property name="platform.java" value="${java.home}/bin/java"/>
+        <available file="${manifest.file}" property="manifest.available"/>
+        <condition property="splashscreen.available">
+            <and>
+                <not>
+                    <equals arg1="${application.splash}" arg2="" trim="true"/>
+                </not>
+                <available file="${application.splash}"/>
+            </and>
+        </condition>
+        <condition property="main.class.available">
+            <and>
+                <isset property="main.class"/>
+                <not>
+                    <equals arg1="${main.class}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition property="profile.available">
+            <and>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
+            </and>
+        </condition>
+        <condition property="do.archive">
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
+        </condition>
+        <condition property="do.mkdist">
+            <and>
+                <isset property="do.archive"/>
+                <isset property="libs.CopyLibs.classpath"/>
+                <not>
+                    <istrue value="${mkdist.disabled}"/>
+                </not>
+            </and>
+        </condition>
+        <condition property="do.archive+manifest.available">
+            <and>
+                <isset property="manifest.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+main.class.available">
+            <and>
+                <isset property="main.class.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+splashscreen.available">
+            <and>
+                <isset property="splashscreen.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+profile.available">
+            <and>
+                <isset property="profile.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="have.tests">
+            <or>
+                <available file="${test.src.dir}"/>
+            </or>
+        </condition>
+        <condition property="have.sources">
+            <or>
+                <available file="${src.dir}"/>
+            </or>
+        </condition>
+        <condition property="netbeans.home+have.tests">
+            <and>
+                <isset property="netbeans.home"/>
+                <isset property="have.tests"/>
+            </and>
+        </condition>
+        <condition property="no.javadoc.preview">
+            <and>
+                <isset property="javadoc.preview"/>
+                <isfalse value="${javadoc.preview}"/>
+            </and>
+        </condition>
+        <property name="run.jvmargs" value=""/>
+        <property name="run.jvmargs.ide" value=""/>
+        <property name="javac.compilerargs" value=""/>
+        <property name="work.dir" value="${basedir}"/>
+        <condition property="no.deps">
+            <and>
+                <istrue value="${no.dependencies}"/>
+            </and>
+        </condition>
+        <property name="javac.debug" value="true"/>
+        <property name="javadoc.preview" value="true"/>
+        <property name="application.args" value=""/>
+        <property name="source.encoding" value="${file.encoding}"/>
+        <property name="runtime.encoding" value="${source.encoding}"/>
+        <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+            <and>
+                <isset property="javadoc.encoding"/>
+                <not>
+                    <equals arg1="${javadoc.encoding}" arg2=""/>
+                </not>
+            </and>
+        </condition>
+        <property name="javadoc.encoding.used" value="${source.encoding}"/>
+        <property name="includes" value="**"/>
+        <property name="excludes" value=""/>
+        <property name="do.depend" value="false"/>
+        <condition property="do.depend.true">
+            <istrue value="${do.depend}"/>
+        </condition>
+        <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+        <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
+        </condition>
+        <condition else="false" property="jdkBug6558476">
+            <and>
+                <matches pattern="1\.[56]" string="${java.specification.version}"/>
+                <not>
+                    <os family="unix"/>
+                </not>
+            </and>
+        </condition>
+        <property name="javac.fork" value="${jdkBug6558476}"/>
+        <property name="jar.index" value="false"/>
+        <property name="jar.index.metainf" value="${jar.index}"/>
+        <property name="copylibs.rebase" value="true"/>
+        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
+        <condition property="junit.available">
+            <or>
+                <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
+                <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
+            </or>
+        </condition>
+        <condition property="testng.available">
+            <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
+        </condition>
+        <condition property="junit+testng.available">
+            <and>
+                <istrue value="${junit.available}"/>
+                <istrue value="${testng.available}"/>
+            </and>
+        </condition>
+        <condition else="testng" property="testng.mode" value="mixed">
+            <istrue value="${junit+testng.available}"/>
+        </condition>
+        <condition else="" property="testng.debug.mode" value="-mixed">
+            <istrue value="${junit+testng.available}"/>
+        </condition>
+    </target>
+    <target name="-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+        <fail unless="src.dir">Must set src.dir</fail>
+        <fail unless="test.src.dir">Must set test.src.dir</fail>
+        <fail unless="build.dir">Must set build.dir</fail>
+        <fail unless="dist.dir">Must set dist.dir</fail>
+        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+        <fail unless="dist.jar">Must set dist.jar</fail>
+    </target>
+    <target name="-init-macrodef-property">
+        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${@{value}}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="sourcepath"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <mkdir dir="@{apgeneratedsrcdir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <compilerarg value="-processorpath"/>
+                    <compilerarg path="@{processorpath}:${empty.dir}"/>
+                    <compilerarg line="${ap.processors.internal}"/>
+                    <compilerarg line="${annotation.processing.processor.options}"/>
+                    <compilerarg value="-s"/>
+                    <compilerarg path="@{apgeneratedsrcdir}"/>
+                    <compilerarg line="${ap.proc.none.internal}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="sourcepath"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+        <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <sequential>
+                <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </depend>
+            </sequential>
+        </macrodef>
+        <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <sequential>
+                <fail unless="javac.includes">Must set javac.includes</fail>
+                <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+                    <path>
+                        <filelist dir="@{destdir}" files="${javac.includes}"/>
+                    </path>
+                    <globmapper from="*.java" to="*.class"/>
+                </pathconvert>
+                <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+                <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+                <delete>
+                    <files includesfile="${javac.includesfile.binary}"/>
+                </delete>
+                <delete>
+                    <fileset file="${javac.includesfile.binary}"/>
+                </delete>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${junit.available}" name="-init-macrodef-junit-init">
+        <condition else="false" property="nb.junit.batch" value="true">
+            <and>
+                <istrue value="${junit.available}"/>
+                <not>
+                    <isset property="test.method"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="false" property="nb.junit.single" value="true">
+            <and>
+                <istrue value="${junit.available}"/>
+                <isset property="test.method"/>
+            </and>
+        </condition>
+    </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
+    <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="@{testincludes}"/>
+                        </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
+                    </batchtest>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
+    <target if="${testng.available}" name="-init-macrodef-testng">
+        <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
+                    <isset property="test.method"/>
+                </condition>
+                <union id="test.set">
+                    <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+                        <filename name="@{testincludes}"/>
+                    </fileset>
+                </union>
+                <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
+                <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="ColorCube" testname="TestNG tests" workingDir="${work.dir}">
+                    <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
+                    <propertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </propertyset>
+                    <customize/>
+                </testng>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-test-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <echo>No tests executed.</echo>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:testng>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
+        <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <sequential>
+                <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize>
+                        <classpath>
+                            <path path="${run.test.classpath}"/>
+                        </classpath>
+                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                        <jvmarg line="${run.jvmargs}"/>
+                        <jvmarg line="${run.jvmargs.ide}"/>
+                    </customize>
+                </j2seproject3:test-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
+        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="@{testincludes}"/>
+                        </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
+                    </batchtest>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+        <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:junit-debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${testng.available}" name="-init-macrodef-testng-debug">
+        <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <element name="customize2" optional="true"/>
+            <sequential>
+                <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
+                    <isset property="test.method"/>
+                </condition>
+                <condition else="-suitename ColorCube -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
+                    <matches pattern=".*\.xml" string="@{testClass}"/>
+                </condition>
+                <delete dir="${build.test.results.dir}" quiet="true"/>
+                <mkdir dir="${build.test.results.dir}"/>
+                <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
+                    <customize>
+                        <customize2/>
+                        <jvmarg value="-ea"/>
+                        <arg line="${testng.debug.mode}"/>
+                        <arg line="-d ${build.test.results.dir}"/>
+                        <arg line="-listener org.testng.reporters.VerboseReporter"/>
+                        <arg line="${testng.cmd.args}"/>
+                    </customize>
+                </j2seproject3:debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
+        <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <element implicit="true" name="customize2" optional="true"/>
+            <sequential>
+                <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
+                    <customize2/>
+                </j2seproject3:testng-debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
+        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <sequential>
+                <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize>
+                        <classpath>
+                            <path path="${run.test.classpath}"/>
+                        </classpath>
+                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                        <jvmarg line="${run.jvmargs}"/>
+                        <jvmarg line="${run.jvmargs.ide}"/>
+                    </customize>
+                </j2seproject3:test-debug-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
+        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <sequential>
+                <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
+                    <customize2>
+                        <syspropertyset>
+                            <propertyref prefix="test-sys-prop."/>
+                            <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                        </syspropertyset>
+                    </customize2>
+                </j2seproject3:testng-debug-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
+    <!--
+                pre NB7.2 profiling section; consider it deprecated
+            -->
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
+    <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
+        <macrodef name="resolve">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${env.@{value}}"/>
+            </sequential>
+        </macrodef>
+        <macrodef name="profile">
+            <attribute default="${main.class}" name="classname"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property environment="env"/>
+                <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
+                <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg value="${profiler.info.jvmargs.agent}"/>
+                    <jvmarg line="${profiler.info.jvmargs}"/>
+                    <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+                    <arg line="${application.args}"/>
+                    <classpath>
+                        <path path="${run.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
+        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+    </target>
+    <!--
+                end of pre NB7.2 profiling section
+            -->
+    <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${main.class}" name="name"/>
+            <attribute default="${debug.classpath}" name="classpath"/>
+            <attribute default="" name="stopclassname"/>
+            <sequential>
+                <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </nbjpdastart>
+            </sequential>
+        </macrodef>
+        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${build.classes.dir}" name="dir"/>
+            <sequential>
+                <nbjpdareload>
+                    <fileset dir="@{dir}" includes="${fix.classes}">
+                        <include name="${fix.includes}*.class"/>
+                    </fileset>
+                </nbjpdareload>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-debug-args">
+        <property name="version-output" value="java version &quot;${ant.java.version}"/>
+        <condition property="have-jdk-older-than-1.4">
+            <or>
+                <contains string="${version-output}" substring="java version &quot;1.0"/>
+                <contains string="${version-output}" substring="java version &quot;1.1"/>
+                <contains string="${version-output}" substring="java version &quot;1.2"/>
+                <contains string="${version-output}" substring="java version &quot;1.3"/>
+            </or>
+        </condition>
+        <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+            <istrue value="${have-jdk-older-than-1.4}"/>
+        </condition>
+        <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+            <os family="windows"/>
+        </condition>
+        <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+            <isset property="debug.transport"/>
+        </condition>
+    </target>
+    <target depends="-init-debug-args" name="-init-macrodef-debug">
+        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${debug.classpath}" name="classpath"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" dir="${work.dir}" fork="true">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                    <jvmarg line="${run.jvmargs.ide}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-java">
+        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${run.classpath}" name="classpath"/>
+            <attribute default="jvm" name="jvm"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" dir="${work.dir}" fork="true">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                    <jvmarg line="${run.jvmargs.ide}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-copylibs">
+        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${manifest.file}" name="manifest"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+                <pathconvert property="run.classpath.without.build.classes.dir">
+                    <path path="${run.classpath}"/>
+                    <map from="${build.classes.dir.resolved}" to=""/>
+                </pathconvert>
+                <pathconvert pathsep=" " property="jar.classpath">
+                    <path path="${run.classpath.without.build.classes.dir}"/>
+                    <chainedmapper>
+                        <flattenmapper/>
+                        <filtermapper>
+                            <replacestring from=" " to="%20"/>
+                        </filtermapper>
+                        <globmapper from="*" to="lib/*"/>
+                    </chainedmapper>
+                </pathconvert>
+                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+                    <manifest>
+                        <attribute name="Class-Path" value="${jar.classpath}"/>
+                        <customize/>
+                    </manifest>
+                </copylibs>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-presetdef-jar">
+        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+            </jar>
+        </presetdef>
+    </target>
+    <target name="-init-ap-cmdline-properties">
+        <property name="annotation.processing.enabled" value="true"/>
+        <property name="annotation.processing.processors.list" value=""/>
+        <property name="annotation.processing.processor.options" value=""/>
+        <property name="annotation.processing.run.all.processors" value="true"/>
+        <property name="javac.processorpath" value="${javac.classpath}"/>
+        <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+        <condition property="ap.supported.internal" value="true">
+            <not>
+                <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+            </not>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+        <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+            <isfalse value="${annotation.processing.run.all.processors}"/>
+        </condition>
+        <condition else="" property="ap.proc.none.internal" value="-proc:none">
+            <isfalse value="${annotation.processing.enabled}"/>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+        <property name="ap.cmd.line.internal" value=""/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
+    <!--
+                ===================
+                COMPILATION SECTION
+                ===================
+            -->
+    <target name="-deps-jar-init" unless="built-jar.properties">
+        <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+        <delete file="${built-jar.properties}" quiet="true"/>
+    </target>
+    <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+        <echo level="warn" message="Cycle detected: ColorCube was already built"/>
+    </target>
+    <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+        <mkdir dir="${build.dir}"/>
+        <touch file="${built-jar.properties}" verbose="false"/>
+        <property file="${built-jar.properties}" prefix="already.built.jar."/>
+        <antcall target="-warn-already-built-jar"/>
+        <propertyfile file="${built-jar.properties}">
+            <entry key="${basedir}" value=""/>
+        </propertyfile>
+    </target>
+    <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+    <target depends="init" name="-check-automatic-build">
+        <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+    </target>
+    <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+        <antcall target="clean"/>
+    </target>
+    <target depends="init,deps-jar" name="-pre-pre-compile">
+        <mkdir dir="${build.classes.dir}"/>
+    </target>
+    <target name="-pre-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="do.depend.true" name="-compile-depend">
+        <pathconvert property="build.generated.subdirs">
+            <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="*"/>
+            </dirset>
+        </pathconvert>
+        <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
+        <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+        <copy todir="${build.classes.dir}">
+            <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target if="has.persistence.xml" name="-copy-persistence-xml">
+        <mkdir dir="${build.classes.dir}/META-INF"/>
+        <copy todir="${build.classes.dir}/META-INF">
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
+        </copy>
+    </target>
+    <target name="-post-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+    <target name="-pre-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <j2seproject3:force-recompile/>
+        <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
+    </target>
+    <target name="-post-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+    <!--
+                ====================
+                JAR BUILDING SECTION
+                ====================
+            -->
+    <target depends="init" name="-pre-pre-jar">
+        <dirname file="${dist.jar}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+    </target>
+    <target name="-pre-jar">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
+        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+        <touch file="${tmp.manifest.file}" verbose="false"/>
+    </target>
+    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
+        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+        <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Main-Class" value="${main.class}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Profile" value="${javac.profile}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
+        <basename file="${application.splash}" property="splashscreen.basename"/>
+        <mkdir dir="${build.classes.dir}/META-INF"/>
+        <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
+        </manifest>
+    </target>
+    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
+        <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
+        <echo level="info">To run this application from the command line without Ant, try:</echo>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <echo level="info">java -jar "${dist.jar.resolved}"</echo>
+    </target>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
+            <isset property="main.class.available"/>
+        </condition>
+        <condition else="debug" property="jar.usage.level" value="info">
+            <isset property="main.class.available"/>
+        </condition>
+        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+    </target>
+    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
+        <delete>
+            <fileset file="${tmp.manifest.file}"/>
+        </delete>
+    </target>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
+    <target name="-post-jar">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
+    <!--
+                =================
+                EXECUTION SECTION
+                =================
+            -->
+    <target depends="init,compile" description="Run a main class." name="run">
+        <j2seproject1:java>
+            <customize>
+                <arg line="${application.args}"/>
+            </customize>
+        </j2seproject1:java>
+    </target>
+    <target name="-do-not-recompile">
+        <property name="javac.includes.binary" value=""/>
+    </target>
+    <target depends="init,compile-single" name="run-single">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <j2seproject1:java classname="${run.class}"/>
+    </target>
+    <target depends="init,compile-test-single" name="run-test-with-main">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+    </target>
+    <!--
+                =================
+                DEBUGGING SECTION
+                =================
+            -->
+    <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+        <j2seproject1:nbjpdastart name="${debug.class}"/>
+    </target>
+    <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+        <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+    </target>
+    <target depends="init,compile" name="-debug-start-debuggee">
+        <j2seproject3:debug>
+            <customize>
+                <arg line="${application.args}"/>
+            </customize>
+        </j2seproject3:debug>
+    </target>
+    <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+    <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+        <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+    </target>
+    <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+    <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+        <j2seproject3:debug classname="${debug.class}"/>
+    </target>
+    <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+    <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+        <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+    </target>
+    <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+    <target depends="init" name="-pre-debug-fix">
+        <fail unless="fix.includes">Must set fix.includes</fail>
+        <property name="javac.includes" value="${fix.includes}.java"/>
+    </target>
+    <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+        <j2seproject1:nbjpdareload/>
+    </target>
+    <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+    <!--
+                =================
+                PROFILING SECTION
+                =================
+            -->
+    <!--
+                pre NB7.2 profiler integration
+            -->
+    <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
+        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <profile/>
+    </target>
+    <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
+        <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
+        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <profile classname="${profile.class}"/>
+    </target>
+    <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
+        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <profile classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </profile>
+    </target>
+    <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
+        <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.test.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
+            <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+            <jvmarg value="${profiler.info.jvmargs.agent}"/>
+            <jvmarg line="${profiler.info.jvmargs}"/>
+            <test name="${profile.class}"/>
+            <classpath>
+                <path path="${run.test.classpath}"/>
+            </classpath>
+            <syspropertyset>
+                <propertyref prefix="test-sys-prop."/>
+                <mapper from="test-sys-prop.*" to="*" type="glob"/>
+            </syspropertyset>
+            <formatter type="brief" usefile="false"/>
+            <formatter type="xml"/>
+        </junit>
+    </target>
+    <!--
+                end of pre NB72 profiling section
+            -->
+    <target if="netbeans.home" name="-profile-check">
+        <condition property="profiler.configured">
+            <or>
+                <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
+                <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
+            </or>
+        </condition>
+    </target>
+    <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
+        <startprofiler/>
+        <antcall target="run"/>
+    </target>
+    <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <startprofiler/>
+        <antcall target="run-single"/>
+    </target>
+    <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
+    <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
+        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+        <startprofiler/>
+        <antcall target="test-single"/>
+    </target>
+    <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <startprofiler/>
+        <antcal target="run-test-with-main"/>
+    </target>
+    <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
+        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+        <startprofiler/>
+        <antcall target="run-applet"/>
+    </target>
+    <!--
+                ===============
+                JAVADOC SECTION
+                ===============
+            -->
+    <target depends="init" if="have.sources" name="-javadoc-build">
+        <mkdir dir="${dist.javadoc.dir}"/>
+        <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
+            <and>
+                <isset property="endorsed.classpath.cmd.line.arg"/>
+                <not>
+                    <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="bug5101868workaround" value="*.java">
+            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+        </condition>
+        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+            <classpath>
+                <path path="${javac.classpath}"/>
+            </classpath>
+            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+                <filename name="**/*.java"/>
+            </fileset>
+            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="**/*.java"/>
+                <exclude name="*.java"/>
+            </fileset>
+            <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
+        </javadoc>
+        <copy todir="${dist.javadoc.dir}">
+            <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+                <filename name="**/doc-files/**"/>
+            </fileset>
+            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="**/doc-files/**"/>
+            </fileset>
+        </copy>
+    </target>
+    <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+    </target>
+    <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+    <!--
+                =========================
+                TEST COMPILATION SECTION
+                =========================
+            -->
+    <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+        <mkdir dir="${build.test.classes.dir}"/>
+    </target>
+    <target name="-pre-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="do.depend.true" name="-compile-test-depend">
+        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+    </target>
+    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+    <target name="-pre-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+    <!--
+                =======================
+                TEST EXECUTION SECTION
+                =======================
+            -->
+    <target depends="init" if="have.tests" name="-pre-test-run">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+        <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
+    </target>
+    <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+    </target>
+    <target depends="init" if="have.tests" name="test-report"/>
+    <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+    <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+    <target depends="init" if="have.tests" name="-pre-test-run-single">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+        <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
+        <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
+        <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+        <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
+        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
+    <!--
+                =======================
+                TEST DEBUGGING SECTION
+                =======================
+            -->
+    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
+        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+        <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
+        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+        <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+        <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
+    </target>
+    <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+        <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+    </target>
+    <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+    <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
+    <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+        <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+    </target>
+    <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+    <!--
+                =========================
+                APPLET EXECUTION SECTION
+                =========================
+            -->
+    <target depends="init,compile-single" name="run-applet">
+        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+        <j2seproject1:java classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </j2seproject1:java>
+    </target>
+    <!--
+                =========================
+                APPLET DEBUGGING  SECTION
+                =========================
+            -->
+    <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+        <j2seproject3:debug classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </j2seproject3:debug>
+    </target>
+    <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+    <!--
+                ===============
+                CLEANUP SECTION
+                ===============
+            -->
+    <target name="-deps-clean-init" unless="built-clean.properties">
+        <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+        <delete file="${built-clean.properties}" quiet="true"/>
+    </target>
+    <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
+        <echo level="warn" message="Cycle detected: ColorCube was already built"/>
+    </target>
+    <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+        <mkdir dir="${build.dir}"/>
+        <touch file="${built-clean.properties}" verbose="false"/>
+        <property file="${built-clean.properties}" prefix="already.built.clean."/>
+        <antcall target="-warn-already-built-clean"/>
+        <propertyfile file="${built-clean.properties}">
+            <entry key="${basedir}" value=""/>
+        </propertyfile>
+    </target>
+    <target depends="init" name="-do-clean">
+        <delete dir="${build.dir}"/>
+        <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+    </target>
+    <target name="-post-clean">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+    <target name="-check-call-dep">
+        <property file="${call.built.properties}" prefix="already.built."/>
+        <condition property="should.call.dep">
+            <and>
+                <not>
+                    <isset property="already.built.${call.subproject}"/>
+                </not>
+                <available file="${call.script}"/>
+            </and>
+        </condition>
+    </target>
+    <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+        <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+            <propertyset>
+                <propertyref prefix="transfer."/>
+                <mapper from="transfer.*" to="*" type="glob"/>
+            </propertyset>
+        </ant>
+    </target>
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/nbproject/genfiles.properties	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=c1e907c0
+build.xml.script.CRC32=85acc7ce
+build.xml.stylesheet.CRC32=8064a381@1.75.2.48
+# 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=c1e907c0
+nbproject/build-impl.xml.script.CRC32=c0a930f9
+nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/nbproject/project.properties	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,73 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=ColorCube
+application.vendor=kcr
+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
+# 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}/ColorCube.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+jfxbuild.jfxrt.jar=../../../build/sdk/rt/lib/ext/jfxrt.jar
+includes=**
+jar.compress=false
+javac.classpath=\
+    ${jfxbuild.jfxrt.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.processorpath=\
+    ${javac.classpath}
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}:\
+    ${libs.junit.classpath}:\
+    ${libs.junit_4.classpath}
+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=
+main.class=colorcube.ColorCube
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+run.classpath=\
+    ${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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/nbproject/project.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.java.j2seproject</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+            <name>ColorCube</name>
+            <source-roots>
+                <root id="src.dir"/>
+            </source-roots>
+            <test-roots>
+                <root id="test.src.dir"/>
+            </test-roots>
+        </data>
+    </configuration>
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/src/colorcube/ColorCube.java	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,191 @@
+/*
+ * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package colorcube;
+
+import javafx.event.EventHandler;
+import java.util.ArrayList;
+import javafx.animation.Animation.Status;
+import javafx.animation.KeyFrame;
+import javafx.animation.KeyValue;
+import javafx.animation.Timeline;
+import javafx.application.Application;
+import javafx.application.ConditionalFeature;
+import javafx.application.Platform;
+import javafx.geometry.Point3D;
+import javafx.scene.Group;
+import javafx.scene.Node;
+import javafx.scene.PerspectiveCamera;
+import javafx.scene.Scene;
+import javafx.scene.input.KeyEvent;
+import javafx.scene.paint.Color;
+import javafx.scene.paint.CycleMethod;
+import javafx.scene.paint.LinearGradient;
+import javafx.scene.paint.Stop;
+import javafx.scene.shape.Rectangle;
+import javafx.util.Duration;
+import static javafx.scene.transform.Rotate.*;
+import javafx.stage.Stage;
+
+public class ColorCube extends Application {
+    private static final Color[] colors = {
+        Color.color(1, 0, 0), // RED
+        Color.color(0, 1, 0), // GREEN
+        Color.color(0, 0, 1), // BLUE
+        Color.color(1, 1, 0), // YELLOW
+        Color.color(1, 0, 1), // MAGENTA
+        Color.color(0, 1, 1)  // CYAN
+    };
+
+    private static final int SIZE = 300;
+
+    private static final float OFFSET = SIZE * 0.5F;
+
+    private static final float EXPLODED_OFFSET = SIZE * 0.6F;
+
+    private boolean exploded = false;
+
+    // FRONT, LEFT, BACK, RIGHT, TOP, BOTTOM
+    private static final int[] rotates = {
+        0, -90, -180, -270, -90, 90
+    };
+
+    private static final Point3D[] axes = {
+        Y_AXIS, Y_AXIS, Y_AXIS, Y_AXIS, X_AXIS, X_AXIS
+    };
+
+    private static final int[] translates = {
+        0, 0, -1,   // FRONT
+        1, 0, 0,    // LEFT
+        0, 0, 1,    // BACK
+        -1, 0, 0,   // RIGHT
+        0, -1, 0,   // TOP
+        0, 1, 0     // BOTTOM
+    };
+    private final Group mainGroup = new Group();
+    private Timeline timeline;
+
+    private Rectangle cubeFace(int i) {
+        Rectangle rect = new Rectangle( SIZE, SIZE, colors[i]);
+        rect.setTranslateX(translates[i * 3 + 0] * OFFSET);
+        rect.setTranslateY(translates[i * 3 + 1] * OFFSET);
+        rect.setTranslateZ(translates[i * 3 + 2] * OFFSET);
+        rect.setRotate(rotates[i]);
+        rect.setRotationAxis(axes[i]);
+        return rect;
+    }
+
+    private Scene createColorCube(Stage stage) {
+        stage.setTitle("Color Cube");
+        final ArrayList<Node> cube = new ArrayList<Node>();
+        for (int i = 0; i < colors.length; i++) {
+            cube.add(cubeFace(i));
+        }
+        Group group = new Group();
+        group.setTranslateX(250);
+        group.setTranslateY(150);
+        group.setRotate(30);
+        group.setRotationAxis(new Point3D(1, 1, 1));
+        group.getChildren().addAll(cube);
+        mainGroup.getChildren().add(group);
+        mainGroup.setRotationAxis(Y_AXIS);
+        mainGroup.setOnKeyTyped(new EventHandler<KeyEvent>() {
+            @Override public void handle(KeyEvent e) {
+                if (e.getCharacter().equals("x")) {
+                    mainGroup.setRotationAxis(X_AXIS);
+                } else if (e.getCharacter().equals("y")) {
+                    mainGroup.setRotationAxis(Y_AXIS);
+                } else if (e.getCharacter().equals("z")) {
+                    mainGroup.setRotationAxis(Z_AXIS);
+                } else if (e.getCharacter().equals("e")) {
+                    exploded = !exploded;
+                    float offset = (exploded) ? (EXPLODED_OFFSET) : (OFFSET);
+                    int i = 0;
+                    for (Node face : cube) {
+                        face.setTranslateX(translates[i * 3 + 0] * offset);
+                        face.setTranslateY(translates[i * 3 + 1] * offset);
+                        face.setTranslateZ(translates[i * 3 + 2] * offset);
+                        ++i;
+                    }
+                } else if (e.getCharacter().equals("p")) {
+                    if (timeline.getStatus() == Status.RUNNING) {
+                        timeline.pause();
+                    } else {
+                        timeline.play();
+                    }
+                }
+            }
+        });
+        Scene scene = new Scene(mainGroup, 800, 600, true);
+        PerspectiveCamera camera = new PerspectiveCamera();
+        camera.setFieldOfView(30);
+        scene.setCamera(camera);
+        return scene;
+    }
+
+    private Scene createColorRect(Stage stage) {
+        stage.setTitle("Color Rect Demo");
+        System.out.println("*************************************************************");
+        System.out.println("*    WARNING: common conditional SCENE3D isn\'t supported    *");
+        System.out.println("*************************************************************");
+        final Rectangle rect = new Rectangle(SIZE, SIZE, Color.RED);
+        rect.setTranslateX(250);
+        rect.setTranslateY(150);
+        mainGroup.getChildren().add(rect);
+        Scene scene = new Scene(mainGroup, 800, 600);
+        return scene;
+    }
+
+    @Override public void start(Stage stage) {
+        Scene scene = null;
+
+        if (!Platform.isSupported(ConditionalFeature.SCENE3D)) {
+            scene = createColorRect(stage);
+        } else {
+            scene = createColorCube(stage);
+        }
+
+        LinearGradient sceneFill = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE,
+                new Stop[] {
+                    new Stop(0, Color.web("#e0e0e0")),
+                    new Stop(1, Color.web("#a0a0a0")) });
+        scene.setFill(sceneFill);
+        stage.setScene(scene);
+        stage.sizeToScene();
+        stage.show();
+        
+        mainGroup.requestFocus();
+        KeyValue kv = new KeyValue (mainGroup.rotateProperty(), Float.valueOf(-360));
+        KeyFrame kf = new KeyFrame(Duration.seconds(4), kv);
+        timeline = new Timeline(kf);
+        timeline.setCycleCount(Timeline.INDEFINITE);
+        timeline.play();
+    }
+
+    public static void main(String[] args) {
+        Application.launch(args);
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/ColorCube/src/colorcube/JFXPanelColorCube.java	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package colorcube;
+
+import javafx.scene.paint.Stop;
+import javafx.scene.paint.CycleMethod;
+import javafx.scene.paint.LinearGradient;
+import javafx.scene.PerspectiveCamera;
+import javafx.animation.Animation.Status;
+import javafx.scene.input.KeyEvent;
+import javafx.event.EventHandler;
+import javafx.scene.Node;
+import java.util.ArrayList;
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import javafx.animation.KeyFrame;
+import javafx.animation.KeyValue;
+import javafx.animation.Timeline;
+import javafx.application.Platform;
+import javafx.embed.swing.JFXPanel;
+import javafx.geometry.Point3D;
+import javafx.scene.Group;
+import javafx.scene.Scene;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Rectangle;
+import javafx.util.Duration;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
+import static javafx.scene.transform.Rotate.*;
+
+public class JFXPanelColorCube {
+    private static final Color[] colors = {
+        Color.color(1, 0, 0), // RED
+        Color.color(0, 1, 0), // GREEN
+        Color.color(0, 0, 1), // BLUE
+        Color.color(1, 1, 0), // YELLOW
+        Color.color(1, 0, 1), // MAGENTA
+        Color.color(0, 1, 1)  // CYAN
+    };
+
+    private static final int SIZE = 300;
+
+    private static final float OFFSET = SIZE * 0.5F;
+
+    private static final float EXPLODED_OFFSET = SIZE * 0.6F;
+
+    private boolean exploded = false;
+
+    // FRONT, LEFT, BACK, RIGHT, TOP, BOTTOM
+    private static final int[] rotates = {
+        0, -90, -180, -270, -90, 90
+    };
+
+    private static final Point3D[] axes = {
+        Y_AXIS, Y_AXIS, Y_AXIS, Y_AXIS, X_AXIS, X_AXIS
+    };
+
+    private static final int[] translates = {
+        0, 0, -1,   // FRONT
+        1, 0, 0,    // LEFT
+        0, 0, 1,    // BACK
+        -1, 0, 0,   // RIGHT
+        0, -1, 0,   // TOP
+        0, 1, 0     // BOTTOM
+    };
+    private Timeline timeline;
+
+    private Rectangle cubeFace(int i) {
+        Rectangle cube = new Rectangle(SIZE, SIZE, colors[i]);
+        cube.setTranslateX(translates[i * 3 + 0] * OFFSET);
+        cube.setTranslateY(translates[i * 3 + 1] * OFFSET);
+        cube.setTranslateZ(translates[i * 3 + 2] * OFFSET);
+        cube.setRotate(rotates[i]);
+        cube.setRotationAxis(axes[i]);
+        return cube;
+
+    }
+
+    public JFXPanelColorCube() {
+        JFrame frame = new JFrame("Hello JFXPanel");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        frame.setLayout(new BorderLayout());
+
+        JPanel swingPanel = new JPanel();
+        swingPanel.setLayout(new FlowLayout());
+        frame.getContentPane().add(swingPanel, BorderLayout.NORTH);
+
+        JButton swingButton = new JButton("A Swing Button");
+        swingPanel.add(swingButton);
+
+        // Create javafx panel
+        final JFXPanel fxPanel = new JFXPanel();
+        fxPanel.setPreferredSize(new Dimension(800,600));
+        frame.getContentPane().add(fxPanel, BorderLayout.CENTER);
+
+        // create JavaFX scene
+        createScene(fxPanel);
+
+        // show frame
+        frame.pack();
+        frame.setLocationRelativeTo(null);
+        frame.setVisible(true);
+    }
+
+    private void createScene(final JFXPanel fxPanel) {
+        System.err.println("createScene: calling Platform.runLater");
+        Platform.runLater(new Runnable() {
+
+            public void run() {
+                System.err.println("Platform.runLater :: run");
+                final ArrayList<Node> cube = new ArrayList<Node>();
+                for (int i = 0; i < colors.length; i++) {
+                    cube.add(cubeFace(i));
+                }
+                Group group = new Group(cube);
+                group.setTranslateX(250);
+                group.setTranslateY(150);
+                group.setRotate(30);
+                group.setRotationAxis(new Point3D(1, 1, 1));
+                final Group mainGroup = new Group(group);
+                mainGroup.setRotate(0);
+                mainGroup.setRotationAxis(Y_AXIS);
+                mainGroup.setOnKeyTyped(new EventHandler<KeyEvent>() {
+
+                    @Override
+                    public void handle(KeyEvent e) {
+                        if (e.getCharacter().equals("x")) {
+                            mainGroup.setRotationAxis(X_AXIS);
+                        } else if (e.getCharacter().equals("y")) {
+                            mainGroup.setRotationAxis(Y_AXIS);
+                        } else if (e.getCharacter().equals("z")) {
+                            mainGroup.setRotationAxis(Z_AXIS);
+                        } else if (e.getCharacter().equals("e")) {
+                            exploded = !exploded;
+                            float offset = (exploded) ? (EXPLODED_OFFSET) : (OFFSET);
+                            int i = 0;
+                            for (Node face : cube) {
+                                face.setTranslateX(translates[i * 3 + 0] * offset);
+                                face.setTranslateY(translates[i * 3 + 1] * offset);
+                                face.setTranslateZ(translates[i * 3 + 2] * offset);
+                                ++i;
+                            }
+                        } else if (e.getCharacter().equals("p")) {
+                            if (timeline.getStatus() == Status.RUNNING) {
+                                timeline.pause();
+                            } else {
+                                timeline.play();
+                            }
+                        }
+                    }
+                });
+                Scene scene = new Scene(mainGroup, 800, 600, true);
+                PerspectiveCamera camera = new PerspectiveCamera();
+                camera.setFieldOfView(30);
+                scene.setCamera(camera);
+
+                LinearGradient sceneFill = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE,
+                        new Stop[]{
+                            new Stop(0, Color.web("#e0e0e0")),
+                            new Stop(1, Color.web("#a0a0a0"))});
+                scene.setFill(sceneFill);
+
+                mainGroup.requestFocus();
+                KeyValue kv = new KeyValue(mainGroup.rotateProperty(), Float.valueOf(-360));
+                KeyFrame kf = new KeyFrame(Duration.seconds(4), kv);
+                timeline = new Timeline(kf);
+                timeline.setCycleCount(Timeline.INDEFINITE);
+                timeline.play();
+
+                // add scene to panel
+                fxPanel.setScene(scene);
+            }
+        });
+        System.err.println("PlatformImpl.runLater returns");
+    }
+
+    public static void main(String[] args) {
+        SwingUtilities.invokeLater(new Runnable() {
+
+            public void run() {
+                new JFXPanelColorCube();
+            }
+        });
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/FX8-3DFeatures/build.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="FX8-3DFeatures" default="default" basedir=".">
+    <description>Builds, tests, and runs the project FX8-3DFeatures.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties
+      -post-init:                called after initialization of project properties
+      -pre-compile:              called before javac compilation
+      -post-compile:             called after javac compilation
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-jar:                  called before JAR building
+      -post-jar:                 called after JAR building
+      -post-clean:               called after cleaning build products
+
+    (Targets beginning with '-' are not intended to be called on their own.)
+
+    Example of inserting an obfuscator after compilation could look like this:
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Another way to customize the build is by overriding existing main targets.
+    The targets of interest are: 
+
+      -init-macrodef-javac:     defines macro for javac compilation
+      -init-macrodef-junit:     defines macro for junit execution
+      -init-macrodef-debug:     defines macro for class debugging
+      -init-macrodef-java:      defines macro for class execution
+      -do-jar:                  JAR building
+      run:                      execution of project 
+      -javadoc-build:           Javadoc generation
+      test-report:              JUnit report generation
+
+    An example of overriding the target for project execution could look like this:
+
+        <target name="run" depends="FX8-3DFeatures-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that the overridden target depends on the jar target and not only on 
+    the compile target as the regular run target does. Again, for a list of available 
+    properties which you can use, check the target you are overriding in the
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/FX8-3DFeatures/manifest.mf	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/toys/FX8-3DFeatures/nbproject/build-impl.xml	Mon Mar 09 11:07:15 2015 -0700
@@ -0,0 +1,1431 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+  - initialization
+  - compilation
+  - jar
+  - execution
+  - debugging
+  - javadoc
+  - test compilation
+  - test execution
+  - test debugging
+  - applet
+  - cleanup
+
+        -->
+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="FX8-3DFeatures-impl">
+    <fail message="Please build using Ant 1.8.0 or higher.">
+        <condition>
+            <not>
+                <antversion atleast="1.8.0"/>
+            </not>
+        </condition>
+    </fail>
+    <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+    <!-- 
+                ======================
+                INITIALIZATION SECTION 
+                ======================
+            -->
+    <target name="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init" name="-init-private">
+        <property file="nbproject/private/config.properties"/>
+        <property file="nbproject/private/configs/${config}.properties"/>
+        <property file="nbproject/private/private.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private" name="-init-user">
+        <property file="${user.properties.file}"/>
+        <!-- The two properties below are usually overridden -->
+        <!-- by the active platform. Just a fallback. -->
+        <property name="default.javac.source" value="1.4"/>
+        <property name="default.javac.target" value="1.4"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+        <property file="nbproject/configs/${config}.properties"/>
+        <property file="nbproject/project.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <j2seproject1:property name="platform.home" value="platforms.${platform.active}.home"/>
+        <j2seproject1:property name="platform.bootcp" value="platforms.${platform.active}.bootclasspath"/>
+        <j2seproject1:property name="platform.compiler" value="platforms.${platform.active}.compile"/>
+        <j2seproject1:property name="platform.javac.tmp" value="platforms.${platform.active}.javac"/>
+        <condition property="platform.javac" value="${platform.home}/bin/javac">
+            <equals arg1="${platform.javac.tmp}" arg2="$${platforms.${platform.active}.javac}"/>
+        </condition>
+        <property name="platform.javac" value="${platform.javac.tmp}"/>
+        <j2seproject1:property name="platform.java.tmp" value="platforms.${platform.active}.java"/>
+        <condition property="platform.java" value="${platform.home}/bin/java">
+            <equals arg1="${platform.java.tmp}" arg2="$${platforms.${platform.active}.java}"/>
+        </condition>
+        <property name="platform.java" value="${platform.java.tmp}"/>
+        <j2seproject1:property name="platform.javadoc.tmp" value="platforms.${platform.active}.javadoc"/>
+        <condition property="platform.javadoc" value="${platform.home}/bin/javadoc">
+            <equals arg1="${platform.javadoc.tmp}" arg2="$${platforms.${platform.active}.javadoc}"/>
+        </condition>
+        <property name="platform.javadoc" value="${platform.javadoc.tmp}"/>
+        <condition property="platform.invalid" value="true">
+            <or>
+                <contains string="${platform.javac}" substring="$${platforms."/>
+                <contains string="${platform.java}" substring="$${platforms."/>
+                <contains string="${platform.javadoc}" substring="$${platforms."/>
+            </or>
+        </condition>
+        <fail unless="platform.home">Must set platform.home</fail>
+        <fail unless="platform.bootcp">Must set platform.bootcp</fail>
+        <fail unless="platform.java">Must set platform.java</fail>
+        <fail unless="platform.javac">Must set platform.javac</fail>
+        <fail if="platform.invalid">
+ The J2SE Platform is not correctly set up.
+ Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. 
+ Either open the project in the IDE and setup the Platform with the same name or add it manually.
+ For example like this:
+     ant -Duser.properties.file=&lt;path_to_property_file&gt; jar (where you put the property "platforms.${platform.active}.home" in a .properties file)
+  or ant -Dplatforms.${platform.active}.home=&lt;path_to_JDK_home&gt; jar (where no properties file is used) 
+  </fail>
+        <available file="${manifest.file}" property="manifest.available"/>
+        <condition property="splashscreen.available">
+            <and>
+                <not>
+                    <equals arg1="${application.splash}" arg2="" trim="true"/>
+                </not>
+                <available file="${application.splash}"/>
+            </and>
+        </condition>
+        <condition property="main.class.available">
+            <and>
+                <isset property="main.class"/>
+                <not>
+                    <equals arg1="${main.class}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition property="profile.available">
+            <and>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
+            </and>
+        </condition>
+        <condition property="do.archive">
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
+        </condition>
+        <condition property="do.mkdist">
+            <and>
+                <isset property="do.archive"/>
+                <isset property="libs.CopyLibs.classpath"/>
+                <not>
+                    <istrue value="${mkdist.disabled}"/>
+                </not>
+            </and>
+        </condition>
+        <condition property="do.archive+manifest.available">
+            <and>
+                <isset property="manifest.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+main.class.available">
+            <and>
+                <isset property="main.class.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+splashscreen.available">
+            <and>
+                <isset property="splashscreen.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="do.archive+profile.available">
+            <and>
+                <isset property="profile.available"/>
+                <istrue value="${do.archive}"/>
+            </and>
+        </condition>
+        <condition property="have.tests">
+            <or/>
+        </condition>
+        <condition property="have.sources">
+            <or>
+                <available file="${src.dir}"/>
+            </or>
+        </condition>
+        <condition property="netbeans.home+have.tests">
+            <and>
+                <isset property="netbeans.home"/>
+                <isset property="have.tests"/>
+            </and>
+        </condition>
+        <condition property="no.javadoc.preview">
+            <and>
+                <isset property="javadoc.preview"/>
+                <isfalse value="${javadoc.preview}"/>
+            </and>
+        </condition>
+        <property name="run.jvmargs" value=""/>
+        <property name="run.jvmargs.ide" value=""/>
+        <property name="javac.compilerargs" value=""/>
+        <property name="work.dir" value="${basedir}"/>
+        <condition property="no.deps">
+            <and>
+                <istrue value="${no.dependencies}"/>
+            </and>
+        </condition>
+        <property name="javac.debug" value="true"/>
+        <property name="javadoc.preview" value="true"/>
+        <property name="application.args" value=""/>
+        <property name="source.encoding" value="${file.encoding}"/>
+        <property name="runtime.encoding" value="${source.encoding}"/>
+        <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+            <and>
+                <isset property="javadoc.encoding"/>
+                <not>
+                    <equals arg1="${javadoc.encoding}" arg2=""/>
+                </not>
+            </and>
+        </condition>
+        <property name="javadoc.encoding.used" value="${source.encoding}"/>
+        <property name="includes" value="**"/>
+        <property name="excludes" value=""/>
+        <property name="do.depend" value="false"/>
+        <condition property="do.depend.true">
+            <istrue value="${do.depend}"/>
+        </condition>
+        <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+        <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
+        </condition>
+        <property name="jar.index" value="false"/>
+        <property name="jar.index.metainf" value="${jar.index}"/>
+        <property name="copylibs.rebase" value="true"/>
+        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
+        <condition property="junit.available">
+            <or>
+                <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
+                <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
+            </or>
+        </condition>
+        <condition property="testng.available">
+            <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
+        </condition>
+        <condition property="junit+testng.available">
+            <and>
+                <istrue value="${junit.available}"/>
+                <istrue value="${testng.available}"/>
+            </and>
+        </condition>
+        <condition else="testng" property="testng.mode" value="mixed">
+            <istrue value="${junit+testng.available}"/>
+        </condition>
+        <condition else="" property="testng.debug.mode" value="-mixed">
+            <istrue value="${junit+testng.available}"/>
+        </condition>
+    </target>
+    <target name="-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+        <fail unless="src.dir">Must set src.dir</fail>
+        <fail unless="build.dir">Must set build.dir</fail>
+        <fail unless="dist.dir">Must set dist.dir</fail>
+        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+        <fail unless="dist.jar">Must set dist.jar</fail>
+    </target>
+    <target name="-init-macrodef-property">
+        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${@{value}}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="sourcepath"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <mkdir dir="@{apgeneratedsrcdir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <compilerarg value="-processorpath"/>
+                    <compilerarg path="@{processorpath}:${empty.dir}"/>
+                    <compilerarg line="${ap.processors.internal}"/>
+                    <compilerarg line="${annotation.processing.processor.options}"/>
+                    <compilerarg value="-s"/>
+                    <compilerarg path="@{apgeneratedsrcdir}"/>
+                    <compilerarg line="${ap.proc.none.internal}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="sourcepath"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+        <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}" name="classpath"/>
+            <sequential>
+                <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </depend>
+            </sequential>
+        </macrodef>
+        <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <sequential>
+                <fail unless="javac.includes">Must set javac.includes</fail>
+                <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+                    <path>
+                        <filelist dir="@{destdir}" files="${javac.includes}"/>
+                    </path>
+                    <globmapper from="*.java" to="*.class"/>
+                </pathconvert>
+                <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+                <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+                <delete>
+                    <files includesfile="${javac.includesfile.binary}"/>
+                </delete>
+                <delete>
+                    <fileset file="${javac.includesfile.binary}"/>
+                </delete>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${junit.available}" name="-init-macrodef-junit-init">
+        <condition else="false" property="nb.junit.batch" value="true">
+            <and>
+                <istrue value="${junit.available}"/>
+                <not>
+                    <isset property="test.method"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="false" property="nb.junit.single" value="true">
+            <and>
+                <istrue value="${junit.available}"/>
+                <isset property="test.method"/>
+            </and>
+        </condition>
+    </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
+    <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
+                    </batchtest>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
+    <target if="${testng.available}" name="-init-macrodef-testng">
+        <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
+                    <isset property="test.method"/>
+                </condition>
+                <union id="test.set"/>
+                <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
+                <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="FX8-3DFeatures" testname="TestNG tests" workingDir="${work.dir}">
+                    <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
+                    <propertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </propertyset>
+                    <customize/>
+                </testng>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-test-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <echo>No tests executed.</echo>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
+        <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:testng>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
+        <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <sequential>
+                <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize>
+                        <classpath>
+                            <path path="${run.test.classpath}"/>
+                        </classpath>
+                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                        <jvmarg line="${run.jvmargs}"/>
+                        <jvmarg line="${run.jvmargs.ide}"/>
+                    </customize>
+                </j2seproject3:test-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
+        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+                    <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+        <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property name="junit.forkmode" value="perTest"/>
+                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
+                    </batchtest>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg value="-ea"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <customize/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+        <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <element implicit="true" name="customize" optional="true"/>
+            <sequential>
+                <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize/>
+                </j2seproject3:junit-debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target if="${testng.available}" name="-init-macrodef-testng-debug">
+        <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <element name="customize2" optional="true"/>
+            <sequential>
+                <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
+                    <isset property="test.method"/>
+                </condition>
+                <condition else="-suitename FX8-3DFeatures -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
+                    <matches pattern=".*\.xml" string="@{testClass}"/>
+                </condition>
+                <delete dir="${build.test.results.dir}" quiet="true"/>
+                <mkdir dir="${build.test.results.dir}"/>
+                <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
+                    <customize>
+                        <customize2/>
+                        <jvmarg value="-ea"/>
+                        <arg line="${testng.debug.mode}"/>
+                        <arg line="-d ${build.test.results.dir}"/>
+                        <arg line="-listener org.testng.reporters.VerboseReporter"/>
+                        <arg line="${testng.cmd.args}"/>
+                    </customize>
+                </j2seproject3:debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
+        <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <element implicit="true" name="customize2" optional="true"/>
+            <sequential>
+                <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
+                    <customize2/>
+                </j2seproject3:testng-debug>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
+        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <sequential>
+                <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+                    <customize>
+                        <classpath>
+                            <path path="${run.test.classpath}"/>
+                        </classpath>
+                        <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                        <jvmarg line="${run.jvmargs}"/>
+                        <jvmarg line="${run.jvmargs.ide}"/>
+                    </customize>
+                </j2seproject3:test-debug-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
+        <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <attribute default="" name="testmethods"/>
+            <attribute default="${main.class}" name="testClass"/>
+            <attribute default="" name="testMethod"/>
+            <sequential>
+                <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
+                    <customize2>
+                        <syspropertyset>
+                            <propertyref prefix="test-sys-prop."/>
+                            <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                        </syspropertyset>
+                    </customize2>
+                </j2seproject3:testng-debug-impl>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
+    <!--
+                pre NB7.2 profiling section; consider it deprecated
+            -->
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
+    <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
+        <macrodef name="resolve">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${env.@{value}}"/>
+            </sequential>
+        </macrodef>
+        <macrodef name="profile">
+            <attribute default="${main.class}" name="classname"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property environment="env"/>
+                <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
+                <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg value="${profiler.info.jvmargs.agent}"/>
+                    <jvmarg line="${profiler.info.jvmargs}"/>
+                    <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+                    <arg line="${application.args}"/>
+                    <classpath>
+                        <path path="${run.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
+        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+    </target>
+    <!--
+                end of pre NB7.2 profiling section
+            -->
+    <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${main.class}" name="name"/>
+            <attribute default="${debug.classpath}" name="classpath"/>
+            <attribute default="" name="stopclassname"/>
+            <sequential>
+                <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <bootclasspath>
+                        <path path="${platform.bootcp}"/>
+                    </bootclasspath>
+                </nbjpdastart>
+            </sequential>
+        </macrodef>
+        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${build.classes.dir}" name="dir"/>
+            <sequential>
+                <nbjpdareload>
+                    <fileset dir="@{dir}" includes="${fix.classes}">
+                        <include name="${fix.includes}*.class"/>
+                    </fileset>
+                </nbjpdareload>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-debug-args">
+        <exec executable="${platform.java}" outputproperty="version-output">
+            <arg value="-version"/>
+        </exec>
+        <condition property="have-jdk-older-than-1.4">
+            <or>
+                <contains string="${version-output}" substring="java version &quot;1.0"/>
+                <contains string="${version-output}" substring="java version &quot;1.1"/>
+                <contains string="${version-output}" substring="java version &quot;1.2"/>
+                <contains string="${version-output}" substring="java version &quot;1.3"/>
+            </or>
+        </condition>
+        <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+            <istrue value="${have-jdk-older-than-1.4}"/>
+        </condition>
+        <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+            <os family="windows"/>
+        </condition>
+        <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+            <isset property="debug.transport"/>
+        </condition>
+    </target>
+    <target depends="-init-debug-args" name="-init-macrodef-debug">
+        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${debug.classpath}" name="classpath"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" dir="${work.dir}" fork="true" jvm="${platform.java}">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                    <jvmarg line="${run.jvmargs.ide}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-java">
+        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${run.classpath}" name="classpath"/>
+            <attribute default="jvm" name="jvm"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" dir="${work.dir}" fork="true" jvm="${platform.java}">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                    <jvmarg line="${run.jvmargs.ide}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-copylibs">
+        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute default="${manifest.file}" name="manifest"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+                <pathconvert property="run.classpath.without.build.classes.dir">
+                    <path path="${run.classpath}"/>
+                    <map from="${build.classes.dir.resolved}" to=""/>
+                </pathconvert>
+                <pathconvert pathsep=" " property="jar.classpath">
+                    <path path="${run.classpath.without.build.classes.dir}"/>
+                    <chainedmapper>
+                        <flattenmapper/>
+                        <filtermapper>
+                            <replacestring from=" " to="%20"/>
+                        </filtermapper>
+                        <globmapper from="*" to="lib/*"/>
+                    </chainedmapper>
+                </pathconvert>
+                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+                    <manifest>
+                        <attribute name="Class-Path" value="${jar.classpath}"/>
+                        <customize/>
+                    </manifest>
+                </copylibs>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-presetdef-jar">
+        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+            </jar>
+        </presetdef>
+    </target>
+    <target name="-init-ap-cmdline-properties">
+        <property name="annotation.processing.enabled" value="true"/>
+        <property name="annotation.processing.processors.list" value=""/>
+        <property name="annotation.processing.processor.options" value=""/>
+        <property name="annotation.processing.run.all.processors" value="true"/>
+        <property name="javac.processorpath" value="${javac.classpath}"/>
+        <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+        <condition property="ap.supported.internal" value="true">
+            <not>
+                <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+            </not>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+        <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+            <isfalse value="${annotation.processing.run.all.processors}"/>
+        </condition>
+        <condition else="" property="ap.proc.none.internal" value="-proc:none">
+            <isfalse value="${annotation.processing.enabled}"/>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+        <property name="ap.cmd.line.internal" value=""/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
+    <!--
+                ===================
+                COMPILATION SECTION
+                ===================
+            -->
+    <target name="-deps-jar-init" unless="built-jar.properties">
+        <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+        <delete file="${built-jar.properties}" quiet="true"/>
+    </target>
+    <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+        <echo level="warn" message="Cycle detected: FX8-3DFeatures was already built"/>
+    </target>
+    <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+        <mkdir dir="${build.dir}"/>
+        <touch file="${built-jar.properties}" verbose="false"/>
+        <property file="${built-jar.properties}" prefix="already.built.jar."/>
+        <antcall target="-warn-already-built-jar"/>
+        <propertyfile file="${built-jar.properties}">
+            <entry key="${basedir}" value=""/>
+        </propertyfile>
+    </target>
+    <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+    <target depends="init" name="-check-automatic-build">
+        <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+    </target>
+    <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+        <antcall target="clean"/>
+    </target>
+    <target depends="init,deps-jar" name="-pre-pre-compile">
+        <mkdir dir="${build.classes.dir}"/>
+    </target>
+    <target name="-pre-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target if="do.depend.true" name="-compile-depend">
+        <pathconvert property="build.generated.subdirs">
+            <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="*"/>
+            </dirset>
+        </pathconvert>
+        <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
+        <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+        <copy todir="${build.classes.dir}">
+            <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target if="has.persistence.xml" name="-copy-persistence-xml">
+        <mkdir dir="${build.classes.dir}/META-INF"/>
+        <copy todir="${build.classes.dir}/META-INF">
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
+        </copy>
+    </target>
+    <target name="-post-compile">
+        <