changeset 5615:94ba02ca4154

Ensemble 8: restyle and clean up
author "Jasper Potts"
date Fri, 01 Nov 2013 16:47:21 -0700
parents 5d10e06e8327
children 5e8a8d2136eb
files apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java apps/samples/Ensemble8/src/app/java/ensemble/PageBrowser.java apps/samples/Ensemble8/src/app/java/ensemble/SampleInfo.java apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java apps/samples/Ensemble8/src/app/java/ensemble/control/SearchBox.java apps/samples/Ensemble8/src/app/java/ensemble/control/TitledToolBar.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/BackPage.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/FrontPage.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/IPhoneLayout.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundNode.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SampleContainer.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SlidingPages.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourcePage.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourceTab.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Sources.java apps/samples/Ensemble8/src/app/java/ensemble/sampleproject/SampleProjectBuilder.java apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCaspian.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCaspianDesktop.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommon.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommonDesktop.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesHelvetica.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesIOS.css apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesIOSDesktop.css apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/back-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/back-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/forward-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/forward-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/home-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/home-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/list-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/list-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-blue-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-blue-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-empty.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-empty@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-light-blue-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-light-blue-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search-btn.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search-btn@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/toolbar.png apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/toolbar@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/Duke-Lego3.jpg apps/samples/Ensemble8/src/app/resources/ensemble/images/corner-bottom.png apps/samples/Ensemble8/src/app/resources/ensemble/images/corner-top.png apps/samples/Ensemble8/src/app/resources/ensemble/images/highlights-ribbon.png apps/samples/Ensemble8/src/app/resources/ensemble/images/highlights-ribbon@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/home-background.png apps/samples/Ensemble8/src/app/resources/ensemble/images/home-background@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/orange-arrrow.png apps/samples/Ensemble8/src/app/resources/ensemble/images/orange-arrrow@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot-selected.png apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot-selected@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot.png apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/popover-empty.png apps/samples/Ensemble8/src/app/resources/ensemble/images/popover-empty@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-back-page-background.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-box.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-box@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-page-background-shadow.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-page-background.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper-border.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper-lines.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-source-text.png apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-source-text@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/section-ribbon.png apps/samples/Ensemble8/src/app/resources/ensemble/images/section-ribbon@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/images/tile-border.png apps/samples/Ensemble8/src/app/resources/ensemble/images/tile-border@2x.png apps/samples/Ensemble8/src/app/resources/ensemble/sampleproject/SampleProject.zip apps/samples/Ensemble8/src/app/resources/ensemble/syntaxhighlighter/shCoreDefault.css apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/interpolator/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/interpolator/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/fadetransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/fadetransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/filltransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/filltransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/paralleltransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/paralleltransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pausetransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pausetransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/rotatetransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/rotatetransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/scaletransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/scaletransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/sequentialtransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/sequentialtransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/stroketransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/stroketransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/translatetransition/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/translatetransition/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/cursor/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/cursor/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/gestureevent/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/gestureevent/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keyevent/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keyevent/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keystrokemotion/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keystrokemotion/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/mouseevent/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/mouseevent/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/multitouch/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/multitouch/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview@2x.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview@2x.png
diffstat 343 files changed, 612 insertions(+), 1990 deletions(-) [+]
line wrap: on
line diff
--- a/apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java	Fri Nov 01 16:47:21 2013 -0700
@@ -39,8 +39,6 @@
 import java.util.ArrayList;
 import java.util.List;
 import javafx.application.Application;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.geometry.Insets;
@@ -55,6 +53,7 @@
 import javafx.scene.layout.Pane;
 import javafx.scene.layout.Region;
 import javafx.scene.paint.Color;
+import javafx.scene.text.Font;
 import javafx.scene.transform.Scale;
 import javafx.stage.Screen;
 import javafx.stage.Stage;
@@ -74,7 +73,7 @@
     public static final boolean PRELOAD_PREVIEW_IMAGES = true;
     public static final boolean SHOW_HIGHLIGHTS = IS_DESKTOP;
     public static final boolean SHOW_MENU = IS_DESKTOP;
-    public static final boolean SELECT_IOS_THEME = IS_MAC || IS_IOS;
+    public static final boolean SELECT_IOS_THEME = false;
     private static final int TOOL_BAR_BUTTON_SIZE = 30;
     private Scene scene;
     private Pane root;
@@ -99,9 +98,6 @@
     }
 
     @Override public void init() throws Exception {
-        // LOAD FONTS
-    //    Font font = Font.loadFont(EnsembleApp.class.getResource("fonts/BreeSerif-Regular.ttf").toString(),10);
-     //   System.out.println("font = " + font);
         // CREATE ROOT
         root = new Pane() {
             @Override protected void layoutChildren() {
@@ -126,32 +122,10 @@
                 searchPopover.setLayoutY((int)searchBoxBottomCenter.getY()+20);
             }
         };
-        // CREATE MENUBAR/STATUSBAR SPACER
-        if (IS_IOS) {
-            Region statusSpacer = new Region();
-            statusSpacer.setPrefHeight(20);
-            root.getChildren().add(statusSpacer);
-        }
+        // CREATE MENUBAR
         if (SHOW_MENU) {
             menuBar = new MenuBar();
             menuBar.setUseSystemMenuBar(true);
-            Menu themeMenu = new Menu("Theme");
-            final RadioMenuItem caspianThemeMenuItem = new RadioMenuItem("Caspian");
-            final RadioMenuItem iOSThemeMenuItem = new RadioMenuItem("iOS");
-            final ToggleGroup tg = new ToggleGroup();
-            caspianThemeMenuItem.setToggleGroup(tg);
-            iOSThemeMenuItem.setToggleGroup(tg);
-            tg.selectToggle(SELECT_IOS_THEME ? iOSThemeMenuItem : caspianThemeMenuItem);
-            tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
-                @Override public void changed(ObservableValue<? extends Toggle> arg0, Toggle oldValue, Toggle newValue) {
-                    if (newValue != null) {
-                        setStylesheets(newValue == iOSThemeMenuItem);
-                    }
-                }
-            });
-            themeMenu.getItems().addAll(caspianThemeMenuItem,iOSThemeMenuItem);
-            menuBar.getMenus().add(themeMenu);
-            
             ToggleGroup screenSizeToggle = new ToggleGroup();
             menuBar.getMenus().add(
                     MenuBuilder.create()
@@ -179,13 +153,17 @@
         root.getChildren().add(toolBar);
         backButton = new Button();
         backButton.setId("back");
+        backButton.getStyleClass().add("left-pill");
         backButton.setPrefSize(TOOL_BAR_BUTTON_SIZE, TOOL_BAR_BUTTON_SIZE);
         forwardButton = new Button();
         forwardButton.setId("forward");
+        forwardButton.getStyleClass().add("center-pill");
         forwardButton.setPrefSize(TOOL_BAR_BUTTON_SIZE, TOOL_BAR_BUTTON_SIZE);
         homeButton = new Button();
         homeButton.setId("home");
         homeButton.setPrefSize(TOOL_BAR_BUTTON_SIZE, TOOL_BAR_BUTTON_SIZE);
+        homeButton.getStyleClass().add("right-pill");
+        HBox navButtons = new HBox(0,backButton,forwardButton,homeButton);
         listButton = new ToggleButton();
         listButton.setId("list");
         listButton.setPrefSize(TOOL_BAR_BUTTON_SIZE, TOOL_BAR_BUTTON_SIZE);
@@ -201,7 +179,7 @@
             listButton.setGraphic(new Region());
             searchButton.setGraphic(new Region());
         }
-        toolBar.addLeftItems(backButton,forwardButton,homeButton,listButton);
+        toolBar.addLeftItems(navButtons,listButton);
         toolBar.addRightItems(searchBox);
 
         // create PageBrowser
@@ -291,19 +269,10 @@
     }
 
     private void setStylesheets(boolean isIOsSelected) {
-        List<String> stylesheets = new ArrayList<>(5);
-        String base = "/ensemble/EnsembleStyles" + (isIOsSelected ? "IOS" : "Caspian");
-        stylesheets.add("/ensemble/EnsembleStylesCommon.css");
-        stylesheets.add(base + ".css");
-        if (IS_DESKTOP) {
-            stylesheets.add("/ensemble/EnsembleStylesCommonDesktop.css");
-            stylesheets.add(base + "Desktop.css");
-        }
-        if (IS_MAC || IS_IOS) {
-            stylesheets.add("/ensemble/EnsembleStylesHelvetica.css");
-        }                    
-        stylesheets.add("http://fonts.googleapis.com/css?family=Bree+Serif");
-        scene.getStylesheets().setAll(stylesheets);
+        scene.getStylesheets().setAll(
+            "http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600",
+            "/ensemble/EnsembleStylesCommon.css"
+        );
     }    
     
     @Override public void start(final Stage stage) throws Exception {
@@ -314,10 +283,6 @@
         }
         setStylesheets(SELECT_IOS_THEME);
         stage.setScene(scene);
-        // SHOW STAGE
-        if (IS_IOS) {
-            setupIosStage(stage, scene);
-        }
         // START FULL SCREEN IF WANTED
         if (PlatformFeatures.START_FULL_SCREEN) {
             Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
@@ -336,49 +301,4 @@
     public static void main(String[] args) {
         launch(args);
     }
-
-    private void setupIosStage(Stage stage, Scene scene) {}
-//    private void setupIosStage(final Stage stage,final Scene scene) {
-//        // Synthisize Scroll Events from mouse drag events
-//        IosScrollEventSynthesizer scrollEventSynthesizer = new IosScrollEventSynthesizer(scene);
-//        javafx.ext.ios.IOSApplication.setStatusBarStyleAnimated(javafx.ext.ios.StatusBarStyle.DEFAULT, false);
-//        final double SCREEN_WIDTH = Screen.getPrimary().getBounds().getWidth();
-//        final double SCREEN_HEIGHT = Screen.getPrimary().getBounds().getHeight();
-//        stage.setX(0.0); //to avoid centerOnScreen() calculations
-//        stage.setY(0.0);
-//        stage.setWidth(SCREEN_WIDTH);
-//        stage.setHeight(SCREEN_HEIGHT);
-//        Screen.getScreens().addListener(new ListChangeListener(){
-//            @Override public void onChanged(ListChangeListener.Change change) {
-//                if(Screen.getScreens().size() > 0) {
-//                    switch(Screen.getPrimary().getOrientation()) {
-//                        case Screen.OrientationPortraitUpsideDown:
-//                        case Screen.OrientationPortrait:
-//                            stage.setWidth(SCREEN_WIDTH);
-//                            stage.setHeight(SCREEN_HEIGHT);
-//                            break;
-//                        case Screen.OrientationLandscapeLeft:
-//                        case Screen.OrientationLandscapeRight:
-//                            stage.setWidth(SCREEN_HEIGHT);
-////                                stage.setHeight(SCREEN_WIDTH);
-//                            break;
-//                    }
-//                    switch(Screen.getPrimary().getOrientation()) {
-//                        case Screen.OrientationPortraitUpsideDown:
-//                            javafx.ext.ios.IOSApplication.setStatusBarOrientationAnimated(javafx.ext.ios.StatusBarOrientation.PORTRAIT_UPSIDE_DOWN, false);
-//                            break;
-//                        case Screen.OrientationPortrait:
-//                            javafx.ext.ios.IOSApplication.setStatusBarOrientationAnimated(javafx.ext.ios.StatusBarOrientation.PORTRAIT, false);
-//                            break;
-//                        case Screen.OrientationLandscapeLeft:
-//                            javafx.ext.ios.IOSApplication.setStatusBarOrientationAnimated(javafx.ext.ios.StatusBarOrientation.LANDSCAPE_RIGHT, false);
-//                            break;
-//                        case Screen.OrientationLandscapeRight:
-//                            javafx.ext.ios.IOSApplication.setStatusBarOrientationAnimated(javafx.ext.ios.StatusBarOrientation.LANDSCAPE_LEFT, false);
-//                            break;
-//                    }
-//                }
-//            }
-//        });
-//    }
 }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java	Fri Nov 01 16:47:21 2013 -0700
@@ -36,8 +36,10 @@
 import javafx.beans.property.ReadOnlyStringWrapper;
 import javafx.beans.value.ChangeListener;
 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;
@@ -72,24 +74,6 @@
  * The home page for ensemble.
  */
 public class HomePage extends ListView<HomePage.HomePageRow> implements Callback<ListView<HomePage.HomePageRow>, ListCell<HomePage.HomePageRow>>, ChangeListener<Number>, Page{
-    private static final Effect RIBBON_EFFECT = BlendBuilder.create()
-            .topInput(
-                    InnerShadowBuilder.create()
-                            .color(Color.rgb(0, 0, 0, 0.75))
-                            .offsetX(1)
-                            .offsetY(1)
-                            .radius(1)
-                            .blurType(BlurType.ONE_PASS_BOX)
-                            .build())
-            .bottomInput(
-                    DropShadowBuilder.create()
-                            .color(Color.rgb(255, 255, 255, 0.33))
-                            .offsetX(1)
-                            .offsetY(1)
-                            .radius(0)
-                            .blurType(BlurType.ONE_PASS_BOX)
-                            .build())
-            .build();
     private static final int ITEM_WIDTH = 216;
     private static final int ITEM_HEIGHT = 162;
     private static final int ITEM_GAP = 32;
@@ -98,15 +82,13 @@
     private int numberOfColumns = -1;
     private final HomePageRow HIGHLIGHTS_ROW = new HomePageRow(RowType.Highlights,null,null);
     private final PageBrowser pageBrowser;
-    private final ReadOnlyStringProperty titleProperty = new ReadOnlyStringWrapper("JavaFX Ensemble");
+    private final ReadOnlyStringProperty titleProperty = new ReadOnlyStringWrapper();
 
     public HomePage(PageBrowser pageBrowser) {
         this.pageBrowser = pageBrowser;
-        getStyleClass().clear();
         setId("HomePage");
         // don't use any of the standard ListView CSS
-        //   getStyleClass().clear();
-
+        getStyleClass().clear();
         // listen for when the list views width changes and recalculate number of columns
         widthProperty().addListener(this);
         // set our custom cell factory
@@ -133,8 +115,7 @@
     @Override public void changed(ObservableValue<? extends Number> observableValue, Number number, Number newWidth) {
         // calculate new number of columns that will fit
         double width = newWidth.doubleValue();
-        width -= MIN_MARGIN + MIN_MARGIN;
-        width += ITEM_GAP;
+        width -= 60;
         final int newNumOfColumns = Math.max(1, (int) (width / (ITEM_WIDTH + ITEM_GAP)));
         // our size may have changed, so see if we need to rebuild items list
         if (numberOfColumns != newNumOfColumns) {
@@ -189,11 +170,13 @@
     private Map<SampleInfo, Button> buttonCache = new WeakHashMap<>();
 
     private static int cellCount = 0;
-    
+    private static final PseudoClass TITLE_PSEUDO_CLASS = PseudoClass.getPseudoClass(RowType.Title.toString());
+
     private class HomeListCell extends ListCell<HomePageRow> implements Callback<Integer,Node>,  Skin<HomeListCell> {
         private static final double HIGHLIGHTS_HEIGHT = 430;
-        private static final double RIBBON_HEIGHT = 58;
-        private static final double DEFAULT_HEIGHT = 208;
+        private static final double RIBBON_HEIGHT = 60;
+        private static final double DEFAULT_HEIGHT = 230;
+        private static final double DEFAULT_WIDTH = 100;
         private double height = DEFAULT_HEIGHT;
         int cellIndex;
         private RowType oldRowType = null;
@@ -208,24 +191,34 @@
             setSkin(this);
         }
 
-        @Override
-        protected double computeMaxHeight(double d) {
+        @Override protected double computeMaxHeight(double d) {
             return height;
         }
 
-        @Override
-        protected double computePrefHeight(double d) {
+        @Override protected double computePrefHeight(double d) {
             return height;
         }
 
-        @Override
-        protected double computeMinHeight(double d) {
+        @Override protected double computeMinHeight(double d) {
             return height;
         }
-        
+
+        @Override protected double computeMaxWidth(double height) {
+            return Double.MAX_VALUE;
+        }
+
+        @Override protected double computePrefWidth(double height) {
+            return DEFAULT_WIDTH;
+        }
+
+        @Override protected double computeMinWidth(double height) {
+            return DEFAULT_WIDTH;
+        }
+
         // CELL METHODS
         @Override protected void updateItem(HomePageRow item, boolean empty) {
             super.updateItem(item, empty);
+            box.pseudoClassStateChanged(TITLE_PSEUDO_CLASS,item !=null && item.rowType == RowType.Title);
             if (item == null) {
                 oldRowType = null;
                 box.getChildren().clear();
@@ -241,14 +234,15 @@
                                 pagination = new Pagination(Samples.HIGHLIGHTS.length);
                                 pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET);
                                 pagination.setMaxWidth(USE_PREF_SIZE);
+                                pagination.setMaxHeight(USE_PREF_SIZE);
                                 pagination.setPageFactory(this);
                                 paginationCache = new WeakReference<>(pagination);
                             }
                             if (highlightRibbon == null) {
                                 highlightRibbon = new ImageView(new Image(getClass().getResource("images/highlights-ribbon.png").toExternalForm()));
                                 highlightRibbon.setManaged(false);
-                                highlightRibbon.layoutXProperty().bind(pagination.layoutXProperty().subtract(4));
-                                highlightRibbon.layoutYProperty().bind(pagination.layoutYProperty().subtract(4));
+                                highlightRibbon.layoutXProperty().bind(pagination.layoutXProperty().add(5));
+                                highlightRibbon.layoutYProperty().bind(pagination.layoutYProperty().add(5));
                             }
                             box.setAlignment(Pos.CENTER);
                             box.getChildren().setAll(pagination, highlightRibbon);
@@ -258,11 +252,11 @@
                         height = RIBBON_HEIGHT;
                         SectionRibbon ribbon = ribbonsCache.get(item.title);
                         if (ribbon == null) {
-                            ribbon = new SectionRibbon(item.title);
+                            ribbon = new SectionRibbon(item.title.toUpperCase());
                             ribbonsCache.put(item.title, ribbon);
                         }
                         box.getChildren().setAll(ribbon);
-                        box.setAlignment(Pos.CENTER_LEFT);
+                        box.setAlignment(Pos.CENTER);
                         break;
                     case Samples:
                         height = DEFAULT_HEIGHT;
@@ -333,25 +327,34 @@
         }
     }
 
-    private static class SectionRibbon extends Region {
-        private Text textNode = new Text();
+    private static class SectionRibbon extends Text {
         public SectionRibbon(String text) {
-            textNode.setText(text);
-            getStyleClass().add("section-ribbon");
-            textNode.setFill(Color.web("#0059a9"));
-            textNode.setStyle("-fx-font-family: 'Bree Serif'; -fx-font-size: 16");
-            setPrefHeight(38);
-            setMaxWidth(USE_PREF_SIZE);
-            textNode.setEffect(RIBBON_EFFECT);
-            getChildren().add(textNode);
-        }
-
-        public void setText(String text) {
-            textNode.setText(text);
-        }
-
-        @Override protected void layoutChildren() {
-            textNode.relocate(30, snapPosition((getHeight() - textNode.getBoundsInParent().getHeight()) / 2) - 3);
+            super(text);
+            getStyleClass().add("section-ribbon-text");
         }
     }
+//    private static class SectionRibbon extends Region {
+//        private Text textNode = new Text();
+//        public SectionRibbon(String text) {
+//            textNode.setText(text);
+//            textNode.getStyleClass().add("section-ribbon-text");
+//            getStyleClass().add("section-ribbon");
+//            setPrefHeight(50);
+//            setMaxWidth(USE_PREF_SIZE);
+//    //        textNode.setEffect(RIBBON_EFFECT);
+//            getChildren().add(textNode);
+//        }
+//
+//        public void setText(String text) {
+//            textNode.setText(text);
+//        }
+//
+//        @Override protected void layoutChildren() {
+//            final Bounds textBounds = textNode.getBoundsInParent();
+//            System.out.println("textBounds = " + textBounds);
+//            System.out.println("getWidth() = " + getWidth());
+//            textNode.relocate(0,
+//                    snapPosition((getHeight() - textBounds.getHeight()) / 2) - 3);
+//        }
+//    }
 }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/PageBrowser.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/PageBrowser.java	Fri Nov 01 16:47:21 2013 -0700
@@ -31,6 +31,7 @@
  */
 package ensemble;
 
+import ensemble.samplepage.SourcePage;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ReadOnlyBooleanProperty;
 import javafx.beans.property.ReadOnlyStringProperty;
@@ -152,6 +153,20 @@
             } else {
                 throw new UnsupportedOperationException("Unknown sample url ["+url+"]");
             }
+        } else if (url.startsWith("sample-src://")) {
+            String samplePath = url.substring("sample-src://".length());
+            if (samplePath.contains("?")) {
+                samplePath = samplePath.substring(0, samplePath.indexOf('?') - 1);
+            }
+            sample = Samples.ROOT.sampleForPath(samplePath);
+            if (sample != null) {
+                SourcePage sourcePage = new SourcePage();
+                sourcePage.setSampleInfo(sample);
+                currentPage = sourcePage;
+                getChildren().add(currentPage.getNode());
+            } else {
+                throw new UnsupportedOperationException("Unknown sample url ["+url+"]");
+            }
         } else {
             throw new UnsupportedOperationException("Unknown ensemble page url ["+url+"]");
         }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/SampleInfo.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/SampleInfo.java	Fri Nov 01 16:47:21 2013 -0700
@@ -44,6 +44,7 @@
 import javafx.application.ConditionalFeature;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
+import javafx.geometry.Insets;
 import javafx.geometry.Pos;
 import javafx.geometry.Side;
 import javafx.scene.Node;
@@ -52,13 +53,8 @@
 import javafx.scene.control.Label;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
-import javafx.scene.layout.Background;
-import javafx.scene.layout.BackgroundImage;
-import javafx.scene.layout.BackgroundPosition;
-import javafx.scene.layout.BackgroundRepeat;
-import javafx.scene.layout.BackgroundSize;
-import javafx.scene.layout.Pane;
-import javafx.scene.layout.Region;
+import javafx.scene.layout.*;
+import javafx.scene.paint.Color;
 
 /**
  * Descriptor for a ensemble sample. Everything the ui needs is determined at 
@@ -152,14 +148,21 @@
         Region label = new Region();
         if (previewUrl != null) {
             String url = getClass().getResource(previewUrl).toExternalForm();
-            label.setBackground(new Background(
-                new BackgroundImage(
-                    getImage(url), 
-                    BackgroundRepeat.NO_REPEAT, 
-                    BackgroundRepeat.NO_REPEAT, 
-                    new BackgroundPosition(Side.LEFT,5,false, Side.TOP,5,false), 
-                    new BackgroundSize(206, 152, false, false, false, false)
-                )));
+            label.setBackground(
+                    new Background(
+                            new BackgroundFill[]{
+                                new BackgroundFill(Color.WHITE, CornerRadii.EMPTY, Insets.EMPTY)
+                            },
+                            new BackgroundImage[]{
+                                new BackgroundImage(
+                                    getImage(url),
+                                    BackgroundRepeat.NO_REPEAT,
+                                    BackgroundRepeat.NO_REPEAT,
+                                    new BackgroundPosition(Side.LEFT,5,false, Side.TOP,5,false),
+                                    new BackgroundSize(206, 152, false, false, false, false)
+                                )
+                            }
+                    ));
         }
         label.getStyleClass().add("sample-medium-preview");
         label.setMinSize(216, 162);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java	Fri Nov 01 16:47:21 2013 -0700
@@ -336,7 +336,7 @@
         
         title = new Text(page.getPageTitle());
         title.getStyleClass().add("popover-title");
-        title.setFill(Color.WHITE);
+        //debtest title.setFill(Color.WHITE);
         title.setTextOrigin(VPos.CENTER);
         title.setTranslateX(newPageX + (int) ((pageWidth - title.getLayoutBounds().getWidth()) / 2d));
         titlesPane.getChildren().add(title);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/control/SearchBox.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/control/SearchBox.java	Fri Nov 01 16:47:21 2013 -0700
@@ -49,7 +49,7 @@
     private final Region icon = new Region();
 
     public SearchBox() {
-        getStyleClass().setAll("search-box");
+        getStyleClass().addAll("search-box");
         icon.getStyleClass().setAll("search-box-icon");
         innerBackground.getStyleClass().setAll("search-box-inner");
         setPromptText("Search");
--- a/apps/samples/Ensemble8/src/app/java/ensemble/control/TitledToolBar.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/control/TitledToolBar.java	Fri Nov 01 16:47:21 2013 -0700
@@ -58,7 +58,7 @@
     public void setTitleText(String text) { titleText.set(text);}
 
     public TitledToolBar() {
-        getStyleClass().add("ensmeble-tool-bar");
+        getStyleClass().addAll("tool-bar","ensmeble-tool-bar");
         titleLabel.getStyleClass().add("title");
         titleLabel.setManaged(false);
         titleLabel.textProperty().bind(titleText);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/BackPage.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.samplepage;
-
-import javafx.geometry.HPos;
-import javafx.geometry.VPos;
-import javafx.scene.layout.Region;
-
-
-/**
- *
- */
-class BackPage extends Region {
-    private Sources sources;
-    private final SamplePage samplePage;
-
-    BackPage(final SamplePage samplePage) {
-        this.samplePage = samplePage;
-        getStyleClass().add("sample-back-page");
-        sources = new Sources(samplePage);
-        getChildren().setAll(sources);
-    }
-
-    @Override protected void layoutChildren() {
-        super.layoutChildren();
-        if (getWidth() > getHeight()) {
-            // Landscape layout
-            final double RIGHT = 60;
-            final double LEFT = 80;
-            double w = getWidth() - RIGHT - LEFT;
-            layoutInArea(sources, LEFT, SamplePage.INDENT, w, getHeight() - SamplePage.INDENT * 2, 0, HPos.LEFT, VPos.TOP);
-        } else {
-            // Portrait layout
-            final double TOP = 80;
-            final double RIGHT = SamplePage.INDENT;
-            final double BOTTOM = 70;
-            layoutInArea(sources, SamplePage.INDENT, TOP, getWidth() - RIGHT - SamplePage.INDENT, getHeight() - BOTTOM - TOP, 0, HPos.LEFT, VPos.TOP);
-        }
-    }
-}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java	Fri Nov 01 16:47:21 2013 -0700
@@ -31,116 +31,116 @@
  */
 package ensemble.samplepage;
 
-
+import ensemble.EnsembleApp;
 import ensemble.SampleInfo;
 import ensemble.SampleInfo.URL;
 import ensemble.generated.Samples;
-import static ensemble.samplepage.FrontPage.*;
-import static ensemble.samplepage.SamplePage.*;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
-import javafx.scene.control.Hyperlink;
-import javafx.scene.control.Label;
-import javafx.scene.control.LabelBuilder;
-import javafx.scene.control.ScrollPane;
-import javafx.scene.control.ScrollPaneBuilder;
-import javafx.scene.layout.ColumnConstraintsBuilder;
-import javafx.scene.layout.GridPane;
-import javafx.scene.layout.GridPaneBuilder;
-import javafx.scene.layout.VBox;
-import javafx.scene.layout.VBoxBuilder;
-import javafx.util.Callback;
+import javafx.geometry.Insets;
+import javafx.scene.control.*;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+import javafx.scene.layout.*;
+import javafx.scene.text.Text;
 
+import static ensemble.samplepage.SamplePageContent.title;
+import static ensemble.samplepage.SamplePage.INDENT;
 
 /**
- *
+ * Description Section on Sample Page
  */
-public class Description extends VBox {
-    
+public class Description extends GridPane {
+    private static final Image ORANGE_ARROW = new Image(EnsembleApp.class.getResource("images/orange-arrrow.png").toExternalForm());
     private final SamplePage samplePage;
     private final Label description;
     private final VBox relatedDocumentsList;
     private final VBox relatedSamples;
     
     public Description(final SamplePage samplePage) {
-        super(INDENT);
+        setVgap(INDENT);
+        setHgap(INDENT);
         this.samplePage = samplePage;
         getStyleClass().add("sample-page-box");
 
+        // Setup Columns
+        ColumnConstraints leftColumn = new ColumnConstraints();
+        leftColumn.setPercentWidth(50);
+        ColumnConstraints rightColumn = new ColumnConstraints();
+        rightColumn.setPercentWidth(50);
+        getColumnConstraints().addAll(leftColumn,rightColumn);
+
+        // Add Description
+        Text descriptionTitle = title("DESCRIPTION");
+        setConstraints(descriptionTitle,0,0,2,1);
+        description = new Label();
+        description.setWrapText(true);
+        description.setMinHeight(Label.USE_PREF_SIZE);
+        description.setPadding(new Insets(8,0,8,0));
+        setConstraints(description, 0, 1, 2, 1);
+
+        // Add View Source Hyperlink
+        Hyperlink sourceBtn = new Hyperlink("VIEW SOURCE");
+        setConstraints(sourceBtn,0,2,2,1);
+        sourceBtn.getStyleClass().add("sample-page-box-title");
+        sourceBtn.setGraphic(new ImageView(ORANGE_ARROW));
+        sourceBtn.setContentDisplay(ContentDisplay.RIGHT);
+        sourceBtn.setOnAction(event -> {
+            samplePage.pageBrowser.goToPage(samplePage.getUrl().replaceFirst("sample://", "sample-src://"));
+        });
+
+        // Add Related Documents
+        Text relatedDocumentsTitle = title("RELATED DOCUMENTS");
+        setConstraints(relatedDocumentsTitle,0,3);
         relatedDocumentsList = new VBox();
-        ScrollPane relatedDocumentsScrollPane = ScrollPaneBuilder.create()
-                .content(relatedDocumentsList)
-                .fitToHeight(true)
-                .fitToWidth(true)
-                .pannable(true)
-                .build();
+        ScrollPane relatedDocumentsScrollPane = new ScrollPane(relatedDocumentsList);
+        setConstraints(relatedDocumentsScrollPane,0,4);
+        relatedDocumentsScrollPane.setFitToHeight(true);
+        relatedDocumentsScrollPane.setFitToWidth(true);
         relatedDocumentsScrollPane.prefHeightProperty().bind(heightProperty());
         relatedDocumentsScrollPane.getStyleClass().clear();
-        
-        VBox relatedDocuments = VBoxBuilder.create()
-                .children(
-                    title("RELATED DOCUMENTS"), 
-                    relatedDocumentsScrollPane
-                )
-                .build();
-        relatedSamples = VBoxBuilder.create()
-                .children(title("RELATED SAMPLES"))
-                .build();
-        
-        GridPane gridPane = GridPaneBuilder.create()
-                .columnConstraints(
-                    ColumnConstraintsBuilder.create()
-                        .percentWidth(50)
-                        .build(), 
-                    ColumnConstraintsBuilder.create()
-                        .percentWidth(50)
-                        .build()
-                )
-                .build();
-        gridPane.addRow(0, relatedDocuments, relatedSamples);
-        
-        description = LabelBuilder.create()
-                .wrapText(true)
-                .minHeight(Label.USE_PREF_SIZE)
-                .build();
 
-        samplePage.registerSampleInfoUpdater(new Callback<SampleInfo, Void>() {
-
-            @Override
-            public Void call(SampleInfo sampleInfo) {
-                update(sampleInfo);
-                return null;
-            }
-        });
+        // Add Related Samples
+        Text relatedSamplesTitle = title("RELATED SAMPLES");
+        setConstraints(relatedSamplesTitle,1,3);
+        relatedSamples = new VBox();
+        setConstraints(relatedSamples,1,4);
 
         getChildren().addAll(
-                title("DESCRIPTION"), description, 
-                gridPane);
+                descriptionTitle,
+                description,
+                relatedDocumentsTitle,
+                relatedDocumentsScrollPane,
+                relatedSamplesTitle,
+                relatedSamples
+                );
+        if (!EnsembleApp.IS_EMBEDDED) getChildren().add(sourceBtn);
+
+        // listen for when sample changes
+        samplePage.registerSampleInfoUpdater(sampleInfo -> {
+            update(sampleInfo);
+            return null;
+        });
     }
 
     private void update(SampleInfo sampleInfo) {
         relatedDocumentsList.getChildren().clear();
         for (final URL docUrl : sampleInfo.getDocURLs()) {
             Hyperlink link = new Hyperlink(docUrl.getName());
-            link.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent t) {
-                    samplePage.pageBrowser.goToPage(docUrl.getURL());
-                }
+            link.setOnAction(t -> {
+                samplePage.pageBrowser.goToPage(docUrl.getURL());
             });
+            link.setTooltip(new Tooltip(docUrl.getName()));
             relatedDocumentsList.getChildren().add(link);
         }
         for (final String classpath : sampleInfo.apiClasspaths) {
             Hyperlink link = new Hyperlink(classpath.replace('$', '.'));
-            link.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent t) {
-                    samplePage.pageBrowser.goToPage(samplePage.apiClassToUrl(classpath));
-                }
+            link.setOnAction(t -> {
+                samplePage.pageBrowser.goToPage(samplePage.apiClassToUrl(classpath));
             });
             relatedDocumentsList.getChildren().add(link);
         }
-        relatedSamples.getChildren().setAll(relatedSamples.getChildren().get(0));
+        relatedSamples.getChildren().clear();
         for (final SampleInfo.URL sampleURL : sampleInfo.getRelatedSampleURLs()) {
             if (Samples.ROOT.sampleForPath(sampleURL.getURL()) != null) { //Check if sample exists
                 Hyperlink sampleLink = new Hyperlink(sampleURL.getName());
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/FrontPage.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.samplepage;
-
-
-import ensemble.SampleInfo;
-import static ensemble.samplepage.SamplePage.INDENT;
-import javafx.scene.Node;
-import javafx.scene.control.Label;
-import javafx.scene.control.LabelBuilder;
-import javafx.scene.layout.Region;
-import javafx.util.Callback;
-
-
-/**
- *
- */
-class FrontPage extends Region {
-    
-    private Node playground;
-    private Description description;
-    private SampleContainer sampleContainer;
-    private boolean needsPlayground;
-    final SamplePage samplePage;
-
-    FrontPage(final SamplePage samplePage) {
-        this.samplePage = samplePage;
-        getStyleClass().add("sample-page-front");
-        playground = new PlaygroundNode(samplePage);
-        description = new Description(samplePage);
-        setStyle("-fx-background-color: rgb(238, 238, 238);");
-        samplePage.registerSampleInfoUpdater(new Callback<SampleInfo, Void>() {
-
-            @Override
-            public Void call(SampleInfo sampleInfo) {
-                update(sampleInfo);
-                return null;
-            }
-        });
-    }
-
-    @Override protected void layoutChildren() {
-        super.layoutChildren();
-        
-        double maxWidth = getWidth() - 2 * INDENT;
-        double maxHeight = getHeight() - 2 * INDENT;
-        
-        boolean landscape = getWidth() >= getHeight();
-        boolean wide = getWidth() >= getHeight() * 1.5;
-        if (wide) {
-
-            // Sample on right, everything else on left
-            double x = Math.round(getWidth() / 2 + INDENT / 2);
-            double w = getWidth() - INDENT - x;
-            sampleContainer.resizeRelocate(x, INDENT, (getWidth() - 3 * INDENT) / 2, maxHeight);
-            if (needsPlayground) {
-                double h = (getHeight() - INDENT * 3) / 2;
-                description.resizeRelocate(INDENT, INDENT, w, h);
-                playground.resizeRelocate(INDENT, Math.round(INDENT * 2 + h), w, h);
-            } else {
-                description.resizeRelocate(INDENT, INDENT, w, maxHeight);
-            }
-        } else {
-
-            // Sample on top, everything else on bottom
-            sampleContainer.resizeRelocate(INDENT, INDENT, maxWidth, (getHeight() - 3 * INDENT) / 2);
-            double y = Math.round(getHeight() / 2 + INDENT / 2);
-            if (landscape) {
-                double h = getHeight() - INDENT - y;
-                if (needsPlayground) {
-                    double w = (getWidth() - INDENT * 3) / 2;
-                    playground.resizeRelocate(INDENT, y, w, h);
-                    description.resizeRelocate(Math.round(INDENT * 2 + w), y, w, h);
-                } else {
-                    description.resizeRelocate(INDENT, y, maxWidth, h);
-                }
-            } else {
-                double w = getWidth() - INDENT * 2;
-                if (needsPlayground) {
-                    double h = (getHeight() - INDENT * 2 - y) / 2;
-                    playground.resizeRelocate(INDENT, y, w, h);
-                    description.resizeRelocate(INDENT, Math.round(y + h + INDENT), w, h);
-                } else {
-                    double h = getHeight() - INDENT - y;
-                    description.resizeRelocate(INDENT, y, w, h);
-                }
-            }
-        }
-    }
-
-    static Label title(String text) {
-        return LabelBuilder.create().text(text).styleClass("sample-page-box-title").build();
-    }
-
-    private void update(SampleInfo sampleInfo) {
-        sampleContainer = new SampleContainer(samplePage.sampleRuntimeInfoProperty.get().getSampleNode());
-        sampleContainer.getStyleClass().add("sample-page-sample-node");
-        needsPlayground = sampleInfo.needsPlayground();
-        if (needsPlayground) {
-            getChildren().setAll(playground, description, sampleContainer);
-        } else {
-            getChildren().setAll(description, sampleContainer);
-        }
-    }
-}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/IPhoneLayout.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.samplepage;
-
-import ensemble.SampleInfo;
-import javafx.beans.binding.ObjectBinding;
-import javafx.geometry.Pos;
-import javafx.scene.Parent;
-import javafx.scene.control.Toggle;
-import javafx.scene.control.ToggleButtonBuilder;
-import javafx.scene.control.ToggleGroup;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.HBoxBuilder;
-import javafx.scene.layout.Region;
-import javafx.util.Callback;
-
-/**
- *
- */
-public class IPhoneLayout extends Region {
-
-    private final SamplePage samplePage;
-    private final PlaygroundTabs playground;
-    private SampleContainer sample;
-    private final Description description;
-    private final Sources sources;
-    private final Parent iPhoneTabs;
-    
-    public IPhoneLayout(SamplePage samplePage) {
-        this.samplePage = samplePage;
-        description = new Description(samplePage);
-        sources = new Sources(samplePage);
-        playground = new PlaygroundTabs(samplePage);
-        iPhoneTabs = buildIPhoneTabs();
-        getStyleClass().add("sample-page-iphone");
-        samplePage.registerSampleInfoUpdater(new Callback<SampleInfo, Void>() {
-
-            @Override
-            public Void call(SampleInfo sampleInfo) {
-                update(sampleInfo);
-                return null;
-            }
-        });
-    }
-
-    private void update(SampleInfo sampleInfo) {
-        sample = new SampleContainer(samplePage.sampleRuntimeInfoProperty.get().getSampleNode());
-        if (sampleInfo.needsPlayground()) {
-            getChildren().addAll(playground, sample, description, sources, iPhoneTabs);
-        } else {
-            getChildren().addAll(sample, description, sources, iPhoneTabs);
-        }
-    }
-
-    @Override protected void layoutChildren() {
-        super.layoutChildren();
-        
-        double w = getWidth();
-        double bh = iPhoneTabs.prefHeight(w);
-        double sh = getHeight() - bh;
-        
-        if (playground != null) {
-            playground.resizeRelocate(0, 0, w, sh);
-        }
-        sample.resizeRelocate(0, 0, w, sh);
-        description.resizeRelocate(0, 0, w, sh);
-        sources.resizeRelocate(0, 0, w, sh);
-        iPhoneTabs.resizeRelocate(0, sh, w, bh);
-    }
-    
-    private Parent buildIPhoneTabs() {
-        final ToggleGroup shownPage = new ToggleGroup();
-        ObjectBinding<Object> selectedToggleUserData = new ObjectBinding<Object>() {
-
-                    {
-                        bind(shownPage.selectedToggleProperty());
-                    }
-
-                    @Override
-                    protected Object computeValue() {
-                        Toggle selectedToggle = shownPage.getSelectedToggle();
-                        if (selectedToggle == null) {
-                            return null;
-                        } else {
-                            return selectedToggle.getUserData();
-                        }
-                    }
-                };
-        if (playground != null) {
-            playground.visibleProperty().bind(selectedToggleUserData.isEqualTo(playground));
-        }
-        sample.visibleProperty().bind(selectedToggleUserData.isEqualTo(sample));
-        description.visibleProperty().bind(selectedToggleUserData.isEqualTo(description));
-        sources.visibleProperty().bind(selectedToggleUserData.isEqualTo(sources));
-        
-        HBox hbox = HBoxBuilder.create()
-                .styleClass("sample-page-iphone-bottom-bar")
-                .alignment(Pos.CENTER)
-                .children(
-                    ToggleButtonBuilder.create()
-                        .text("Description")
-                        .toggleGroup(shownPage)
-                        .userData(description)
-                        .build(),
-                    ToggleButtonBuilder.create()
-                        .text("Sample")
-                        .toggleGroup(shownPage)
-                        .selected(true)
-                        .userData(sample)
-                        .build()
-                ).build();
-        if (playground != null) {
-            hbox.getChildren().add(
-                    ToggleButtonBuilder.create()
-                        .text("Playground")
-                        .toggleGroup(shownPage)
-                        .userData(playground)
-                        .build());
-        }
-        hbox.getChildren().add(
-                ToggleButtonBuilder.create()
-                    .text("Sources")
-                    .toggleGroup(shownPage)
-                    .userData(sources)
-                    .build());
-        return hbox;
-    }
-}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundNode.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundNode.java	Fri Nov 01 16:47:21 2013 -0700
@@ -32,18 +32,21 @@
 package ensemble.samplepage;
 
 
-import static ensemble.samplepage.FrontPage.*;
+import static ensemble.samplepage.SamplePageContent.*;
+
+import javafx.geometry.Pos;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.VBox;
 
 
 /**
- *
+ * Playground section on Sample Page
  */
 public class PlaygroundNode extends VBox {
 
     public PlaygroundNode(SamplePage samplePage) {
         PlaygroundTabs playgroundTabs = new PlaygroundTabs(samplePage);
+        setAlignment(Pos.TOP_LEFT);
         getChildren().setAll(
                 title("PLAYGROUND"), 
                 playgroundTabs);
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SampleContainer.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SampleContainer.java	Fri Nov 01 16:47:21 2013 -0700
@@ -36,9 +36,8 @@
 import javafx.scene.Parent;
 import javafx.scene.layout.Region;
 
-
 /**
- *
+ * Container for a Sample, responsible for sizing and centering sample
  */
 public class SampleContainer extends Region {
         
@@ -50,13 +49,8 @@
         resizable = sampleNode.isResizable() && 
                 (sampleNode.maxWidth(-1) == 0 || sampleNode.maxWidth(-1) > sampleNode.minWidth(-1))
                 && (sampleNode.maxHeight(-1) == 0 || sampleNode.maxHeight(-1) > sampleNode.minHeight(-1));
-//            System.out.println("sampleNode.isResizable() = " + sampleNode.isResizable());
-//            System.out.println("sampleNode.maxWidth(-1) = " + sampleNode.maxWidth(-1));
-//            System.out.println("sampleNode.minWidth(-1) = " + sampleNode.minWidth(-1));
-//            System.out.println("sampleNode.maxHeight(-1) = " + sampleNode.maxHeight(-1));
-//            System.out.println("sampleNode.minHeight(-1) = " + sampleNode.minHeight(-1));
-//            System.out.println("resizable = " + resizable);
         getChildren().add(sampleNode);
+        getStyleClass().add("sample-container");
     }
 
     @Override protected void layoutChildren() {
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java	Fri Nov 01 16:47:21 2013 -0700
@@ -31,14 +31,11 @@
  */
 package ensemble.samplepage;
 
-import ensemble.EnsembleApp;
 import ensemble.Page;
 import ensemble.PageBrowser;
 import ensemble.SampleInfo;
 import static ensemble.SampleInfo.SampleRuntimeInfo;
-import ensemble.control.BendingPages;
-import ensemble.util.Utils;
-import java.util.regex.Pattern;
+
 import javafx.beans.binding.ObjectBinding;
 import javafx.beans.binding.StringBinding;
 import javafx.beans.property.ObjectProperty;
@@ -46,37 +43,27 @@
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.property.SimpleStringProperty;
 import javafx.beans.property.StringProperty;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.geometry.Point2D;
 import javafx.scene.Node;
-import javafx.scene.layout.Region;
-import javafx.scene.paint.Color;
+import javafx.scene.layout.StackPane;
 import javafx.util.Callback;
 
 /**
  * Page for showing a sample
  */
-public class SamplePage extends Region implements Page {
+public class SamplePage extends StackPane implements Page {
     static final double INDENT = 8;
     final ObjectProperty<SampleInfo> sampleInfoProperty = new SimpleObjectProperty<>();
     private final StringProperty titleProperty = new SimpleStringProperty();
     PageBrowser pageBrowser;
     final ObjectProperty<SampleRuntimeInfo> sampleRuntimeInfoProperty = new SimpleObjectProperty<>();
-    private final SlidingPages slidingPages;
-    private final BendingPages bendingPages;
 
     public SamplePage(SampleInfo sampleInfo, String url, final PageBrowser pageBrowser) {
         sampleInfoProperty.set(sampleInfo);
         this.pageBrowser = pageBrowser;
         getStyleClass().add("sample-page");
         titleProperty.bind(new StringBinding() {
-            {
-                bind(sampleInfoProperty);
-            }
-
-            @Override
-            protected String computeValue() {
+            { bind(sampleInfoProperty); }
+            @Override protected String computeValue() {
                 SampleInfo sample = SamplePage.this.sampleInfoProperty.get();
                 if (sample != null) {
                     return sample.name;
@@ -86,55 +73,18 @@
             }
         });
         sampleRuntimeInfoProperty.bind(new ObjectBinding<SampleRuntimeInfo>() {
-            {
-                bind(sampleInfoProperty);
-            }
-
-            @Override
-            protected SampleRuntimeInfo computeValue() {
+            { bind(sampleInfoProperty); }
+            @Override protected SampleRuntimeInfo computeValue() {
                 return sampleInfoProperty.get().buildSampleNode();
             }
         });
 
-        if (EnsembleApp.IS_IPHONE) {
-            IPhoneLayout iPhoneLayout = new IPhoneLayout(this);
-            iPhoneLayout.prefWidthProperty().bind(widthProperty());
-            iPhoneLayout.prefHeightProperty().bind(heightProperty());
-            getChildren().setAll(iPhoneLayout);
-        } else {
-            FrontPage frontPage = new FrontPage(this);
-            BackPage backPage = new BackPage(this);
-
-            if (EnsembleApp.IS_EMBEDDED || EnsembleApp.IS_IOS) {
-                bendingPages = null;
-                slidingPages = new SlidingPages();
-                slidingPages.prefWidthProperty().bind(widthProperty());
-                slidingPages.prefHeightProperty().bind(heightProperty());
-                slidingPages.setFrontPage(frontPage);
-                slidingPages.setBackPage(backPage);
-                getChildren().setAll(slidingPages);
-            } else {
-                slidingPages = null;
-                bendingPages = new BendingPages();
-                bendingPages.prefWidthProperty().bind(widthProperty());
-                bendingPages.prefHeightProperty().bind(heightProperty());
-                bendingPages.setFrontPage(frontPage);
-                bendingPages.setBackPage(backPage);
-                bendingPages.setColors(Color.rgb(3, 95, 188), Color.rgb(4, 164, 231), Color.rgb(0, 57, 117));
-                bendingPages.setClosedOffset(new Point2D(50, 40));
-                getChildren().setAll(bendingPages);
-            }
-        }
+        SamplePageContent frontPage = new SamplePageContent(this);
+        getChildren().setAll(frontPage);
     }
 
     public void update(SampleInfo sampleInfo, String url) {
         sampleInfoProperty.set(sampleInfo);
-        if (slidingPages != null) {
-            slidingPages.reset();
-        }
-        if (bendingPages != null) {
-            bendingPages.reset();
-        }
     }
 
     @Override public ReadOnlyStringProperty titleProperty() {
@@ -162,112 +112,14 @@
         }
     }
 
-    private String shCoreJs;
-    private String shBrushJScript;
-    private String shCoreDefaultCss;
-    
-    private static final Pattern JAVA_DOC_PATTERN = Pattern.compile("(^\\s+\\*$\\s)?^\\s+\\*\\s+@.*$\\s",Pattern.MULTILINE);
-    String convertToHTML(String source) {
-        // load syntax highlighter
-        if (shCoreJs == null) {
-            shCoreJs = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shCore.js")) +";";
-        }
-        if (shBrushJScript == null) {
-            shBrushJScript = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shBrushJava.js"));
-        }
-        if (shCoreDefaultCss == null) {
-            shCoreDefaultCss = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shCoreDefault.css")).replaceAll("!important","");
-        }
-        // split copy right and source
-        String[] parts = source.split("\\*/",2);
-        String copyRight = null;
-        if (parts.length > 1) {
-            copyRight = parts[0]+"*/";
-            source = parts[1];
-        }
-        // remove JavaDoc @xxxx lines
-        source = JAVA_DOC_PATTERN.matcher(source).replaceAll("");
-        // escape < & >
-        source = source.replaceAll("&","&amp;");
-        source = source.replaceAll("<","&lt;");
-        source = source.replaceAll(">","&gt;");
-        source = source.replaceAll("\"","&quot;");
-        source = source.replaceAll("\'","&apos;");
-        // create content
-        StringBuilder html = new StringBuilder();
-        html.append("<html>\n");
-        html.append("    <head>\n");
-        html.append("    <script type=\"text/javascript\">\n");
-        html.append(shCoreJs);
-        html.append('\n');
-        html.append(shBrushJScript);
-        html.append("    </script>\n");
-        html.append("    <style>\n");
-        html.append(shCoreDefaultCss);
-        html.append('\n');
-        html.append("        .syntaxhighlighter {\n");
-        html.append("			overflow: visible;\n");
-        if (EnsembleApp.IS_MAC) {
-            html.append("			font: 12px Ayuthaya !important; line-height: 150% !important; \n");
-            html.append("		}\n");
-            html.append("		code { font: 12px Ayuthaya !important; line-height: 150% !important; } \n");
-        } else {
-            html.append("			font: 12px monospace !important; line-height: 150% !important; \n");
-            html.append("		}\n");
-            html.append("		code { font: 12px monospace !important; line-height: 150% !important; } \n");
-        }
-        html.append("		.syntaxhighlighter .preprocessor { color: #060 !important; }\n");
-        html.append("		.syntaxhighlighter .comments, .syntaxhighlighter .comments a  { color: #009300 !important; }\n");
-        html.append("		.syntaxhighlighter .string  { color: #555 !important; }\n");
-        html.append("		.syntaxhighlighter .value  { color: blue !important; }\n");
-        html.append("		.syntaxhighlighter .keyword  { color: #000080 !important; }\n");
-        html.append("		.hidden { display: none; }\n");
-        html.append("           .showing { display: block; }\n");
-        html.append("           .button {\n");
-        html.append("               font: 12px \"Consolas\", \"Bitstream Vera Sans Mono\", \"Courier New\", Courier, monospace !important;\n");
-        html.append("               color: #009300 !important;\n");
-        html.append("               text-decoration: underline;\n");
-        html.append("               display: inline;\n");
-        html.append("               cursor:pointer;\n");
-        html.append("           }\n");
-        html.append("    </style>\n");
-        html.append("    </head>\n");
-        html.append("<body>\n");
-        if (copyRight != null) {
-            html.append("    <div onclick='document.getElementById(\"licenceText\").className = \"showing\";document.getElementById(\"licenseBtn\").className = \"hidden\";' id=\"licenseBtn\" class=\"button\">/* ....Show License.... */</div>\n");
-            html.append("    <div id=\"licenceText\"class=\"hidden\">\n");
-            html.append("    <pre class=\"brush: java; gutter: false; toolbar: false; quick-code: false;\">\n");
-            html.append(copyRight);
-            html.append('\n');
-            html.append("    </pre>\n");
-            html.append("    </div>\n");
-        }
-        html.append("    <pre class=\"brush: java; gutter: false; toolbar: false; quick-code: false;\">\n");
-        html.append(source);
-        html.append('\n');
-        html.append("    </pre>\n");
-        html.append("    <script type=\"text/javascript\"> SyntaxHighlighter.all(); </script>\n");
-        html.append("</body>\n");
-        html.append("</html>\n");
-        
-//        System.out.println("------------------------------------------------------------");
-//        System.out.println(html);
-//        System.out.println("------------------------------------------------------------");
-        return html.toString();
-    }
-
     /**
      * This method is equivalent to bind(ObjectBinding) as it would invoke
      * updater immediately as well as on any change to SampleInfo
      * @param updater a method that updates content for a given SampleInfo
      */
     void registerSampleInfoUpdater(final Callback<SampleInfo, Void> updater) {
-        sampleInfoProperty.addListener(new ChangeListener<SampleInfo>() {
-
-            @Override
-            public void changed(ObservableValue<? extends SampleInfo> ov, SampleInfo t, SampleInfo sampleInfo) {
-                updater.call(sampleInfo);
-            }
+        sampleInfoProperty.addListener((ov, t, sampleInfo) -> {
+            updater.call(sampleInfo);
         });
         updater.call(sampleInfoProperty.get());
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java	Fri Nov 01 16:47:21 2013 -0700
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
+ * All rights reserved. Use is subject to license terms.
+ *
+ * This file is available and licensed under the following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *  - Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the distribution.
+ *  - Neither the name of Oracle Corporation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package ensemble.samplepage;
+
+import ensemble.SampleInfo;
+import javafx.scene.Node;
+import javafx.scene.layout.Region;
+import javafx.scene.text.Text;
+import javafx.util.Callback;
+
+import static ensemble.samplepage.SamplePage.INDENT;
+
+/**
+ * The content for Sample Page
+ */
+class SamplePageContent extends Region {
+    
+    private Node playground;
+    private Description description;
+    private SampleContainer sampleContainer;
+    private boolean needsPlayground;
+    final SamplePage samplePage;
+
+    SamplePageContent(final SamplePage samplePage) {
+        this.samplePage = samplePage;
+        playground = new PlaygroundNode(samplePage);
+        description = new Description(samplePage);
+        samplePage.registerSampleInfoUpdater(new Callback<SampleInfo, Void>() {
+
+            @Override
+            public Void call(SampleInfo sampleInfo) {
+                update(sampleInfo);
+                return null;
+            }
+        });
+    }
+
+    @Override protected void layoutChildren() {
+        super.layoutChildren();
+        
+        double maxWidth = getWidth() - 2 * INDENT;
+        double maxHeight = getHeight() - 2 * INDENT;
+        
+        boolean landscape = getWidth() >= getHeight();
+        boolean wide = getWidth() >= getHeight() * 1.5;
+        if (wide) {
+            // Sample on right, everything else on left
+            double x = Math.round(getWidth() / 2 + INDENT / 2);
+            double w = getWidth() - INDENT - x;
+            sampleContainer.resizeRelocate(x, INDENT, (getWidth() - 3 * INDENT) / 2, maxHeight);
+            if (needsPlayground) {
+                double h = (getHeight() - INDENT * 3) / 2;
+                description.resizeRelocate(INDENT, INDENT, w, h);
+                playground.resizeRelocate(INDENT, Math.round(INDENT * 2 + h), w, h);
+            } else {
+                description.resizeRelocate(INDENT, INDENT, w, maxHeight);
+            }
+        } else {
+            // Sample on top, everything else on bottom
+            sampleContainer.resizeRelocate(INDENT, INDENT, maxWidth, (getHeight() - 3 * INDENT) / 2);
+            double y = Math.round(getHeight() / 2 + INDENT / 2);
+            if (landscape) {
+                double h = getHeight() - INDENT - y;
+                if (needsPlayground) {
+                    double w = (getWidth() - INDENT * 3) / 2;
+                    playground.resizeRelocate(INDENT, y, w, h);
+                    description.resizeRelocate(Math.round(INDENT * 2 + w), y, w, h);
+                } else {
+                    description.resizeRelocate(INDENT, y, maxWidth, h);
+                }
+            } else {
+                double w = getWidth() - INDENT * 2;
+                if (needsPlayground) {
+                    double h = (getHeight() - INDENT * 2 - y) / 2;
+                    playground.resizeRelocate(INDENT, y, w, h);
+                    description.resizeRelocate(INDENT, Math.round(y + h + INDENT), w, h);
+                } else {
+                    double h = getHeight() - INDENT - y;
+                    description.resizeRelocate(INDENT, y, w, h);
+                }
+            }
+        }
+    }
+
+    static Text title(String text) {
+        Text title = new Text(text);
+        title.getStyleClass().add("sample-page-box-title");
+        return title;
+    }
+
+    private void update(SampleInfo sampleInfo) {
+        sampleContainer = new SampleContainer(samplePage.sampleRuntimeInfoProperty.get().getSampleNode());
+        sampleContainer.getStyleClass().add("sample-page-sample-node");
+        needsPlayground = sampleInfo.needsPlayground();
+        if (needsPlayground) {
+            getChildren().setAll(playground, description, sampleContainer);
+        } else {
+            getChildren().setAll(description, sampleContainer);
+        }
+    }
+}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SlidingPages.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.samplepage;
-
-import javafx.animation.TranslateTransitionBuilder;
-import javafx.beans.binding.DoubleBinding;
-import javafx.beans.binding.DoubleExpression;
-import javafx.beans.binding.ObjectBinding;
-import javafx.beans.binding.ObjectExpression;
-import javafx.event.EventHandler;
-import javafx.geometry.Point2D;
-import javafx.scene.Node;
-import javafx.scene.image.ImageView;
-import javafx.scene.input.MouseEvent;
-import javafx.scene.layout.Region;
-import javafx.scene.shape.Polygon;
-
-/**
- *
- */
-public class SlidingPages extends Region {
-    
-    private Region frontPage;
-    private Region backPage;
-    private ImageView actionNode;
-    private SelfPageSlide slide;
-    private Polygon clip;
-
-    public SlidingPages() {
-        actionNode = new ImageView("ensemble/images/corner-top.png");
-        actionNode.setFitWidth(100);
-        actionNode.setFitHeight(100);
-        actionNode.setPickOnBounds(true);
-        getChildren().add(actionNode);
-    }
-
-    public void reset() {
-        slide.reset();
-    }
-
-    @Override protected void layoutChildren() {
-        super.layoutChildren();
-        if (frontPage != null) {
-            frontPage.resize(getWidth(), getHeight());
-        }
-//        if (actionNode != null) {
-//            actionNode.relocate(
-//                    getWidth() - actionNode.getLayoutBounds().getWidth(), 
-//                    getHeight() - actionNode.getLayoutBounds().getHeight());
-//        }
-        if (backPage != null) {
-            backPage.resize(getWidth(), getHeight());
-        }
-    }
-
-    public void setFrontPage(Region frontPage) {
-        if (this.frontPage != null) {
-            getChildren().remove(this.frontPage);
-            actionNode.layoutXProperty().unbind();
-            actionNode.layoutYProperty().unbind();
-        }
-        this.frontPage = frontPage;
-        if (frontPage != null) {
-            getChildren().add(getChildren().indexOf(actionNode), this.frontPage);
-            actionNode.translateXProperty().bind(frontPage.translateXProperty().add(frontPage.widthProperty()).subtract(actionNode.getLayoutBounds().getWidth()));
-            actionNode.translateYProperty().bind(frontPage.translateYProperty().add(frontPage.heightProperty()).subtract(actionNode.getLayoutBounds().getHeight()));
-            frontPage.clipProperty().bind(new ObjectBinding<Node>() {
-               
-                {
-                    bind(widthProperty(), heightProperty());
-                }
-
-                @Override
-                protected Node computeValue() {
-                    if (clip == null) {
-                        clip = new Polygon();
-                    }
-                    
-                    clip.getPoints().setAll(
-                            0d, 0d, 
-                            0d, getHeight(), 
-                            getWidth() - 68, getHeight(),
-                            getWidth() - 53, getHeight() - 8,
-                            getWidth() - 2, getHeight() - 66,
-                            getWidth(), getHeight() - 73,
-                            getWidth(), 0d
-                    );
-                    return clip;
-                }
-            });
-        }
-        setupSlide();
-    }
-
-    public void setBackPage(Region backPage) {
-        if (this.backPage != null) {
-            getChildren().remove(this.backPage);
-        }
-        this.backPage = backPage;
-        if (backPage != null) {
-            getChildren().add(0, this.backPage);
-        }
-        setupSlide();
-    }
-
-    private void setupSlide() {
-        if (frontPage == null || backPage == null) {
-            slide = null;
-            return;
-        }
-        slide = new SelfPageSlide(backPage, frontPage, actionNode, 0, 0, 
-                widthProperty().negate().add(actionNode.getLayoutBounds().getWidth()), 
-                heightProperty().negate().add(actionNode.getLayoutBounds().getHeight()));
-    }
-    
-    public static class SelfPageSlide {
-        private double fromX, fromY;
-        private DoubleExpression toX, toY;
-        private double delta;
-        private double step, prev;
-        private double actualFromX, actualFromY;
-        private Node targetScreen;
-        private Node baseScreen;
-        private ObjectExpression<Point2D> v2;
-        private DoubleExpression quadLenV2;
-
-//        protected void stopCurrentScreen() {
-//            screenNavigator.stop(currentScreen, false);
-//        }
-        
-        private double calcX(double v) {
-            return fromX * (1 - v) + toX.get() * v;
-        }
-        
-        private double calcY(double v) {
-            return fromY * (1 - v) + toY.get() * v;
-        }
-        
-        private double calcValue(double x, double y) {
-            return v2.get().dotProduct(x - fromX, y - fromY) / quadLenV2.get();
-        }
-
-        public SelfPageSlide(Node inCurrentScreen, Node inTargetScreen, final Node actionNode, final double fromX, final double fromY, final DoubleExpression toX, final DoubleExpression toY) {
-//            super(inCurrentScreen);
-            this.fromX = fromX;
-            this.fromY = fromY;
-            this.toX = toX;
-            this.toY = toY;
-            this.targetScreen = inTargetScreen;
-//            removeScreen = false;
-            v2 = new ObjectBinding<Point2D>() {
-                { bind(toX, toY); }
-                @Override protected Point2D computeValue() {
-                    return new Point2D(toX.get() - fromX, toY.get() - fromY);
-                }
-            };
-            quadLenV2 = new DoubleBinding() {
-                { bind(v2); }
-                @Override protected double computeValue() {
-                    return v2.get().getX() * v2.get().getX() + v2.get().getY() * v2.get().getY();
-                }
-            };
-            
-            actionNode.setOnMousePressed(new EventHandler<MouseEvent>() {
-                @Override public void handle(MouseEvent me) {
-                    identifyScreens();
-//                    stopCurrentScreen();
-//                    onTransitionStart();
-//                    targetScreen.toFront();
-                    delta = calcValue(
-                            targetScreen.getTranslateX() - me.getSceneX(), 
-                            targetScreen.getTranslateY() - me.getSceneY());
-                    actualFromX = targetScreen.getTranslateX();
-                    actualFromY = targetScreen.getTranslateY();
-                    prev = calcValue(me.getSceneX(), me.getSceneY());
-                    step = 0;
-                    me.consume();
-                }
-            });
-            actionNode.setOnMouseDragged(new EventHandler<MouseEvent>() {
-                @Override public void handle(MouseEvent me) {
-                    double value = Math.min(Math.max(calcValue(me.getSceneX(), me.getSceneY()) + delta, 0), 1);
-                    targetScreen.setTranslateX(calcX(value));
-                    targetScreen.setTranslateY(calcY(value));
-                    if (value != prev) {
-                        step = value - prev;
-                        prev = value;
-                    }
-                    me.consume();
-                }
-            });
-            actionNode.setOnMouseReleased(new EventHandler<MouseEvent>() {
-                @Override public void handle(MouseEvent me) {
-                    double targetX;
-                    double targetY;
-                    if (me.isStillSincePress()) {
-                        double curValue = calcValue(targetScreen.getTranslateX(), targetScreen.getTranslateY());
-                        targetX = curValue < 0.5 ? toX.get() : fromX;
-                        targetY = curValue < 0.5 ? toY.get() : fromY;
-                    } else {
-                        targetX = step > 0 ? toX.get() : fromX;
-                        targetY = step > 0 ? toY.get() : fromY;
-                    }
-                    TranslateTransitionBuilder.create()
-                        .node(targetScreen)
-                        .toX(targetX)
-                        .toY(targetY)
-//                        .onFinished(targetY == actualFromY && targetX == actualFromX ? onTransitionCanceled : onTransitionFinished)
-                        .build().play();
-                    me.consume();
-                }
-            });
-        }
-
-        public void identifyScreens() {
-//            if (baseScreen == null) {
-//                CompoundScreen compoundScreen = targetScreen.getParentScreen();
-//                if (compoundScreen != null) {
-//                    baseScreen = compoundScreen.getBase();
-//                }
-//            }
-//            if (!(targetScreen.getTranslateY() == fromY && targetScreen.getTranslateX() == fromX)) {
-//                currentScreen = baseScreen;
-//                nextScreen = targetScreen;
-//            } else {
-//                currentScreen = targetScreen;
-//                nextScreen = baseScreen;
-//            }
-        }
-
-        public void reset() {
-            targetScreen.setTranslateX(fromX);
-            targetScreen.setTranslateY(fromY);
-        }
-    }
-    
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourcePage.java	Fri Nov 01 16:47:21 2013 -0700
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
+ * All rights reserved. Use is subject to license terms.
+ *
+ * This file is available and licensed under the following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *  - Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the distribution.
+ *  - Neither the name of Oracle Corporation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package ensemble.samplepage;
+
+import ensemble.Page;
+import ensemble.SampleInfo;
+import javafx.beans.binding.StringBinding;
+import javafx.beans.property.*;
+import javafx.scene.Node;
+import javafx.scene.control.TabPane;
+
+/**
+ * Page showing tabs with all the source code and resources for a sample
+ */
+public class SourcePage extends TabPane implements Page {
+    private final ObjectProperty<SampleInfo> sampleInfoProperty = new SimpleObjectProperty<>();
+    private final StringProperty titleProperty = new SimpleStringProperty();
+
+    public SourcePage() {
+        getStyleClass().add("source-page");
+        titleProperty.bind(new StringBinding() {
+            { bind(sampleInfoProperty); }
+            @Override protected String computeValue() {
+                SampleInfo sample = sampleInfoProperty.get();
+                if (sample != null) {
+                    return sample.name+" :: Source";
+                } else {
+                    return null;
+                }
+            }
+        });
+        setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
+    }
+
+    public void setSampleInfo(SampleInfo sampleInfo) {
+        sampleInfoProperty.set(sampleInfo);
+        getTabs().clear();
+        for (SampleInfo.URL sourceURL : sampleInfo.getSources()) {
+            getTabs().add(new SourceTab(sourceURL));
+        }
+    }
+
+    @Override public ReadOnlyStringProperty titleProperty() {
+        return titleProperty;
+    }
+
+    @Override public String getTitle() {
+        return titleProperty.get();
+    }
+
+    @Override public String getUrl() {
+        return "sample-src://" + sampleInfoProperty.get().ensemblePath;
+    }
+
+    @Override public Node getNode() {
+        return this;
+    }
+}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourceTab.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourceTab.java	Fri Nov 01 16:47:21 2013 -0700
@@ -45,12 +45,14 @@
 import javafx.scene.image.ImageView;
 import javafx.scene.layout.StackPane;
 
+import java.util.regex.Pattern;
+
 /**
- *
+ * Source code tab - Shows Syntax highlighted source if web view is available if not just plain text.
  */
 class SourceTab extends Tab {
 
-    public SourceTab(URL sourceURL, final SamplePage samplePage) {
+    public SourceTab(URL sourceURL) {
         super(sourceURL.getName());
         String url = sourceURL.getURL();
         String ext = url.substring(url.lastIndexOf('.')).toLowerCase();
@@ -70,7 +72,7 @@
                     textArea.setEditable(false);
                     setContent(textArea);
                 } else {
-                    String html = samplePage.convertToHTML(source);
+                    String html = convertToHTML(source);
                     setContent(WebViewWrapper.createWebView(html));
                 }
                 break;
@@ -86,5 +88,99 @@
         }
         setTooltip(new Tooltip(url));
     }
-    
+
+    private static final Pattern JAVA_DOC_PATTERN = Pattern.compile("(^\\s+\\*$\\s)?^\\s+\\*\\s+@.*$\\s",Pattern.MULTILINE);
+    private static String shCoreJs;
+    private static String shBrushJScript;
+    private static String shCoreDefaultCss;
+
+    private static String convertToHTML(String source) {
+        // load syntax highlighter
+        if (shCoreJs == null) {
+            shCoreJs = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shCore.js")) +";";
+        }
+        if (shBrushJScript == null) {
+            shBrushJScript = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shBrushJava.js"));
+        }
+        if (shCoreDefaultCss == null) {
+            shCoreDefaultCss = Utils.loadFile(EnsembleApp.class.getResource("syntaxhighlighter/shCoreDefault.css")).replaceAll("!important","");
+        }
+        // split copy right and source
+        String[] parts = source.split("\\*/",2);
+        String copyRight = null;
+        if (parts.length > 1) {
+            copyRight = parts[0]+"*/";
+            source = parts[1];
+        }
+        // remove JavaDoc @xxxx lines
+        source = JAVA_DOC_PATTERN.matcher(source).replaceAll("");
+        // escape < & >
+        source = source.replaceAll("&","&amp;");
+        source = source.replaceAll("<","&lt;");
+        source = source.replaceAll(">","&gt;");
+        source = source.replaceAll("\"","&quot;");
+        source = source.replaceAll("\'","&apos;");
+        // create content
+        StringBuilder html = new StringBuilder();
+        html.append("<html>\n");
+        html.append("    <head>\n");
+        html.append("    <script type=\"text/javascript\">\n");
+        html.append(shCoreJs);
+        html.append('\n');
+        html.append(shBrushJScript);
+        html.append("    </script>\n");
+        html.append("    <style>\n");
+        html.append(shCoreDefaultCss);
+        html.append('\n');
+        html.append("        .syntaxhighlighter {\n");
+        html.append("			overflow: visible;\n");
+        if (EnsembleApp.IS_MAC) {
+            html.append("			font: 12px Ayuthaya !important; line-height: 150% !important; \n");
+            html.append("		}\n");
+            html.append("		code { font: 12px Ayuthaya !important; line-height: 150% !important; } \n");
+        } else {
+            html.append("			font: 12px monospace !important; line-height: 150% !important; \n");
+            html.append("		}\n");
+            html.append("		code { font: 12px monospace !important; line-height: 150% !important; } \n");
+        }
+        html.append("		.syntaxhighlighter .preprocessor { color: #060 !important; }\n");
+        html.append("		.syntaxhighlighter .comments, .syntaxhighlighter .comments a  { color: #009300 !important; }\n");
+        html.append("		.syntaxhighlighter .string  { color: #555 !important; }\n");
+        html.append("		.syntaxhighlighter .value  { color: blue !important; }\n");
+        html.append("		.syntaxhighlighter .keyword  { color: #000080 !important; }\n");
+        html.append("		.hidden { display: none; }\n");
+        html.append("           .showing { display: block; }\n");
+        html.append("           .button {\n");
+        html.append("               font: 12px \"Consolas\", \"Bitstream Vera Sans Mono\", \"Courier New\", Courier, monospace !important;\n");
+        html.append("               color: #009300 !important;\n");
+        html.append("               text-decoration: underline;\n");
+        html.append("               display: inline;\n");
+        html.append("               cursor:pointer;\n");
+        html.append("           }\n");
+        html.append("        body {background-color: #f4f4f4;}\n");
+        html.append("    </style>\n");
+        html.append("    </head>\n");
+        html.append("<body>\n");
+        if (copyRight != null) {
+            html.append("    <div onclick='document.getElementById(\"licenceText\").className = \"showing\";document.getElementById(\"licenseBtn\").className = \"hidden\";' id=\"licenseBtn\" class=\"button\">/* ....Show License.... */</div>\n");
+            html.append("    <div id=\"licenceText\"class=\"hidden\">\n");
+            html.append("    <pre class=\"brush: java; gutter: false; toolbar: false; quick-code: false;\">\n");
+            html.append(copyRight);
+            html.append('\n');
+            html.append("    </pre>\n");
+            html.append("    </div>\n");
+        }
+        html.append("    <pre class=\"brush: java; gutter: false; toolbar: false; quick-code: false;\">\n");
+        html.append(source);
+        html.append('\n');
+        html.append("    </pre>\n");
+        html.append("    <script type=\"text/javascript\"> SyntaxHighlighter.all(); </script>\n");
+        html.append("</body>\n");
+        html.append("</html>\n");
+
+//        System.out.println("------------------------------------------------------------");
+//        System.out.println(html);
+//        System.out.println("------------------------------------------------------------");
+        return html.toString();
+    }
 }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Sources.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.samplepage;
-
-import ensemble.SampleInfo;
-import ensemble.sampleproject.SampleProjectBuilder;
-import java.io.File;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-import javafx.geometry.Pos;
-import javafx.scene.control.Button;
-import javafx.scene.control.ButtonBuilder;
-import javafx.scene.control.TabPane;
-import javafx.scene.control.TabPaneBuilder;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.HBoxBuilder;
-import javafx.scene.layout.Priority;
-import javafx.scene.layout.VBox;
-import javafx.stage.FileChooser;
-import javafx.util.Callback;
-import javax.swing.filechooser.FileSystemView;
-
-/**
- *
- */
-public class Sources extends VBox {
-
-    private final SamplePage samplePage;
-    private final Button saveAsProject;
-    private final HBox buttons;
-    private final TabPane tabPane;
-
-    public Sources(final SamplePage samplePage) {
-        super(SamplePage.INDENT);
-        this.samplePage = samplePage;
-        saveAsProject = ButtonBuilder.create().text("Save As Project").build();
-        saveAsProject.setOnAction(new EventHandler<ActionEvent>() {
-             @Override public void handle(ActionEvent actionEvent) {
-                 File initialDir = FileSystemView.getFileSystemView().getDefaultDirectory();
-                 FileChooser fileChooser = new FileChooser();
-                 fileChooser.setTitle("Save Netbeans Project As:");
-                 fileChooser.setInitialDirectory(initialDir);
-                 File result = fileChooser.showSaveDialog(saveAsProject.getScene().getWindow());
-                 if (result != null) {
-                     SampleProjectBuilder.createSampleProject(result, samplePage.sampleInfoProperty.get());
-                 }
-             }
-         });        
-        buttons = HBoxBuilder.create().spacing(SamplePage.INDENT).alignment(Pos.BOTTOM_RIGHT).children(saveAsProject).build();
-        tabPane = TabPaneBuilder.create().minWidth(50).minHeight(50).styleClass("floating").build();
-        tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
-        samplePage.registerSampleInfoUpdater(new Callback<SampleInfo, Void>() {
-
-            @Override
-            public Void call(SampleInfo sampleInfo) {
-                update(sampleInfo);
-                return null;
-            }
-        });
-        VBox.setVgrow(tabPane, Priority.ALWAYS);
-        getChildren().setAll(buttons, tabPane);
-    }
-
-    private void update(SampleInfo sampleInfo) {
-        tabPane.getTabs().clear();
-        for (SampleInfo.URL sourceURL : sampleInfo.getSources()) {
-            tabPane.getTabs().add(new SourceTab(sourceURL, samplePage));
-        }
-    }
-}
--- a/apps/samples/Ensemble8/src/app/java/ensemble/sampleproject/SampleProjectBuilder.java	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ensemble.sampleproject;
-
-import ensemble.SampleInfo;
-import ensemble.util.Utils;
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import javafx.scene.Node;
-
-/**
- * Helper class to build an IDE project for a sample and open it in the IDE
- */
-public class SampleProjectBuilder {
- 
-    public static void createSampleProject(File projectDir, SampleInfo sampleInfo) {
-        String nodeLoc = Node.class.getResource("Node.class").toExternalForm();
-        String javafxrtPath = nodeLoc.substring(4, nodeLoc.indexOf('!'));
-        try {
-            File f = new File(new URI(javafxrtPath));
-            javafxrtPath = f.getAbsolutePath();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        String sep = System.getProperty("file.separator");
-        if (sep.equals("\\")) {
-            javafxrtPath = javafxrtPath.replaceAll("\\" + sep, "/");
-        }
-        // extract project name
-        String projectName = projectDir.toURI().toString();
-        projectName = projectName.substring(projectName.lastIndexOf('/') + 1);
-        // create destDir
-        projectDir.mkdirs();
-        // unzip project template
-        try {
-            ZipInputStream zipinputstream = new ZipInputStream(
-                    SampleProjectBuilder.class.getResourceAsStream("SampleProject.zip"));
-            ZipEntry zipentry;
-            while ((zipentry = zipinputstream.getNextEntry()) != null) {
-                //for each entry to be extracted
-                String entryName = zipentry.getName();
-                File entryFile = new File(projectDir, entryName);
-                if (zipentry.isDirectory()) {
-                    entryFile.mkdirs();
-                } else {
-                    // assume all are text files, load text file into string so we can process it
-                    StringBuilder sb = new StringBuilder();
-                    String line;
-                    BufferedReader reader = new BufferedReader(new InputStreamReader(zipinputstream));
-                    while ((line = reader.readLine()) != null) {
-                        sb.append(line);
-                        sb.append('\n');
-                    }
-                    String contents = sb.toString();
-                    // replace any place holders
-                    contents = contents.replaceAll("ENSEMBLESAMPLE", projectName);
-                    contents = contents.replaceAll("APPLICATIONCLASS", sampleInfo.appClass);
-                    contents = contents.replaceAll("PATHTOJAVAFXRTJAR", javafxrtPath);
-                    // save out file
-                    FileWriter fileWriter = new FileWriter(entryFile);
-                    fileWriter.write(contents);
-                    fileWriter.flush();
-                    fileWriter.close();
-                }
-                zipinputstream.closeEntry();
-            }
-            zipinputstream.close();
-            //Put resources like images under src/
-            File srcDestDir = new File(projectDir.getPath() + "/src/");
-            loadSampleResourceUrls(srcDestDir, sampleInfo.resourceUrls);
-            // open project in netbeans
-            //TODO:      loadProject(projectDir, mainSrcFile);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private static void loadSampleResourceUrls(File destDir, String[] resourceUrlArray) {
-        List<String> resourceUrlList = Arrays.asList(resourceUrlArray);
-        //create resource files for each of the resources we use
-        if (!resourceUrlList.isEmpty()) {
-            for (String oneResourceUrl : resourceUrlList) {
-                String resourceSubdir = oneResourceUrl.substring(0, oneResourceUrl.lastIndexOf('/'));
-                try {
-                    File parentDir = new File(destDir.getPath() + resourceSubdir);
-                    parentDir.mkdirs();
-                    Utils.copyFile(new URL(SampleProjectBuilder.class.getResource(oneResourceUrl).toExternalForm()),
-                            destDir.getPath() + oneResourceUrl);
-
-                } catch (MalformedURLException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-}
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCaspian.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-.ensmeble-tool-bar {
-    -fx-padding: 6 5 7 5;
-    -fx-background-color: linear-gradient(
-        to bottom,
-        derive(-fx-color,34%) 0%,
-        derive(-fx-color,-18%) 98%,
-        derive(-fx-color,-60%) 100%
-    );
-    -fx-base: #58636a;
-    -fx-background: #58636a;
-    -fx-shadow-highlight-color: rgba(255,255,255,0.2);
-    -fx-outer-border: linear-gradient(
-        to bottom,
-        derive(-fx-color,-9%) 0%, 
-        derive(-fx-color,-45%) 100%
-    );
-}
-.ensmeble-tool-bar .title {
-    -fx-font-family: "Arial";
-    -fx-font-weight: bold;
-    -fx-font-size: 20;
-    -fx-text-fill: white;
-}
-.ensmeble-tool-bar #back{
-    -fx-background-radius: 5 0 0 5, 5 0 0 5, 4 0 0 4, 3 0 0 3;
-    -fx-content-display: graphic-only;
-}
-.ensmeble-tool-bar #back:focused {
-    -fx-background-radius: 6.4 0 0 6.4, 5 0 0 5, 4 0 0 4, 3 0 0 3;
-    -fx-background-insets: -1.4 0 -1.4 -1.4, 0 1 0 0, 1, 2;
-}
-.ensmeble-tool-bar #forward {
-    -fx-background-insets: 0 0 -1 0, 0, 1 1 1 0, 2 2 2 1;
-    -fx-background-radius: 0;
-}
-.ensmeble-tool-bar #forward:focused {
-    -fx-background-insets: 0 0 -1 0, 0, 1 1 1 0, 2 2 2 1;
-    -fx-background-radius: 0;
-    -fx-background-insets: -1.4 0 -1.4 0, 0 1 0 1, 1 1 1 1, 2 2 2 2;
-}
-.ensmeble-tool-bar #home {
-    -fx-background-insets: 0 0 -1 0, 0, 1 1 1 0, 2 2 2 1;
-    -fx-background-radius: 0 5 5 0, 0 5 5 0, 0 4 4 0, 0 3 3 0;
-}
-.ensmeble-tool-bar #home:focused {
-    -fx-background-insets: -1.4 -1.4 -1.4 0, 0 1 0 1, 1 1 1 1, 2 2 2 1;
-    -fx-background-radius: 0 6.4 6.4 0, 0 5 5 0, 0 4 4 0, 0 3 3 0;
-}
-.ensmeble-tool-bar .button Region, .ensmeble-tool-bar .toggle-button Region {
-    -fx-background-color: white;
-    -fx-scale-shape: false;
-}
-.ensmeble-tool-bar #back Region{
-    -fx-shape: "M0,7L11,0L11,14Z";
-}
-.ensmeble-tool-bar #forward Region{
-    -fx-shape: "M0,0L11,7L0,14Z";
-}
-.ensmeble-tool-bar #home Region{
-    -fx-shape: "M1,8.239V14h3.5V7.5h4V14H12V8.239L6.5,3L1,8.239z M11,4.5V1H9.1L9.062,2.448L6.5,0L0,6.5v0.7h0.5l6-5.826l6,5.826H13V6.5L11,4.5z";
-}
-.ensmeble-tool-bar #list Region{
-    -fx-shape: "M1,2h14c0.553,0,1-0.448,1-1s-0.447-1-1-1H1C0.448,0,0,0.448,0,1S0.448,2,1,2zM15,5.875H1c-0.552,0-1,0.448-1,1c0,0.553,0.448,1,1,1h14c0.553,0,1-0.447,1-1C16,6.323,15.553,5.875,15,5.875z M15,11.75H1c-0.552,0-1,0.447-1,1s0.448,1,1,1h14c0.553,0,1-0.447,1-1S15.553,11.75,15,11.75z";
-}
-.ensmeble-tool-bar #search{
-    -fx-padding: 3 10 3 15 !important;
-}
-.ensmeble-tool-bar #search Region{
-    -fx-shape: "M13.814,13.386l-3.396-3.398c0.953-1.059,1.533-2.462,1.533-4c0-3.305-2.678-5.982-5.981-5.982c-3.304,0-5.982,2.678-5.982,5.982S2.666,11.97,5.97,11.97c1.052,0,2.042-0.271,2.899-0.748l3.555,3.555L13.814,13.386zM1.975,5.988c0-2.207,1.789-3.995,3.995-3.995c2.206,0,3.995,1.788,3.995,3.995c0,2.205-1.789,3.996-3.995,3.996C3.764,9.984,1.975,8.193,1.975,5.988z";
-}
-/* style Sample Buttons on the home page */
-.search-box {
-    -fx-background-color: rgba(255,255,255,0.3) , #41494e;
-    -fx-background-insets: 1 0 -1 0,0;
-    -fx-background-radius: 18;
-    -fx-padding: 0 0 0 30;
-}
-.search-box:focused {
-    -fx-background-color: -fx-focus-color;
-    -fx-background-insets: -0.4px;
-}
-.search-box-icon {
-    /* THIN -fx-shape: "M14,13.587l-3.45-3.45c0.968-1.076,1.558-2.5,1.558-4.062C12.107,2.72,9.388,0,6.032,0C2.676,0-0.043,2.72-0.043,6.075s2.72,6.075,6.075,6.075c1.069,0,2.074-0.276,2.946-0.761l3.61,3.609L14,13.587z M1.975,6.075c0-2.24,1.816-4.057,4.057-4.057c2.241,0,4.057,1.817,4.057,4.057c0,2.241-1.816,4.058-4.057,4.058C3.791,10.133,1.975,8.316,1.975,6.075z";*/
-    /* TOO BOLD -fx-shape: "M10.871,9.796c0.826-1.062,1.275-2.368,1.275-3.723C12.146,2.724,9.422,0,6.073,0C2.725,0,0,2.724,0,6.073c0,3.349,2.725,6.072,6.073,6.072c0.913,0,1.816-0.206,2.633-0.599l3.422,3.421l1.957-1.957L10.871,9.796z M6.073,2.788c1.812,0,3.286,1.474,3.286,3.285S7.884,9.358,6.073,9.358S2.788,7.885,2.788,6.073S4.261,2.788,6.073,2.788z";*/
-    -fx-shape: "M10.728,9.893c0.889-1.081,1.375-2.435,1.375-3.842C12.103,2.714,9.388,0,6.051,0C2.715,0,0,2.714,0,6.051c0,3.338,2.715,6.052,6.051,6.052c0.954,0,1.898-0.227,2.744-0.656l3.479,3.478l1.743-1.742L10.728,9.893z M6.051,2.484c1.966,0,3.566,1.602,3.566,3.566c0,1.968-1.6,3.567-3.566,3.567c-1.967,0-3.566-1.6-3.566-3.567C2.485,4.086,4.084,2.484,6.051,2.484z";
-    -fx-scale-shape: false;
-    -fx-background-color: #aaaaaa;
-}
-.search-box-inner {
-    -fx-background-color: white;
-    -fx-background-insets: 1;
-    -fx-background-radius: 17;
-}
-
-/* *****************************************************************************
-   * POPOVERS
-   ****************************************************************************/
-.popover .button {
-    -fx-base: #58636a;
-    -fx-background: #58636a;
-    -fx-shadow-highlight-color: rgba(255,255,255,0.2);
-    -fx-outer-border: linear-gradient(
-        to bottom,
-        derive(-fx-color,-30%) 0%, 
-        derive(-fx-color,-50%) 100%
-    );
-    -fx-padding: 5 10 5 10;
-    -fx-font-weight: bold;
-    -fx-text-fill: white;
-}
-.popover-tree-list-cell {
-    -fx-background-color: white;
-    -fx-border-color: transparent transparent #dfdfdf transparent;
-    -fx-padding: 0 30 0 12;
-    -fx-font-family: "Arial";
-    -fx-font-size: 15px;
-    -fx-font-weight: bold;
-    -fx-text-fill: #363636;
-}
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCaspianDesktop.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-.ensmeble-tool-bar .title {
-    -fx-effect: dropshadow( three-pass-box , #3d4346 , 0 , 0 , 0 , -1 );
-}
-.ensmeble-tool-bar .button Region, .ensmeble-tool-bar .toggle-button Region {
-    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.8) , 0 , 0 , 0 , -1 );
-}
-.sample-button:hover {
-    -fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.8) , 10, 0.5 , 0 , 0);
-}
-.sample-button:focused {
-    -fx-effect: dropshadow( three-pass-box , -fx-focus-color , 3, 0.5 , 0 , 0);
-}
-.search-box-inner {
-    -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 7, 0 , 0 , 1 );
-}
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommon.css	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommon.css	Fri Nov 01 16:47:21 2013 -0700
@@ -29,270 +29,72 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
-/* *****************************************************************************
-   * CUSTOM SCROLLBARS
-   ****************************************************************************/
-/* popover scroll bars */
-.popover .scroll-bar:horizontal {
-    -fx-background-color: white;
-    -fx-padding: 4px 2px 6px 2px;
-}
-.popover .scroll-bar:vertical {
-    -fx-background-color: white;
-    -fx-padding: 2px 6px 2px 4px;
-}
-.popover .scroll-bar > .thumb {
-    -fx-background-color: #777, #f9f9f9;
-    -fx-background-insets: -1, 0;
-    -fx-opacity: 0.8;
-}
-.popover .scroll-bar > .thumb:hover {
-    -fx-opacity: 1;
-}
-.popover .scroll-bar > .track {
-    -fx-background-color: #eee;
-}
-.popover .scroll-bar:horizontal > .increment-button, 
-.popover .scroll-bar:horizontal > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 2px 0 2px 0;
-}
-.popover .scroll-bar:vertical > .increment-button, 
-.popover .scroll-bar:vertical > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 0 2px 0 2px;
-}
-.popover .scroll-bar > .decrement-button > .decrement-arrow, 
-.popover .scroll-bar > .increment-button > .increment-arrow,
-.popover .scroll-bar > .track-background{
-    -fx-background-color: null;
-    -fx-shape: null;
-}
-/* homepage scroll bars */
-#HomePage .scroll-bar:horizontal {
-    -fx-background-color: null;
-    -fx-padding: 6px 2px 6px 2px;
-}
-#HomePage .scroll-bar:vertical {
-    -fx-background-color: null;
-    -fx-padding: 2px 6px 2px 6px;
-}
-#HomePage .scroll-bar > .thumb {
-    -fx-background-color: #333, #f9f9f9;
-    -fx-background-insets: -1, 0;
-    -fx-opacity: 0.8;
-}
-#HomePage .scroll-bar > .thumb:hover {
-    -fx-opacity: 1;
-}
-#HomePage .scroll-bar > .track {
-    -fx-background-color: #38434b;
-}
-#HomePage .scroll-bar:horizontal > .increment-button, 
-#HomePage .scroll-bar:horizontal > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 2px 0 2px 0;
-}
-#HomePage .scroll-bar:vertical > .increment-button, 
-#HomePage .scroll-bar:vertical > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 0 2px 0 2px;
-}
-#HomePage .scroll-bar > .decrement-button > .decrement-arrow, 
-#HomePage .scroll-bar > .increment-button > .increment-arrow,
-#HomePage .scroll-bar > .track-background{
-    -fx-background-color: null;
-    -fx-shape: null;
-}
-/* source code scroll bars */
-.sample-back-page .scroll-bar:horizontal {
-    -fx-background-color: white;
-    -fx-padding: 4px 2px 6px 2px;
-}
-.sample-back-page .scroll-bar:vertical {
-    -fx-background-color: white;
-    -fx-padding: 2px 6px 2px 4px;
-}
-.sample-back-page .scroll-bar > .thumb {
-    -fx-background-color: #777, #f9f9f9;
-    -fx-background-insets: -1, 0;
-    -fx-opacity: 0.8;
-}
-.sample-back-page .scroll-bar > .thumb:hover {
-    -fx-opacity: 1;
-}
-.sample-back-page .scroll-bar > .track {
-    -fx-background-color: #eee;
-}
-.sample-back-page .scroll-bar:horizontal > .increment-button, 
-.sample-back-page .scroll-bar:horizontal > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 2px 0 2px 0;
-}
-.sample-back-page .scroll-bar:vertical > .increment-button, 
-.sample-back-page .scroll-bar:vertical > .decrement-button {
-    -fx-background-color: null;
-    -fx-padding: 0 2px 0 2px;
-}
-.sample-back-page .scroll-bar > .decrement-button > .decrement-arrow, 
-.sample-back-page .scroll-bar > .increment-button > .increment-arrow,
-.sample-back-page .scroll-bar > .track-background{
-    -fx-background-color: null;
-    -fx-shape: null;
-}
 
 /* *****************************************************************************
    * HOME PAGE
    ****************************************************************************/
-#HomePage {
-    /*-fx-background-size: cover;*/
-    -fx-background-size: 100% 100%;
-    -fx-background-image: url("images/home-background.png");
-}
-.home-page-cell {
-    -fx-padding: 10 0 10 0;
-}
 #HomePage .pagination {
     -fx-arrows-visible: false;
     -fx-page-information-visible: false;
 }
-#HomePage .pagination > .pagination-control > .control-box > .bullet-button {   
-    -fx-background-color: transparent;
-    -fx-background-image: url("images/pagination-dot.png");
-    -fx-background-repeat: no-repeat;
-    -fx-background-position: center;
+.section-ribbon-text {
+    -fx-font-family: "Source Sans Pro ExtraLight";
+    -fx-font-size: 36;
+    -fx-fill: white;
 }
-
-#HomePage .pagination > .pagination-control > .control-box > .bullet-button:selected {   
-    -fx-background-image: url("images/pagination-dot-selected.png");
+.home-page-cell:Title {
+    -fx-background-color: #f3472f;
+    -fx-background-insets: 10 0 10 0;
 }
-/* style Section Ribbons on the home page */
-.section-ribbon {
-    -fx-border-image-source: url("images/section-ribbon.png");
-    -fx-border-image-slice: 0 38 0 38 fill;
-    -fx-border-image-width: 0 38 0 38;
-    -fx-border-image-repeat: repeat-x;
-}
-/* style Sample Buttons on the home page */
 .sample-button {
-    -fx-font-family: "Arial";
-    -fx-font-weight: bold;
-    -fx-font-size: 15;
-    -fx-text-fill: white;
-    -fx-graphic-text-gap: 8px;
+    -fx-font-family: "Source Sans Pro";
+    -fx-font-size: 14;
+    -fx-padding: 5px;
+    -fx-text-fill: #777777; 
+    -fx-graphic-text-gap: 8px; 
 }
 .sample-large-preview {
-    -fx-border-image-source: url("images/tile-border.png");
-    -fx-border-image-slice: 7 9 10 7;
-    -fx-border-image-width: 7 9 10 7;
-    -fx-border-image-insets: -2 -4 -5 -2;
-    -fx-border-image-repeat: stretch;
-    -fx-padding: 5px;
-}
-.sample-large-preview-label {
-    -fx-font-weight: bold;
-    -fx-font-size: 17;
-    -fx-text-fill: #555;
-}
-.sample-medium-preview {
-    -fx-border-image-source: url("images/tile-border.png");
-    -fx-border-image-slice: 7 9 10 7;
-    -fx-border-image-width: 7 9 10 7;
-    -fx-border-image-insets: -2 -4 -5 -2;
-    -fx-border-image-repeat: stretch;
-}
-.search-box {
-    -fx-font-family: "Arial";
-    -fx-font-size: 16px;
-    -fx-text-fill: #363636;
-}
-.search-clear-button {
-    -fx-shape: "M9.521,0.083c-5.212,0-9.438,4.244-9.438,9.479c0,5.234,4.225,9.479,9.438,9.479c5.212,0,9.437-4.244,9.437-9.479C18.958,4.327,14.733,0.083,9.521,0.083z M13.91,13.981c-0.367,0.369-0.963,0.369-1.329,0l-3.019-3.03l-3.019,3.03c-0.367,0.369-0.962,0.369-1.329,0c-0.367-0.368-0.366-0.965,0.001-1.334l3.018-3.031L5.216,6.585C4.849,6.217,4.849,5.618,5.217,5.25c0.366-0.369,0.961-0.368,1.328,0l3.018,3.031l3.019-3.031c0.366-0.368,0.961-0.369,1.328,0c0.366,0.368,0.366,0.967,0,1.335l-3.019,3.031l3.02,3.031C14.276,13.017,14.276,13.613,13.91,13.981z";
-    -fx-scale-shape: false;
-    -fx-background-color: #aaaaaa;
-    -fx-padding: 9.5px;
+    -fx-background-color: white;
+    -fx-padding: 10px;
 }
 
 /* *****************************************************************************
    * DOCS PAGE
    ****************************************************************************/
 .sidebar-title {
-    -fx-font-family: "Arial";
-    -fx-font-weight: bold;
-    -fx-font-size: 17;
-    -fx-text-fill: white;
+    -fx-font-family: "Source Sans Pro Semibold";
+    -fx-font-size: 16 !important;
+    -fx-text-fill: #e1731c;
 }
 
 /* *****************************************************************************
    * SAMPLE PAGE
    ****************************************************************************/
-/*.sample-page {
-    -fx-background-color: #eeeeee;
-    -fx-background-image: url("images/home-background.png");
-}*/
-.sample-page-iphone {
-    -fx-background-color: #eeeeee;
-    -fx-background-image: url("images/sample-background.png");
-    -fx-background-size: stretch;
-}
-.sample-page-front {
-    -fx-background-image: url("images/sample-page-background.png");
-    -fx-border-image-source: url("images/sample-page-background-shadow.png");
-    -fx-border-image-slice: 160;
-    -fx-border-image-width: 160;
-    -fx-border-image-repeat: stretch;
-}
-.sample-back-page {
-    -fx-background-image: url("images/sample-back-page-background.png"), url("images/sample-source-text.png");
-    -fx-background-position: left top, right bottom;
-    -fx-background-repeat: repeat, no-repeat;
-    -fx-border-image-source: url("images/sample-page-background-shadow.png");
-    -fx-border-image-slice: 160;
-    -fx-border-image-width: 160;
-    -fx-border-image-repeat: stretch;
-    -fx-base: #3d80ba;
-    -fx-shadow-highlight-color: rgba(255,255,255,0.1);
-    -fx-text-background-color: white;
-}
-.sample-back-page .tab:selected > .tab-container > .tab-label {
-    -fx-text-fill: #395d74 !important;
-}
 .sample-page-box {
-/*    -fx-border-image-source: url("images/sample-box.png");
-    -fx-border-image-slice: 7 7 9 7 fill;
-    -fx-border-image-width: 7 7 9 7;
-    -fx-border-image-insets: -1 -2 -3 -2;
-    -fx-border-image-repeat: stretch;*/
-    -fx-border-image-source: url("images/sample-paper-border.png");
-    -fx-border-image-slice: 6;
-    -fx-border-image-width: 6;
-    -fx-border-image-insets: -2 -5 -5 -2;
-    -fx-border-image-repeat: stretch;
-    -fx-padding: 5 10 5 33;
-    
-    -fx-background-image: url("images/sample-paper.png") , url("images/sample-paper-lines.png");
-    
-    -fx-font-family: "Arial";
+    -fx-padding: 8;
     -fx-font-size: 12px;
-    -fx-font-weight: bold;
-    -fx-text-background-color: #395d74;
+    /*-fx-text-background-color: #395d74;*/
 }
 .sample-page-box .hyperlink{
     -fx-font-size: 12px;
     -fx-text-overrun: leading-word-ellipsis;
 }
 .sample-page-box-title {
-    -fx-font-family: "Bree Serif";
-    -fx-font-size: 16;
+    -fx-font-family: "Source Sans Pro Semibold";
+    -fx-font-size: 16 !important;
     -fx-text-fill: #e1731c;
+    -fx-fill: #e1731c;
+    -fx-padding: 0;
+}
+.sample-container {
+    -fx-background-color: -fx-background; /* give sample area a solid color for occlusion culling */
 }
 
 /* *****************************************************************************
    * POPOVERS
    ****************************************************************************/
 .popover {
-    -fx-padding: 44 7 7 7; 
+    -fx-padding: 44 7 7 7;
 }
 .popover-frame {
     -fx-border-image-source: url("images/popover-empty.png");
@@ -305,58 +107,54 @@
     -fx-border-image-width: 78 120 60 50;
 }
 .popover-title {
-    -fx-font-family: "Arial";
+    /*-fx-font-family: "Bree serif"; */
+    -fx-font-family: "Source Sans Pro Light";
     -fx-font-size: 20px;
-    -fx-text-fill: white;
-    -fx-font-weight: bold;
+ /*   -fx-text-fill: white;
+    -fx-font-weight: bold; */
 }
 .popover-tree-list-cell {
     -fx-background-color: white;
-    -fx-border-color: transparent transparent #dfdfdf transparent;
+   /*  -fx-border-color: transparent transparent #dfdfdf transparent; */
     -fx-padding: 0 30 0 12;
-    -fx-font-family: "Arial";
+    /*-fx-font-family: "Bree Serif"; */
     -fx-font-size: 15px;
-    -fx-font-weight: bold;
+ /*   -fx-font-weight: bold; */
     -fx-text-fill: #363636;
 }
-#PopoverBackground {
+/* #PopoverBackground {
     -fx-background-color: grey;
-}
+} */
 .search-result-cell {
     -fx-background-color: white;
     -fx-padding: 4 30 4 45;
 }
 .search-result-cell:selected {
-    -fx-background-color: white, #eeeeee;
+  /*   -fx-background-color: white, #eeeeee; */
     -fx-background-insets: 0, 0 0 0 40;
 }
 .search-result-cell .title {
-    -fx-font-family: "Arial";
+    /*-fx-font-family: "Bree Serif"; */
     -fx-font-size: 15px;
-    -fx-font-weight: bold;
+  /*  -fx-font-weight: bold; */
     -fx-text-fill: #363636;
 }
 .search-result-cell .details {
-    -fx-font-family: "Arial";
     -fx-font-size: 13px;
     -fx-text-fill: #444444;
 }
 .search-icon-pane .label {
-    -fx-font-family: "Arial";
+    -fx-font-family: "Source Sans Pro Light";
     -fx-font-size: 16px;
-    -fx-font-weight: bold;
     -fx-background-color: #515151;
     -fx-background-radius: 3px;
-    -fx-text-fill: white;
     -fx-alignment: center;
 }
 .sample-tree-list-cell {
     -fx-background-color: white;
-    -fx-border-color: transparent transparent #dfdfdf transparent;
+    -fx-border-color: transparent transparent #dfdfdf transparent; 
     -fx-padding: 0 30 0 20;
-    -fx-font-family: "Arial";
     -fx-font-size: 15px;
-    -fx-font-weight: bold;
     -fx-text-fill: #363636;
     -fx-graphic-text-gap: 20px;
 }
@@ -379,3 +177,54 @@
     -fx-scale-shape: false;
     -fx-background-color: #515151;
 }
+
+.ensmeble-tool-bar .title {
+    -fx-font-family: "Source Sans Pro Light";
+    -fx-font-size: 20;
+    -fx-text-fill: #666;
+}
+.ensmeble-tool-bar .button Region, .ensmeble-tool-bar .toggle-button Region {
+    -fx-background-color: #666666;
+    -fx-scale-shape: false;
+}
+.ensmeble-tool-bar #back Region{
+    -fx-shape: "M0,7L11,0L11,14Z";
+}
+.ensmeble-tool-bar #forward Region{
+    -fx-shape: "M0,0L11,7L0,14Z";
+}
+.ensmeble-tool-bar #home Region{
+    -fx-shape: "M1,8.239V14h3.5V7.5h4V14H12V8.239L6.5,3L1,8.239z M11,4.5V1H9.1L9.062,2.448L6.5,0L0,6.5v0.7h0.5l6-5.826l6,5.826H13V6.5L11,4.5z";
+}
+.ensmeble-tool-bar #list Region{
+    -fx-shape: "M1,2h14c0.553,0,1-0.448,1-1s-0.447-1-1-1H1C0.448,0,0,0.448,0,1S0.448,2,1,2zM15,5.875H1c-0.552,0-1,0.448-1,1c0,0.553,0.448,1,1,1h14c0.553,0,1-0.447,1-1C16,6.323,15.553,5.875,15,5.875z M15,11.75H1c-0.552,0-1,0.447-1,1s0.448,1,1,1h14c0.553,0,1-0.447,1-1S15.553,11.75,15,11.75z";
+}
+.search-box-icon {
+    -fx-shape: "M10.728,9.893c0.889-1.081,1.375-2.435,1.375-3.842C12.103,2.714,9.388,0,6.051,0C2.715,0,0,2.714,0,6.051c0,3.338,2.715,6.052,6.051,6.052c0.954,0,1.898-0.227,2.744-0.656l3.479,3.478l1.743-1.742L10.728,9.893z M6.051,2.484c1.966,0,3.566,1.602,3.566,3.566c0,1.968-1.6,3.567-3.566,3.567c-1.967,0-3.566-1.6-3.566-3.567C2.485,4.086,4.084,2.484,6.051,2.484z";
+    -fx-scale-shape: false;
+    -fx-background-color: #aaaaaa;
+}
+.search-box {
+    -fx-font-size: 16px;
+    -fx-text-fill: #363636;
+    -fx-background-radius: 15, 14;
+    -fx-padding: 0 0 0 30;
+}
+.search-box:focused {
+    -fx-background-radius: 15,14,16,0;
+}
+.search-clear-button {
+    -fx-shape: "M9.521,0.083c-5.212,0-9.438,4.244-9.438,9.479c0,5.234,4.225,9.479,9.438,9.479c5.212,0,9.437-4.244,9.437-9.479C18.958,4.327,14.733,0.083,9.521,0.083z M13.91,13.981c-0.367,0.369-0.963,0.369-1.329,0l-3.019-3.03l-3.019,3.03c-0.367,0.369-0.962,0.369-1.329,0c-0.367-0.368-0.366-0.965,0.001-1.334l3.018-3.031L5.216,6.585C4.849,6.217,4.849,5.618,5.217,5.25c0.366-0.369,0.961-0.368,1.328,0l3.018,3.031l3.019-3.031c0.366-0.368,0.961-0.369,1.328,0c0.366,0.368,0.366,0.967,0,1.335l-3.019,3.031l3.02,3.031C14.276,13.017,14.276,13.613,13.91,13.981z";
+    -fx-scale-shape: false;
+    -fx-background-color: #aaaaaa;
+    -fx-padding: 9.5px;
+}
+
+
+/* *****************************************************************************
+   * POPOVERS
+   ****************************************************************************/
+.popover-tree-list-cell {
+    -fx-background-color: white;
+    -fx-font-size: 15px;
+}
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesCommonDesktop.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-.sample-back-page .scroll-bar > .track,
-.popover .scroll-bar > .track { 
-    -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.2) , 8, 0.5 , 0 , 0 );
-}
-#HomePage .scroll-bar:horizontal {
-    -fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.15) , 0, 0.5 , 0 , 1 );
-}
-#HomePage .scroll-bar:vertical {
-    -fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.15) , 0, 0.5 , 1 , 0 );
-}
-#HomePage .scroll-bar > .track {
-    -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.5) , 8, 0.5 , 0 , 0 );
-}
-.sidebar-title,
-.sample-button > .text {
-    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.8) , 3, 0.5 , 0 , 1 );
-}
-.sample-large-preview-label {
-    -fx-effect: dropshadow( one-pass-box , white , 0, 0 , 0 , 1 );
-}
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesHelvetica.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2012, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-.ensmeble-tool-bar .title {
-    -fx-font-family: "Helvetica";
-}
-.sample-button {
-    -fx-font-family: "Helvetica";
-}
-.sidebar-title {
-    -fx-font-family: "Helvetica";
-}
-.sample-page-box {
-    -fx-font-family: "Helvetica";
-}
-.popover-title {
-    -fx-font-family: "Helvetica";
-}
-.popover-tree-list-cell {
-    -fx-font-family: "Helvetica";
-}
-.popover-left-button {
-    -fx-font-family: "Helvetica";
-}
-.popover-right-button {
-    -fx-font-family: "Helvetica";
-}
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesIOS.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2012, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-.ensmeble-tool-bar {
-    -fx-padding: 7 5 7 5;
-    -fx-background-image: url("images-ios/toolbar.png");
-    -fx-background-size: cover;
-    -fx-base: #58636a;
-    -fx-background: #58636a;
-    -fx-shadow-highlight-color: rgba(255,255,255,0.2);
-    -fx-outer-border: linear-gradient(
-        to bottom,
-        derive(-fx-color,-9%) 0%, 
-        derive(-fx-color,-45%) 100%
-    );
-}
-.ensmeble-tool-bar .title {
-    -fx-font-family: "Helvetica";
-    -fx-font-weight: bold;
-    -fx-font-size: 20;
-    -fx-text-fill: white;
-    -fx-padding: 3 0 0 0;
-}
-.ensmeble-tool-bar .button, .ensmeble-tool-bar .toggle-button {
-    -fx-background-size: cover;
-    -fx-background-color: null;
-}
-.ensmeble-tool-bar #back {
-    -fx-background-image: url("images-ios/back-btn.png");
-}
-.ensmeble-tool-bar #forward {
-    -fx-background-image: url("images-ios/forward-btn.png");
-}
-.ensmeble-tool-bar #home {
-    -fx-background-image: url("images-ios/home-btn.png");
-}
-.ensmeble-tool-bar #list {
-    -fx-background-image: url("images-ios/list-btn.png");
-}
-.ensmeble-tool-bar #search {
-    -fx-background-image: url("images-ios/search-btn.png");
-}
-/* ****** SCROLL BARS ******************************************************************************* */
-.scroll-bar, .scroll-bar:focused {
-    -fx-background-color: transparent;
-    -fx-background-insets: 0;
-    -fx-padding: 0 0 0 0;
-}
-.scroll-bar .thumb {
-    -fx-padding: 2;
-    -fx-background-color: rgba(0,0,0,0.3);
-    -fx-background-insets: 0;
-    -fx-background-radius: 10;
-}
-.scroll-bar .track, .scroll-bar:focused .track  {
-    -fx-background-color: null;
-    -fx-background-insets:  0;
-    -fx-background-radius: 0;
-}
-.scroll-bar .increment-button {
-    -fx-background-color: null;
-}
-.scroll-bar:horizontal .increment-button {
-    -fx-padding: -4 0 0 0;
-}
-.scroll-bar:vertical .increment-button {
-    -fx-padding: 0 0 0 -4;
-}
-.scroll-bar .decrement-button, .scroll-bar .increment-arrow, .scroll-bar .decrement-arrow {
-    -fx-background-color: null;
-    -fx-padding: 0;
-}
-.search-box {
-    -fx-border-image-source: url("images-ios/search.png");
-    -fx-border-image-slice: 0 15 0 30 fill;
-    -fx-border-image-width: 0 15 0 30;
-    -fx-padding: 0 50 0 0; 
-    -fx-prompt-text-fill: #b4b3b4;
-    -fx-text-fill: black;
-    -fx-cursor: text;
-    -fx-border-color: null;
-}
-
-/* *****************************************************************************
-   * POPOVERS
-   ****************************************************************************/
-.popover-frame {
-    -fx-border-image-source: url("images-ios/popover-empty.png");
-}
-.popover .button {
-    -fx-background-color: null;
-    -fx-padding: 5 10 5 10;
-    -fx-border-image-slice: 0 5 0 5 fill;
-    -fx-border-image-width: 0 5 0 5;
-    -fx-font-weight: bold;
-    -fx-text-fill: white;
-}   
-.popover-left-button {
-    -fx-border-image-source: url("images-ios/popover-blue-btn.png");
-}
-.popover-right-button {
-    -fx-border-image-source: url("images-ios/popover-light-blue-btn.png");
-}
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/EnsembleStylesIOSDesktop.css	Fri Nov 01 13:25:35 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2012, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-.ensmeble-tool-bar .title {
-    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.8) , 0 , 0 , 0 , -1 );
-}
-.popover-right-button .text,
-.popover-left-button .text {
-    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.9) , 0, 0.0 , 0 , -1 );
-}
\ No newline at end of file
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/back-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/back-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/forward-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/forward-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/home-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/home-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/list-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/list-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-blue-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-blue-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-empty.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-empty@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-light-blue-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/popover-light-blue-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search-btn.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search-btn@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/search@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/toolbar.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images-ios/toolbar@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/Duke-Lego3.jpg has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/corner-bottom.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/corner-top.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/highlights-ribbon.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/highlights-ribbon@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/home-background.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/home-background@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/orange-arrrow.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/orange-arrrow@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot-selected.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot-selected@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/pagination-dot@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/popover-empty.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/popover-empty@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-back-page-background.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-box.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-box@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-page-background-shadow.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-page-background.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper-border.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper-lines.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-paper.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-source-text.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/sample-source-text@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/section-ribbon.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/section-ribbon@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/tile-border.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/images/tile-border@2x.png has changed
Binary file apps/samples/Ensemble8/src/app/resources/ensemble/sampleproject/SampleProject.zip has changed
--- a/apps/samples/Ensemble8/src/app/resources/ensemble/syntaxhighlighter/shCoreDefault.css	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/app/resources/ensemble/syntaxhighlighter/shCoreDefault.css	Fri Nov 01 16:47:21 2013 -0700
@@ -226,13 +226,13 @@
 }
 
 .syntaxhighlighter {
-  background-color: white !important;
+  background-color: #f4f4f4 !important;
 }
 .syntaxhighlighter .line.alt1 {
-  background-color: white !important;
+  background-color: #f4f4f4 !important;
 }
 .syntaxhighlighter .line.alt2 {
-  background-color: white !important;
+  background-color: #f4f4f4 !important;
 }
 .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
   background-color: #e0e0e0 !important;
@@ -261,7 +261,7 @@
 }
 .syntaxhighlighter.collapsed .toolbar {
   color: blue !important;
-  background: white !important;
+  background: #f4f4f4 !important;
   border: 1px solid #6ce26c !important;
 }
 .syntaxhighlighter.collapsed .toolbar a {
@@ -271,12 +271,12 @@
   color: red !important;
 }
 .syntaxhighlighter .toolbar {
-  color: white !important;
+  color: #f4f4f4 !important;
   background: #6ce26c !important;
   border: none !important;
 }
 .syntaxhighlighter .toolbar a {
-  color: white !important;
+  color: #f4f4f4 !important;
 }
 .syntaxhighlighter .toolbar a:hover {
   color: black !important;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java	Fri Nov 01 13:25:35 2013 -0700
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java	Fri Nov 01 16:47:21 2013 -0700
@@ -156,7 +156,6 @@
         yAxis = new NumberAxis();
         chart = new CandleStickChart(xAxis,yAxis);
         // setup chart
-        chart.setTitle("Custom Candle Stick Chart");
         xAxis.setLabel("Day");
         yAxis.setLabel("Price");
         // add starting data
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/interpolator/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/interpolator/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timeline/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/timeline/timelineevents/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/fadetransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/fadetransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/filltransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/filltransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/paralleltransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/paralleltransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pathtransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pausetransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/pausetransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/rotatetransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/rotatetransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/scaletransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/scaletransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/sequentialtransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/sequentialtransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/stroketransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/stroketransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/translatetransition/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/animation/transitions/translatetransition/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/canvas/fireworks/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/audio/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/curvefitted/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/area/stacked/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/audio/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/horizontal/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/image/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bar/stacked/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/bubble/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/custom/candlestick/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/category/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/line/stock/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/pie/drilldown/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/animated/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/charts/scatter/chart/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/service/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/concurrency/task/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/accordion/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/colorbutton/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/graphicbutton/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/button/pillbutton/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/checkbox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/choicebox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/colorpicker/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/datepicker/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/hyperlink/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/horizontallistview/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/listviewcellfactory/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/listview/simplelistview/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/menu/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/pagination/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressbar/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/progressindicator/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/radiobutton/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/scrollbar/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/splitpane/hiddensplitpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/tab/tabpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tablecellfactory/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/table/tableview/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/advancedlabel/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/insettext/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/searchbox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/simplelabel/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textfield/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/text/textvalidator/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/togglebutton/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/styledtoolbar/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/toolbar/toolbar/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treetableview/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/controls/treeview/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/fxml/fxmldemo/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/bouncingballs/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/brickbreaker/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/calc/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/colorfulcircles/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/digitalclock/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/displayshelf/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/dropshadow/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/gaussianblur/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/innershadow/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/reflection/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/effects/sepiatone/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imagecreation/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageoperator/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/images/imageproperties/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/color/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/lineargradient/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/paints/radialgradient/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/puzzle/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/arc/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/circle/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/cubiccurve/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/ellipse/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/line/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/path/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polygon/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/polyline/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/quadcurve/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/shapes/rectangle/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics/stopwatch/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cube/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/cubesystem/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/simple3dbox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/graphics3d/xylophone/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/changelistener/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/beans/stringbinding/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/language/collections/observablelist/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/anchorpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/borderpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/flowpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/gridpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/hbox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/stackpane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/tilepane/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/layout/vbox/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/advancedmedia/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/alphamediaplayer/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/audioclip/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/overlaymediaplayer/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/media/streamingmediaplayer/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/cursor/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/cursor/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/gestureevent/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/gestureevent/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keyevent/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keyevent/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keystrokemotion/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/keystrokemotion/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/mouseevent/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/mouseevent/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/multitouch/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/events/multitouch/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/customnode/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/node/nodeproperties/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/advancedstage/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/scenegraph/stage/stage/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/swing/swinginterop/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/bidi/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/text/textflow/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/htmleditor/preview@2x.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview.png has changed
Binary file apps/samples/Ensemble8/src/samples/resources/ensemble/samples/web/webview/preview@2x.png has changed