changeset 5898:a4b45faa34a2

Ensemble8: Fix for RT-32637 Samples should be updated to use Lambdas for Java 8
author Alexander Kouznetsov
date Tue, 03 Dec 2013 18:41:47 -0800
parents b6b8fc7d6c18
children 0c426f650357
files apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java
diffstat 78 files changed, 1133 insertions(+), 1850 deletions(-) [+]
line wrap: on
line diff
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timeline/TimelineApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -106,56 +106,24 @@
         //method for creating navigation panel
         //start/stop/pause/play from start buttons
         Button buttonStart = new Button("Start");
-        buttonStart.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //start timeline
-                timeline.play();
-            }
-        });
+        buttonStart.setOnAction(t -> timeline.play());
         Button buttonStop = new Button("Stop");
-        buttonStop.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //stop timeline
-                timeline.stop();
-            }
-        });
+        buttonStop.setOnAction(t -> timeline.stop());
         Button buttonPlayFromStart = new Button("Restart");
-        buttonPlayFromStart.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //play from start
-                timeline.playFromStart();
-            }
-        });
+        buttonPlayFromStart.setOnAction(t -> timeline.playFromStart());
         Button buttonPause = new Button("Pause");
-        buttonPause.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //pause from start
-                timeline.pause();
-            }
-        });
+        buttonPause.setOnAction(t -> timeline.pause());
         //text showing current time
         final Text currentRateText = new Text("Current time: 0 ms");
         currentRateText.setBoundsType(TextBoundsType.VISUAL);
-        timeline.currentTimeProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                int time = (int) timeline.getCurrentTime().toMillis();
-                currentRateText.setText("Current time: " + time + " ms");
-            }
+        timeline.currentTimeProperty().addListener(ov -> {
+            int time = (int) timeline.getCurrentTime().toMillis();
+            currentRateText.setText("Current time: " + time + " ms");
         });
         //Autoreverse checkbox
         final CheckBox checkBoxAutoReverse = new CheckBox("Auto Reverse");
         checkBoxAutoReverse.setSelected(true);
-        checkBoxAutoReverse.selectedProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                timeline.setAutoReverse(checkBoxAutoReverse.isSelected());
-            }
-        });
+        checkBoxAutoReverse.selectedProperty().addListener(ov -> timeline.setAutoReverse(checkBoxAutoReverse.isSelected()));
         //add all navigation to layout
         HBox hBox1 = new HBox(10);
         hBox1.setPadding(new Insets(0, 0, 0, 5));
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/timelineevents/TimelineEventsApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -101,13 +101,10 @@
         //create a keyFrame, the keyValue is reached at time 2s
         Duration duration = Duration.seconds(2);
         //one can add a specific action when the keyframe is reached
-        EventHandler<ActionEvent> onFinished = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                 stack.setTranslateX(java.lang.Math.random() * 200);
-                 //reset counter
-                 i = 0;
-            }
+        EventHandler<ActionEvent> onFinished = t -> {
+             stack.setTranslateX(Math.random() * 200);
+             //reset counter
+             i = 0;
         };
         KeyFrame keyFrame = new KeyFrame(duration, onFinished , keyValueX, keyValueY);
         //add the keyframe to the timeline
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -69,13 +69,9 @@
             System.getProperty("demo.play.audio", "true"));
 
     public AudioAreaChartApp() {
-        audioSpectrumListener = new AudioSpectrumListener() {
-            @Override
-            public void spectrumDataUpdate(double timestamp, double duration,
-                    float[] magnitudes, float[] phases) {
-                for (int i = 0; i < series1Data.length; i++) {
-                    series1Data[i].setYValue(magnitudes[i] + 60);
-                }
+        audioSpectrumListener = (timestamp, duration, magnitudes, phases) -> {
+            for (int i = 0; i < series1Data.length; i++) {
+                series1Data[i].setYValue(magnitudes[i] + 60);
             }
         };
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java	Tue Dec 03 18:41:47 2013 -0800
@@ -130,7 +130,7 @@
             secondControlPoints[0] = new Point2D(
                     2 * firstControlPoints[0].getX() - dataPoints[0].getX(),
                     2 * firstControlPoints[0].getY() - dataPoints[0].getY());
-            return new Pair<Point2D[], Point2D[]>(firstControlPoints, secondControlPoints);
+            return new Pair<>(firstControlPoints, secondControlPoints);
         }
 
         // Calculate first Bezier control points
@@ -170,7 +170,7 @@
                         (dataPoints[n].getY() + y[n - 1]) / 2);
             }
         }
-        return new Pair<Point2D[], Point2D[]>(firstControlPoints, secondControlPoints);
+        return new Pair<>(firstControlPoints, secondControlPoints);
     }
 
     /**
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -71,13 +71,9 @@
             System.getProperty("demo.play.audio", "true"));
 
     public AudioBarChartApp() {
-        audioSpectrumListener = new AudioSpectrumListener() {
-            @Override
-            public void spectrumDataUpdate(double timestamp, double duration,
-                    float[] magnitudes, float[] phases) {
-                for (int i = 0; i < series1Data.length; i++) {
-                    series1Data[i].setYValue(magnitudes[i] + 60);
-                }
+        audioSpectrumListener = (timestamp, duration, magnitudes, phases) -> {
+            for (int i = 0; i < series1Data.length; i++) {
+                series1Data[i].setYValue(magnitudes[i] + 60);
             }
         };
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChart.java	Tue Dec 03 18:41:47 2013 -0800
@@ -164,12 +164,8 @@
             // fade out old candle
             FadeTransition ft = new FadeTransition(Duration.millis(500), candle);
             ft.setToValue(0);
-            ft.setOnFinished(new EventHandler<ActionEvent>() {
-
-                @Override
-                public void handle(ActionEvent actionEvent) {
-                    getPlotChildren().remove(candle);
-                }
+            ft.setOnFinished(actionEvent -> {
+                getPlotChildren().remove(candle);
             });
             ft.play();
         } else {
@@ -208,12 +204,8 @@
                 // fade out old candle
                 FadeTransition ft = new FadeTransition(Duration.millis(500), candle);
                 ft.setToValue(0);
-                ft.setOnFinished(new EventHandler<ActionEvent>() {
-
-                    @Override
-                    public void handle(ActionEvent actionEvent) {
-                        getPlotChildren().remove(candle);
-                    }
+                ft.setOnFinished(actionEvent -> {
+                    getPlotChildren().remove(candle);
                 });
                 ft.play();
             } else {
@@ -256,10 +248,10 @@
         List<Number> xData = null;
         List<Number> yData = null;
         if (xa.isAutoRanging()) {
-            xData = new ArrayList<Number>();
+            xData = new ArrayList<>();
         }
         if (ya.isAutoRanging()) {
-            yData = new ArrayList<Number>();
+            yData = new ArrayList<>();
         }
         if (xData != null || yData != null) {
             for (XYChart.Series<Number, Number> series : getData()) {
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/custom/candlestick/CandleStickChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -158,11 +158,10 @@
         xAxis.setLabel("Day");
         yAxis.setLabel("Price");
         // add starting data
-        XYChart.Series<Number,Number> series = new XYChart.Series<Number,Number>();
-        for (int i=0; i< data.length; i++) {
-            double[] day = data[i];
+        XYChart.Series<Number,Number> series = new XYChart.Series<>();
+        for (double[] day : data) {
             series.getData().add(
-                new XYChart.Data<Number,Number>(day[0],day[1],new CandleStickExtraValues(day[2],day[3],day[4],day[5]))
+                    new XYChart.Data<Number, Number>(day[0], day[1], new CandleStickExtraValues(day[2], day[3], day[4], day[5]))
             );
         }
         ObservableList<XYChart.Series<Number,Number>> data = chart.getData();
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -73,16 +73,13 @@
         // create timeline to add new data every 60th of second
         animation = new Timeline();
         animation.getKeyFrames()
-                .add(new KeyFrame(Duration.millis(1000 / 60), new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent actionEvent) {
-                // 6 minutes data per frame
-                for (int count = 0; count < 6; count++) {
-                    nextTime();
-                    plotTime();
-                }
-            }
-        }));
+                .add(new KeyFrame(Duration.millis(1000 / 60), actionEvent -> {
+                    // 6 minutes data per frame
+                    for (int count = 0; count < 6; count++) {
+                        nextTime();
+                        plotTime();
+                    }
+                }));
         animation.setCycleCount(Animation.INDEFINITE);
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -79,17 +79,12 @@
     }
 
     private void setDrilldownData(final PieChart pie, PieChart.Data data, final String labelPrefix) {
-        data.getNode().setOnMouseClicked(new EventHandler<MouseEvent>() {
-            
-            @Override public void handle(MouseEvent t) {
-                pie.setData(FXCollections.observableArrayList(
-                        new PieChart.Data(labelPrefix + "-1", 7),
-                        new PieChart.Data(labelPrefix + "-2", 2),
-                        new PieChart.Data(labelPrefix + "-3", 5),
-                        new PieChart.Data(labelPrefix + "-4", 3),
-                        new PieChart.Data(labelPrefix + "-5", 2)));
-            }
-        });
+        data.getNode().setOnMouseClicked(t -> pie.setData(FXCollections.observableArrayList(
+                new Data(labelPrefix + "-1", 7),
+                new Data(labelPrefix + "-2", 2),
+                new Data(labelPrefix + "-3", 5),
+                new Data(labelPrefix + "-4", 3),
+                new Data(labelPrefix + "-5", 2))));
     }
     
     @Override public void start(Stage primaryStage) throws Exception {
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -68,30 +68,26 @@
         // create animation
         Timeline timeline1 = new Timeline();
         timeline1.getKeyFrames().add(
-            new KeyFrame(Duration.millis(20), new EventHandler<ActionEvent>() {
-                @Override public void handle(ActionEvent actionEvent) {
-                    series.getData().add(new XYChart.Data<Number, Number>(
-                            nextX,
-                            Math.sin(Math.toRadians(nextX)) * 100
-                    ));
-                    nextX += 10;
-                }
+            new KeyFrame(Duration.millis(20), actionEvent -> {
+                series.getData().add(new XYChart.Data<Number, Number>(
+                        nextX,
+                        Math.sin(Math.toRadians(nextX)) * 100
+                ));
+                nextX += 10;
             })
         );
         timeline1.setCycleCount(200);
         Timeline timeline2 = new Timeline();
         timeline2.getKeyFrames().add(
-                new KeyFrame(Duration.millis(50), new EventHandler<ActionEvent>() {
-                    @Override public void handle(ActionEvent actionEvent) {
-                        series.getData().add(new XYChart.Data<Number, Number>(
-                                nextX,
-                                Math.sin(Math.toRadians(nextX)) * 100
-                        ));
-                        if (series.getData().size() > 54) {
-                            series.getData().remove(0);
-                        }
-                        nextX += 10;
+                new KeyFrame(Duration.millis(50), actionEvent -> {
+                    series.getData().add(new XYChart.Data<Number, Number>(
+                            nextX,
+                            Math.sin(Math.toRadians(nextX)) * 100
+                    ));
+                    if (series.getData().size() > 54) {
+                        series.getData().remove(0);
                     }
+                    nextX += 10;
                 })
         );
         timeline2.setCycleCount(Animation.INDEFINITE);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/concurrency/service/ServiceApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -70,12 +70,7 @@
         vbox.setPadding(new Insets(12));
         TableView tableView = new TableView();
         Button button = new Button("Refresh");
-        button.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                service.restart();
-            }
-        });
+        button.setOnAction(t -> service.restart());
         vbox.setPrefHeight(160);
         vbox.getChildren().addAll(tableView, button);
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -64,12 +64,10 @@
         coloredText.setTextFill(c);
         coloredButton.setStyle(createRGBString(c));
 
-        colorPicker.setOnAction(new EventHandler() {            
-            @Override public void handle(Event t) {
-                Color newColor = colorPicker.getValue();
-                coloredText.setTextFill(newColor);
-                coloredButton.setStyle(createRGBString(newColor));
-            }
+        colorPicker.setOnAction(t -> {
+            Color newColor = colorPicker.getValue();
+            coloredText.setTextFill(newColor);
+            coloredButton.setStyle(createRGBString(newColor));
         });
 
         VBox outerVBox = new VBox(coloredText, coloredButton, colorPicker);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -82,26 +82,24 @@
     private Stage myStage;
     private Stage primStage;
     static {
-        locales.addAll(new String[]{
-            "en-US",
-            "ar-SA",
-            "en-GB",
-            "cs-CZ",
-            "el-GR",
-            "he-IL",
-            "hi-IN",
-            "ja-JP",
-            "ja-JP-u-ca-japanese",
-            "ru-RU",
-            "sv-SE",
-            "th-TH",
-            "th-TH-u-ca-buddhist",
-            "th-TH-u-ca-buddhist-nu-thai",
-            "zh-CN",
-            "en-US-u-ca-islamic-umalqura",
-            "ar-SA-u-ca-islamic-umalqura",
-            "en-u-ca-japanese-nu-thai"
-        });
+        locales.addAll("en-US",
+                "ar-SA",
+                "en-GB",
+                "cs-CZ",
+                "el-GR",
+                "he-IL",
+                "hi-IN",
+                "ja-JP",
+                "ja-JP-u-ca-japanese",
+                "ru-RU",
+                "sv-SE",
+                "th-TH",
+                "th-TH-u-ca-buddhist",
+                "th-TH-u-ca-buddhist-nu-thai",
+                "zh-CN",
+                "en-US-u-ca-islamic-umalqura",
+                "ar-SA-u-ca-islamic-umalqura",
+                "en-u-ca-japanese-nu-thai");
     }
 
     public Parent createContent() {
@@ -121,30 +119,27 @@
         button.setToggleGroup(group);
         closeButton.setToggleGroup(group);
 
-        group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
-            @Override
-            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle selectedToggle) {
-                if ((ToggleButton) selectedToggle != null) {
-                    if (((ToggleButton) selectedToggle).getText().equals("Open a  new Stage for DatePicker")) {
-                        if (myStage == null) {
-                            myStage = new Stage();
-                            Group rootGroup = new Group();
-                            Scene scene = new Scene(rootGroup, 300, 200);
-                            myStage.setScene(scene);
-                            myStage.centerOnScreen();
-                            myStage.initOwner(primStage);
-                            myStage.show();
-                            rootGroup.getChildren().add(createDatePickerSceneContent(myStage));                           
+        group.selectedToggleProperty().addListener((observable, oldValue, selectedToggle) -> {
+            if (selectedToggle != null) {
+                if (((ToggleButton) selectedToggle).getText().equals("Open a  new Stage for DatePicker")) {
+                    if (myStage == null) {
+                        myStage = new Stage();
+                        Group rootGroup = new Group();
+                        Scene scene = new Scene(rootGroup, 300, 200);
+                        myStage.setScene(scene);
+                        myStage.centerOnScreen();
+                        myStage.initOwner(primStage);
+                        myStage.show();
+                        rootGroup.getChildren().add(createDatePickerSceneContent(myStage));
+                    }
+                } else {
+                    if (myStage != null) {
+                        myStage.close();
+                        myStage = null;
+                        if (originalDefault != null) {
+                            Locale.setDefault(originalDefault);
                         }
-                    } else {
-                        if (myStage != null) {
-                            myStage.close();
-                            myStage = null;
-                            if (originalDefault != null) {
-                                Locale.setDefault(originalDefault);
-                            }
-                            button.setDisable(false);
-                        }
+                        button.setDisable(false);
                     }
                 }
             }
@@ -179,18 +174,15 @@
         //Create the menubar to experiment with the DatePicker
         datePickerMenuBar = createMenuBar(inStage, dayCellFactory);
         // Listen for DatePicker actions
-        datePicker.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                LocalDate isoDate = datePicker.getValue();
-                if ((isoDate != null) && (!isoDate.equals(LocalDate.now()))) {
-                    for (Menu menu : datePickerMenuBar.getMenus()) {
-                        if (menu.getText().equals("Options for Locale")) {
-                            for (MenuItem menuItem : menu.getItems()) {
-                                if (menuItem.getText().equals("Set date to today")) {
-                                    if ((menuItem instanceof CheckMenuItem) && ((CheckMenuItem) menuItem).isSelected()) {
-                                        ((CheckMenuItem) menuItem).setSelected(false);
-                                    }
+        datePicker.setOnAction(t -> {
+            LocalDate isoDate = datePicker.getValue();
+            if ((isoDate != null) && (!isoDate.equals(LocalDate.now()))) {
+                for (Menu menu : datePickerMenuBar.getMenus()) {
+                    if (menu.getText().equals("Options for Locale")) {
+                        for (MenuItem menuItem : menu.getItems()) {
+                            if (menuItem.getText().equals("Set date to today")) {
+                                if ((menuItem instanceof CheckMenuItem) && ((CheckMenuItem) menuItem).isSelected()) {
+                                    ((CheckMenuItem) menuItem).setSelected(false);
                                 }
                             }
                         }
@@ -217,9 +209,8 @@
         final ToggleGroup localeToggleGroup = new ToggleGroup();
         // Locales
         Menu localeMenu = new Menu("Locales");
-        Iterator<String> localeIterator = locales.iterator();
-        while (localeIterator.hasNext()) {
-            RadioMenuItem localeMenuItem = new RadioMenuItem(localeIterator.next());
+        for (String locale1 : locales) {
+            RadioMenuItem localeMenuItem = new RadioMenuItem(locale1);
             localeMenuItem.setToggleGroup(localeToggleGroup);
             localeMenu.getItems().add(localeMenuItem);
         }
@@ -228,55 +219,41 @@
         //Style DatePicker with cell factory
         final CheckMenuItem cellFactoryMenuItem = new CheckMenuItem("Use cell factory to color past days and add tooltip to tomorrow");
         optionsMenu.getItems().add(cellFactoryMenuItem);
-        cellFactoryMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                if (cellFactoryMenuItem.isSelected()) {
-                    datePicker.setDayCellFactory(dayCellFac);
-                } else {
-                    datePicker.setDayCellFactory(null);
-                }
+        cellFactoryMenuItem.setOnAction(t -> {
+            if (cellFactoryMenuItem.isSelected()) {
+                datePicker.setDayCellFactory(dayCellFac);
+            } else {
+                datePicker.setDayCellFactory(null);
             }
         });
                        
         //Set date to today
         final CheckMenuItem todayMenuItem = new CheckMenuItem("Set date to today");
         optionsMenu.getItems().add(todayMenuItem);
-        todayMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                if (todayMenuItem.isSelected()) {
-                    datePicker.setValue(today);
-                }
+        todayMenuItem.setOnAction(t -> {
+            if (todayMenuItem.isSelected()) {
+                datePicker.setValue(today);
             }
         });
 
         //Set date to today
         final CheckMenuItem showWeekNumMenuItem = new CheckMenuItem("Show week numbers");
         optionsMenu.getItems().add(showWeekNumMenuItem);
-        showWeekNumMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                datePicker.setShowWeekNumbers(showWeekNumMenuItem.isSelected());
+        showWeekNumMenuItem.setOnAction(t -> datePicker.setShowWeekNumbers(showWeekNumMenuItem.isSelected()));
+        
+        localeToggleGroup.selectedToggleProperty().addListener((ov, oldToggle, newToggle) -> {
+            if (localeToggleGroup.getSelectedToggle() != null) {
+                String selectedLocale = ((RadioMenuItem) localeToggleGroup.getSelectedToggle()).getText();
+                Locale locale = Locale.forLanguageTag(selectedLocale.replace('_', '-'));
+                if (originalDefault == null) { //save original default Locale for restoration later
+                    originalDefault = Locale.getDefault();
+                }
+                Locale.setDefault(locale);
+               // sampleContent = createDatePickerSceneContent(inStage);
+                inStage.setScene(new Scene(createDatePickerSceneContent(inStage)));
+                inStage.show();
             }
-        });        
-        
-        localeToggleGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
-            @Override
-            public void changed(ObservableValue<? extends Toggle> ov, Toggle oldToggle, Toggle newToggle) {
-                if (localeToggleGroup.getSelectedToggle() != null) {
-                    String selectedLocale = ((RadioMenuItem) localeToggleGroup.getSelectedToggle()).getText();
-                    Locale locale = Locale.forLanguageTag(selectedLocale.replace('_', '-'));
-                    if (originalDefault == null) { //save original default Locale for restoration later
-                        originalDefault = Locale.getDefault();
-                    }
-                    Locale.setDefault(locale);
-                   // sampleContent = createDatePickerSceneContent(inStage);
-                    inStage.setScene(new Scene(createDatePickerSceneContent(inStage)));
-                    inStage.show();
-                }
-            }
-        });       
+        });
 
         menuBar.getMenus().addAll(localeMenu, optionsMenu);
         return menuBar;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -65,11 +65,7 @@
 
         ));
         
-        listView.setCellFactory(new Callback<ListView<java.lang.Number>, ListCell<java.lang.Number>>() {
-            @Override public ListCell<Number> call(ListView<java.lang.Number> list) {
-                return new MoneyFormatCell();
-            }
-        });        
+        listView.setCellFactory(list -> new MoneyFormatCell());
         
         listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
         return listView;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -57,9 +57,9 @@
 public class SimpleListViewApp extends Application {
 
     public Parent createContent() {
-        final ListView<String> listView = new ListView<String>();
+        final ListView<String> listView = new ListView<>();
         listView.setItems(FXCollections.observableArrayList(
-                "Row 1", "Row 2", "Long Row 3", "Row 4", "Row 5", "Row 6",
+                "Row 1", "Row 2", "Row 3", "Row 4", "Row 5", "Row 6",
                 "Row 7", "Row 8", "Row 9", "Row 10", "Row 11", "Row 12", "Row 13",
                 "Row 14", "Row 15", "Row 16", "Row 17", "Row 18", "Row 19", "Row 20"));
         listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -79,12 +79,9 @@
         final MenuItem menu112 = new MenuItem("foo");
         final CheckMenuItem menu113 = new CheckMenuItem("Show \"foo\" item");
         menu113.setSelected(true);
-        menu113.selectedProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable valueModel) {
-                menu112.setVisible(menu113.isSelected());
-                System.err.println("MenuItem \"foo\" is now " + (menu112.isVisible() ? "" : "not") + " visible.");
-            }
+        menu113.selectedProperty().addListener(valueModel -> {
+            menu112.setVisible(menu113.isSelected());
+            System.err.println("MenuItem \"foo\" is now " + (menu112.isVisible() ? "" : "not") + " visible.");
         });
         // Options->Submenu 1 submenu 
         Menu menu11 = new Menu("Submenu 1",
@@ -100,12 +97,9 @@
         final String change[] = {"Change Text", "Change Back"};
         final MenuItem menu13 = new MenuItem(change[0]);
         menu13.setAccelerator(KeyCombination.keyCombination("Shortcut+C"));
-        menu13.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                menu13.setText((menu13.getText().equals(change[0])) ? change[1] : change[0]);
-                outputLabel.setText(((MenuItem) t.getTarget()).getText() + " - action called");
-            }
+        menu13.setOnAction(t -> {
+            menu13.setText((menu13.getText().equals(change[0])) ? change[1] : change[0]);
+            outputLabel.setText(((MenuItem) t.getTarget()).getText() + " - action called");
         });
 
         // Options menu       
@@ -129,12 +123,7 @@
             hbox.getChildren().add(sysMenuLabel);
             vbox.getChildren().add(hbox);
             sysMenuLabel.setVisible((menuBar.getHeight() == 0));
-            menuBar.heightProperty().addListener(new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                    sysMenuLabel.setVisible((menuBar.getHeight() == 0));
-                }
-            });
+            menuBar.heightProperty().addListener((ov, t, t1) -> sysMenuLabel.setVisible((menuBar.getHeight() == 0)));
         }
 
         vbox.getChildren().addAll(menuBar);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -73,22 +73,14 @@
         images[6] = new Image(PaginationApp.class.getResource("/ensemble/samples/shared-resources/Animal7.jpg").toExternalForm(), false);
 
         pagination = new Pagination(7);
-        pagination.setPageFactory(new Callback<Integer, Node>() {
-            @Override
-            public Node call(Integer pageIndex) {
-                return createAnimalPage(pageIndex);
-            }
-        });
+        pagination.setPageFactory(this::createAnimalPage);
         //Style can be numeric page indicators or bullet indicators
         Button styleButton = new Button("Toggle pagination style");
-        styleButton.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent me) {
-                if (!pagination.getStyleClass().contains(Pagination.STYLE_CLASS_BULLET)) {
-                    pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET);
-                } else {
-                    pagination.getStyleClass().remove(Pagination.STYLE_CLASS_BULLET);
-                }
+        styleButton.setOnAction(me -> {
+            if (!pagination.getStyleClass().contains(Pagination.STYLE_CLASS_BULLET)) {
+                pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET);
+            } else {
+                pagination.getStyleClass().remove(Pagination.STYLE_CLASS_BULLET);
             }
         });
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -78,16 +78,13 @@
         // styled ProgressIndicator
         final ProgressIndicator p5 = new ProgressIndicator();
         p5.setPrefSize(100, 100);
-        p5.progressProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue ov, Number oldVal, Number newVal) {
-                if (p5.getProgress() < 0.25) {
-                    p5.setStyle("-fx-progress-color: red;");
-                } else if (p5.getProgress() < 0.5) {
-                    p5.setStyle("-fx-progress-color: orange;");
-                } else {
-                    p5.setStyle("-fx-progress-color: green;");
-                }
+        p5.progressProperty().addListener((ov, oldVal, newVal) -> {
+            if (p5.getProgress() < 0.25) {
+                p5.setStyle("-fx-progress-color: red;");
+            } else if (p5.getProgress() < 0.5) {
+                p5.setStyle("-fx-progress-color: orange;");
+            } else {
+                p5.setStyle("-fx-progress-color: green;");
             }
         });
         // animate the styled ProgressIndicator
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -78,24 +78,14 @@
         //create horizontal scrollbar
         xscrollBar = horizontalScrollBar(-1,-1,xBarWidth,xBarHeight,xBarWidth,xBarHeight);
         xscrollBar.setUnitIncrement(20.0);
-        xscrollBar.valueProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                //changes the x position of the circle
-                setScrollValueX(xscrollBar.getValue(), circle);
-            }
-        });
+        xscrollBar.valueProperty().addListener((observable, oldValue, newValue) 
+                -> setScrollValueX(xscrollBar.getValue(), circle));
 
         //create vertical scrollbar
         yscrollBar = verticalScrollBar(-1,-1,yBarWidth,yBarHeight,yBarWidth,yBarHeight);
         yscrollBar.setUnitIncrement(20.0);
-        yscrollBar.valueProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                //changes the y position of the circle
-                setScrollValueY(yscrollBar.getValue(), circle);
-            }
-        });
+        yscrollBar.valueProperty().addListener((observable, oldValue, newValue) 
+                -> setScrollValueY(yscrollBar.getValue(), circle));
 
         //shift position of vertical scrollbar to right side of scene
         yscrollBar.setTranslateX(yBarHeight);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/tabpane/TabPaneApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -113,11 +113,7 @@
             final RadioButton radioButton = new RadioButton(policy.name());
             radioButton.setMnemonicParsing(false);
             radioButton.setToggleGroup(closingPolicy);
-            radioButton.setOnAction(new EventHandler<ActionEvent>() {                
-                @Override public void handle(ActionEvent event) {
-                    tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.valueOf(radioButton.getText()));
-                }
-            });
+            radioButton.setOnAction(event -> tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.valueOf(radioButton.getText())));
             if (policy.name().equals(TabPane.TabClosingPolicy.SELECTED_TAB.name())) {
                 radioButton.setSelected(true);
             }
@@ -134,20 +130,18 @@
 
         final CheckBox cb = new CheckBox("Show labels on original tabs");
         cb.setSelected(true);
-        cb.setOnAction(new EventHandler<ActionEvent>() {           
-            @Override public void handle(ActionEvent event) {
-                if (cb.isSelected()) {
-                    tab1.setText("Tab 1");
-                    tab2.setText("Longer Tab");
-                    tab3.setText("Tab 3");
-                    internalTab.setText("Internal Tabs");
+        cb.setOnAction(event -> {
+            if (cb.isSelected()) {
+                tab1.setText("Tab 1");
+                tab2.setText("Longer Tab");
+                tab3.setText("Tab 3");
+                internalTab.setText("Internal Tabs");
 
-                } else {
-                    tab1.setText("");
-                    tab2.setText("");
-                    tab3.setText("");
-                    internalTab.setText("");
-                }
+            } else {
+                tab1.setText("");
+                tab2.setText("");
+                tab3.setText("");
+                internalTab.setText("");
             }
         });
         vboxTab3.getChildren().add(cb);
@@ -195,19 +189,11 @@
         innerVbox.setTranslateX(10);
         innerVbox.setTranslateY(10);
         Button innerTabPosButton = new Button("Toggle Tab Position");
-        innerTabPosButton.setOnAction(new EventHandler<ActionEvent>() {           
-            @Override public void handle(ActionEvent e) {
-                toggleTabPosition(internalTabPane);
-            }
-        });
+        innerTabPosButton.setOnAction(e -> toggleTabPosition(internalTabPane));
         innerVbox.getChildren().add(innerTabPosButton);
         {
             Button innerTabModeButton = new Button("Toggle Tab Mode");
-            innerTabModeButton.setOnAction(new EventHandler<ActionEvent>() {               
-                @Override public void handle(ActionEvent e) {
-                    toggleTabMode(internalTabPane);
-                }
-            });
+            innerTabModeButton.setOnAction(e -> toggleTabMode(internalTabPane));
             innerVbox.getChildren().add(innerTabModeButton);
         }
         innerTab.setContent(innerVbox);
@@ -226,38 +212,26 @@
     private void setUpControlButtons(VBox vbox) {
         // Toggle style class floating
         final Button tabModeButton = new Button("Toggle Tab Mode");
-        tabModeButton.setOnAction(new EventHandler<ActionEvent>() {            
-            @Override public void handle(ActionEvent e) {
-                toggleTabMode(tabPane);
-            }
-        });
+        tabModeButton.setOnAction(e -> toggleTabMode(tabPane));
         vbox.getChildren().add(tabModeButton);
         // Tab position
         final Button tabPositionButton = new Button("Toggle Tab Position");
-        tabPositionButton.setOnAction(new EventHandler<ActionEvent>() {           
-            @Override public void handle(ActionEvent e) {
-                toggleTabPosition(tabPane);
-            }
-        });
+        tabPositionButton.setOnAction(e -> toggleTabPosition(tabPane));
         // Add tab and switch to it
         final Button newTabButton = new Button("Switch to New Tab");
-        newTabButton.setOnAction(new EventHandler<ActionEvent>() {
-            @Override public void handle(ActionEvent e) {
-                Tab t = new Tab("Testing");
-                t.setContent(new Button("Howdy"));
-                tabPane.getTabs().add(t);
-                tabPane.getSelectionModel().select(t);
-            }
+        newTabButton.setOnAction(e -> {
+            Tab t = new Tab("Testing");
+            t.setContent(new Button("Howdy"));
+            tabPane.getTabs().add(t);
+            tabPane.getSelectionModel().select(t);
         });
         vbox.getChildren().add(newTabButton);
         // Add tab
         final Button addTabButton = new Button("Add Tab");
-        addTabButton.setOnAction(new EventHandler<ActionEvent>() {
-            @Override public void handle(ActionEvent e) {
-                Tab t = new Tab("New Tab");
-                t.setContent(new Region());
-                tabPane.getTabs().add(t);
-            }
+        addTabButton.setOnAction(e -> {
+            Tab t = new Tab("New Tab");
+            t.setContent(new Region());
+            tabPane.getTabs().add(t);
         });
         vbox.getChildren().add(addTabButton);
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/Person.java	Tue Dec 03 18:41:47 2013 -0800
@@ -52,11 +52,7 @@
             this.email = new SimpleStringProperty(email);
             this.invited = new SimpleBooleanProperty(invited);
 
-            this.invited.addListener(new ChangeListener<Boolean>() {
-                public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                    System.out.println(firstNameProperty().get() + " invited: " + t1);
-                }
-            });
+            this.invited.addListener((ov, t, t1) -> System.out.println(firstNameProperty().get() + " invited: " + t1));
         }
 
         public BooleanProperty invitedProperty() { return invited; }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/table/tablecellfactory/TableCellFactoryApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -34,12 +34,9 @@
 import javafx.application.Application;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
-import javafx.event.EventHandler;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
-import javafx.scene.control.TableCell;
 import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableColumn.CellEditEvent;
 import javafx.scene.control.TableView;
 import javafx.scene.control.cell.CheckBoxTableCell;
 import javafx.scene.control.cell.PropertyValueFactory;
@@ -128,31 +125,18 @@
         launch(args);
     }
 
-    private void updateObservableListProperties(TableColumn emailCol, TableColumn firstNameCol,
-            TableColumn lastNameCol) {
+    private void updateObservableListProperties(
+            TableColumn<Person, String> emailCol, 
+            TableColumn<Person, String> firstNameCol,
+            TableColumn<Person, String> lastNameCol) {
         //Modifying the email property in the ObservableList
-        emailCol.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
-            @Override
-            public void handle(CellEditEvent<Person, String> t) {
-                ((Person) t.getTableView().getItems().get(
-                        t.getTablePosition().getRow())).setEmail(t.getNewValue());
-            }
-        });
+        emailCol.setOnEditCommit(t -> ((Person) t.getTableView().getItems().get(
+                t.getTablePosition().getRow())).setEmail(t.getNewValue()));
         //Modifying the firstName property in the ObservableList
-        firstNameCol.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
-            @Override
-            public void handle(CellEditEvent<Person, String> t) {
-                ((Person) t.getTableView().getItems().get(
-                        t.getTablePosition().getRow())).setFirstName(t.getNewValue());
-            }
-        });
+        firstNameCol.setOnEditCommit(t -> ((Person) t.getTableView().getItems().get(
+                t.getTablePosition().getRow())).setFirstName(t.getNewValue()));
         //Modifying the lastName property in the ObservableList
-        lastNameCol.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
-            @Override
-            public void handle(CellEditEvent<Person, String> t) {
-                ((Person) t.getTableView().getItems().get(
-                        t.getTablePosition().getRow())).setLastName(t.getNewValue());
-            }
-        });
+        lastNameCol.setOnEditCommit(t -> ((Person) t.getTableView().getItems().get(
+                t.getTablePosition().getRow())).setLastName(t.getNewValue()));
     }
 }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java	Tue Dec 03 18:41:47 2013 -0800
@@ -56,19 +56,11 @@
         clearButton = new Button();
         clearButton.setVisible(false);
         getChildren().addAll(textBox, clearButton);
-        clearButton.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent actionEvent) {
-                textBox.setText("");
-                textBox.requestFocus();
-            }
+        clearButton.setOnAction(actionEvent -> {
+            textBox.setText("");
+            textBox.requestFocus();
         });
-        textBox.textProperty().addListener(new ChangeListener<String>() {
-            @Override
-            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
-                clearButton.setVisible(textBox.getText().length() != 0);
-            }
-        });
+        textBox.textProperty().addListener((observable, oldValue, newValue) -> clearButton.setVisible(textBox.getText().length() != 0));
     }
 
     @Override
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -39,26 +39,22 @@
  
 public class TextInputValidatorPane<C extends TextInputControl> extends ValidatorPane<C> {
 
-    private InvalidationListener textListener = new InvalidationListener() {           
-        @Override public void invalidated(Observable o) {
-            final Validator v = getValidator();
-            final ValidationResult result = v != null ?
-                v.validate(getContent()) :
-                new ValidationResult("", ValidationResult.Type.SUCCESS);
+    private InvalidationListener textListener = o -> {
+        final Validator v = getValidator();
+        final ValidationResult result = v != null ?
+            v.validate(getContent()) :
+            new ValidationResult("", ValidationResult.Type.SUCCESS);
 
-            handleValidationResult(result);
-        }
+        handleValidationResult(result);
     };
 
     public TextInputValidatorPane() {
-        contentProperty().addListener(new ChangeListener<C>() {                
-            @Override public void changed(ObservableValue<? extends C> ov, C oldValue, C newValue) {
-                if (oldValue != null) {
-                    oldValue.textProperty().removeListener(textListener);
-                }
-                if (newValue != null) {
-                    newValue.textProperty().addListener(textListener);
-                }
+        contentProperty().addListener((ov, oldValue, newValue) -> {
+            if (oldValue != null) {
+                oldValue.textProperty().removeListener(textListener);
+            }
+            if (newValue != null) {
+                newValue.textProperty().addListener(textListener);
             }
         });
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -58,25 +58,22 @@
         dateField.setPromptText("Enter a Large Number");
         dateField.setMaxHeight(TextField.USE_PREF_SIZE);
 
-        TextInputValidatorPane<TextField> pane = new TextInputValidatorPane<TextField>();
+        TextInputValidatorPane<TextField> pane = new TextInputValidatorPane<>();
         pane.setContent(dateField);
-        pane.setValidator(new Validator<TextField>() {
-            @Override
-            public ValidationResult validate(TextField control) {
-                try {
-                    String text = control.getText();
-                    if (text == null || text.trim().equals("")) {
-                        return null;
-                    }
-                    double d = Double.parseDouble(text);
-                    if (d < 1000) {
-                        return new ValidationResult("Should be > 1000", ValidationResult.Type.WARNING);
-                    }
-                    return null; // succeeded
-                } catch (Exception e) {
-                    // failed
-                    return new ValidationResult("Bad number", ValidationResult.Type.ERROR);
+        pane.setValidator(control -> {
+            try {
+                String text = control.getText();
+                if (text == null || text.trim().equals("")) {
+                    return null;
                 }
+                double d = Double.parseDouble(text);
+                if (d < 1000) {
+                    return new ValidationResult("Should be > 1000", ValidationResult.Type.WARNING);
+                }
+                return null; // succeeded
+            } catch (Exception e) {
+                // failed
+                return new ValidationResult("Bad number", ValidationResult.Type.ERROR);
             }
         });
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java	Tue Dec 03 18:41:47 2013 -0800
@@ -36,7 +36,7 @@
  
 public class ValidationEvent extends Event{
     public static final EventType<ValidationEvent> ANY_EVENT =
-            new EventType<ValidationEvent>(Event.ANY, "VALIDATION");
+            new EventType<>(Event.ANY, "VALIDATION");
 
     private final ValidationResult result;
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -46,7 +46,7 @@
     /**
      * The content for the validator pane is the control it should work with.
      */
-    private ObjectProperty<C> content = new SimpleObjectProperty<C>(this, "content", null);
+    private ObjectProperty<C> content = new SimpleObjectProperty<>(this, "content", null);
 
     public final C getContent() {
         return content.get();
@@ -62,7 +62,7 @@
     /**
      * The validator
      */
-    private ObjectProperty<Validator<C>> validator = new SimpleObjectProperty<Validator<C>>(this, "validator");
+    private ObjectProperty<Validator<C>> validator = new SimpleObjectProperty<>(this, "validator");
 
     public final Validator<C> getValidator() {
         return validator.get();
@@ -78,7 +78,7 @@
     /**
      * The validation result
      */
-    private ReadOnlyObjectWrapper<ValidationResult> validationResult = new ReadOnlyObjectWrapper<ValidationResult>(this, "validationResult");
+    private ReadOnlyObjectWrapper<ValidationResult> validationResult = new ReadOnlyObjectWrapper<>(this, "validationResult");
 
     public final ValidationResult getValidationResult() {
         return validationResult.get();
@@ -91,7 +91,7 @@
      * The event handler
      */
     private ObjectProperty<EventHandler<ValidationEvent>> onValidation =
-            new SimpleObjectProperty<EventHandler<ValidationEvent>>(this, "onValidation");
+            new SimpleObjectProperty<>(this, "onValidation");
 
     public final EventHandler<ValidationEvent> getOnValidation() {
         return onValidation.get();
@@ -106,15 +106,12 @@
     }
 
     public ValidatorPane() {
-        content.addListener(new ChangeListener<Control>() {
-            @Override
-            public void changed(ObservableValue<? extends Control> ov, Control oldValue, Control newValue) {
-                if (oldValue != null) {
-                    getChildren().remove(oldValue);
-                }
-                if (newValue != null) {
-                    getChildren().add(0, newValue);
-                }
+        content.addListener((ov, oldValue, newValue) -> {
+            if (oldValue != null) {
+                getChildren().remove(oldValue);
+            }
+            if (newValue != null) {
+                getChildren().add(0, newValue);
             }
         });
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -74,14 +74,11 @@
         tb1.setToggleGroup(group);
         tb2.setToggleGroup(group);
         tb3.setToggleGroup(group);
-        group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
-            @Override
-            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle selectedToggle) {
-                if (selectedToggle != null) {
-                    label.setText(((ToggleButton) selectedToggle).getText());
-                } else {
-                    label.setText("...");
-                }
+        group.selectedToggleProperty().addListener((observable, oldValue, selectedToggle) -> {
+            if (selectedToggle != null) {
+                label.setText(((ToggleButton) selectedToggle).getText());
+            } else {
+                label.setText("...");
             }
         });
         // select the first button to start with
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treetableview/TreeTableViewApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -79,27 +79,21 @@
         nameColumn.setEditable(false);
         nameColumn.setMinWidth(130);
         nameColumn.setCellValueFactory(
-                new Callback<TreeTableColumn.CellDataFeatures<Inventory, String>, ObservableValue<String>>() {
-            @Override
-            public ObservableValue<String> call(TreeTableColumn.CellDataFeatures<Inventory, String> p) {
-                Inventory inv = p.getValue().getValue();
-                return new ReadOnlyObjectWrapper(inv.nameProperty().getValue());
-            }
-        });
+                p -> {
+                    Inventory inv = p.getValue().getValue();
+                    return new ReadOnlyObjectWrapper(inv.nameProperty().getValue());
+                });
 
         // Data column
         final TreeTableColumn<Inventory, String> dataColumn = new TreeTableColumn<>("Data");
         dataColumn.setEditable(true);
         dataColumn.setMinWidth(150);
-        dataColumn.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<Inventory, String>, ObservableValue<String>>() {
-            @Override
-            public ObservableValue<String> call(TreeTableColumn.CellDataFeatures<Inventory, String> p) {
-                final Inventory value = p.getValue().getValue();
-                if (value.equals(rootItem.getValue())) {
-                    return new ReadOnlyStringWrapper(" ");
-                } else {
-                    return new ReadOnlyStringWrapper(value.ob1Property().getValue().dataProperty().getValue());
-                }
+        dataColumn.setCellValueFactory(p -> {
+            final Inventory value = p.getValue().getValue();
+            if (value.equals(rootItem.getValue())) {
+                return new ReadOnlyStringWrapper(" ");
+            } else {
+                return new ReadOnlyStringWrapper(value.ob1Property().getValue().dataProperty().getValue());
             }
         });
 
@@ -107,29 +101,16 @@
         final TreeTableColumn<Inventory, String> noteColumn = new TreeTableColumn<>("Notes (editable)");
         noteColumn.setEditable(true);
         noteColumn.setMinWidth(150);
-        noteColumn.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<Inventory, String>, ObservableValue<String>>() {
-            @Override
-            public ObservableValue<String> call(TreeTableColumn.CellDataFeatures<Inventory, String> p) {
-                final Inventory value = p.getValue().getValue();
-                if (value.equals(rootItem.getValue())) {
-                    return new ReadOnlyStringWrapper(" ");
-                } else {
-                    return new ReadOnlyStringWrapper(value.p2Property().getValue());
-                }
+        noteColumn.setCellValueFactory(p -> {
+            final Inventory value = p.getValue().getValue();
+            if (value.equals(rootItem.getValue())) {
+                return new ReadOnlyStringWrapper(" ");
+            } else {
+                return new ReadOnlyStringWrapper(value.p2Property().getValue());
             }
         });
-        noteColumn.setOnEditCommit(new EventHandler<TreeTableColumn.CellEditEvent<Inventory, String>>() {
-            @Override
-            public void handle(TreeTableColumn.CellEditEvent<Inventory, String> t) {
-                System.out.println("Note column entry was edited. Old value = " + t.getOldValue() + " New value = " + t.getNewValue());
-            }
-        });
-        noteColumn.setCellFactory(new Callback<TreeTableColumn<Inventory, String>, TreeTableCell<Inventory, String>>() {
-            @Override
-            public TreeTableCell<Inventory, String> call(TreeTableColumn<Inventory, String> p) {
-                return new TextFieldTreeTableCell(new DefaultStringConverter());
-            }
-        });
+        noteColumn.setOnEditCommit(t -> System.out.println("Note column entry was edited. Old value = " + t.getOldValue() + " New value = " + t.getNewValue()));
+        noteColumn.setCellFactory(p -> new TextFieldTreeTableCell(new DefaultStringConverter()));
 
         final TreeTableView treeTableView = new TreeTableView(rootItem);
         treeTableView.setEditable(true);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -51,18 +51,18 @@
 public class TreeViewApp extends Application {
 
     public Parent createContent() {
-        final TreeItem<String> treeRoot = new TreeItem<String>("Root node");
+        final TreeItem<String> treeRoot = new TreeItem<>("Root node");
         treeRoot.getChildren().addAll(Arrays.asList(
-                new TreeItem<String>("Child Node 1"),
-                new TreeItem<String>("Child Node 2"),
-                new TreeItem<String>("Child Node 3")));
+                new TreeItem<>("Child Node 1"),
+                new TreeItem<>("Child Node 2"),
+                new TreeItem<>("Child Node 3")));
 
         treeRoot.getChildren().get(2).getChildren().addAll(Arrays.asList(
-                new TreeItem<String>("Child Node 4"),
-                new TreeItem<String>("Child Node 5"),
-                new TreeItem<String>("Child Node 6"),
-                new TreeItem<String>("Child Node 7"),
-                new TreeItem<String>("Child Node 8")));
+                new TreeItem<>("Child Node 4"),
+                new TreeItem<>("Child Node 5"),
+                new TreeItem<>("Child Node 6"),
+                new TreeItem<>("Child Node 7"),
+                new TreeItem<>("Child Node 8")));
 
         final TreeView treeView = new TreeView();
         treeView.setShowRoot(true);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/Authenticator.java	Tue Dec 03 18:41:47 2013 -0800
@@ -35,7 +35,7 @@
 import java.util.Map;
 
 public class Authenticator {
-    private static final Map<String, String> USERS = new HashMap<String, String>();
+    private static final Map<String, String> USERS = new HashMap<>();
     static {
         USERS.put("demo", "demo");
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/FXMLLoginDemoApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -124,17 +124,14 @@
 
     private Initializable replaceSceneContent(String fxml) throws Exception {
         FXMLLoader loader = new FXMLLoader();
-        InputStream in = FXMLLoginDemoApp.class.getResourceAsStream(fxml);
         loader.setBuilderFactory(new JavaFXBuilderFactory());
         loader.setLocation(FXMLLoginDemoApp.class.getResource(fxml));
         AnchorPane page;
-        try {
+        try (InputStream in = FXMLLoginDemoApp.class.getResourceAsStream(fxml)) {
             page = (AnchorPane) loader.load(in);
-        } finally {
-            in.close();
         }
         root.getChildren().removeAll();
         root.getChildren().addAll(page);
-        return (Initializable) loader.getController();
+        return loader.getController();
     }    
 }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/fxml/fxmldemo/User.java	Tue Dec 03 18:41:47 2013 -0800
@@ -37,7 +37,7 @@
 
 public class User {
 
-    private static final Map<String, User> USERS = new HashMap<String, User>();
+    private static final Map<String, User> USERS = new HashMap<>();
 
     public static User of(String id) {
         User user = USERS.get(id);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/Ball.java	Tue Dec 03 18:41:47 2013 -0800
@@ -59,13 +59,11 @@
         setCache(true);
         setFill(BALL_GRADIENT);
         createTimeline();
-        setOnMousePressed(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
-                if (timeline.getStatus() != Status.RUNNING) {
-                    timeline.play();
-                } else {
-                    timeline.pause();
-                }
+        setOnMousePressed(me -> {
+            if (timeline.getStatus() != Status.RUNNING) {
+                timeline.play();
+            } else {
+                timeline.pause();
             }
         });
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BallsPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -48,7 +48,7 @@
     }
 
     private void init(){
-        balls = new ArrayList<Ball>();
+        balls = new ArrayList<>();
         for (int i = 0; i < NR_OF_BALLS; i++) {
             balls.add(new Ball(i));
         }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/bouncingballs/BouncingBallsApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -93,11 +93,7 @@
         final BallsPane pane = ballsscreen.getPane();
 
         Button resetButton = new Button("Reset");
-        resetButton.setOnAction(new EventHandler<ActionEvent>() {
-            public void handle(ActionEvent event) {
-                pane.resetBalls();
-            }
-        });
+        resetButton.setOnAction(event -> pane.resetBalls());
         VBox vb = new VBox(10);
         vb.getChildren().addAll(resetButton, ballsscreen);
         vb.setPadding(new Insets(15, 24, 15, 24));
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Brick.java	Tue Dec 03 18:41:47 2013 -0800
@@ -86,33 +86,34 @@
     
 
     public static int getBrickType(String s) {
-        if (s.equals("L")) {
-            return TYPE_BLUE;
-        } else if (s.equals("2")) {
-            return TYPE_BROKEN1;
-        } else if (s.equals("B")) {
-            return TYPE_BROWN;
-        } else if (s.equals("C")) {
-            return TYPE_CYAN;
-        } else if (s.equals("G")) {
-            return TYPE_GREEN;
-        } else if (s.equals("0")) {
-            return TYPE_GREY;
-        } else if (s.equals("M")) {
-            return TYPE_MAGENTA;
-        } else if (s.equals("O")) {
-            return TYPE_ORANGE;
-        } else if (s.equals("R")) {
-            return TYPE_RED;
-        } else if (s.equals("V")) {
-            return TYPE_VIOLET;
-        } else if (s.equals("W")) {
-            return TYPE_WHITE;
-        } else if (s.equals("Y")) {
-            return TYPE_YELLOW;
-        } else {
-            System.out.println("Unknown brick type '{s}'");
-            return TYPE_WHITE;
+        switch (s) {
+            case "L":
+                return TYPE_BLUE;
+            case "2":
+                return TYPE_BROKEN1;
+            case "B":
+                return TYPE_BROWN;
+            case "C":
+                return TYPE_CYAN;
+            case "G":
+                return TYPE_GREEN;
+            case "0":
+                return TYPE_GREY;
+            case "M":
+                return TYPE_MAGENTA;
+            case "O":
+                return TYPE_ORANGE;
+            case "R":
+                return TYPE_RED;
+            case "V":
+                return TYPE_VIOLET;
+            case "W":
+                return TYPE_WHITE;
+            case "Y":
+                return TYPE_YELLOW;
+            default:
+                System.out.println("Unknown brick type '{s}'");
+                return TYPE_WHITE;
         }
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Config.java	Tue Dec 03 18:41:47 2013 -0800
@@ -67,13 +67,13 @@
     public static final int FIELD_HEIGHT = FIELD_WIDTH;
     public static final int FIELD_Y = SCREEN_HEIGHT - FIELD_HEIGHT;
 
-    private static ObservableList<Image> bricksImages = javafx.collections.FXCollections.<Image>observableArrayList();
+    private static ObservableList<Image> bricksImages = javafx.collections.FXCollections.observableArrayList();
 
     public static ObservableList<Image> getBricksImages() {
         return bricksImages;
     }
 
-    private static ObservableList<Image> bonusesImages = javafx.collections.FXCollections.<Image>observableArrayList();
+    private static ObservableList<Image> bonusesImages = javafx.collections.FXCollections.observableArrayList();
 
     public static ObservableList<Image> getBonusesImages() {
         return bonusesImages;
@@ -102,7 +102,7 @@
     public static final int IMAGE_READY = 20;
     public static final int IMAGE_GAMEOVER = 21;
 
-    private static ObservableList<Image> images = javafx.collections.FXCollections.<Image>observableArrayList();
+    private static ObservableList<Image> images = javafx.collections.FXCollections.observableArrayList();
 
     public static ObservableList<Image> getImages() {
         return images;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Level.java	Tue Dec 03 18:41:47 2013 -0800
@@ -105,30 +105,26 @@
 
     private void initStartingTimeline() {
         startingTimeline = new Timeline();
-        KeyFrame kf1 = new KeyFrame(Duration.millis(500), new EventHandler<ActionEvent>() {
-            public void handle(ActionEvent event) {
-                message.setVisible(true);
-                state = STARTING_LEVEL;
-                bat.setVisible(false);
-                ball.setVisible(false);
-            }
+        KeyFrame kf1 = new KeyFrame(Duration.millis(500), event -> {
+            message.setVisible(true);
+            state = STARTING_LEVEL;
+            bat.setVisible(false);
+            ball.setVisible(false);
         }, new KeyValue(message.opacityProperty(), 0));
         KeyFrame kf2 = new KeyFrame(Duration.millis(1500), new KeyValue(message.opacityProperty(), 1));
         KeyFrame kf3 = new KeyFrame(Duration.millis(3000), new KeyValue(message.opacityProperty(), 1));
-        KeyFrame kf4 = new KeyFrame(Duration.millis(4000), new EventHandler<ActionEvent>() {
-            public void handle(ActionEvent event) {
-                message.setVisible(false);
+        KeyFrame kf4 = new KeyFrame(Duration.millis(4000), event -> {
+            message.setVisible(false);
 
-                bat.setTranslateX((Config.FIELD_WIDTH - bat.getWidth()) / 2.0);
-                ball.setTranslateX((Config.FIELD_WIDTH - ball.getDiameter()) / 2.0);
-                ball.setTranslateY(Config.BAT_Y - ball.getDiameter());
-                ballDirX = (Utils.random(2) * 2 - 1) * Config.BALL_MIN_COORD_SPEED;
-                ballDirY = -Config.BALL_MIN_SPEED;
+            bat.setTranslateX((Config.FIELD_WIDTH - bat.getWidth()) / 2.0);
+            ball.setTranslateX((Config.FIELD_WIDTH - ball.getDiameter()) / 2.0);
+            ball.setTranslateY(Config.BAT_Y - ball.getDiameter());
+            ballDirX = (Utils.random(2) * 2 - 1) * Config.BALL_MIN_COORD_SPEED;
+            ballDirY = -Config.BALL_MIN_SPEED;
 
-                bat.setVisible(true);
-                ball.setVisible(true);
-                state = BALL_CATCHED;
-            }
+            bat.setVisible(true);
+            ball.setVisible(true);
+            state = BALL_CATCHED;
         }, new KeyValue(message.opacityProperty(), 0));
 
         startingTimeline.getKeyFrames().addAll(kf1, kf2, kf3, kf4);
@@ -574,10 +570,10 @@
         state = STARTING_LEVEL;
         batDirection = 0;
         levelNumber = level;
-        lives = new ArrayList<Bonus>();
-        bricks = new ArrayList<Brick>();
-        fadeBricks = new ArrayList<Brick>();
-        bonuses = new ArrayList<Bonus>();
+        lives = new ArrayList<>();
+        bricks = new ArrayList<>();
+        fadeBricks = new ArrayList<>();
+        bonuses = new ArrayList<>();
         ball = new Ball();
         ball.setVisible(false);
         bat = new Bat();
@@ -598,62 +594,47 @@
         background.setImage(Config.getImages().get(Config.IMAGE_BACKGROUND));
         background.setFitWidth(Config.SCREEN_WIDTH);
         background.setFitHeight(Config.SCREEN_HEIGHT);
-        background.setOnMouseMoved(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
-                moveBat(me.getX() - bat.getWidth() / 2);
-            }
-        });
-        background.setOnMouseDragged(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
+        background.setOnMouseMoved(me -> moveBat(me.getX() - bat.getWidth() / 2));
+        background.setOnMouseDragged(me -> moveBat(me.getX() - bat.getWidth() / 2));
+        background.setOnMousePressed(me -> {
+            if (state == PLAYING) {
                 // Support touch-only devices like some mobile phones
                 moveBat(me.getX() - bat.getWidth() / 2);
             }
-        });
-        background.setOnMousePressed(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
-                if (state == PLAYING) {
-                    // Support touch-only devices like some mobile phones
-                    moveBat(me.getX() - bat.getWidth() / 2);
-                }
-                if (state == BALL_CATCHED) {
-                    state = PLAYING;
-                }
-                if (state == GAME_OVER) {
-                    mainFrame.changeState(MainFrame.SPLASH);
-                }
+            if (state == BALL_CATCHED) {
+                state = PLAYING;
+            }
+            if (state == GAME_OVER) {
+                mainFrame.changeState(MainFrame.SPLASH);
             }
         });
-        background.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            public void handle(KeyEvent ke) {
-                if ((ke.getCode() == KeyCode.POWER) || (ke.getCode() == KeyCode.X)) {
-                    Platform.exit();
-                }
-                if (state == BALL_CATCHED && (ke.getCode() == KeyCode.SPACE ||
-                        ke.getCode() == KeyCode.ENTER || ke.getCode() == KeyCode.PLAY)) {
-                    state = PLAYING;
-                }
-                if (state == GAME_OVER) {
-                    mainFrame.changeState(MainFrame.SPLASH);
-                }
-                if (state == PLAYING && ke.getCode() == KeyCode.Q) {
-                    // Lost life
-                    lostLife();
-                    return;
-                }
-                if ((ke.getCode() == KeyCode.LEFT || ke.getCode() == KeyCode.TRACK_PREV)) {
-                    batDirection = - Config.BAT_SPEED;
-                }
-                if ((ke.getCode() == KeyCode.RIGHT || ke.getCode() == KeyCode.TRACK_NEXT)) {
-                    batDirection = Config.BAT_SPEED;
-                }
+        background.setOnKeyPressed(ke -> {
+            if ((ke.getCode() == KeyCode.POWER) || (ke.getCode() == KeyCode.X)) {
+                Platform.exit();
+            }
+            if (state == BALL_CATCHED && (ke.getCode() == KeyCode.SPACE ||
+                    ke.getCode() == KeyCode.ENTER || ke.getCode() == KeyCode.PLAY)) {
+                state = PLAYING;
+            }
+            if (state == GAME_OVER) {
+                mainFrame.changeState(MainFrame.SPLASH);
+            }
+            if (state == PLAYING && ke.getCode() == KeyCode.Q) {
+                // Lost life
+                lostLife();
+                return;
+            }
+            if ((ke.getCode() == KeyCode.LEFT || ke.getCode() == KeyCode.TRACK_PREV)) {
+                batDirection = - Config.BAT_SPEED;
+            }
+            if ((ke.getCode() == KeyCode.RIGHT || ke.getCode() == KeyCode.TRACK_NEXT)) {
+                batDirection = Config.BAT_SPEED;
             }
         });
-        background.setOnKeyReleased(new EventHandler<KeyEvent>() {
-            public void handle(KeyEvent ke) {
-                if (ke.getCode() == KeyCode.LEFT || ke.getCode() == KeyCode.RIGHT ||
-                    ke.getCode() == KeyCode.TRACK_PREV || ke.getCode() == KeyCode.TRACK_NEXT) {
-                    batDirection = 0;
-                }
+        background.setOnKeyReleased(ke -> {
+            if (ke.getCode() == KeyCode.LEFT || ke.getCode() == KeyCode.RIGHT ||
+                ke.getCode() == KeyCode.TRACK_PREV || ke.getCode() == KeyCode.TRACK_NEXT) {
+                batDirection = 0;
             }
         });
         group.getChildren().add(background);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/LevelData.java	Tue Dec 03 18:41:47 2013 -0800
@@ -213,7 +213,7 @@
 
     private static void initLevelsOffsets() {
         if (levelsOffsets == null) {
-            levelsOffsets = javafx.collections.FXCollections.<Integer>observableArrayList();
+            levelsOffsets = javafx.collections.FXCollections.observableArrayList();
             levelsOffsets.add(-1);
             for (int i = 0; i < LEVELS_DATA.length; i++) {
                 if (LEVELS_DATA[i].equals(NEXT_LEVEL)) {
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/brickbreaker/Splash.java	Tue Dec 03 18:41:47 2013 -0800
@@ -68,46 +68,44 @@
     private void initTimeline() {
         timeline = new Timeline();
         timeline.setCycleCount(Timeline.INDEFINITE);
-        KeyFrame kf = new KeyFrame(Duration.millis(40), new EventHandler<ActionEvent>() {
-            public void handle(ActionEvent event) {
-                if (state == STATE_SHOW_TITLE) {
-                    stateArg++;
-                    int center = Config.SCREEN_WIDTH / 2;
-                    int offset = (int)(Math.cos(stateArg / 4.0) * (40 - stateArg) / 40 * center);
-                    brick.setTranslateX(center - brick.getImage().getWidth() / 2 + offset);
-                    breaker.setTranslateX(center - breaker.getImage().getWidth() / 2 - offset);
-                    if (stateArg == 40) {
-                        stateArg = 0;
-                        state = STATE_SHOW_STRIKE;
-                    }
-                    return;
+        KeyFrame kf = new KeyFrame(Duration.millis(40), event -> {
+            if (state == STATE_SHOW_TITLE) {
+                stateArg++;
+                int center = Config.SCREEN_WIDTH / 2;
+                int offset = (int)(Math.cos(stateArg / 4.0) * (40 - stateArg) / 40 * center);
+                brick.setTranslateX(center - brick.getImage().getWidth() / 2 + offset);
+                breaker.setTranslateX(center - breaker.getImage().getWidth() / 2 - offset);
+                if (stateArg == 40) {
+                    stateArg = 0;
+                    state = STATE_SHOW_STRIKE;
                 }
-                if (state == STATE_SHOW_STRIKE) {
-                    if (stateArg == 0) {
-                        strike.setTranslateX(breaker.getTranslateX() + brick.getImage().getWidth());
-                        strike.setScaleX(0);
-                        strike.setScaleY(0);
-                        strike.setVisible(true);
-                    }
-                    stateArg++;
-                    double coef = stateArg / 30f;
-                    brick.setTranslateX(breaker.getTranslateX() +
-                        (breaker.getImage().getWidth() - brick.getImage().getWidth()) / 2f * (1 - coef));
-                    strike.setScaleX(coef);
-                    strike.setScaleY(coef);
-                    strike.setRotate((30 - stateArg) * 2);
-                    if (stateArg == 30) {
-                        stateArg = 0;
-                        state = STATE_SUN;
-                    }
-                    return;
+                return;
+            }
+            if (state == STATE_SHOW_STRIKE) {
+                if (stateArg == 0) {
+                    strike.setTranslateX(breaker.getTranslateX() + brick.getImage().getWidth());
+                    strike.setScaleX(0);
+                    strike.setScaleY(0);
+                    strike.setVisible(true);
                 }
-                // Here state == STATE_SUN
-                if (pressanykey.getOpacity() < 1) {
-                    pressanykey.setOpacity(pressanykey.getOpacity() + 0.05f);
+                stateArg++;
+                double coef = stateArg / 30f;
+                brick.setTranslateX(breaker.getTranslateX() +
+                    (breaker.getImage().getWidth() - brick.getImage().getWidth()) / 2f * (1 - coef));
+                strike.setScaleX(coef);
+                strike.setScaleY(coef);
+                strike.setRotate((30 - stateArg) * 2);
+                if (stateArg == 30) {
+                    stateArg = 0;
+                    state = STATE_SUN;
                 }
-                stateArg--;
+                return;
             }
+            // Here state == STATE_SUN
+            if (pressanykey.getOpacity() < 1) {
+                pressanykey.setOpacity(pressanykey.getOpacity() + 0.05f);
+            }
+            stateArg--;
         });
         timeline.getKeyFrames().add(kf);
     }
@@ -130,16 +128,8 @@
         background.setImage(Config.getImages().get(Config.IMAGE_BACKGROUND));
         background.setFitWidth(Config.SCREEN_WIDTH);
         background.setFitHeight(Config.SCREEN_HEIGHT);
-        background.setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override public void handle(MouseEvent me) {
-                mainFrame.startGame();
-            }
-        });
-        background.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override public void handle(KeyEvent ke) {
-                mainFrame.startGame();
-            }
-        });
+        background.setOnMousePressed(me -> mainFrame.startGame());
+        background.setOnKeyPressed(ke -> mainFrame.startGame());
         brick = new ImageView();
         brick.setImage(Config.getImages().get(Config.IMAGE_SPLASH_BRICK));
         brick.setTranslateX(-1000);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Calculator.java	Tue Dec 03 18:41:47 2013 -0800
@@ -95,13 +95,7 @@
     }
 
     private void addKeyListener() {
-        setOnKeyPressed(new EventHandler<KeyEvent>() {
-
-            @Override
-            public void handle(KeyEvent ke) {
-                processKeyEvent(ke);
-            }
-        });
+        setOnKeyPressed(this::processKeyEvent);
         setFocusTraversable(true);
         requestFocus();
     }
@@ -164,12 +158,7 @@
                 final Key key = new Key(Util.KEY_CODES[i][j]);
                 key.setTranslateX(background.getX() + (Key.WIDTH + 1) * j + BORDER);
                 key.setTranslateY(background.getY() + (Key.HEIGHT + 1) * i + BORDER + TR_Y);
-                key.setOnMousePressed(new EventHandler<MouseEvent>() {
-
-                    @Override public void handle(MouseEvent me) {
-                        onKey(key);
-                    }
-                });
+                key.setOnMousePressed(me -> onKey(key));
                 keys[i * Util.KEY_CODES[0].length + j] = key;
                 
             }
@@ -324,7 +313,7 @@
     }
 
     private void onNewOperation() {
-        operationText.setText(operation.toString());
+        operationText.setText(operation);
     }
 
     private void onNewNumber() {
@@ -363,38 +352,55 @@
 
     private void processKeyEvent(KeyEvent e) {
         String text = e.getText();
-        if(text.equals("0")){
-            onDigit(Code.DIGIT_0);
-        } else if(text.equals("1")){
-            onDigit(Code.DIGIT_1);
-        } else if(text.equals("2")){
-            onDigit(Code.DIGIT_2);
-        } else if(text.equals("3")){
-            onDigit(Code.DIGIT_3);
-        } else if(text.equals("4")){
-            onDigit(Code.DIGIT_4);
-        } else if(text.equals("5")){
-            onDigit(Code.DIGIT_5);
-        } else if(text.equals("6")){
-            onDigit(Code.DIGIT_6);
-        } else if(text.equals("7")){
-            onDigit(Code.DIGIT_7);
-        } else if(text.equals("8")){
-            onDigit(Code.DIGIT_8);
-        } else if(text.equals("9")){
-            onDigit(Code.DIGIT_9);
-        } else if(text.equals("+")){
-            onOperations(Code.ADD);
-        } else if(text.equals("-")){
-            onOperations(Code.SUBTRACT);
-        } else if(text.equals("*")){
-            onOperations(Code.MULTIPLY);
-        } else if(text.equals("/")){
-            onOperations(Code.DIVIDE);
-        } else if(text.equals(".")){
-            onDecimal();
-        } else if(text.equals("=")){
-            onEquals();
+        switch (text) {
+            case "0":
+                onDigit(Code.DIGIT_0);
+                break;
+            case "1":
+                onDigit(Code.DIGIT_1);
+                break;
+            case "2":
+                onDigit(Code.DIGIT_2);
+                break;
+            case "3":
+                onDigit(Code.DIGIT_3);
+                break;
+            case "4":
+                onDigit(Code.DIGIT_4);
+                break;
+            case "5":
+                onDigit(Code.DIGIT_5);
+                break;
+            case "6":
+                onDigit(Code.DIGIT_6);
+                break;
+            case "7":
+                onDigit(Code.DIGIT_7);
+                break;
+            case "8":
+                onDigit(Code.DIGIT_8);
+                break;
+            case "9":
+                onDigit(Code.DIGIT_9);
+                break;
+            case "+":
+                onOperations(Code.ADD);
+                break;
+            case "-":
+                onOperations(Code.SUBTRACT);
+                break;
+            case "*":
+                onOperations(Code.MULTIPLY);
+                break;
+            case "/":
+                onOperations(Code.DIVIDE);
+                break;
+            case ".":
+                onDecimal();
+                break;
+            case "=":
+                onEquals();
+                break;
         }
         
         switch (e.getCode()) {
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/calc/Key.java	Tue Dec 03 18:41:47 2013 -0800
@@ -96,17 +96,9 @@
     }
 
     private void initListeners() {
-        setOnMouseEntered(new EventHandler<MouseEvent>() {
-            @Override public void handle(MouseEvent me) {
-                background.setFill(CELL_SEL_FILL);
-            }
-        });
+        setOnMouseEntered(me -> background.setFill(CELL_SEL_FILL));
 
-        setOnMouseExited(new EventHandler<MouseEvent>() {
-            @Override public void handle(MouseEvent me) {
-                background.setFill(CELL_FILL);
-            }
-        });
+        setOnMouseExited(me -> background.setFill(CELL_FILL));
     }
 
     private void createBackground() {
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/digitalclock/Clock.java	Tue Dec 03 18:41:47 2013 -0800
@@ -96,23 +96,16 @@
         // wait till start of next second then start a timeline to call refreshClocks() every second
         delayTimeline = new Timeline();
         delayTimeline.getKeyFrames().add(
-                new KeyFrame(new Duration(1000 - (System.currentTimeMillis() % 1000)), new EventHandler<ActionEvent>() {            
-            @Override public void handle(ActionEvent event) {
-                if (secondTimeline != null) {
-                    secondTimeline.stop();
-                }
-                secondTimeline = new Timeline();
-                secondTimeline.setCycleCount(Timeline.INDEFINITE);
-                secondTimeline.getKeyFrames().add(
-                        new KeyFrame(Duration.seconds(1), new EventHandler<ActionEvent>() {
-                    
-                    @Override public void handle(ActionEvent event) {
-                        refreshClocks();
+                new KeyFrame(new Duration(1000 - (System.currentTimeMillis() % 1000)), t -> {
+                    if (secondTimeline != null) {
+                        secondTimeline.stop();
                     }
+                    secondTimeline = new Timeline();
+                    secondTimeline.setCycleCount(Timeline.INDEFINITE);
+                    secondTimeline.getKeyFrames().add(
+                            new KeyFrame(Duration.seconds(1), event -> refreshClocks()));
+                    secondTimeline.play();
                 }));
-                secondTimeline.play();
-            }
-        }));
         delayTimeline.play();
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/displayshelf/DisplayShelf.java	Tue Dec 03 18:41:47 2013 -0800
@@ -86,14 +86,11 @@
             final PerspectiveImage item =
                     items[i] = new PerspectiveImage(images[i]);
             final double index = i;
-            item.setOnMouseClicked(new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent me) {
-                    localChange = true;
-                    scrollBar.setValue(index);
-                    localChange = false;
-                    shiftToCenter(item);
-                }
+            item.setOnMouseClicked(me -> {
+                localChange = true;
+                scrollBar.setValue(index);
+                localChange = false;
+                shiftToCenter(item);
             });
         }
         // setup scroll bar
@@ -101,12 +98,9 @@
         scrollBar.setVisibleAmount(1);
         scrollBar.setUnitIncrement(1);
         scrollBar.setBlockIncrement(1);
-        scrollBar.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                if (!localChange) {
-                    shiftToCenter(items[(int) Math.round(scrollBar.getValue())]);
-                }
+        scrollBar.valueProperty().addListener(ov -> {
+            if (!localChange) {
+                shiftToCenter(items[(int) Math.round(scrollBar.getValue())]);
             }
         });
         // create content
@@ -114,20 +108,17 @@
         getChildren().addAll(centered, scrollBar);
         // listen for keyboard events
         setFocusTraversable(true);
-        setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent ke) {
-                if (ke.getCode() == KeyCode.LEFT) {
-                    shift(1);
-                    localChange = true;
-                    scrollBar.setValue(centerIndex);
-                    localChange = false;
-                } else if (ke.getCode() == KeyCode.RIGHT) {
-                    shift(-1);
-                    localChange = true;
-                    scrollBar.setValue(centerIndex);
-                    localChange = false;
-                }
+        setOnKeyPressed(ke -> {
+            if (ke.getCode() == KeyCode.LEFT) {
+                shift(1);
+                localChange = true;
+                scrollBar.setValue(centerIndex);
+                localChange = false;
+            } else if (ke.getCode() == KeyCode.RIGHT) {
+                shift(-1);
+                localChange = true;
+                scrollBar.setValue(centerIndex);
+                localChange = false;
             }
         });
         // update
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/images/imageoperator/ImageOperationApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -66,9 +66,9 @@
         PixelWriter pw = img.getPixelWriter();
         double w = img.getWidth();
         double h = img.getHeight();
-        double xRatio = 0.0;
-        double yRatio = 0.0;
-        double hue = 0.0;
+        double xRatio;
+        double yRatio;
+        double hue;
 
         for (int y = 0; y < h; y++) {
             for (int x = 0; x < w; x++) {
@@ -83,24 +83,9 @@
     public Parent createContent() {
          StackPane root = new StackPane();
         final WritableImage img = new WritableImage(200, 200);
-        gridSize.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue());
-            }
-        });
-        hueFactor.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue());
-            }
-        });
-        hueOffset.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue());
-            }
-        });
+        gridSize.addListener(observable -> renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue()));
+        hueFactor.addListener(observable -> renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue()));
+        hueOffset.addListener(observable -> renderImage(img, gridSize.doubleValue(), hueFactor.doubleValue(), hueOffset.doubleValue()));
         renderImage(img, 3.0, 12.0, 240.0);
 
         ImageView view = new ImageView(img);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/lineargradient/LinearGradientApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -64,10 +64,10 @@
         Rectangle rect1 = new Rectangle(0,0,80,80);
 
         //create simple linear gradient
-        LinearGradient gradient1 = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, new Stop[] {
-            new Stop(0, Color.DODGERBLUE),
-            new Stop(1, Color.BLACK)
-        });
+        LinearGradient gradient1 = new LinearGradient(0, 0, 1, 0, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, Color.DODGERBLUE),
+                new Stop(1, Color.BLACK));
 
         //set rectangle fill
         rect1.setFill(gradient1);
@@ -76,11 +76,11 @@
         Rectangle rect2 = new Rectangle(0,0,80,80);
 
         //create complex linear gradient
-        LinearGradient gradient2 = new LinearGradient(0, 0, 0, 0.5,  true, CycleMethod.REFLECT, new Stop[] {
-            new Stop(0, Color.DODGERBLUE),
-            new Stop(0.1, Color.BLACK),
-            new Stop(1, Color.DODGERBLUE)
-        });
+        LinearGradient gradient2 = new LinearGradient(0, 0, 0, 0.5,  true, 
+                CycleMethod.REFLECT, 
+                new Stop(0, Color.DODGERBLUE),
+                new Stop(0.1, Color.BLACK),
+                new Stop(1, Color.DODGERBLUE));
 
         //set rectangle fill
         rect2.setFill(gradient2);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/paints/radialgradient/RadialGradientApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -62,20 +62,20 @@
 
     public Parent createContent() {
         //create simple radial gradient
-        RadialGradient gradient1 = new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, Color.DODGERBLUE),
-                    new Stop(1, Color.BLACK)
-                });
+        RadialGradient gradient1 = new RadialGradient(0, 0, 0.5, 0.5, 1, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, Color.DODGERBLUE),
+                new Stop(1, Color.BLACK));
         Circle circle1 = new Circle(45, 45, 40, gradient1);
 
         //create complex radial gradient
-        RadialGradient gradient2 = new RadialGradient(20, 1, 0.5, 0.5, 0.6, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, Color.TRANSPARENT),
-                    new Stop(0.5, Color.DARKGRAY),
-                    new Stop(0.64, Color.WHITESMOKE),
-                    new Stop(0.65, Color.YELLOW),
-                    new Stop(1, Color.GOLD)
-                });
+        RadialGradient gradient2 = new RadialGradient(20, 1, 0.5, 0.5, 0.6, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, Color.TRANSPARENT),
+                new Stop(0.5, Color.DARKGRAY),
+                new Stop(0.64, Color.WHITESMOKE),
+                new Stop(0.65, Color.YELLOW),
+                new Stop(1, Color.GOLD));
         Circle circle2 = new Circle(145, 45, 40, gradient2);
         
         HBox hb = new HBox(10);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/Piece.java	Tue Dec 03 18:41:47 2013 -0800
@@ -88,41 +88,35 @@
             // start in inactive state
             setInactive();
             // add listeners to support dragging
-            setOnMousePressed(new EventHandler<MouseEvent>() {
-                public void handle(MouseEvent me) {
-                    toFront();
-                    startDragX = getTranslateX();
-                    startDragY = getTranslateY();
-                    dragAnchor = new Point2D(me.getSceneX(), me.getSceneY());
+            setOnMousePressed(me -> {
+                toFront();
+                startDragX = getTranslateX();
+                startDragY = getTranslateY();
+                dragAnchor = new Point2D(me.getSceneX(), me.getSceneY());
+            });
+            setOnMouseReleased(me -> {
+                if (getTranslateX() < (10) && getTranslateX() > (- 10) &&
+                    getTranslateY() < (10) && getTranslateY() > (- 10)) {
+                    setTranslateX(0);
+                    setTranslateY(0);
+                    setInactive();
                 }
             });
-            setOnMouseReleased(new EventHandler<MouseEvent>() {
-                public void handle(MouseEvent me) {
-                    if (getTranslateX() < (10) && getTranslateX() > (- 10) &&
-                        getTranslateY() < (10) && getTranslateY() > (- 10)) {
-                        setTranslateX(0);
-                        setTranslateY(0);
-                        setInactive();
-                    }
-                }
-            });
-            setOnMouseDragged(new EventHandler<MouseEvent>() {
-                public void handle(MouseEvent me) {
-                    double newTranslateX = startDragX
-                                            + me.getSceneX() - dragAnchor.getX();
-                    double newTranslateY = startDragY
-                                            + me.getSceneY() - dragAnchor.getY();
-                    double minTranslateX = - 45f - correctX;
-                    double maxTranslateX = (deskWidth - Piece.SIZE + 50f ) - correctX;
-                    double minTranslateY = - 30f - correctY;
-                    double maxTranslateY = (deskHeight - Piece.SIZE + 70f ) - correctY;
-                    if ((newTranslateX> minTranslateX ) &&
-                            (newTranslateX< maxTranslateX) &&
-                            (newTranslateY> minTranslateY) &&
-                            (newTranslateY< maxTranslateY)) {
-                        setTranslateX(newTranslateX);
-                        setTranslateY(newTranslateY);
-                    }
+            setOnMouseDragged(me -> {
+                double newTranslateX = startDragX
+                                        + me.getSceneX() - dragAnchor.getX();
+                double newTranslateY = startDragY
+                                        + me.getSceneY() - dragAnchor.getY();
+                double minTranslateX = - 45f - correctX;
+                double maxTranslateX = (deskWidth - Piece.SIZE + 50f ) - correctX;
+                double minTranslateY = - 30f - correctY;
+                double maxTranslateY = (deskHeight - Piece.SIZE + 70f ) - correctY;
+                if ((newTranslateX> minTranslateX ) &&
+                        (newTranslateX< maxTranslateX) &&
+                        (newTranslateY> minTranslateY) &&
+                        (newTranslateY< maxTranslateY)) {
+                    setTranslateX(newTranslateX);
+                    setTranslateY(newTranslateY);
                 }
             });
         }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/puzzle/PuzzlePiecesApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -80,7 +80,7 @@
         // create desk
         final Desk desk = new Desk(numOfColumns, numOfRows);
         // create puzzle pieces
-        final List<Piece> pieces = new ArrayList<Piece>();
+        final List<Piece> pieces = new ArrayList<>();
         for (int col = 0; col < numOfColumns; col++) {
             for (int row = 0; row < numOfRows; row++) {
                 int x = col * Piece.SIZE;
@@ -95,45 +95,41 @@
         // create button box
         Button shuffleButton = new Button("Shuffle");
         shuffleButton.setStyle("-fx-font-size: 2em;");
-        shuffleButton.setOnAction(new EventHandler<ActionEvent>() {           
-            @Override public void handle(ActionEvent actionEvent) {
-                if (timeline != null) {
-                    timeline.stop();
-                }
-                timeline = new Timeline();
-                for (final Piece piece : pieces) {
-                    piece.setActive();
-                    double shuffleX = Math.random()
-                            * (desk.getWidth() - Piece.SIZE + 48f)
-                            - 24f - piece.getCorrectX();
-                    double shuffleY = Math.random()
-                            * (desk.getHeight() - Piece.SIZE + 30f)
-                            - 15f - piece.getCorrectY();
-                    timeline.getKeyFrames().add(
-                            new KeyFrame(Duration.seconds(1),
-                            new KeyValue(piece.translateXProperty(), shuffleX),
-                            new KeyValue(piece.translateYProperty(), shuffleY)));
-                }
-                timeline.playFromStart();
+        shuffleButton.setOnAction(actionEvent -> {
+            if (timeline != null) {
+                timeline.stop();
             }
+            timeline = new Timeline();
+            for (final Piece piece : pieces) {
+                piece.setActive();
+                double shuffleX = Math.random()
+                        * (desk.getWidth() - Piece.SIZE + 48f)
+                        - 24f - piece.getCorrectX();
+                double shuffleY = Math.random()
+                        * (desk.getHeight() - Piece.SIZE + 30f)
+                        - 15f - piece.getCorrectY();
+                timeline.getKeyFrames().add(
+                        new KeyFrame(Duration.seconds(1),
+                        new KeyValue(piece.translateXProperty(), shuffleX),
+                        new KeyValue(piece.translateYProperty(), shuffleY)));
+            }
+            timeline.playFromStart();
         });
         Button solveButton = new Button("Solve");
         solveButton.setStyle("-fx-font-size: 2em;");
-        solveButton.setOnAction(new EventHandler<ActionEvent>() {            
-            @Override public void handle(ActionEvent actionEvent) {
-                if (timeline != null) {
-                    timeline.stop();
-                }
-                timeline = new Timeline();
-                for (final Piece piece : pieces) {
-                    piece.setInactive();
-                    timeline.getKeyFrames().add(
-                            new KeyFrame(Duration.seconds(1),
-                            new KeyValue(piece.translateXProperty(), 0),
-                            new KeyValue(piece.translateYProperty(), 0)));
-                }
-                timeline.playFromStart();
+        solveButton.setOnAction(actionEvent -> {
+            if (timeline != null) {
+                timeline.stop();
             }
+            timeline = new Timeline();
+            for (final Piece piece : pieces) {
+                piece.setInactive();
+                timeline.getKeyFrames().add(
+                        new KeyFrame(Duration.seconds(1),
+                        new KeyValue(piece.translateXProperty(), 0),
+                        new KeyValue(piece.translateYProperty(), 0)));
+            }
+            timeline.playFromStart();
         });
         HBox buttonBox = new HBox(8);
         buttonBox.getChildren().addAll(shuffleButton, solveButton);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polygon/PolygonApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -55,20 +55,18 @@
 public class PolygonApp extends Application {
 
     // Will be a simple red-filled triangle         
-    private Polygon polygon1 = new Polygon(new double[]{
-            45 , 10 ,
-            10 , 80 ,
-            80 , 80 ,
-        });
+    private Polygon polygon1 = new Polygon(
+            45, 10,
+            10, 80,
+            80, 80);
     // Will be a blue stroked polygon
-    private Polygon polygon2 = new Polygon(new double[]{
+    private Polygon polygon2 = new Polygon(
             135, 15,
             160, 30,
             160, 60,
             135, 75,
             110, 60,
-            110, 30
-        });
+            110, 30);
 
     public Parent createContent() {
         Pane root = new Pane();
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/shapes/polyline/PolylineApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -56,16 +56,16 @@
 public class PolylineApp extends Application {
     // Unclosed triangle
 
-    Polyline polyline1 = new Polyline(new double[]{
-                45, 10,
-                10, 80,
-                80, 80,});
+    Polyline polyline1 = new Polyline(
+            45, 10,
+            10, 80,
+            80, 80);
     // Closed triangle
-    Polyline polyline2 = new Polyline(new double[]{
-                135, 10,
-                100, 80,
-                170, 80,
-                135, 10,});
+    Polyline polyline2 = new Polyline(
+            135, 10,
+            100, 80,
+            170, 80,
+            135, 10);
 
     public Parent createContent() {
         Pane root = new Pane();
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/StopWatchButton.java	Tue Dec 03 18:41:47 2013 -0800
@@ -63,24 +63,27 @@
 
         rectangleSmall.setLayoutX(-7);
         rectangleSmall.setLayoutY(5);
-        rectangleSmall.setFill(new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, colorWeak),
-                    new Stop(0.5, colorStrong),
-                    new Stop(1, colorWeak)}));
+        rectangleSmall.setFill(new LinearGradient(0, 0, 1, 0, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, colorWeak),
+                new Stop(0.5, colorStrong),
+                new Stop(1, colorWeak)));
 
         rectangleBig.setLayoutX(-14);
         rectangleBig.setLayoutY(0);
-        rectangleBig.setFill(new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, colorStrong),
-                    new Stop(0.5, colorWeak),
-                    new Stop(1, colorStrong)}));
+        rectangleBig.setFill(new LinearGradient(0, 0, 1, 0, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, colorStrong),
+                new Stop(0.5, colorWeak),
+                new Stop(1, colorStrong)));
 
-        rectangleWatch.setFill(new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, Color.web("#4e605f")),
-                    new Stop(0.2, Color.web("#c3d6d5")),
-                    new Stop(0.5, Color.web("#f9ffff")),
-                    new Stop(0.8, Color.web("#c3d6d5")),
-                    new Stop(1, Color.web("#4e605f"))}));
+        rectangleWatch.setFill(new LinearGradient(0, 0, 1, 0, true, 
+                CycleMethod.NO_CYCLE, 
+                new Stop(0, Color.web("#4e605f")),
+                new Stop(0.2, Color.web("#c3d6d5")),
+                new Stop(0.5, Color.web("#f9ffff")),
+                new Stop(0.8, Color.web("#c3d6d5")),
+                new Stop(1, Color.web("#4e605f"))));
         rectangleWatch.setLayoutX(-12);
         rectangleWatch.setLayoutY(12);
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics/stopwatch/Watch.java	Tue Dec 03 18:41:47 2013 -0800
@@ -90,11 +90,7 @@
 
     private void configureTimeline() {
         time.setCycleCount(Timeline.INDEFINITE);
-        KeyFrame keyFrame = new KeyFrame(Duration.millis(47), new EventHandler<ActionEvent>() {
-            public void handle(ActionEvent event) {
-                calculate();
-            }
-        });
+        KeyFrame keyFrame = new KeyFrame(Duration.millis(47), event -> calculate());
         time.getKeyFrames().add(keyFrame);
     }
 
@@ -164,47 +160,31 @@
     }
 
     private void configureListeners() {
-        startButton.setOnMousePressed(new EventHandler<MouseEvent>() {          
-            @Override public void handle(MouseEvent me) {
-                startButton.moveDown();
-                me.consume();
-            }
+        startButton.setOnMousePressed(me -> {
+            startButton.moveDown();
+            me.consume();
         });
 
-        stopButton.setOnMousePressed(new EventHandler<MouseEvent>() {          
-            @Override public void handle(MouseEvent me) {
-                stopButton.moveDown();
-                me.consume();
-            }
+        stopButton.setOnMousePressed(me -> {
+            stopButton.moveDown();
+            me.consume();
         });
 
-        startButton.setOnMouseReleased(new EventHandler<MouseEvent>() {           
-            @Override public void handle(MouseEvent me) {
-                startButton.moveUp();
-                startStop();
-                me.consume();
-            }
+        startButton.setOnMouseReleased(me -> {
+            startButton.moveUp();
+            startStop();
+            me.consume();
         });
 
-        stopButton.setOnMouseReleased(new EventHandler<MouseEvent>() {           
-            @Override public void handle(MouseEvent me) {
-                stopButton.moveUp();
-                stopReset();
-                me.consume();
-            }
+        stopButton.setOnMouseReleased(me -> {
+            stopButton.moveUp();
+            stopReset();
+            me.consume();
         });
 
-        startButton.setOnMouseDragged(new EventHandler<MouseEvent>() {           
-            @Override public void handle(MouseEvent me) {
-                me.consume();
-            }
-        });
+        startButton.setOnMouseDragged(MouseEvent::consume);
 
-        stopButton.setOnMouseDragged(new EventHandler<MouseEvent>() {          
-            @Override public void handle(MouseEvent me) {
-                me.consume();
-            }
-        });
+        stopButton.setOnMouseDragged(MouseEvent::consume);
     }
 
     //MODEL
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/beans/changelistener/ChangeListenerApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -86,37 +86,28 @@
         text.setTextOrigin(VPos.TOP);
         text.setTextAlignment(TextAlignment.CENTER);
         // create listener
-        final InvalidationListener hoverListener = new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                if (rect.isHover()) {
-                    text.setText("hovered");
-                } else {
-                    text.setText("not hovered");
-                }
+        final InvalidationListener hoverListener = ov -> {
+            if (rect.isHover()) {
+                text.setText("hovered");
+            } else {
+                text.setText("not hovered");
             }
         };
         //create button for adding listener
         Button buttonAdd = new Button("Add listener");
         buttonAdd.setPrefSize(140, 18);
-        buttonAdd.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //add the listener on property hover
-                rect.hoverProperty().addListener(hoverListener);
-                text.setText("listener added");
-            }
+        buttonAdd.setOnAction(t -> {
+            //add the listener on property hover
+            rect.hoverProperty().addListener(hoverListener);
+            text.setText("listener added");
         });
         //create a button for removing the listener
         Button buttonRemove = new Button("Remove listener");
         buttonRemove.setPrefSize(140, 18);
-        buttonRemove.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //remove the listener
-                rect.hoverProperty().removeListener(hoverListener);
-                text.setText("listener removed");
-            }
+        buttonRemove.setOnAction(t -> {
+            //remove the listener
+            rect.hoverProperty().removeListener(hoverListener);
+            text.setText("listener removed");
         });
         // show all nodes
         vbox.getChildren().addAll(text, buttonAdd, buttonRemove);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/collections/observablelist/ObservableListApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -73,7 +73,7 @@
         }
 
         //create observable list from this list of integers by static method of FXCollections class
-        final ObservableList<Integer> list = FXCollections.<Integer>observableList(listData);
+        final ObservableList<Integer> list = FXCollections.observableList(listData);
 
         //create text for showing observable list content
         final Text textList = new Text(0, 0, list.toString());
@@ -90,47 +90,35 @@
         //create button for adding random integer to random position in observable list
         Button buttonAddNumber = new Button("Replace random integer");
         buttonAddNumber.setPrefSize(190, 45);
-        buttonAddNumber.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                int randomIndex = (int) (Math.round(Math.random() * (list.size() - 1)));
-                int randomNumber = (int) (Math.round(Math.random() * 10));
-                list.set(randomIndex, randomNumber);
-                //actualise content of the text to see the result
-                textList.setText(list.toString());
-            }
+        buttonAddNumber.setOnAction(t -> {
+            int randomIndex = (int) (Math.round(Math.random() * (list.size() - 1)));
+            int randomNumber = (int) (Math.round(Math.random() * 10));
+            list.set(randomIndex, randomNumber);
+            //actualise content of the text to see the result
+            textList.setText(list.toString());
         });
 
         //create button for adding listener
         Button buttonAdd = new Button("Add list listener");
         buttonAdd.setPrefSize(190, 45);
-        final ListChangeListener<Integer> listener = new ListChangeListener<Integer>() {
-            @Override
-            public void onChanged(ListChangeListener.Change<? extends Integer> c) {
-                while (c.next()) {
-                    textMessage.setText("replacement on index " + c.getFrom());
-                }
+        final ListChangeListener<Integer> listener = c -> {
+            while (c.next()) {
+                textMessage.setText("replacement on index " + c.getFrom());
             }
         };
 
-        buttonAdd.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                list.addListener(listener);
-                textMessage.setText("listener added");
-            }
+        buttonAdd.setOnAction(t -> {
+            list.addListener(listener);
+            textMessage.setText("listener added");
         });
 
         //create a button for removing the listener
         Button buttonRemove = new Button("Remove list listener");
         buttonRemove.setPrefSize(190, 45);
-        buttonRemove.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                //remove the listener
-                list.removeListener(listener);
-                textMessage.setText("listener removed");
-            }
+        buttonRemove.setOnAction(t -> {
+            //remove the listener
+            list.removeListener(listener);
+            textMessage.setText("listener removed");
         });
 
         VBox vBoxTop = new VBox(10);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -65,12 +65,12 @@
 
         anchorPane.getChildren().addAll(label1, imageView, button1);
 
-        AnchorPane.setTopAnchor(label1, Double.valueOf(2));
-        AnchorPane.setLeftAnchor(label1, Double.valueOf(20));
-        AnchorPane.setTopAnchor(button1, Double.valueOf(40));
-        AnchorPane.setLeftAnchor(button1, Double.valueOf(20));
-        AnchorPane.setTopAnchor(imageView, Double.valueOf(75));
-        AnchorPane.setLeftAnchor(imageView, Double.valueOf(20));
+        AnchorPane.setTopAnchor(label1, (double) 2);
+        AnchorPane.setLeftAnchor(label1, (double) 20);
+        AnchorPane.setTopAnchor(button1, (double) 40);
+        AnchorPane.setLeftAnchor(button1, (double) 20);
+        AnchorPane.setTopAnchor(imageView, (double) 75);
+        AnchorPane.setLeftAnchor(imageView, (double) 20);
         return anchorPane;
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -91,10 +91,10 @@
 
         //Using AnchorPane only to position items in the center
         AnchorPane centerAP = new AnchorPane();
-        AnchorPane.setTopAnchor(centerLabel, Double.valueOf(5));
-        AnchorPane.setLeftAnchor(centerLabel, Double.valueOf(20));
-        AnchorPane.setTopAnchor(imageView, Double.valueOf(40));
-        AnchorPane.setLeftAnchor(imageView, Double.valueOf(30));
+        AnchorPane.setTopAnchor(centerLabel, (double) 5);
+        AnchorPane.setLeftAnchor(centerLabel, (double) 20);
+        AnchorPane.setTopAnchor(imageView, (double) 40);
+        AnchorPane.setLeftAnchor(imageView, (double) 30);
         centerAP.getChildren().addAll(centerLabel, imageView);
         borderPane.setCenter(centerAP);
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java	Tue Dec 03 18:41:47 2013 -0800
@@ -137,81 +137,57 @@
         playButton.setMinWidth(Control.USE_PREF_SIZE);
 
         playButton.setGraphic(imageViewPlay);
-        playButton.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                updateValues();
-                MediaPlayer.Status status = mp.getStatus();
-                if (status == MediaPlayer.Status.UNKNOWN
-                        || status == MediaPlayer.Status.HALTED) {
-                    // don't do anything in these states
-                    return;
+        playButton.setOnAction(e -> {
+            updateValues();
+            MediaPlayer.Status status = mp.getStatus();
+            if (status == MediaPlayer.Status.UNKNOWN
+                    || status == MediaPlayer.Status.HALTED) {
+                // don't do anything in these states
+                return;
+            }
+
+            if (status == MediaPlayer.Status.PAUSED
+                    || status == MediaPlayer.Status.READY
+                    || status == MediaPlayer.Status.STOPPED) {
+                // rewind the movie if we're sitting at the end
+                if (atEndOfMedia) {
+                    mp.seek(mp.getStartTime());
+                    atEndOfMedia = false;
+                    playButton.setGraphic(imageViewPlay);
+                    //playButton.setText(">");
+                    updateValues();
                 }
-
-                if (status == MediaPlayer.Status.PAUSED
-                        || status == MediaPlayer.Status.READY
-                        || status == MediaPlayer.Status.STOPPED) {
-                    // rewind the movie if we're sitting at the end
-                    if (atEndOfMedia) {
-                        mp.seek(mp.getStartTime());
-                        atEndOfMedia = false;
-                        playButton.setGraphic(imageViewPlay);
-                        //playButton.setText(">");
-                        updateValues();
-                    }
-                    mp.play();
-                    playButton.setGraphic(imageViewPause);
-                    //playButton.setText("||");
-                } else {
-                    mp.pause();
-                }
+                mp.play();
+                playButton.setGraphic(imageViewPause);
+                //playButton.setText("||");
+            } else {
+                mp.pause();
             }
         });
-        mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {
-            @Override
-            public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
-                updateValues();
-            }
-        });
-        mp.setOnPlaying(new Runnable() {
-            @Override
-            public void run() {
+        mp.currentTimeProperty().addListener((observable, oldValue, newValue) -> updateValues());
+        mp.setOnPlaying(() -> {
 
-                if (stopRequested) {
-                    mp.pause();
-                    stopRequested = false;
-                } else {
-                    playButton.setGraphic(imageViewPause);
-                    //playButton.setText("||");
-                }
-            }
-        });
-        mp.setOnPaused(new Runnable() {
-            @Override
-            public void run() {
-
-                playButton.setGraphic(imageViewPlay);
+            if (stopRequested) {
+                mp.pause();
+                stopRequested = false;
+            } else {
+                playButton.setGraphic(imageViewPause);
                 //playButton.setText("||");
             }
         });
-        mp.setOnReady(new Runnable() {
-            @Override
-            public void run() {
-                duration = mp.getMedia().getDuration();
-                updateValues();
-            }
+        mp.setOnPaused(() -> playButton.setGraphic(imageViewPlay));
+        mp.setOnReady(() -> {
+            duration = mp.getMedia().getDuration();
+            updateValues();
         });
 
         mp.setCycleCount(repeat ? MediaPlayer.INDEFINITE : 1);
-        mp.setOnEndOfMedia(new Runnable() {
-            @Override
-            public void run() {
-                if (!repeat) {
-                    playButton.setGraphic(imageViewPlay);
-                    //playButton.setText(">");
-                    stopRequested = true;
-                    atEndOfMedia = true;
-                }
+        mp.setOnEndOfMedia(() -> {
+            if (!repeat) {
+                playButton.setGraphic(imageViewPlay);
+                //playButton.setText(">");
+                stopRequested = true;
+                atEndOfMedia = true;
             }
         });
         mediaBar.getChildren().add(playButton);
@@ -228,17 +204,14 @@
         timeSlider.setMaxWidth(Double.MAX_VALUE);
         
         HBox.setHgrow(timeSlider, Priority.ALWAYS);
-        timeSlider.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                if (timeSlider.isValueChanging()) {
-                    // multiply duration by percentage calculated by slider position
-                    if (duration != null) {
-                        mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
-                    }
-                    updateValues();
+        timeSlider.valueProperty().addListener(ov -> {
+            if (timeSlider.isValueChanging()) {
+                // multiply duration by percentage calculated by slider position
+                if (duration != null) {
+                    mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
+                }
+                updateValues();
 
-                }
             }
         });
         mediaBar.getChildren().add(timeSlider);
@@ -259,12 +232,7 @@
             public void handle(ActionEvent event) {
                 if (!fullScreen) {
                     newStage = new Stage();
-                    newStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
-                        @Override
-                        public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                            onFullScreen();
-                        }
-                    });
+                    newStage.fullScreenProperty().addListener((ov, t, t1) -> onFullScreen());
                     final BorderPane borderPane = new BorderPane() {
                         @Override
                         protected void layoutChildren() {
@@ -317,17 +285,11 @@
         volumeSlider.setPrefWidth(70);
         volumeSlider.setMinWidth(30);
         volumeSlider.setMaxWidth(Region.USE_PREF_SIZE);
-        volumeSlider.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-            }
+        volumeSlider.valueProperty().addListener(ov -> {
         });
-        volumeSlider.valueProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                if (volumeSlider.isValueChanging()) {
-                    mp.setVolume(volumeSlider.getValue() / 100.0);
-                }
+        volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
+            if (volumeSlider.isValueChanging()) {
+                mp.setVolume(volumeSlider.getValue() / 100.0);
             }
         });
         mediaBar.getChildren().add(volumeSlider);
@@ -346,30 +308,22 @@
             
             smallBP.setBottom(null);
             setBottom(mediaBar);
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    newStage.close();
-                }
-            });
+            Platform.runLater(newStage::close);
 
         }
     }
 
     protected void updateValues() {
         if (playTime != null && timeSlider != null && volumeSlider != null && duration != null) {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    Duration currentTime = mp.getCurrentTime();
-                    playTime.setText(formatTime(currentTime, duration));
-                    timeSlider.setDisable(duration.isUnknown());
-                    if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
-                        timeSlider.setValue(currentTime.divide(duration).toMillis() * 100.0);
-                    }
-                    if (!volumeSlider.isValueChanging()) {
-                        volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
-                    }
+            Platform.runLater(() -> {
+                Duration currentTime = mp.getCurrentTime();
+                playTime.setText(formatTime(currentTime, duration));
+                timeSlider.setDisable(duration.isUnknown());
+                if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
+                    timeSlider.setValue(currentTime.toMillis() / duration.toMillis() * 100.0);
+                }
+                if (!volumeSlider.isValueChanging()) {
+                    volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
                 }
             });
         }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -76,34 +76,13 @@
         fierPlayer = new MediaPlayer(new Media(FIER_URL));
         fierPlayer.setAutoPlay(true);
 
-        arthPos.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                planetaryPlayerPane.setTranslate1(arthPos.doubleValue());
-            }
-        });
+        arthPos.addListener(observable -> planetaryPlayerPane.setTranslate1(arthPos.doubleValue()));
 
-        fierPos.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                planetaryPlayerPane.setTranslate2(fierPos.doubleValue());
+        fierPos.addListener(observable -> planetaryPlayerPane.setTranslate2(fierPos.doubleValue()));
 
-            }
-        });
+        arthRate.addListener(observable -> arthPlayer.setRate(arthRate.doubleValue()));
 
-        arthRate.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                arthPlayer.setRate(arthRate.doubleValue());
-            }
-        });
-
-        fierRate.addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                fierPlayer.setRate(fierRate.doubleValue());
-            }
-        });
+        fierRate.addListener(observable -> fierPlayer.setRate(fierRate.doubleValue()));
 
         planetaryPlayerPane = new PlanetaryPlayerPane(arthPlayer, fierPlayer);
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -80,76 +80,54 @@
         mvPane.getChildren().add(mediaViewerGroup);
         setCenter(mvPane);
 
-        mp1.setOnPlaying(new Runnable() {
-            @Override public void run() {
-                if (stopRequested) {
-                    mp1.pause();
-                    stopRequested = false;
-                }
+        mp1.setOnPlaying(() -> {
+            if (stopRequested) {
+                mp1.pause();
+                stopRequested = false;
             }
         });
-        mp1.setOnEndOfMedia(new Runnable() {
-            @Override public void run() {
-                if (!repeat) {
-                    stopRequested = true;
-                    atEndOfMedia = true;
-                }
+        mp1.setOnEndOfMedia(() -> {
+            if (!repeat) {
+                stopRequested = true;
+                atEndOfMedia = true;
             }
         });
         mp1.setCycleCount(repeat ? MediaPlayer.INDEFINITE : 1);
 
-        mp2.setOnPlaying(new Runnable() {
-            @Override public void run() {
-                if (stopRequested) {
-                    mp2.pause();
-                    stopRequested = false;
-                }
+        mp2.setOnPlaying(() -> {
+            if (stopRequested) {
+                mp2.pause();
+                stopRequested = false;
             }
         });
-        mp2.setOnEndOfMedia(new Runnable() {
-            @Override public void run() {
-                if (!repeat) {
-                    stopRequested = true;
-                    atEndOfMedia = true;
-                }
+        mp2.setOnEndOfMedia(() -> {
+            if (!repeat) {
+                stopRequested = true;
+                atEndOfMedia = true;
             }
         });
         mp2.setCycleCount(repeat ? MediaPlayer.INDEFINITE : 1);
 
-        final EventHandler<ActionEvent> backAction = new EventHandler<ActionEvent>() {
-            @Override public void handle(ActionEvent e) {
-                mp1.seek(Duration.ZERO);
-                mp2.seek(Duration.ZERO);
-            }
+        final EventHandler<ActionEvent> backAction = e -> {
+            mp1.seek(Duration.ZERO);
+            mp2.seek(Duration.ZERO);
         };
-        final EventHandler<ActionEvent> stopAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp1.stop();
-                mp2.stop();
-            }
+        final EventHandler<ActionEvent> stopAction = e -> {
+            mp1.stop();
+            mp2.stop();
         };
-        final EventHandler<ActionEvent> playAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp1.play();
-                mp2.play();
-            }
+        final EventHandler<ActionEvent> playAction = e -> {
+            mp1.play();
+            mp2.play();
         };
-        final EventHandler<ActionEvent> pauseAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp1.pause();
-                mp2.pause();
-            }
+        final EventHandler<ActionEvent> pauseAction = e -> {
+            mp1.pause();
+            mp2.pause();
         };
-        final EventHandler<ActionEvent> forwardAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                Duration currentTime = mp1.getCurrentTime();
-                mp1.seek(Duration.seconds(currentTime.toSeconds() + 0.1));
-                mp2.seek(Duration.seconds(currentTime.toSeconds() + 0.1));
-            }
+        final EventHandler<ActionEvent> forwardAction = e -> {
+            Duration currentTime = mp1.getCurrentTime();
+            mp1.seek(Duration.seconds(currentTime.toSeconds() + 0.1));
+            mp2.seek(Duration.seconds(currentTime.toSeconds() + 0.1));
         };
         
         mediaBottomBar = new HBox();
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -106,12 +106,7 @@
         Lighting lighting = new Lighting(new Light.Point(-20, -20, 100, Color.WHITE));
         lighting.setSurfaceScale(1);
         rectangle.setEffect(lighting);
-        rectangle.setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                barNote.play();
-            }
-        });
+        rectangle.setOnMousePressed(me -> barNote.play());
         return rectangle;
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -118,70 +118,51 @@
             topBar.setStyle("-fx-background-color: rgb(0,0,0.0,0.0);");
             bottomBar.setStyle("-fx-background-color: rgb(0,0,0.0,0.0);");
 
-            setOnMouseEntered(new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent t) {
-                    if (transition != null) {
-                        transition.stop();
-                    }
-                    FadeTransition fadeTransition1 = new FadeTransition(Duration.millis(200), topBar);
-                    fadeTransition1.setToValue(1.0);
-                    fadeTransition1.setInterpolator(Interpolator.EASE_OUT);
+            setOnMouseEntered(t -> {
+                if (transition != null) {
+                    transition.stop();
+                }
+                FadeTransition fadeTransition1 = new FadeTransition(Duration.millis(200), topBar);
+                fadeTransition1.setToValue(1.0);
+                fadeTransition1.setInterpolator(Interpolator.EASE_OUT);
 
-                    FadeTransition fadeTransition2 = new FadeTransition(Duration.millis(200), bottomBar);
-                    fadeTransition2.setToValue(1.0);
-                    fadeTransition2.setInterpolator(Interpolator.EASE_OUT);
+                FadeTransition fadeTransition2 = new FadeTransition(Duration.millis(200), bottomBar);
+                fadeTransition2.setToValue(1.0);
+                fadeTransition2.setInterpolator(Interpolator.EASE_OUT);
 
-                    transition = new ParallelTransition(fadeTransition1, fadeTransition2);
-                    transition.play();
+                transition = new ParallelTransition(fadeTransition1, fadeTransition2);
+                transition.play();
+            });
+            setOnMouseExited(t -> {
+                if (transition != null) {
+                    transition.stop();
+                }
+                FadeTransition fadeTransitionTop = new FadeTransition(Duration.millis(800), topBar);
+                fadeTransitionTop.setToValue(0.0);
+                fadeTransitionTop.setInterpolator(Interpolator.EASE_OUT);
+
+                FadeTransition fadeTransitionBottom = new FadeTransition(Duration.millis(800), bottomBar);
+                fadeTransitionBottom.setToValue(0.0);
+                fadeTransitionBottom.setInterpolator(Interpolator.EASE_OUT);
+                transition = new ParallelTransition(fadeTransitionTop, fadeTransitionBottom);
+                transition.play();
+            });
+
+            mp.currentTimeProperty().addListener((observable, oldValue, newValue) -> updateValues());
+            mp.setOnPlaying(() -> {
+                if (stopRequested) {
+                    mp.pause();
+                    stopRequested = false;
                 }
             });
-            setOnMouseExited(new EventHandler<MouseEvent>() {
-                @Override public void handle(MouseEvent t) {
-                    if (transition != null) {
-                        transition.stop();
-                    }                                                 
-                    FadeTransition fadeTransitionTop = new FadeTransition(Duration.millis(800), topBar);
-                    fadeTransitionTop.setToValue(0.0);
-                    fadeTransitionTop.setInterpolator(Interpolator.EASE_OUT);
- 
-                    FadeTransition fadeTransitionBottom = new FadeTransition(Duration.millis(800), bottomBar);
-                    fadeTransitionBottom.setToValue(0.0);
-                    fadeTransitionBottom.setInterpolator(Interpolator.EASE_OUT);
-                    transition = new ParallelTransition(fadeTransitionTop, fadeTransitionBottom);
-                    transition.play();
-                }
+            mp.setOnReady(() -> {
+                duration = mp.getMedia().getDuration();
+                updateValues();
             });
-
-            mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {
-                @Override
-                public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
-                    updateValues();
-                }
-            });
-            mp.setOnPlaying(new Runnable() {
-                @Override
-                public void run() {
-                    if (stopRequested) {
-                        mp.pause();
-                        stopRequested = false;
-                    } 
-                }
-            });
-            mp.setOnReady(new Runnable() {
-                @Override
-                public void run() {
-                    duration = mp.getMedia().getDuration();
-                    updateValues();
-                }
-            });
-            mp.setOnEndOfMedia(new Runnable() {
-                @Override
-                public void run() {
-                    if (!repeat) {
-                        stopRequested = true;
-                        atEndOfMedia = true;
-                    }
+            mp.setOnEndOfMedia(() -> {
+                if (!repeat) {
+                    stopRequested = true;
+                    atEndOfMedia = true;
                 }
             });
             mp.setCycleCount(repeat ? MediaPlayer.INDEFINITE : 1);
@@ -198,17 +179,14 @@
             timeSlider.setId("media-slider");
             timeSlider.setMinWidth(200);
             timeSlider.setMaxWidth(Double.MAX_VALUE);
-            timeSlider.valueProperty().addListener(new InvalidationListener() {
-                @Override
-                public void invalidated(Observable ov) {
-                    if (timeSlider.isValueChanging()) {
-                        // multiply duration by percentage calculated by slider position
-                        if (duration != null) {
-                            mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
-                        }
-                        updateValues();
+            timeSlider.valueProperty().addListener(ov -> {
+                if (timeSlider.isValueChanging()) {
+                    // multiply duration by percentage calculated by slider position
+                    if (duration != null) {
+                        mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
+                    }
+                    updateValues();
 
-                    }
                 }
             });
             mediaTopBar.getChildren().add(timeSlider);
@@ -233,51 +211,22 @@
             volumeSlider.setPrefWidth(120);
             volumeSlider.setMinWidth(30);
             volumeSlider.setMaxWidth(Region.USE_PREF_SIZE);
-            volumeSlider.valueProperty().addListener(new InvalidationListener() {
-                @Override
-                public void invalidated(Observable ov) {
-                }
+            volumeSlider.valueProperty().addListener(ov -> {
             });
-            volumeSlider.valueProperty().addListener(new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    if (volumeSlider.isValueChanging()) {
-                        mp.setVolume(volumeSlider.getValue() / 100.0);
-                    }
+            volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
+                if (volumeSlider.isValueChanging()) {
+                    mp.setVolume(volumeSlider.getValue() / 100.0);
                 }
             });
             mediaTopBar.getChildren().add(volumeSlider);
                         
-            final EventHandler<ActionEvent> backAction = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    mp.seek(Duration.ZERO);
-                }
-            };
-            final EventHandler<ActionEvent> stopAction = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    mp.stop();
-                }
-            };
-            final EventHandler<ActionEvent> playAction = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    mp.play();
-                }
-            };
-            final EventHandler<ActionEvent> pauseAction = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    mp.pause();
-                }
-            };
-            final EventHandler<ActionEvent> forwardAction = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    Duration currentTime = mp.getCurrentTime();
-                    mp.seek(Duration.seconds(currentTime.toSeconds() + 5.0));
-                }
+            final EventHandler<ActionEvent> backAction = e -> mp.seek(Duration.ZERO);
+            final EventHandler<ActionEvent> stopAction = e -> mp.stop();
+            final EventHandler<ActionEvent> playAction = e -> mp.play();
+            final EventHandler<ActionEvent> pauseAction = e -> mp.pause();
+            final EventHandler<ActionEvent> forwardAction = e -> {
+                Duration currentTime = mp.getCurrentTime();
+                mp.seek(Duration.seconds(currentTime.toSeconds() + 5.0));
             };
 
             mediaBottomBar = new HBox();
@@ -318,18 +267,15 @@
 
         protected void updateValues() {
             if (playTime != null && timeSlider != null && volumeSlider != null && duration != null) {
-                Platform.runLater(new Runnable() {
-                    @Override
-                    public void run() {
-                        Duration currentTime = mp.getCurrentTime();
-                        playTime.setText(formatTime(currentTime, duration));
-                        timeSlider.setDisable(duration.isUnknown());
-                        if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
-                            timeSlider.setValue(currentTime.divide(duration).toMillis() * 100.0);
-                        }
-                        if (!volumeSlider.isValueChanging()) {
-                            volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
-                        }
+                Platform.runLater(() -> {
+                    Duration currentTime = mp.getCurrentTime();
+                    playTime.setText(formatTime(currentTime, duration));
+                    timeSlider.setDisable(duration.isUnknown());
+                    if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
+                        timeSlider.setValue(currentTime.toMillis() / duration.toMillis() * 100.0);
+                    }
+                    if (!volumeSlider.isValueChanging()) {
+                        volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
                     }
                 });
             }
@@ -351,7 +297,6 @@
                     intDuration -= durationHours * 60 * 60;
                 }
                 int durationMinutes = intDuration / 60;
-                int durationSeconds = intDuration - durationHours * 60 * 60 - durationMinutes * 60;
 
                 if (durationHours > 0) {
                     return String.format("%d:%02d:%02d",
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -131,35 +131,21 @@
         BorderPane.setAlignment(mediaTopBar, Pos.CENTER);
 
 
-        mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {
-            @Override
-            public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
-                updateValues();
+        mp.currentTimeProperty().addListener((observable, oldValue, newValue) -> updateValues());
+        mp.setOnPlaying(() -> {
+            if (stopRequested) {
+                mp.pause();
+                stopRequested = false;
             }
         });
-        mp.setOnPlaying(new Runnable() {
-            @Override
-            public void run() {
-                if (stopRequested) {
-                    mp.pause();
-                    stopRequested = false;
-                }
-            }
+        mp.setOnReady(() -> {
+            duration = mp.getMedia().getDuration();
+            updateValues();
         });
-        mp.setOnReady(new Runnable() {
-            @Override
-            public void run() {
-                duration = mp.getMedia().getDuration();
-                updateValues();
-            }
-        });
-        mp.setOnEndOfMedia(new Runnable() {
-            @Override
-            public void run() {
-                if (!repeat) {
-                    stopRequested = true;
-                    atEndOfMedia = true;
-                }
+        mp.setOnEndOfMedia(() -> {
+            if (!repeat) {
+                stopRequested = true;
+                atEndOfMedia = true;
             }
         });
         mp.setCycleCount(repeat ? MediaPlayer.INDEFINITE : 1);
@@ -175,17 +161,14 @@
         timeSlider.setId("media-slider");
         timeSlider.setMinWidth(240);
         timeSlider.setMaxWidth(Double.MAX_VALUE);
-        timeSlider.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-                if (timeSlider.isValueChanging()) {
-                    // multiply duration by percentage calculated by slider position
-                    if (duration != null) {
-                        mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
-                    }
-                    updateValues();
+        timeSlider.valueProperty().addListener(ov -> {
+            if (timeSlider.isValueChanging()) {
+                // multiply duration by percentage calculated by slider position
+                if (duration != null) {
+                    mp.seek(duration.multiply(timeSlider.getValue() / 100.0));
+                }
+                updateValues();
 
-                }
             }
         });
         HBox.setHgrow(timeSlider, Priority.ALWAYS);
@@ -210,53 +193,24 @@
         volumeSlider.setPrefWidth(120);
         volumeSlider.setMinWidth(30);
         volumeSlider.setMaxWidth(Region.USE_PREF_SIZE);
-        volumeSlider.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable ov) {
-            }
+        volumeSlider.valueProperty().addListener(ov -> {
         });
-        volumeSlider.valueProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                if (volumeSlider.isValueChanging()) {
-                    mp.setVolume(volumeSlider.getValue() / 100.0);
-                }
+        volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
+            if (volumeSlider.isValueChanging()) {
+                mp.setVolume(volumeSlider.getValue() / 100.0);
             }
         });
         mediaTopBar.getChildren().add(volumeSlider);
 
         setTop(mediaTopBar);
 
-        final EventHandler<ActionEvent> backAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp.seek(Duration.ZERO);
-            }
-        };
-        final EventHandler<ActionEvent> stopAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp.stop();
-            }
-        };
-        final EventHandler<ActionEvent> playAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp.play();
-            }
-        };
-        final EventHandler<ActionEvent> pauseAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                mp.pause();
-            }
-        };
-        final EventHandler<ActionEvent> forwardAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                Duration currentTime = mp.getCurrentTime();
-                mp.seek(Duration.seconds(currentTime.toSeconds() + 5.0));
-            }
+        final EventHandler<ActionEvent> backAction = e -> mp.seek(Duration.ZERO);
+        final EventHandler<ActionEvent> stopAction = e -> mp.stop();
+        final EventHandler<ActionEvent> playAction = e -> mp.play();
+        final EventHandler<ActionEvent> pauseAction = e -> mp.pause();
+        final EventHandler<ActionEvent> forwardAction = e -> {
+            Duration currentTime = mp.getCurrentTime();
+            mp.seek(Duration.seconds(currentTime.toSeconds() + 5.0));
         };
 
         Button backButton = new Button("Back");
@@ -290,18 +244,15 @@
 
     protected void updateValues() {
         if (playTime != null && timeSlider != null && volumeSlider != null && duration != null) {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    Duration currentTime = mp.getCurrentTime();
-                    playTime.setText(formatTime(currentTime, duration));
-                    timeSlider.setDisable(duration.isUnknown());
-                    if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
-                        timeSlider.setValue(currentTime.divide(duration).toMillis() * 100.0);
-                    }
-                    if (!volumeSlider.isValueChanging()) {
-                        volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
-                    }
+            Platform.runLater(() -> {
+                Duration currentTime = mp.getCurrentTime();
+                playTime.setText(formatTime(currentTime, duration));
+                timeSlider.setDisable(duration.isUnknown());
+                if (!timeSlider.isDisabled() && duration.greaterThan(Duration.ZERO) && !timeSlider.isValueChanging()) {
+                    timeSlider.setValue(currentTime.toMillis() / duration.toMillis() * 100.0);
+                }
+                if (!volumeSlider.isValueChanging()) {
+                    volumeSlider.setValue((int) Math.round(mp.getVolume() * 100));
                 }
             });
         }
@@ -323,7 +274,6 @@
                 intDuration -= durationHours * 60 * 60;
             }
             int durationMinutes = intDuration / 60;
-            int durationSeconds = intDuration - durationHours * 60 * 60 - durationMinutes * 60;
 
             if (durationHours > 0) {
                 return String.format("%d:%02d:%02d",
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/gestureevent/GestureEventApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -100,10 +100,8 @@
 
         Rectangle border = new Rectangle(400, BORDER_HEIGHT);
         border.setStroke(Color.GRAY);
-        border.setFill(new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(1, Color.rgb(156, 216, 255)),
-                    new Stop(0, Color.rgb(156, 216, 255, 0.5))
-                }));
+        border.setFill(new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(1, Color.rgb(156, 216, 255)),
+                new Stop(0, Color.rgb(156, 216, 255, 0.5))));
 
         final Rectangle smallRec = createRectangle();
         smallRec.setTranslateX(SMALL_REC_X);
@@ -118,10 +116,8 @@
 
     private Rectangle createRectangle() {
         final Rectangle smallRec = new Rectangle(100, 100, 100, 100);
-        LinearGradient gradient1 = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, Color.ANTIQUEWHITE),
-                    new Stop(1, Color.CORAL)
-                });
+        LinearGradient gradient1 = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(0, Color.ANTIQUEWHITE),
+                new Stop(1, Color.CORAL));
         smallRec.setFill(gradient1);
         smallRec.setStroke(Color.BLACK);
         smallRec.setCursor(Cursor.HAND);
@@ -139,97 +135,67 @@
     }
 
     private void setEventListeners(final Node listeningNode, final Rectangle rec, final String msgPrefix) {
-        listeningNode.setOnSwipeDown(new EventHandler<SwipeEvent>() {
-            @Override
-            public void handle(SwipeEvent se) {
-                //log scroll to console, method listed below              
-                showOnConsole(msgPrefix + "SwipeDown event x: " + se.getX() + ", y: " + se.getY());
-                se.consume();
-            }
+        listeningNode.setOnSwipeDown(se -> {
+            //log scroll to console, method listed below
+            showOnConsole(msgPrefix + "SwipeDown event x: " + se.getX() + ", y: " + se.getY());
+            se.consume();
         });
 
-        listeningNode.setOnScroll(new EventHandler<ScrollEvent>() {
-            @Override
-            public void handle(ScrollEvent event) {
-                double translateX = event.getDeltaX(); //horizontal scroll amount
-                double translateY = event.getDeltaY();
+        listeningNode.setOnScroll(event -> {
+            double translateX = event.getDeltaX(); //horizontal scroll amount
+            double translateY = event.getDeltaY();
 
-                if ((rec.getTranslateX() + translateX > 0) && (rec.getTranslateX() + translateX < 300)) {
-                    rec.setTranslateX(listeningNode.getTranslateX() + translateX);
-                }
-                if ((rec.getTranslateY() + translateY > SMALL_REC_Y - 20) && (rec.getTranslateY() + translateY < 180 + SMALL_REC_Y)) {
-                    rec.setTranslateY(rec.getTranslateY() + translateY);
-                }
-                showOnConsole(msgPrefix + "Scroll event, deltaX: " + event.getDeltaX() + " deltaY: " + event.getDeltaY());
-                event.consume();
+            if ((rec.getTranslateX() + translateX > 0) && (rec.getTranslateX() + translateX < 300)) {
+                rec.setTranslateX(listeningNode.getTranslateX() + translateX);
             }
+            if ((rec.getTranslateY() + translateY > SMALL_REC_Y - 20) && (rec.getTranslateY() + translateY < 180 + SMALL_REC_Y)) {
+                rec.setTranslateY(rec.getTranslateY() + translateY);
+            }
+            showOnConsole(msgPrefix + "Scroll event, deltaX: " + event.getDeltaX() + " deltaY: " + event.getDeltaY());
+            event.consume();
         });
 
-        listeningNode.setOnZoom(new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent event) {
-                rec.setScaleX(rec.getScaleX() * event.getZoomFactor());
-                rec.setScaleY(rec.getScaleY() * event.getZoomFactor());
-                showOnConsole(msgPrefix + "Zoom event, zoom factor: " + event.getZoomFactor());
-                event.consume();
-            }
+        listeningNode.setOnZoom(event -> {
+            rec.setScaleX(rec.getScaleX() * event.getZoomFactor());
+            rec.setScaleY(rec.getScaleY() * event.getZoomFactor());
+            showOnConsole(msgPrefix + "Zoom event, zoom factor: " + event.getZoomFactor());
+            event.consume();
         });
 
-        listeningNode.setOnRotate(new EventHandler<RotateEvent>() {
-            @Override
-            public void handle(RotateEvent event) {
-                rec.setRotate(listeningNode.getRotate() + event.getAngle());
-                showOnConsole(msgPrefix + "Rotate event, angle: " + event.getAngle());
-                event.consume();
-            }
+        listeningNode.setOnRotate(event -> {
+            rec.setRotate(listeningNode.getRotate() + event.getAngle());
+            showOnConsole(msgPrefix + "Rotate event, angle: " + event.getAngle());
+            event.consume();
         });
 
-        listeningNode.setOnScrollStarted(new EventHandler<ScrollEvent>() {
-            @Override
-            public void handle(ScrollEvent event) {
-                showOnConsole(msgPrefix + "Scroll started");
-                event.consume();
-            }
+        listeningNode.setOnScrollStarted(event -> {
+            showOnConsole(msgPrefix + "Scroll started");
+            event.consume();
         });
 
-        listeningNode.setOnScrollFinished(new EventHandler<ScrollEvent>() {
-            @Override
-            public void handle(ScrollEvent event) {
-                showOnConsole(msgPrefix + "Scroll finished");
-                event.consume();
-            }
+        listeningNode.setOnScrollFinished(event -> {
+            showOnConsole(msgPrefix + "Scroll finished");
+            event.consume();
         });
 
-        listeningNode.setOnZoomStarted(new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent event) {
-                showOnConsole(msgPrefix + "Zoom started");
-                event.consume();
-            }
+        listeningNode.setOnZoomStarted(event -> {
+            showOnConsole(msgPrefix + "Zoom started");
+            event.consume();
         });
 
-        listeningNode.setOnZoomFinished(new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent event) {
-                showOnConsole(msgPrefix + "Zoom finished");
-                event.consume();
-            }
+        listeningNode.setOnZoomFinished(event -> {
+            showOnConsole(msgPrefix + "Zoom finished");
+            event.consume();
         });
 
-        listeningNode.setOnRotationStarted(new EventHandler<RotateEvent>() {
-            @Override
-            public void handle(RotateEvent event) {
-                showOnConsole(msgPrefix + "Rotation started");
-                event.consume();
-            }
+        listeningNode.setOnRotationStarted(event -> {
+            showOnConsole(msgPrefix + "Rotation started");
+            event.consume();
         });
 
-        listeningNode.setOnRotationFinished(new EventHandler<RotateEvent>() {
-            @Override
-            public void handle(RotateEvent event) {
-                showOnConsole(msgPrefix + "Rotation finished");
-                event.consume();
-            }
+        listeningNode.setOnRotationFinished(event -> {
+            showOnConsole(msgPrefix + "Rotation finished");
+            event.consume();
         });
     }
 
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -59,15 +59,12 @@
 
     public Parent createContent() {
         //create a console for logging key events
-        final ListView<String> console = new ListView<String>(FXCollections.<String>observableArrayList());
+        final ListView<String> console = new ListView<>(FXCollections.<String>observableArrayList());
         // listen on the console items and remove old ones when we get over 20 items
-        console.getItems().addListener(new ListChangeListener<String>() {
-            @Override
-            public void onChanged(ListChangeListener.Change<? extends String> change) {
-                while (change.next()) {
-                    if (change.getList().size() > 20.0) {
-                        change.getList().remove(0);
-                    }
+        console.getItems().addListener((ListChangeListener.Change<? extends String> change) -> {
+            while (change.next()) {
+                if (change.getList().size() > 20.0) {
+                    change.getList().remove(0);
                 }
             }
         });
@@ -79,36 +76,27 @@
         textBox.setPromptText("Write here");
         textBox.setStyle("-fx-font-size: 34;");
         //add a key listeners
-        textBox.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent ke) {
-                console.getItems().add("Key Pressed: " + ke.getText());
+        textBox.setOnKeyPressed(ke -> {
+            console.getItems().add("Key Pressed: " + ke.getText());
+        });
+        textBox.setOnKeyReleased(ke -> {
+            console.getItems().add("Key Released: " + ke.getText());
+        });
+        textBox.setOnKeyTyped(ke -> {
+            String text = "Key Typed: " + ke.getCharacter();
+            if (ke.isAltDown()) {
+                text += " , alt down";
             }
-        });
-        textBox.setOnKeyReleased(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent ke) {
-                console.getItems().add("Key Released: " + ke.getText());
+            if (ke.isControlDown()) {
+                text += " , ctrl down";
             }
-        });
-        textBox.setOnKeyTyped(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent ke) {
-                String text = "Key Typed: " + ke.getCharacter();
-                if (ke.isAltDown()) {
-                    text += " , alt down";
-                }
-                if (ke.isControlDown()) {
-                    text += " , ctrl down";
-                }
-                if (ke.isMetaDown()) {
-                    text += " , meta down";
-                }
-                if (ke.isShiftDown()) {
-                    text += " , shift down";
-                }
-                console.getItems().add(text);
+            if (ke.isMetaDown()) {
+                text += " , meta down";
             }
+            if (ke.isShiftDown()) {
+                text += " , shift down";
+            }
+            console.getItems().add(text);
         });
 
         VBox vb = new VBox(10);
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java	Tue Dec 03 18:41:47 2013 -0800
@@ -59,19 +59,13 @@
         setId("LettersPane");
         setPrefSize(240, 240);
         setFocusTraversable(true);
-        setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                requestFocus();
-                me.consume();
-            }
+        setOnMousePressed(me -> {
+            requestFocus();
+            me.consume();
         });
-        setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent ke) {
-                createLetter(ke.getText());
-                ke.consume();
-            }
+        setOnKeyPressed(ke -> {
+            createLetter(ke.getText());
+            ke.consume();
         });
         // create press keys text
         pressText = new Text("Press Keys");
@@ -104,13 +98,10 @@
         // over 3 seconds move letter to random position and fade it out
         final Timeline timeline = new Timeline();
         timeline.getKeyFrames().add(
-                new KeyFrame(Duration.seconds(3), new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                // we are done remove us from scene
-                getChildren().remove(letter);
-            }
-        },
+                new KeyFrame(Duration.seconds(3), event -> {
+                    // we are done remove us from scene
+                    getChildren().remove(letter);
+                },
                 new KeyValue(letter.translateXProperty(), getRandom(0.0f, getWidth() - letter.getBoundsInLocal().getWidth()), INTERPOLATOR),
                 new KeyValue(letter.translateYProperty(), getRandom(0.0f, getHeight() - letter.getBoundsInLocal().getHeight()), INTERPOLATOR),
                 new KeyValue(letter.opacityProperty(), 0f)));
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -86,10 +86,8 @@
         console.setPrefSize(CONSOLE_WIDTH, CONSOLE_HEIGHT);
     }
     //create a rectangle in which our circles can move
-    final Rectangle rectangle = new Rectangle(RECT_WIDTH, RECT_HEIGHT, new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                new Stop(1, Color.rgb(156, 216, 255)),
-                new Stop(0, Color.rgb(156, 216, 255, 0.5))
-            }));
+    final Rectangle rectangle = new Rectangle(RECT_WIDTH, RECT_HEIGHT, new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(1, Color.rgb(156, 216, 255)),
+            new Stop(0, Color.rgb(156, 216, 255, 0.5))));
     //variables for storing initial position before drag of circle
     private double initX;
     private double initY;
@@ -106,112 +104,81 @@
         circleBig.setTranslateX(BIG_CIRCLE_STARTX);
         circleBig.setTranslateY(BIG_CIRCLE_STARTY);
         // we can set mouse event to any node, also on the rectangle
-        rectangle.setOnMouseMoved(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
-                //log mouse move to console, method listed below
-                showOnConsole("Mouse moved, x: " + me.getX() + ", y: " + me.getY());
+        rectangle.setOnMouseMoved(me -> showOnConsole("Mouse moved, x: " + me.getX() + ", y: " + me.getY()));
+
+        rectangle.setOnScroll(event -> {
+            double translateX = event.getDeltaX();
+            double translateY = event.getDeltaY();
+            // reduce the deltas for the circles to stay in the screen
+            for (Circle c : new Circle[]{circleSmall, circleBig}) {
+                if (c.getTranslateX() + translateX + c.getRadius() > RECT_WIDTH) {
+                    translateX = RECT_WIDTH - c.getTranslateX() - c.getRadius();
+                }
+                if (c.getTranslateX() + translateX - c.getRadius() < 0) {
+                    translateX = -c.getTranslateX() + c.getRadius();
+                }
+                if (c.getTranslateY() + translateY + c.getRadius() > RECT_HEIGHT) {
+                    translateY = RECT_HEIGHT - c.getTranslateY() - c.getRadius();
+                }
+                if (c.getTranslateY() + translateY - c.getRadius() < 0) {
+                    translateY = -c.getTranslateY() + c.getRadius();
+                }
             }
-        });
-
-        rectangle.setOnScroll(new EventHandler<ScrollEvent>() {
-            @Override
-            public void handle(ScrollEvent event) {
-                double translateX = event.getDeltaX();
-                double translateY = event.getDeltaY();
-                // reduce the deltas for the circles to stay in the screen
-                for (Circle c : new Circle[]{circleSmall, circleBig}) {
-                    if (c.getTranslateX() + translateX + c.getRadius() > RECT_WIDTH) {
-                        translateX = RECT_WIDTH - c.getTranslateX() - c.getRadius();
-                    }
-                    if (c.getTranslateX() + translateX - c.getRadius() < 0) {
-                        translateX = -c.getTranslateX() + c.getRadius();
-                    }
-                    if (c.getTranslateY() + translateY + c.getRadius() > RECT_HEIGHT) {
-                        translateY = RECT_HEIGHT - c.getTranslateY() - c.getRadius();
-                    }
-                    if (c.getTranslateY() + translateY - c.getRadius() < 0) {
-                        translateY = -c.getTranslateY() + c.getRadius();
-                    }
-                }
-                // move the circles
-                for (Circle c : new Circle[]{circleSmall, circleBig}) {
-                    c.setTranslateX(c.getTranslateX() + translateX);
-                    c.setTranslateY(c.getTranslateY() + translateY);
-                }
-                // log event
-                showOnConsole("Scrolled, deltaX: " + event.getDeltaX()
-                        + ", deltaY: " + event.getDeltaY());
+            // move the circles
+            for (Circle c : new Circle[]{circleSmall, circleBig}) {
+                c.setTranslateX(c.getTranslateX() + translateX);
+                c.setTranslateY(c.getTranslateY() + translateY);
             }
+            // log event
+            showOnConsole("Scrolled, deltaX: " + event.getDeltaX()
+                    + ", deltaY: " + event.getDeltaY());
         });
         return new Group(rectangle, circleBig, circleSmall, console);
     }
 
     private Circle createCircle(final String name, final Color color, int radius) {
         //create a circle with desired name,  color and radius
-        final Circle circle = new Circle(radius, new RadialGradient(0, 0, 0.2, 0.3, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                    new Stop(0, Color.rgb(250, 250, 255)),
-                    new Stop(1, color)
-                }));
+        final Circle circle = new Circle(radius, new RadialGradient(0, 0, 0.2, 0.3, 1, true, CycleMethod.NO_CYCLE, new Stop(0, Color.rgb(250, 250, 255)),
+                new Stop(1, color)));
         //add a shadow effect
         circle.setEffect(new InnerShadow(7, color.darker().darker()));
         //change a cursor when it is over circle
         circle.setCursor(Cursor.HAND);
         //add a mouse listeners
-        circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                showOnConsole("Clicked on" + name + ", " + me.getClickCount() + "times");
-                //the event will be passed only to the circle which is on front
-                me.consume();
+        circle.setOnMouseClicked(me -> {
+            showOnConsole("Clicked on" + name + ", " + me.getClickCount() + "times");
+            //the event will be passed only to the circle which is on front
+            me.consume();
+        });
+        circle.setOnMouseDragged(me -> {
+            double dragX = me.getSceneX() - dragAnchor.getX();
+            double dragY = me.getSceneY() - dragAnchor.getY();
+            //calculate new position of the circle
+            double newXPosition = initX + dragX;
+            double newYPosition = initY + dragY;
+            //if new position do not exceeds borders of the rectangle, translate to this position
+            if ((newXPosition >= circle.getRadius()) && (newXPosition <= RECT_WIDTH - circle.getRadius())) {
+                circle.setTranslateX(newXPosition);
             }
+            if ((newYPosition >= circle.getRadius()) && (newYPosition <= RECT_HEIGHT - circle.getRadius())) {
+                circle.setTranslateY(newYPosition);
+            }
+            showOnConsole(name + " was dragged (x:" + dragX + ", y:" + dragY + ")");
         });
-        circle.setOnMouseDragged(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                double dragX = me.getSceneX() - dragAnchor.getX();
-                double dragY = me.getSceneY() - dragAnchor.getY();
-                //calculate new position of the circle
-                double newXPosition = initX + dragX;
-                double newYPosition = initY + dragY;
-                //if new position do not exceeds borders of the rectangle, translate to this position
-                if ((newXPosition >= circle.getRadius()) && (newXPosition <= RECT_WIDTH - circle.getRadius())) {
-                    circle.setTranslateX(newXPosition);
-                }
-                if ((newYPosition >= circle.getRadius()) && (newYPosition <= RECT_HEIGHT - circle.getRadius())) {
-                    circle.setTranslateY(newYPosition);
-                }
-                showOnConsole(name + " was dragged (x:" + dragX + ", y:" + dragY + ")");
-            }
+        circle.setOnMouseEntered(me -> {
+            //change the z-coordinate of the circle
+            circle.toFront();
+            showOnConsole("Mouse entered " + name);
         });
-        circle.setOnMouseEntered(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                //change the z-coordinate of the circle
-                circle.toFront();
-                showOnConsole("Mouse entered " + name);
-            }
+        circle.setOnMouseExited(me -> showOnConsole("Mouse exited " + name));
+        circle.setOnMousePressed(me -> {
+            //when mouse is pressed, store initial position
+            initX = circle.getTranslateX();
+            initY = circle.getTranslateY();
+            dragAnchor = new Point2D(me.getSceneX(), me.getSceneY());
+            showOnConsole("Mouse pressed above " + name);
         });
-        circle.setOnMouseExited(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                showOnConsole("Mouse exited " + name);
-            }
-        });
-        circle.setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent me) {
-                //when mouse is pressed, store initial position
-                initX = circle.getTranslateX();
-                initY = circle.getTranslateY();
-                dragAnchor = new Point2D(me.getSceneX(), me.getSceneY());
-                showOnConsole("Mouse pressed above " + name);
-            }
-        });
-        circle.setOnMouseReleased(new EventHandler<MouseEvent>() {
-            public void handle(MouseEvent me) {
-                showOnConsole("Mouse released above " + name);
-            }
-        });
+        circle.setOnMouseReleased(me -> showOnConsole("Mouse released above " + name));
 
         return circle;
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java	Tue Dec 03 18:41:47 2013 -0800
@@ -54,15 +54,12 @@
         imageView.setSmooth(true);
         getChildren().add(imageView);
 
-        setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent event) {
+        setOnMousePressed(event -> {
 
-                lastX = event.getX();
-                lastY = event.getY();
-                toFront();
-                //  postView.toFront();
-            }
+            lastX = event.getX();
+            lastY = event.getY();
+            toFront();
+            //  postView.toFront();
         });
         setOnMouseDragged(new EventHandler<MouseEvent>() {
             @Override
@@ -84,31 +81,17 @@
                 }
             }
         });
-        addEventHandler(ZoomEvent.ZOOM_STARTED, new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent event) {
-                startScale = getScaleX();
-            }
+        addEventHandler(ZoomEvent.ZOOM_STARTED, event -> {
+            startScale = getScaleX();
         });
-        addEventHandler(ZoomEvent.ZOOM, new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent event) {
-                setScaleX(event.getTotalZoomFactor());
-                setScaleY(event.getTotalZoomFactor());
-            }
+        addEventHandler(ZoomEvent.ZOOM, event -> {
+            setScaleX(event.getTotalZoomFactor());
+            setScaleY(event.getTotalZoomFactor());
         });
-        addEventHandler(RotateEvent.ROTATION_STARTED, new EventHandler<RotateEvent>() {
-            @Override
-            public void handle(RotateEvent event) {
-                startRotate = getRotate();
-            }
+        addEventHandler(RotateEvent.ROTATION_STARTED, event -> {
+            startRotate = getRotate();
         });
-        addEventHandler(RotateEvent.ROTATE, new EventHandler<RotateEvent>() {
-            @Override
-            public void handle(RotateEvent event) {
-                setRotate(event.getTotalAngle());
-            }
-        });
+        addEventHandler(RotateEvent.ROTATE, event -> setRotate(event.getTotalAngle()));
 
     }
 }
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/node/customnode/CustomNodeApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -73,15 +73,13 @@
     }
 
     public static Polygon createUMLArrow() {
-        Polygon polygon = new Polygon(new double[]{
-                    7.5, 0,
-                    15, 15,
-                    7.51, 15,
-                    7.51, 40,
-                    7.49, 40,
-                    7.49, 15,
-                    0, 15
-                });
+        Polygon polygon = new Polygon(7.5, 0,
+                15, 15,
+                7.51, 15,
+                7.51, 40,
+                7.49, 40,
+                7.49, 15,
+                0, 15);
         polygon.setFill(Color.WHITE);
         polygon.setStroke(Color.BLACK);
         return polygon;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/advancedstage/AdvancedStageApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -82,92 +82,67 @@
         Button button = new Button("Create a Stage");
         button.setStyle("-fx-font-size: 24;");
         button.setDefaultButton(true);
-        button.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                // INITIALISATION OF THE STAGE/SCENE
+        button.setOnAction(t -> {
+            // INITIALISATION OF THE STAGE/SCENE
 
-                //create stage which has set stage style transparent
-                final Stage stage = new Stage(StageStyle.TRANSPARENT);
-                //create root node of scene, i.e. group
-                Group rootGroup = new Group();
-                //create scene with set width, height and color
-                Scene scene = new Scene(rootGroup, 200, 200, Color.TRANSPARENT);
-                //set scene to stage
-                stage.setScene(scene);
-                //center stage on screen
-                stage.centerOnScreen();
-                //show the stage
-                stage.show();
+            //create stage which has set stage style transparent
+            final Stage stage = new Stage(StageStyle.TRANSPARENT);
+            //create root node of scene, i.e. group
+            Group rootGroup = new Group();
+            //create scene with set width, height and color
+            Scene scene = new Scene(rootGroup, 200, 200, Color.TRANSPARENT);
+            //set scene to stage
+            stage.setScene(scene);
+            //center stage on screen
+            stage.centerOnScreen();
+            //show the stage
+            stage.show();
 
-                // CREATION OF THE DRAGGER (CIRCLE)
+            // CREATION OF THE DRAGGER (CIRCLE)
 
-                //create dragger with desired size
-                Circle dragger = new Circle(100, 100, 100);
-                //fill the dragger with some nice radial background
-                dragger.setFill(new RadialGradient(-0.3, 135, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[]{
-                            new Stop(0, Color.DARKGRAY),
-                            new Stop(1, Color.BLACK)
-                        }));
+            //create dragger with desired size
+            Circle dragger = new Circle(100, 100, 100);
+            //fill the dragger with some nice radial background
+            dragger.setFill(new RadialGradient(-0.3, 135, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop(0, Color.DARKGRAY),
+                    new Stop(1, Color.BLACK)));
 
-                //when mouse button is pressed, save the initial position of screen
-                rootGroup.setOnMousePressed(new EventHandler<MouseEvent>() {
-                    @Override
-                    public void handle(MouseEvent me) {
-                        initX = me.getScreenX() - stage.getX();
-                        initY = me.getScreenY() - stage.getY();
-                    }
-                });
+            //when mouse button is pressed, save the initial position of screen
+            rootGroup.setOnMousePressed(me -> {
+                initX = me.getScreenX() - stage.getX();
+                initY = me.getScreenY() - stage.getY();
+            });
 
-                //when screen is dragged, translate it accordingly
-                rootGroup.setOnMouseDragged(new EventHandler<MouseEvent>() {
-                    @Override
-                    public void handle(MouseEvent me) {
-                        stage.setX(me.getScreenX() - initX);
-                        stage.setY(me.getScreenY() - initY);
-                    }
-                });
+            //when screen is dragged, translate it accordingly
+            rootGroup.setOnMouseDragged(me -> {
+                stage.setX(me.getScreenX() - initX);
+                stage.setY(me.getScreenY() - initY);
+            });
 
-                // CREATE MIN AND CLOSE BUTTONS
-                //create button for closing application
-                Button close = new Button("Close me");
-                close.setOnAction(new EventHandler<ActionEvent>() {
-                    @Override
-                    public void handle(ActionEvent event) {
-                        //in case we would like to close whole demo
-                        //javafx.application.Platform.exit();
+            // CREATE MIN AND CLOSE BUTTONS
+            //create button for closing application
+            Button close = new Button("Close me");
+            close.setOnAction(event -> stage.close());
 
-                        //however we want to close only this instance of stage
-                        stage.close();
-                    }
-                });
+            //create button for minimalising application
+            Button min = new Button("Minimize me");
+            min.setOnAction(event -> stage.setIconified(true));
 
-                //create button for minimalising application
-                Button min = new Button("Minimize me");
-                min.setOnAction(new EventHandler<ActionEvent>() {
-                    @Override
-                    public void handle(ActionEvent event) {
-                        stage.setIconified(true);
-                    }
-                });
+            // CREATE SIMPLE TEXT NODE
+            Text text = new Text("JavaFX"); //20, 110,
+            text.setFill(Color.WHITESMOKE);
+            text.setEffect(new Lighting());
+            text.setBoundsType(TextBoundsType.VISUAL);
+            text.setFont(Font.font(Font.getDefault().getFamily(), 50));
 
-                // CREATE SIMPLE TEXT NODE
-                Text text = new Text("JavaFX"); //20, 110,
-                text.setFill(Color.WHITESMOKE);
-                text.setEffect(new Lighting());
-                text.setBoundsType(TextBoundsType.VISUAL);
-                text.setFont(Font.font(Font.getDefault().getFamily(), 50));
+            // USE A LAYOUT VBOX FOR EASIER POSITIONING OF THE VISUAL NODES ON SCENE
+            VBox vBox = new VBox();
+            vBox.setSpacing(10);
+            vBox.setPadding(new Insets(60, 0, 0, 20));
+            vBox.setAlignment(Pos.TOP_CENTER);
+            vBox.getChildren().addAll(text, min, close);
 
-                // USE A LAYOUT VBOX FOR EASIER POSITIONING OF THE VISUAL NODES ON SCENE
-                VBox vBox = new VBox();
-                vBox.setSpacing(10);
-                vBox.setPadding(new Insets(60, 0, 0, 20));
-                vBox.setAlignment(Pos.TOP_CENTER);
-                vBox.getChildren().addAll(text, min, close);
-
-                //add all nodes to main root group
-                rootGroup.getChildren().addAll(dragger, vBox);
-            }
+            //add all nodes to main root group
+            rootGroup.getChildren().addAll(dragger, vBox);
         });
         root.getChildren().add(button);
         return root;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/stage/StageApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -61,28 +61,25 @@
         Button button = new Button("Create a Stage");
         button.setStyle("-fx-font-size: 24;");
         button.setDefaultButton(true);
-        button.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                final Stage stage = new Stage();
-                //create root node of scene, i.e. group
-                Group rootGroup = new Group();
-                //create scene with set width, height and color
-                Scene scene = new Scene(rootGroup, 200, 200, Color.WHITESMOKE);
-                //set scene to stage
-                stage.setScene(scene);
-                //center stage on screen
-                stage.centerOnScreen();
-                //show the stage
-                stage.show();
-                //add some node to scene
-                Text text = new Text(20, 110, "JavaFX");
-                text.setFill(Color.DODGERBLUE);
-                text.setEffect(new Lighting());
-                text.setFont(Font.font(Font.getDefault().getFamily(), 50));
-                //add text to the main root group
-                rootGroup.getChildren().add(text);
-            }
+        button.setOnAction(t -> {
+            final Stage stage = new Stage();
+            //create root node of scene, i.e. group
+            Group rootGroup = new Group();
+            //create scene with set width, height and color
+            Scene scene = new Scene(rootGroup, 200, 200, Color.WHITESMOKE);
+            //set scene to stage
+            stage.setScene(scene);
+            //center stage on screen
+            stage.centerOnScreen();
+            //show the stage
+            stage.show();
+            //add some node to scene
+            Text text = new Text(20, 110, "JavaFX");
+            text.setFill(Color.DODGERBLUE);
+            text.setEffect(new Lighting());
+            text.setFont(Font.font(Font.getDefault().getFamily(), 50));
+            //add text to the main root group
+            rootGroup.getChildren().add(text);
         });
         return button;
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SampleTableModel.java	Tue Dec 03 18:41:47 2013 -0800
@@ -47,9 +47,9 @@
     private static ObservableList<BarChart.Series> bcData;
     private final String[] names = {"2007", "2008", "2009"};
     private Object[][] data = {
-        {new Double(567), new Double(956), new Double(1154)},
-        {new Double(1292), new Double(1665), new Double(1927)},
-        {new Double(1292), new Double(2559), new Double(2774)}
+        {(double) 567, (double) 956, (double) 1154},
+        {(double) 1292, (double) 1665, (double) 1927},
+        {(double) 1292, (double) 2559, (double) 2774}
     };
 
     public double getTickUnit() {
@@ -93,7 +93,7 @@
     @Override
     public void setValueAt(Object value, int row, int column) {
         if (value instanceof Double) {
-            data[row][column] = (Double) value;
+            data[row][column] = value;
         }
 
         fireTableCellUpdated(row, column);
@@ -101,9 +101,9 @@
 
     public ObservableList<BarChart.Series> getBarChartData() {
         if (bcData == null) {
-            bcData = FXCollections.<BarChart.Series>observableArrayList();
+            bcData = FXCollections.observableArrayList();
             for (int row = 0; row < getRowCount(); row++) {
-                ObservableList<BarChart.Data> series = FXCollections.<BarChart.Data>observableArrayList();
+                ObservableList<BarChart.Data> series = FXCollections.observableArrayList();
                 for (int column = 0; column < getColumnCount(); column++) {
                     series.add(new BarChart.Data(getColumnName(column), getValueAt(row, column)));
                 }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInterop.java	Tue Dec 03 18:41:47 2013 -0800
@@ -39,7 +39,6 @@
 import java.text.DecimalFormat;
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.embed.swing.JFXPanel;
 import javafx.event.ActionEvent;
@@ -64,7 +63,6 @@
 import javafx.scene.web.WebView;
 import javax.swing.*;
 import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
 import javax.swing.table.DefaultTableCellRenderer;
 
 /**
@@ -129,36 +127,29 @@
         add(tabbedPane, BorderLayout.CENTER);
         
         // create JavaFX scene
-        Platform.runLater(new Runnable() {
-            public void run() {
-                createScene();
-            }
-        });
+        Platform.runLater(this::createScene);
     }
 
     public static void main(String[] args) {
-        SwingUtilities.invokeLater(new Runnable() {
+        System.setProperty("java.net.useSystemProxies", "true");
+        SwingUtilities.invokeLater(() -> {
+            try {
+                UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
+            } catch (Exception e) {}
 
-            @Override
-            public void run() {
-                try {
-                    UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
-                } catch (Exception e) {}
-                
-                JFrame frame = new JFrame("JavaFX in Swing");
-                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+            JFrame frame = new JFrame("JavaFX in Swing");
+            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
-                JApplet applet = new SwingInterop();
-                applet.init();
+            JApplet applet = new SwingInterop();
+            applet.init();
 
-                frame.setContentPane(applet.getContentPane());
+            frame.setContentPane(applet.getContentPane());
 
-                frame.pack();
-                frame.setLocationRelativeTo(null);
-                frame.setVisible(true);
+            frame.pack();
+            frame.setLocationRelativeTo(null);
+            frame.setVisible(true);
 
-                applet.start();
-            }
+            applet.start();
         });
     }
 
@@ -181,23 +172,16 @@
         yAxis.setLabel("Units Sold");
 
         final BarChart bChart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
-        tableModel.addTableModelListener(new TableModelListener() {
-
-            @Override
-            public void tableChanged(TableModelEvent e) {
-                if (e.getType() == TableModelEvent.UPDATE) {
-                    final int row = e.getFirstRow();
-                    final int column = e.getColumn();
-                    final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
-                    Platform.runLater(new Runnable() {
-                        @Override
-                        public void run() {
-                            XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) bChart.getData().get(row);
-                            BarChart.Data data = s.getData().get(column);
-                            data.setYValue(value);
-                        }
-                    });
-                }
+        tableModel.addTableModelListener(e -> {
+            if (e.getType() == TableModelEvent.UPDATE) {
+                final int row = e.getFirstRow();
+                final int column = e.getColumn();
+                final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
+                Platform.runLater(() -> {
+                    XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) bChart.getData().get(row);
+                    BarChart.Data data = s.getData().get(column);
+                    data.setYValue(value);
+                });
             }
         });
         return bChart;
@@ -213,11 +197,9 @@
         final Label warningLabel = new Label("Do you need to specify web proxy information?");
         eng.load("http://www.oracle.com/us/index.html");
 
-        ChangeListener handler = new ChangeListener<Number>() {
-            @Override public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                if (warningLabel.isVisible()) {
-                    warningLabel.setVisible(false);
-                }
+        ChangeListener handler = (observable, oldValue, newValue) -> {
+            if (warningLabel.isVisible()) {
+                warningLabel.setVisible(false);
             }
         };
         eng.getLoadWorker().progressProperty().addListener(handler);
@@ -227,19 +209,11 @@
         Button goButton = new Button("Go");
         goButton.setMinWidth(Button.USE_PREF_SIZE);
         goButton.setDefaultButton(true);
-        EventHandler<ActionEvent> goAction = new EventHandler<ActionEvent>() {
-            @Override public void handle(ActionEvent event) {
-                eng.load(locationField.getText().startsWith("http://") ? locationField.getText()
-                        : "http://" + locationField.getText());
-            }
-        };
+        EventHandler<ActionEvent> goAction = event -> eng.load(locationField.getText().startsWith("http://") ? locationField.getText()
+                : "http://" + locationField.getText());
         goButton.setOnAction(goAction);
         locationField.setOnAction(goAction);
-        eng.locationProperty().addListener(new ChangeListener<String>() {
-            @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
-                locationField.setText(newValue);
-            }
-        });
+        eng.locationProperty().addListener((observable, oldValue, newValue) -> locationField.setText(newValue));
         GridPane grid = new GridPane();
         grid.setPadding(new Insets(5));
         grid.setVgap(5);
@@ -260,7 +234,7 @@
 
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
-            value = formatter.format((Number) value);
+            value = formatter.format(value);
             return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
         }
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -64,12 +64,7 @@
 
     public Parent createContent() {
         button.setPrefSize(180, 45);
-        button.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                service.restart();
-            }
-        });
+        button.setOnAction(t -> service.restart());
         button.disableProperty().bind(service.bp);
         return button;
     }
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/swing/swinginterop/SwingInteropTask.java	Tue Dec 03 18:41:47 2013 -0800
@@ -61,7 +61,7 @@
         proc = pb.start();
         //Assuming there is little output to stdout, stderr
         pListener.setProcess(proc);
-        int exitVal = proc.waitFor();
+        proc.waitFor();
         pListener.setProcess(null);
 
         return proc;
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/htmleditor/HTMLEditorApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -91,13 +91,7 @@
 
         Button showHTMLButton = new Button("Show the HTML below");
         vRoot.setAlignment(Pos.CENTER);
-        showHTMLButton.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent arg0) {
-                htmlLabel.setText(htmlEditor.getHtmlText());
-            }
-        });
+        showHTMLButton.setOnAction(arg0 -> htmlLabel.setText(htmlEditor.getHtmlText()));
 
         vRoot.getChildren().addAll(showHTMLButton, scrollPane);
       
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java	Tue Dec 03 15:32:09 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/web/webview/WebViewApp.java	Tue Dec 03 18:41:47 2013 -0800
@@ -68,20 +68,10 @@
         webEngine.load(DEFAULT_URL);
 
         final TextField locationField = new TextField(DEFAULT_URL);
-        webEngine.locationProperty().addListener(new ChangeListener<String>() {
-            @Override
-            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
-                locationField.setText(newValue);
-            }
-        });
-        EventHandler<ActionEvent> goAction = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                webEngine.load(locationField.getText().startsWith("http://")
-                        ? locationField.getText()
-                        : "http://" + locationField.getText());
-            }
-        };
+        webEngine.locationProperty().addListener((observable, oldValue, newValue) -> locationField.setText(newValue));
+        EventHandler<ActionEvent> goAction = event -> webEngine.load(locationField.getText().startsWith("http://")
+                ? locationField.getText()
+                : "http://" + locationField.getText());
         locationField.setOnAction(goAction);
 
         Button goButton = new Button("Go");